Merge "Change default of $wgResourceLoaderMaxQueryLength to 2000"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Fri, 27 Mar 2015 22:45:56 +0000 (22:45 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Fri, 27 Mar 2015 22:45:56 +0000 (22:45 +0000)
1048 files changed:
.jshintrc
.rubocop.yml
.rubocop_todo.yml [deleted file]
Gemfile
Gemfile.lock
Gruntfile.js
INSTALL
RELEASE-NOTES-1.25
StartProfiler.sample
api.php
autoload.php
composer.json
docs/extension.schema.json
docs/hooks.txt
docs/kss/package.json
docs/sitescache.txt [new file with mode: 0644]
includes/DefaultSettings.php
includes/Defines.php
includes/EditPage.php
includes/Feed.php
includes/GlobalFunctions.php
includes/Html.php
includes/HttpFunctions.php
includes/Import.php
includes/LinkFilter.php
includes/Linker.php
includes/MediaWiki.php
includes/MessageBlobStore.php
includes/MovePage.php
includes/OutputPage.php
includes/PrefixSearch.php
includes/ProtectionForm.php
includes/Revision.php
includes/Setup.php
includes/StatCounter.php [deleted file]
includes/TemplateParser.php
includes/Title.php
includes/User.php
includes/UserArray.php
includes/UserRightsProxy.php
includes/WebResponse.php
includes/ZhConversion.php
includes/actions/DeleteAction.php
includes/actions/InfoAction.php
includes/api/ApiBase.php
includes/api/ApiBlock.php
includes/api/ApiCreateAccount.php
includes/api/ApiEditPage.php
includes/api/ApiFeedWatchlist.php
includes/api/ApiImageRotate.php
includes/api/ApiLogin.php
includes/api/ApiMain.php
includes/api/ApiPageSet.php
includes/api/ApiParamInfo.php
includes/api/ApiParse.php
includes/api/ApiProtect.php
includes/api/ApiQuery.php
includes/api/ApiQueryBase.php
includes/api/ApiQueryDeletedrevs.php
includes/api/ApiQueryInfo.php
includes/api/ApiQueryPrefixSearch.php
includes/api/ApiQueryRecentChanges.php
includes/api/ApiQueryRevisions.php
includes/api/ApiQueryStashImageInfo.php
includes/api/ApiQueryTokens.php
includes/api/ApiQueryUserInfo.php
includes/api/ApiQueryUsers.php
includes/api/ApiQueryWatchlist.php
includes/api/ApiSetNotificationTimestamp.php
includes/api/ApiStashEdit.php
includes/api/ApiTokens.php
includes/api/i18n/ca.json
includes/api/i18n/cs.json
includes/api/i18n/cv.json [new file with mode: 0644]
includes/api/i18n/de.json
includes/api/i18n/en.json
includes/api/i18n/es.json
includes/api/i18n/fa.json
includes/api/i18n/fr.json
includes/api/i18n/gl.json
includes/api/i18n/he.json
includes/api/i18n/it.json
includes/api/i18n/ja.json
includes/api/i18n/ko.json
includes/api/i18n/ksh.json
includes/api/i18n/lb.json
includes/api/i18n/nl.json
includes/api/i18n/pl.json
includes/api/i18n/qqq.json
includes/api/i18n/ru.json
includes/api/i18n/sv.json
includes/api/i18n/uk.json
includes/api/i18n/vi.json
includes/api/i18n/zh-hans.json
includes/api/i18n/zh-hant.json
includes/cache/BacklinkCache.php
includes/changes/EnhancedChangesList.php
includes/config/ConfigException.php
includes/content/AbstractContent.php
includes/content/Content.php
includes/content/JsonContent.php
includes/context/ContextSource.php
includes/context/DerivativeContext.php
includes/context/IContextSource.php
includes/context/RequestContext.php
includes/db/Database.php
includes/db/DatabaseMysqlBase.php
includes/db/DatabaseMysqli.php
includes/db/DatabaseSqlite.php
includes/db/DatabaseUtility.php
includes/db/LoadBalancer.php
includes/debug/MWDebug.php
includes/debug/logger/legacy/Logger.php
includes/debug/logger/monolog/Handler.php
includes/debug/logger/monolog/SamplingHandler.php [deleted file]
includes/deferred/HTMLCacheUpdate.php
includes/diff/DifferenceEngine.php
includes/diff/TableDiffFormatter.php
includes/exception/HttpError.php
includes/exception/MWException.php
includes/exception/MWExceptionHandler.php
includes/externalstore/ExternalStoreHttp.php
includes/filebackend/FSFileBackend.php
includes/filebackend/FileBackendStore.php
includes/filebackend/SwiftFileBackend.php
includes/filerepo/FileRepo.php
includes/filerepo/FileRepoStatus.php
includes/filerepo/ForeignAPIRepo.php
includes/filerepo/RepoGroup.php
includes/filerepo/file/File.php
includes/filerepo/file/LocalFile.php
includes/filerepo/file/OldLocalFile.php
includes/gallery/TraditionalImageGallery.php
includes/htmlform/HTMLRadioField.php
includes/installer/Installer.php
includes/installer/LocalSettingsGenerator.php
includes/installer/MysqlInstaller.php
includes/installer/MysqlUpdater.php
includes/installer/SqliteInstaller.php
includes/installer/SqliteUpdater.php
includes/installer/WebInstallerPage.php
includes/installer/i18n/ast.json
includes/installer/i18n/ca.json
includes/installer/i18n/cs.json
includes/installer/i18n/cv.json
includes/installer/i18n/de.json
includes/installer/i18n/en-gb.json
includes/installer/i18n/es.json
includes/installer/i18n/et.json
includes/installer/i18n/hi.json
includes/installer/i18n/id.json
includes/installer/i18n/ko.json
includes/installer/i18n/pms.json
includes/installer/i18n/vi.json
includes/installer/i18n/zh-hant.json
includes/jobqueue/Job.php
includes/jobqueue/JobQueue.php
includes/jobqueue/JobQueueDB.php
includes/jobqueue/JobQueueFederated.php
includes/jobqueue/JobQueueGroup.php
includes/jobqueue/JobQueueRedis.php
includes/jobqueue/JobRunner.php
includes/jobqueue/JobSpecification.php
includes/jobqueue/aggregator/JobQueueAggregator.php
includes/jobqueue/aggregator/JobQueueAggregatorMemc.php [deleted file]
includes/jobqueue/aggregator/JobQueueAggregatorRedis.php
includes/jobqueue/jobs/DuplicateJob.php
includes/jobqueue/jobs/EnqueueJob.php [new file with mode: 0755]
includes/jobqueue/jobs/HTMLCacheUpdateJob.php
includes/jobqueue/jobs/NullJob.php
includes/jobqueue/jobs/PublishStashedFileJob.php
includes/jobqueue/jobs/RecentChangesUpdateJob.php
includes/jobqueue/jobs/ThumbnailRenderJob.php
includes/json/FormatJson.php
includes/libs/BufferingStatsdDataFactory.php [new file with mode: 0644]
includes/libs/virtualrest/ParsoidVirtualRESTService.php
includes/libs/virtualrest/RestbaseVirtualRESTService.php [new file with mode: 0644]
includes/logging/BlockLogFormatter.php
includes/logging/LogEntry.php
includes/logging/LogFormatter.php
includes/logging/LogPage.php
includes/media/ExifBitmap.php
includes/media/GIF.php
includes/media/ImageHandler.php
includes/media/MediaHandler.php
includes/media/PNG.php
includes/media/SVG.php
includes/objectcache/ObjectCacheSessionHandler.php
includes/objectcache/ReplicatedBagOStuff.php
includes/objectcache/SqlBagOStuff.php
includes/page/Article.php
includes/page/ImagePage.php
includes/page/WikiPage.php
includes/parser/CacheTime.php
includes/parser/Parser.php
includes/parser/ParserCache.php
includes/parser/ParserOptions.php
includes/parser/ParserOutput.php
includes/poolcounter/PoolWorkArticleView.php
includes/profiler/Profiler.php
includes/profiler/ProfilerStub.php
includes/profiler/ProfilerXhprof.php
includes/profiler/output/ProfilerOutputDump.php [new file with mode: 0644]
includes/registration/ExtensionProcessor.php
includes/registration/ExtensionRegistry.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderFileModule.php
includes/resourceloader/ResourceLoaderFilePageModule.php [deleted file]
includes/resourceloader/ResourceLoaderImage.php
includes/resourceloader/ResourceLoaderImageModule.php
includes/resourceloader/ResourceLoaderNoscriptModule.php [deleted file]
includes/resourceloader/ResourceLoaderSiteModule.php
includes/resourceloader/ResourceLoaderSkinModule.php
includes/resourceloader/ResourceLoaderSpecialCharacterDataModule.php [new file with mode: 0644]
includes/resourceloader/ResourceLoaderUserGroupsModule.php
includes/resourceloader/ResourceLoaderUserModule.php
includes/resourceloader/ResourceLoaderWikiModule.php
includes/site/CachingSiteStore.php [new file with mode: 0644]
includes/site/DBSiteStore.php [new file with mode: 0644]
includes/site/FileBasedSiteLookup.php [new file with mode: 0644]
includes/site/HashSiteStore.php [new file with mode: 0644]
includes/site/MediaWikiSite.php
includes/site/SiteImporter.php
includes/site/SiteListFileCache.php [deleted file]
includes/site/SiteListFileCacheBuilder.php [deleted file]
includes/site/SiteLookup.php [new file with mode: 0644]
includes/site/SiteSQLStore.php
includes/site/SiteStore.php
includes/site/SitesCacheFileBuilder.php [new file with mode: 0644]
includes/skins/BaseTemplate.php
includes/skins/Skin.php
includes/skins/SkinTemplate.php
includes/specialpage/ChangesListSpecialPage.php
includes/specialpage/FormSpecialPage.php
includes/specialpage/SpecialPage.php
includes/specialpage/SpecialPageFactory.php
includes/specials/SpecialAllMessages.php
includes/specials/SpecialAllPages.php
includes/specials/SpecialBlock.php
includes/specials/SpecialBooksources.php
includes/specials/SpecialChangeEmail.php
includes/specials/SpecialDiff.php
includes/specials/SpecialExpandTemplates.php
includes/specials/SpecialImport.php
includes/specials/SpecialJavaScriptTest.php
includes/specials/SpecialListfiles.php
includes/specials/SpecialLog.php
includes/specials/SpecialMediaStatistics.php
includes/specials/SpecialMergeHistory.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialMyLanguage.php
includes/specials/SpecialNewimages.php
includes/specials/SpecialNewpages.php
includes/specials/SpecialPrefixindex.php
includes/specials/SpecialRandomInCategory.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialRevisiondelete.php
includes/specials/SpecialRunJobs.php
includes/specials/SpecialTags.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialUpload.php
includes/specials/SpecialUploadStash.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialUserrights.php
includes/specials/SpecialVersion.php
includes/specials/SpecialWhatlinkshere.php
includes/templates/Usercreate.php
includes/upload/UploadBase.php
includes/upload/UploadFromChunks.php
includes/upload/UploadFromUrl.php
includes/upload/UploadStash.php
includes/utils/AutoloadGenerator.php
jsduck.json [new file with mode: 0644]
languages/Language.php
languages/LanguageConverter.php
languages/classes/LanguageZh.php
languages/i18n/ace.json
languages/i18n/af.json
languages/i18n/am.json
languages/i18n/an.json
languages/i18n/ang.json
languages/i18n/ar.json
languages/i18n/arc.json
languages/i18n/arq.json
languages/i18n/ary.json
languages/i18n/arz.json
languages/i18n/as.json
languages/i18n/ast.json
languages/i18n/avk.json
languages/i18n/awa.json
languages/i18n/az.json
languages/i18n/azb.json
languages/i18n/ba.json
languages/i18n/bar.json
languages/i18n/bcc.json
languages/i18n/bcl.json
languages/i18n/be-tarask.json
languages/i18n/be.json
languages/i18n/bg.json
languages/i18n/bgn.json
languages/i18n/bho.json
languages/i18n/bjn.json
languages/i18n/bn.json
languages/i18n/bpy.json
languages/i18n/br.json
languages/i18n/bs.json
languages/i18n/ca.json
languages/i18n/ce.json
languages/i18n/ckb.json
languages/i18n/cs.json
languages/i18n/cu.json
languages/i18n/cv.json
languages/i18n/cy.json
languages/i18n/da.json
languages/i18n/de.json
languages/i18n/diq.json
languages/i18n/dsb.json
languages/i18n/egl.json
languages/i18n/el.json
languages/i18n/en.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/fo.json
languages/i18n/fr.json
languages/i18n/frc.json
languages/i18n/frp.json
languages/i18n/frr.json
languages/i18n/fur.json
languages/i18n/fy.json
languages/i18n/ga.json
languages/i18n/gan-hans.json
languages/i18n/gan-hant.json
languages/i18n/gd.json
languages/i18n/gl.json
languages/i18n/grc.json
languages/i18n/gsw.json
languages/i18n/gu.json
languages/i18n/gv.json
languages/i18n/haw.json
languages/i18n/he.json
languages/i18n/hi.json
languages/i18n/hif-latn.json
languages/i18n/hr.json
languages/i18n/hsb.json
languages/i18n/hu.json
languages/i18n/hy.json
languages/i18n/ia.json
languages/i18n/id.json
languages/i18n/ie.json
languages/i18n/ig.json
languages/i18n/ilo.json
languages/i18n/inh.json
languages/i18n/io.json
languages/i18n/is.json
languages/i18n/it.json
languages/i18n/ja.json
languages/i18n/jv.json
languages/i18n/ka.json
languages/i18n/kab.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/ko.json
languages/i18n/krc.json
languages/i18n/ksh.json
languages/i18n/ku-latn.json
languages/i18n/kw.json
languages/i18n/ky.json
languages/i18n/la.json
languages/i18n/lad.json
languages/i18n/lb.json
languages/i18n/lez.json
languages/i18n/lfn.json
languages/i18n/li.json
languages/i18n/lrc.json
languages/i18n/lt.json
languages/i18n/lv.json
languages/i18n/lzh.json
languages/i18n/mai.json
languages/i18n/mdf.json
languages/i18n/mg.json
languages/i18n/min.json
languages/i18n/mk.json
languages/i18n/ml.json
languages/i18n/mn.json
languages/i18n/mr.json
languages/i18n/ms.json
languages/i18n/mt.json
languages/i18n/myv.json
languages/i18n/nap.json
languages/i18n/nb.json
languages/i18n/nds-nl.json
languages/i18n/nds.json
languages/i18n/ne.json
languages/i18n/nl.json
languages/i18n/nn.json
languages/i18n/oc.json
languages/i18n/or.json
languages/i18n/os.json
languages/i18n/pa.json
languages/i18n/pam.json
languages/i18n/pdc.json
languages/i18n/pfl.json
languages/i18n/pl.json
languages/i18n/pms.json
languages/i18n/pnb.json
languages/i18n/prg.json
languages/i18n/ps.json
languages/i18n/pt-br.json
languages/i18n/pt.json
languages/i18n/qqq.json
languages/i18n/qu.json
languages/i18n/rm.json
languages/i18n/ro.json
languages/i18n/roa-tara.json
languages/i18n/ru.json
languages/i18n/rue.json
languages/i18n/sa.json
languages/i18n/sah.json
languages/i18n/sc.json
languages/i18n/scn.json
languages/i18n/sco.json
languages/i18n/ses.json
languages/i18n/sh.json
languages/i18n/si.json
languages/i18n/sk.json
languages/i18n/sl.json
languages/i18n/sq.json
languages/i18n/sr-ec.json
languages/i18n/sr-el.json
languages/i18n/stq.json
languages/i18n/su.json
languages/i18n/sv.json
languages/i18n/sw.json
languages/i18n/szl.json
languages/i18n/ta.json
languages/i18n/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/tr.json
languages/i18n/tt-cyrl.json
languages/i18n/tt-latn.json
languages/i18n/tw.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/vo.json
languages/i18n/vro.json
languages/i18n/wa.json
languages/i18n/war.json
languages/i18n/yi.json
languages/i18n/yo.json
languages/i18n/yue.json
languages/i18n/zh-hans.json
languages/i18n/zh-hant.json
languages/messages/MessagesCkb.php
languages/messages/MessagesDe.php
languages/messages/MessagesMhr.php
languages/messages/MessagesMin.php
maintenance/Maintenance.php
maintenance/archives/patch-editsummary-length.sql [new file with mode: 0644]
maintenance/backupTextPass.inc
maintenance/benchmarks/bench_HTTP_HTTPS.php
maintenance/doMaintenance.php
maintenance/dumpTextPass.php
maintenance/findHooks.php
maintenance/fixUserRegistration.php
maintenance/importImages.inc
maintenance/importSiteScripts.php
maintenance/jsduck/CustomTags.rb [deleted file]
maintenance/jsduck/categories.json
maintenance/jsduck/config.json [deleted file]
maintenance/jsduck/custom_tags.rb [new file with mode: 0644]
maintenance/jsduck/eg-iframe.html
maintenance/language/zhtable/Makefile.py
maintenance/language/zhtable/README
maintenance/language/zhtable/simp2trad.manual
maintenance/language/zhtable/simp2trad_noconvert.manual
maintenance/language/zhtable/simpphrases.manual
maintenance/language/zhtable/simpphrases_exclude.manual
maintenance/language/zhtable/symme_supp.manual [new file with mode: 0644]
maintenance/language/zhtable/toCN.manual
maintenance/language/zhtable/toHK.manual
maintenance/language/zhtable/toSG.manual [deleted file]
maintenance/language/zhtable/toSimp.manual
maintenance/language/zhtable/toTW.manual
maintenance/language/zhtable/toTrad.manual
maintenance/language/zhtable/trad2simp.manual
maintenance/language/zhtable/trad2simp_noconvert.manual
maintenance/language/zhtable/tradphrases.manual
maintenance/language/zhtable/tradphrases_exclude.manual
maintenance/mwjsduck-gen
maintenance/rebuildLocalisationCache.php
maintenance/rebuildSitesCache.php
maintenance/refreshLinks.php
maintenance/showJobs.php
maintenance/sqlite.inc
maintenance/sqlite.php
maintenance/sqlite/archives/patch-editsummary-length.sql [new file with mode: 0644]
maintenance/tables.sql
maintenance/update.php
mw-config/overrides.php
package.json
resources/Resources.php
resources/lib/jquery.client/AUTHORS.txt [new file with mode: 0644]
resources/lib/jquery.client/LICENSE-MIT.txt [new file with mode: 0644]
resources/lib/jquery.client/README.md [new file with mode: 0644]
resources/lib/jquery.client/jquery.client.js [new file with mode: 0644]
resources/lib/mustache/mustache.js [new file with mode: 0644]
resources/lib/oojs-ui/i18n/af.json
resources/lib/oojs-ui/i18n/fa.json
resources/lib/oojs-ui/i18n/is.json
resources/lib/oojs-ui/i18n/kk-cyrl.json
resources/lib/oojs-ui/i18n/kn.json
resources/lib/oojs-ui/i18n/krc.json
resources/lib/oojs-ui/i18n/ksh.json [new file with mode: 0644]
resources/lib/oojs-ui/i18n/ne.json
resources/lib/oojs-ui/i18n/pa.json
resources/lib/oojs-ui/i18n/tr.json
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-alerts.css [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-content.css [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-advanced.css [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-core.css [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-list.css [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-styling.css [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-interactions.css [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-layout.css [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-location.css [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-media.css [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-moderation.css [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-movement.css [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-user.css [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-mediawiki-icons-wikimedia.css [new file with mode: 0644]
resources/lib/oojs-ui/oojs-ui-mediawiki.css
resources/lib/oojs-ui/oojs-ui-mediawiki.js
resources/lib/oojs-ui/oojs-ui.js
resources/lib/oojs-ui/themes/mediawiki/images/icons/add-constructive.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/add-constructive.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/alert-warning.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/alert-warning.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bell.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bell.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/beta.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/beta.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/block.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/block.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/check-constructive.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/check-constructive.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/check-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/check-progressive.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/check-progressive.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/check.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/circle-constructive.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/circle-constructive.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/circle-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/circle.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/clock.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/clock.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/close-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/close-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/close-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/close-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/close.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/close.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/closeInput.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/closeInput.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis-invert.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis-invert.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/eye.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/eye.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/heart.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/heart.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/info-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/info.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/link-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/link-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/link.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/link.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-invert.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-invert.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock.png [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/lock.svg [deleted file]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/move-ltr-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/move-ltr-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/move.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/move.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-destructive.png
resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-destructive.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/settings-invert.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/settings.svg
resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/star.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/star.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stop.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stop.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/table.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trash.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trash.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.png [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.svg [new file with mode: 0644]
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr-invert.png
resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr-invert.svg
resources/lib/oojs/oojs.jquery.js
resources/src/jquery/jquery.client.js [deleted file]
resources/src/mediawiki.action/mediawiki.action.edit.preview.js
resources/src/mediawiki.api/mediawiki.api.options.js [new file with mode: 0644]
resources/src/mediawiki.language/mediawiki.language.js
resources/src/mediawiki.language/specialcharacters.json [new file with mode: 0644]
resources/src/mediawiki.legacy/protect.js
resources/src/mediawiki.legacy/shared.css
resources/src/mediawiki.less/mediawiki.ui/mixins.less
resources/src/mediawiki.page/mediawiki.page.startup.js
resources/src/mediawiki.special/mediawiki.special.block.js
resources/src/mediawiki.special/mediawiki.special.changeslist.css
resources/src/mediawiki.special/mediawiki.special.upload.js
resources/src/mediawiki.ui/components/inputs.less
resources/src/mediawiki/images/help.png [new file with mode: 0644]
resources/src/mediawiki/images/help.svg [new file with mode: 0644]
resources/src/mediawiki/mediawiki.errorLogger.js [new file with mode: 0644]
resources/src/mediawiki/mediawiki.feedback.css
resources/src/mediawiki/mediawiki.feedback.js
resources/src/mediawiki/mediawiki.filewarning.js [new file with mode: 0644]
resources/src/mediawiki/mediawiki.filewarning.less [new file with mode: 0644]
resources/src/mediawiki/mediawiki.helplink.less [new file with mode: 0644]
resources/src/mediawiki/mediawiki.jqueryMsg.js
resources/src/mediawiki/mediawiki.js
resources/src/mediawiki/mediawiki.sectionAnchor.css
resources/src/mediawiki/mediawiki.sectionAnchor.hide.css [deleted file]
resources/src/mediawiki/mediawiki.template.mustache.js [new file with mode: 0644]
resources/src/mediawiki/mediawiki.user.js
resources/src/mediawiki/mediawiki.util.js
resources/src/mediawiki/templates/dialog.html [deleted file]
tests/TestsAutoLoader.php
tests/browser/environment_variables [deleted file]
tests/browser/environments.yml [new file with mode: 0644]
tests/browser/features/file.feature
tests/browser/features/login.feature
tests/browser/features/preferences.feature
tests/browser/features/step_definitions/create_account_steps.rb
tests/browser/features/step_definitions/create_and_follow_wiki_link_steps.rb
tests/browser/features/step_definitions/edit_page_steps.rb
tests/browser/features/step_definitions/file_steps.rb
tests/browser/features/step_definitions/login_steps.rb
tests/browser/features/step_definitions/main_page_links_steps.rb
tests/browser/features/step_definitions/preferences_appearance_steps.rb
tests/browser/features/step_definitions/preferences_editing_steps.rb
tests/browser/features/step_definitions/preferences_user_profile_steps.rb
tests/browser/features/step_definitions/view_history_steps.rb
tests/browser/features/support/env.rb
tests/browser/features/support/modules/url_module.rb [deleted file]
tests/browser/features/support/pages/create_account_page.rb
tests/browser/features/support/pages/edit_page.rb
tests/browser/features/support/pages/file_does_not_exist_page.rb
tests/browser/features/support/pages/login_error_page.rb
tests/browser/features/support/pages/main_page.rb
tests/browser/features/support/pages/preferences_appearance_page.rb
tests/browser/features/support/pages/preferences_editing_page.rb
tests/browser/features/support/pages/preferences_page.rb
tests/browser/features/support/pages/preferences_user_profile_page.rb
tests/browser/features/support/pages/ztargetpage.rb
tests/parser/parserTest.inc
tests/parser/parserTests.txt
tests/parser/parserTestsParserHook.php
tests/phpunit/MediaWikiTestCase.php
tests/phpunit/ResourceLoaderTestCase.php
tests/phpunit/data/helpers/WellProtectedClass.php [new file with mode: 0644]
tests/phpunit/data/templates/foobar.mustache [new file with mode: 0644]
tests/phpunit/data/templates/foobar_args.mustache [new file with mode: 0644]
tests/phpunit/includes/EditPageTest.php
tests/phpunit/includes/GlobalFunctions/GlobalTest.php
tests/phpunit/includes/GlobalFunctions/wfEscapeShellArgTest.php [new file with mode: 0644]
tests/phpunit/includes/HtmlTest.php
tests/phpunit/includes/HttpTest.php
tests/phpunit/includes/OutputPageTest.php
tests/phpunit/includes/PrefixSearchTest.php
tests/phpunit/includes/TemplateParserTest.php
tests/phpunit/includes/TestingAccessWrapper.php [new file with mode: 0644]
tests/phpunit/includes/TestingAccessWrapperTest.php [new file with mode: 0644]
tests/phpunit/includes/UserTest.php
tests/phpunit/includes/XmlTest.php
tests/phpunit/includes/api/ApiLoginTest.php
tests/phpunit/includes/api/query/ApiQueryTestBase.php
tests/phpunit/includes/changes/RecentChangeTest.php
tests/phpunit/includes/content/ContentHandlerTest.php
tests/phpunit/includes/db/DatabaseSqliteTest.php
tests/phpunit/includes/filebackend/FileBackendTest.php
tests/phpunit/includes/parser/NewParserTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderFileModuleTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderWikiModuleTest.php
tests/phpunit/includes/site/CachingSiteStoreTest.php [new file with mode: 0644]
tests/phpunit/includes/site/DBSiteStoreTest.php [new file with mode: 0644]
tests/phpunit/includes/site/FileBasedSiteLookupTest.php [new file with mode: 0644]
tests/phpunit/includes/site/HashSiteStoreTest.php [new file with mode: 0644]
tests/phpunit/includes/site/SiteListFileCacheBuilderTest.php [deleted file]
tests/phpunit/includes/site/SiteListFileCacheTest.php [deleted file]
tests/phpunit/includes/site/SiteSQLStoreTest.php
tests/phpunit/includes/site/SitesCacheFileBuilderTest.php [new file with mode: 0644]
tests/phpunit/includes/site/TestSites.php
tests/phpunit/includes/title/MediaWikiTitleCodecTest.php
tests/phpunit/maintenance/backupTextPassTest.php
tests/phpunit/structure/AutoLoaderTest.php
tests/phpunit/structure/AvailableRightsTest.php [new file with mode: 0644]
tests/qunit/QUnitTestResources.php
tests/qunit/suites/resources/jquery/jquery.byteLimit.test.js
tests/qunit/suites/resources/jquery/jquery.client.test.js [deleted file]
tests/qunit/suites/resources/mediawiki.api/mediawiki.api.options.test.js [new file with mode: 0644]
tests/qunit/suites/resources/mediawiki/mediawiki.errorLogger.test.js [new file with mode: 0644]
tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js
thumb.php

index 92c8c43..4bb2440 100644 (file)
--- a/.jshintrc
+++ b/.jshintrc
@@ -20,7 +20,9 @@
 
        "globals": {
                "mediaWiki": true,
+               "JSON": true,
                "jQuery": false,
-               "QUnit": false
+               "QUnit": false,
+               "sinon": false
        }
 }
index c04818e..61ffc1a 100644 (file)
@@ -1,11 +1,25 @@
-inherit_from: .rubocop_todo.yml
-
 AllCops:
-    Exclude:
-        - 'extensions/**/*'
-        - 'skins/**/*'
-        - 'tests/frontend/node_modules/**/*'
-        - 'vendor/**/*'
+  Exclude:
+    - 'extensions/**/*'
+    - 'skins/**/*'
+    - 'tests/frontend/node_modules/**/*'
+    - 'vendor/**/*'
+  StyleGuideCopsOnly: true
 
 Metrics/LineLength:
   Max: 100
+
+Metrics/MethodLength:
+  Enabled: false
+
+Style/Alias:
+  Enabled: false
+
+Style/SignalException:
+  Enabled: false
+
+Style/StringLiterals:
+  EnforcedStyle: single_quotes
+
+Style/TrivialAccessors:
+  ExactNameMatch: true
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
deleted file mode 100644 (file)
index 90671fa..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-# This configuration was generated by `rubocop --auto-gen-config`
-# on 2014-10-21 15:10:03 +0200 using RuboCop version 0.26.1.
-# The point is for the user to remove these configuration records
-# one by one as the offenses are removed from the code base.
-# Note that changes in the inspected code, or installation of new
-# versions of RuboCop, may require this file to be generated again.
-
-# Offense count: 2
-# Cop supports --auto-correct.
-Lint/UnusedMethodArgument:
-  Enabled: false
-
-# Offense count: 10
-Style/Documentation:
-  Enabled: false
-
-# Offense count: 1
-# Configuration parameters: Exclude.
-Style/FileName:
-  Enabled: false
-
-# Offense count: 8
-# Cop supports --auto-correct.
-# Configuration parameters: EnforcedStyle, SupportedStyles.
-Style/HashSyntax:
-  Enabled: false
-
-# Offense count: 4
-# Cop supports --auto-correct.
-Style/PerlBackrefs:
-  Enabled: false
-
-# Offense count: 89
-# Cop supports --auto-correct.
-# Configuration parameters: EnforcedStyle, SupportedStyles.
-Style/StringLiterals:
-  Enabled: false
diff --git a/Gemfile b/Gemfile
index d3f8506..6f9c053 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -1,8 +1,7 @@
 # ruby=ruby-2.1.2
 # ruby-gemset=core
 
-source "https://rubygems.org"
+source 'https://rubygems.org'
 
-gem "mediawiki_api"
-gem "mediawiki_selenium"
-gem "rubocop", require: false
+gem 'mediawiki_selenium', '~> 1.0.1'
+gem 'rubocop', require: false
index 0dc4500..0b360ae 100644 (file)
@@ -5,39 +5,39 @@ GEM
     astrolabe (1.3.0)
       parser (>= 2.2.0.pre.3, < 3.0)
     builder (3.2.2)
-    childprocess (0.5.3)
+    childprocess (0.5.5)
       ffi (~> 1.0, >= 1.0.11)
-    cucumber (1.3.16)
+    cucumber (1.3.19)
       builder (>= 2.1.2)
       diff-lcs (>= 1.1.3)
       gherkin (~> 2.12)
       multi_json (>= 1.7.5, < 2.0)
-      multi_test (>= 0.1.1)
-    data_magic (0.19)
+      multi_test (>= 0.1.2)
+    data_magic (0.20)
       faker (>= 1.1.2)
-      yml_reader (>= 0.3)
+      yml_reader (>= 0.4)
     diff-lcs (1.2.5)
-    domain_name (0.5.20)
+    domain_name (0.5.23)
       unf (>= 0.0.5, < 1.0.0)
     faker (1.4.3)
       i18n (~> 0.5)
-    faraday (0.9.0)
+    faraday (0.9.1)
       multipart-post (>= 1.2, < 3)
     faraday-cookie_jar (0.0.6)
       faraday (>= 0.7.4)
       http-cookie (~> 1.0.0)
-    ffi (1.9.3)
+    ffi (1.9.6)
     gherkin (2.12.2)
       multi_json (~> 1.3)
     headless (1.0.2)
     http-cookie (1.0.2)
       domain_name (~> 0.5)
-    i18n (0.6.11)
-    json (1.8.1)
-    mediawiki_api (0.2.1)
+    i18n (0.7.0)
+    json (1.8.2)
+    mediawiki_api (0.3.1)
       faraday (~> 0.9, >= 0.9.0)
       faraday-cookie_jar (~> 0.0, >= 0.0.6)
-    mediawiki_selenium (0.3.2)
+    mediawiki_selenium (1.0.1)
       cucumber (~> 1.3, >= 1.3.10)
       headless (~> 1.0, >= 1.0.1)
       json (~> 1.8, >= 1.8.1)
@@ -46,54 +46,53 @@ GEM
       rest-client (~> 1.6, >= 1.6.7)
       rspec-expectations (~> 2.14, >= 2.14.4)
       syntax (~> 1.2, >= 1.2.0)
-    mime-types (2.3)
-    multi_json (1.10.1)
-    multi_test (0.1.1)
+      thor (~> 0.19, >= 0.19.1)
+    mime-types (2.4.3)
+    multi_json (1.11.0)
+    multi_test (0.1.2)
     multipart-post (2.0.0)
-    netrc (0.7.7)
-    page-object (1.0.2)
+    netrc (0.10.3)
+    page-object (1.0.3)
       page_navigation (>= 0.9)
-      selenium-webdriver (>= 2.42.0)
-      watir-webdriver (>= 0.6.9)
+      selenium-webdriver (>= 2.44.0)
+      watir-webdriver (>= 0.6.11)
     page_navigation (0.9)
       data_magic (>= 0.14)
-    parser (2.2.0.pre.4)
+    parser (2.2.0.3)
       ast (>= 1.1, < 3.0)
-      slop (~> 3.4, >= 3.4.5)
-    powerpack (0.0.9)
+    powerpack (0.1.0)
     rainbow (2.0.0)
-    rest-client (1.7.2)
+    rest-client (1.7.3)
       mime-types (>= 1.16, < 3.0)
       netrc (~> 0.7)
     rspec-expectations (2.99.2)
       diff-lcs (>= 1.1.3, < 2.0)
-    rubocop (0.26.1)
+    rubocop (0.29.1)
       astrolabe (~> 1.3)
-      parser (>= 2.2.0.pre.4, < 3.0)
-      powerpack (~> 0.0.6)
+      parser (>= 2.2.0.1, < 3.0)
+      powerpack (~> 0.1)
       rainbow (>= 1.99.1, < 3.0)
       ruby-progressbar (~> 1.4)
-    ruby-progressbar (1.6.0)
-    rubyzip (1.1.6)
-    selenium-webdriver (2.42.0)
-      childprocess (>= 0.5.0)
+    ruby-progressbar (1.7.1)
+    rubyzip (1.1.7)
+    selenium-webdriver (2.45.0)
+      childprocess (~> 0.5)
       multi_json (~> 1.0)
       rubyzip (~> 1.0)
-      websocket (~> 1.0.4)
-    slop (3.6.0)
+      websocket (~> 1.0)
     syntax (1.2.0)
+    thor (0.19.1)
     unf (0.1.4)
       unf_ext
     unf_ext (0.0.6)
-    watir-webdriver (0.6.10)
-      selenium-webdriver (>= 2.18.0)
-    websocket (1.0.7)
-    yml_reader (0.3)
+    watir-webdriver (0.7.0)
+      selenium-webdriver (>= 2.45)
+    websocket (1.2.1)
+    yml_reader (0.5)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  mediawiki_api
-  mediawiki_selenium
+  mediawiki_selenium (~> 1.0.1)
   rubocop
index e432279..573db69 100644 (file)
@@ -1,5 +1,6 @@
 /*jshint node:true */
 module.exports = function ( grunt ) {
+       grunt.loadNpmTasks( 'grunt-contrib-copy' );
        grunt.loadNpmTasks( 'grunt-contrib-jshint' );
        grunt.loadNpmTasks( 'grunt-contrib-watch' );
        grunt.loadNpmTasks( 'grunt-banana-checker' );
@@ -75,7 +76,9 @@ module.exports = function ( grunt ) {
                                frameworks: [ 'qunit' ],
                                reporters: [ 'dots' ],
                                singleRun: true,
-                               autoWatch: false
+                               autoWatch: false,
+                               // Some tests in extensions don't yield for more than the default 10s (T89075)
+                               browserNoActivityTimeout: 60 * 1000
                        },
                        main: {
                                browsers: [ 'Chrome' ]
@@ -83,11 +86,34 @@ module.exports = function ( grunt ) {
                        more: {
                                browsers: [ 'Chrome', 'Firefox' ]
                        }
+               },
+               copy: {
+                       jsduck: {
+                               src: 'resources/**/*',
+                               dest: 'docs/js/modules',
+                               expand: true,
+                               rename: function ( dest, src ) {
+                                       return require( 'path' ).join( dest, src.replace( 'resources/', '' ) );
+                               }
+                       }
+               }
+       } );
+
+       grunt.registerTask( 'assert-mw-env', function () {
+               if ( !process.env.MW_SERVER ) {
+                       grunt.log.error( 'Environment variable MW_SERVER must be set.\n' +
+                               'Set this like $wgServer, e.g. "http://localhost"'
+                       );
+               }
+               if ( !process.env.MW_SCRIPT_PATH ) {
+                       grunt.log.error( 'Environment variable MW_SCRIPT_PATH must be set.\n' +
+                               'Set this like $wgScriptPath, e.g. "/w"');
                }
+               return !!( process.env.MW_SERVER && process.env.MW_SCRIPT_PATH );
        } );
 
        grunt.registerTask( 'lint', ['jshint', 'jscs', 'jsonlint', 'banana'] );
-       grunt.registerTask( 'qunit', 'karma:main' );
+       grunt.registerTask( 'qunit', [ 'assert-mw-env', 'karma:main' ] );
 
        grunt.registerTask( 'test', ['lint'] );
        grunt.registerTask( 'default', 'test' );
diff --git a/INSTALL b/INSTALL
index 70d8d53..2054a57 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -8,10 +8,11 @@ Starting with MediaWiki 1.2.0, it's possible to install and configure the wiki
 Required software:
 * Web server with PHP 5.3.3 or higher.
 * A SQL server, the following types are supported
-** MySQL 5.0.2 or higher
+** MySQL 5.0.3 or higher
 ** PostgreSQL 8.3 or higher
 ** SQLite 3.3.7 or higher
 ** Oracle 9.0.1 or higher
+** Microsoft SQL Server 2005 (9.00.1399)
 
 MediaWiki is developed and tested mainly on Unix/Linux platforms, but should
 work on Windows as well.
index 83a569a..b7a1a8e 100644 (file)
@@ -45,6 +45,8 @@ production.
 * The 'daemonized' flag must be set to true in $wgJobTypeConf for any redis
   job queues. This means that mediawiki/services/jobrunner service has to
   be installed and running for any such queues to work.
+* $wgAutopromoteOnce no longer supports the 'view' event. For keeping some
+  compatibility, any 'view' event triggers will still trigger on 'edit'.
 
 === New features in 1.25 ===
 * (T64861) Updated plural rules to CLDR 26. Includes incompatible changes
@@ -109,6 +111,14 @@ production.
   pointing to it.
 * New hooks 'ApiMain::moduleManager' and 'ApiQuery::moduleManager', can be
   used for conditional registration of API modules.
+* New hook 'EnhancedChangesList::getLogText' to alter, remove or add to the
+  links of a group of changes in EnhancedChangesList.
+* A full interface for StatsD metric reporting has been added to the context
+  interface, reachable via IContextSource::getStats().
+* Move the jQuery Client library from being mastered in MediaWiki as v0.1.0 to a
+  proper, published library, which is now tagged as v1.0.0.
+* A new message (defaulting to blank), 'editnotice-notext', can be shown to users
+  when they are editing if no edit notices apply to the page being edited.
 
 ==== External libraries ====
 * MediaWiki now requires certain external libraries to be installed. In the past
@@ -135,6 +145,8 @@ production.
    This library was formerly a part of MediaWiki core, and has been moved into a separate library.
    It provides CDB functions which are used in the Interwiki and Localization caches.
    More information about the library can be found at https://www.mediawiki.org/wiki/CDB.
+** liuggio/statsd-php-client
+   This library provides a StatsD client API for logging application metrics to a remote server.
 
 === Bug fixes in 1.25 ===
 * (T73003) No additional code will be generated to try to load CSS-embedded
@@ -164,6 +176,10 @@ production.
   (instead of returning incorrect results) even when the page ID is known.
 * (T74070) Duplicate search for archived files on file upload now omits the extension.
   This requires the fa_sha1 field being populated.
+* Removed rel="archives" from the "View history" link, as it did not pass
+  HTML validation.
+* $wgUseTidy is now set when parserTests are run with the tidy option to match
+  output on wiki.
 
 === Action API changes in 1.25 ===
 * (T67403) XML tag highlighting is now only performed for formats
@@ -261,6 +277,10 @@ production.
   to allow generators to include data in the action=query result.
 * New hooks 'ApiMain::moduleManager' and 'ApiQuery::moduleManager', can be
   used for conditional registration of API modules.
+* Added ApiBase::lacksSameOriginSecurity() to allow modules to easily check if
+  the current request was sent with the 'callback' parameter (or any future
+  method that breaks the same-origin policy).
+* Profiling methods in ApiBase are deprecated and no longer need to be called.
 * The following methods have been deprecated and may be removed in a future
   release:
   * ApiBase::getDescription
@@ -269,6 +289,14 @@ production.
   * ApiBase::makeHelpMsg
   * ApiBase::makeHelpArrayToString
   * ApiBase::makeHelpMsgParameters
+  * ApiBase::getModuleProfileName
+  * ApiBase::profileIn
+  * ApiBase::profileOut
+  * ApiBase::safeProfileOut
+  * ApiBase::getProfileTime
+  * ApiBase::profileDBIn
+  * ApiBase::profileDBOut
+  * ApiBase::getProfileDBTime
   * ApiFormatBase::setUnescapeAmps
   * ApiFormatBase::getWantsHelp
   * ApiFormatBase::setHelp
@@ -291,6 +319,8 @@ changes to languages because of Bugzilla reports.
 
 * (T66440) Kazakh (kk) wikis should no longer forcefully reset the user's
   interface language to kk where unexpected.
+* The Chinese conversion table was substantially updated to fix a lot of
+  bugs and ensure better reading experience for different variants.
 
 === Other changes in 1.25 ===
 * The skin autodiscovery mechanism, deprecated in MediaWiki 1.23, has been
@@ -378,6 +408,14 @@ changes to languages because of Bugzilla reports.
   addSecondaryDataUpdate throwing an exception. These functions will be removed in 1.26,
   since they interfere with caching of ParserOutput objects.
 * Introduced new hook 'SecondaryDataUpdates' that allows extensions to inject custom updates.
+* EditPage::attemptSave has been modified not to call handleStatus itself and
+  instead just returns the Status object. Extension calling it should be aware of
+  this.
+* Removed class DBObject. (unused since 1.10)
+* wfDiff() is deprecated.
+* The -m (maximum replication lag) option of refreshLinks.php was removed.
+  It had no effect since MediaWiki 1.18 and should be removed from any cron
+  jobs or similar scripts you may have set up.
 
 == Compatibility ==
 
@@ -390,7 +428,7 @@ Oracle and Microsoft SQL Server.
 
 The supported versions are:
 
-* MySQL 5.0.2 or later
+* MySQL 5.0.3 or later
 * PostgreSQL 8.3 or later
 * SQLite 3.3.7 or later
 * Oracle 9.0.1 or later
index 4721a9d..6681b87 100644 (file)
@@ -6,7 +6,7 @@
  *
  * For output, add:
  *  $wgProfiler['output'] = array( 'text' );
- *    'text' can be one (or more) of 'text' 'udp' or 'db'
+ *    'text' can be one (or more) of 'text' 'udp' 'db' or 'dump'
  *    'db' requires creating the profiling table, see patch-profiling.sql
  *
  * The 'text' output will be added to the output page in a comment approriate
@@ -18,6 +18,9 @@
  * The 'db' output expects a database table that can be created by applying
  * maintenance/archives/patch-profiling.sql to your database.
  *
+ * The 'dump' output expects a $wgProfiler['outputDir'] telling it where to
+ * write dump files. The files produced are compatible with the XHProf gui.
+ *
  * For a rudimentary sampling profiler:
  *   $wgProfiler['class'] = 'ProfilerXhprof';
  *   $wgProfiler['output'] = array( 'db' );
diff --git a/api.php b/api.php
index d63f254..7788a36 100644 (file)
--- a/api.php
+++ b/api.php
@@ -61,6 +61,10 @@ if ( !$wgEnableAPI ) {
 // In a perfect world this wouldn't be necessary
 $wgTitle = Title::makeTitle( NS_MAIN, 'API' );
 
+// RequestContext will read from $wgTitle, but it will also whine about it.
+// In a perfect world this wouldn't be necessary either.
+RequestContext::getMain()->setTitle( $wgTitle );
+
 try {
        /* Construct an ApiMain with the arguments passed via the URL. What we get back
         * is some form of an ApiMain, possibly even one that produces an error message,
index b85ac46..dcd7879 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 // This file is generated by maintenance/generateLocalAutoload.php, do not adjust manually
-
+// @codingStandardsIgnoreFile
 global $wgAutoloadLocalClasses;
 
 $wgAutoloadLocalClasses = array(
@@ -175,6 +175,7 @@ $wgAutoloadLocalClasses = array(
        'BloomFilterTitleHasLogs' => __DIR__ . '/includes/cache/bloom/BloomFilters.php',
        'BmpHandler' => __DIR__ . '/includes/media/BMP.php',
        'BrokenRedirectsPage' => __DIR__ . '/includes/specials/SpecialBrokenRedirects.php',
+       'BufferingStatsdDataFactory' => __DIR__ . '/includes/libs/BufferingStatsdDataFactory.php',
        'CLDRPluralRuleConverter' => __DIR__ . '/languages/utils/CLDRPluralRuleConverter.php',
        'CLDRPluralRuleConverterExpression' => __DIR__ . '/languages/utils/CLDRPluralRuleConverterExpression.php',
        'CLDRPluralRuleConverterFragment' => __DIR__ . '/languages/utils/CLDRPluralRuleConverterFragment.php',
@@ -188,6 +189,7 @@ $wgAutoloadLocalClasses = array(
        'CacheHelper' => __DIR__ . '/includes/cache/CacheHelper.php',
        'CacheTime' => __DIR__ . '/includes/parser/CacheTime.php',
        'CachedAction' => __DIR__ . '/includes/actions/CachedAction.php',
+       'CachingSiteStore' => __DIR__ . '/includes/site/CachingSiteStore.php',
        'CapsCleanup' => __DIR__ . '/maintenance/cleanupCaps.php',
        'Category' => __DIR__ . '/includes/Category.php',
        'CategoryFinder' => __DIR__ . '/includes/CategoryFinder.php',
@@ -274,8 +276,8 @@ $wgAutoloadLocalClasses = array(
        'DBFileJournal' => __DIR__ . '/includes/filebackend/filejournal/DBFileJournal.php',
        'DBLockManager' => __DIR__ . '/includes/filebackend/lockmanager/DBLockManager.php',
        'DBMasterPos' => __DIR__ . '/includes/db/DatabaseUtility.php',
-       'DBObject' => __DIR__ . '/includes/db/DatabaseUtility.php',
        'DBQueryError' => __DIR__ . '/includes/db/DatabaseError.php',
+       'DBSiteStore' => __DIR__ . '/includes/site/DBSiteStore.php',
        'DBUnexpectedError' => __DIR__ . '/includes/db/DatabaseError.php',
        'DataUpdate' => __DIR__ . '/includes/deferred/DataUpdate.php',
        'DatabaseBase' => __DIR__ . '/includes/db/Database.php',
@@ -289,7 +291,6 @@ $wgAutoloadLocalClasses = array(
        'DatabaseOracle' => __DIR__ . '/includes/db/DatabaseOracle.php',
        'DatabasePostgres' => __DIR__ . '/includes/db/DatabasePostgres.php',
        'DatabaseSqlite' => __DIR__ . '/includes/db/DatabaseSqlite.php',
-       'DatabaseSqliteStandalone' => __DIR__ . '/includes/db/DatabaseSqlite.php',
        'DatabaseUpdater' => __DIR__ . '/includes/installer/DatabaseUpdater.php',
        'DateFormats' => __DIR__ . '/maintenance/language/date-formats.php',
        'DateFormatter' => __DIR__ . '/includes/parser/DateFormatter.php',
@@ -370,6 +371,7 @@ $wgAutoloadLocalClasses = array(
        'EncryptedPassword' => __DIR__ . '/includes/password/EncryptedPassword.php',
        'EnhancedChangesList' => __DIR__ . '/includes/changes/EnhancedChangesList.php',
        'EnotifNotifyJob' => __DIR__ . '/includes/jobqueue/jobs/EnotifNotifyJob.php',
+       'EnqueueJob' => __DIR__ . '/includes/jobqueue/jobs/EnqueueJob.php',
        'EraseArchivedFile' => __DIR__ . '/maintenance/eraseArchivedFile.php',
        'ErrorPageError' => __DIR__ . '/includes/exception/ErrorPageError.php',
        'Exif' => __DIR__ . '/includes/media/Exif.php',
@@ -416,6 +418,7 @@ $wgAutoloadLocalClasses = array(
        'FileBackendStoreShardDirIterator' => __DIR__ . '/includes/filebackend/FileBackendStore.php',
        'FileBackendStoreShardFileIterator' => __DIR__ . '/includes/filebackend/FileBackendStore.php',
        'FileBackendStoreShardListIterator' => __DIR__ . '/includes/filebackend/FileBackendStore.php',
+       'FileBasedSiteLookup' => __DIR__ . '/includes/site/FileBasedSiteLookup.php',
        'FileCacheBase' => __DIR__ . '/includes/cache/FileCacheBase.php',
        'FileDeleteForm' => __DIR__ . '/includes/FileDeleteForm.php',
        'FileDependency' => __DIR__ . '/includes/cache/CacheDependency.php',
@@ -498,6 +501,7 @@ $wgAutoloadLocalClasses = array(
        'HashBagOStuff' => __DIR__ . '/includes/libs/objectcache/HashBagOStuff.php',
        'HashConfig' => __DIR__ . '/includes/config/HashConfig.php',
        'HashRing' => __DIR__ . '/includes/libs/HashRing.php',
+       'HashSiteStore' => __DIR__ . '/includes/site/HashSiteStore.php',
        'HashtableReplacer' => __DIR__ . '/includes/libs/replacers/HashtableReplacer.php',
        'HistoryAction' => __DIR__ . '/includes/actions/HistoryAction.php',
        'HistoryBlob' => __DIR__ . '/includes/HistoryBlob.php',
@@ -567,7 +571,7 @@ $wgAutoloadLocalClasses = array(
        'Job' => __DIR__ . '/includes/jobqueue/Job.php',
        'JobQueue' => __DIR__ . '/includes/jobqueue/JobQueue.php',
        'JobQueueAggregator' => __DIR__ . '/includes/jobqueue/aggregator/JobQueueAggregator.php',
-       'JobQueueAggregatorMemc' => __DIR__ . '/includes/jobqueue/aggregator/JobQueueAggregatorMemc.php',
+       'JobQueueAggregatorNull' => __DIR__ . '/includes/jobqueue/aggregator/JobQueueAggregator.php',
        'JobQueueAggregatorRedis' => __DIR__ . '/includes/jobqueue/aggregator/JobQueueAggregatorRedis.php',
        'JobQueueConnectionError' => __DIR__ . '/includes/jobqueue/JobQueue.php',
        'JobQueueDB' => __DIR__ . '/includes/jobqueue/JobQueueDB.php',
@@ -701,7 +705,6 @@ $wgAutoloadLocalClasses = array(
        'MWLoggerMonologHandler' => __DIR__ . '/includes/debug/logger/monolog/Handler.php',
        'MWLoggerMonologLegacyFormatter' => __DIR__ . '/includes/debug/logger/monolog/LegacyFormatter.php',
        'MWLoggerMonologProcessor' => __DIR__ . '/includes/debug/logger/monolog/Processor.php',
-       'MWLoggerMonologSamplingHandler' => __DIR__ . '/includes/debug/logger/monolog/SamplingHandler.php',
        'MWLoggerMonologSpi' => __DIR__ . '/includes/debug/logger/monolog/Spi.php',
        'MWLoggerMonologSyslogHandler' => __DIR__ . '/includes/debug/logger/monolog/SyslogHandler.php',
        'MWLoggerNullSpi' => __DIR__ . '/includes/debug/logger/NullSpi.php',
@@ -906,6 +909,7 @@ $wgAutoloadLocalClasses = array(
        'Profiler' => __DIR__ . '/includes/profiler/Profiler.php',
        'ProfilerOutput' => __DIR__ . '/includes/profiler/output/ProfilerOutput.php',
        'ProfilerOutputDb' => __DIR__ . '/includes/profiler/output/ProfilerOutputDb.php',
+       'ProfilerOutputDump' => __DIR__ . '/includes/profiler/output/ProfilerOutputDump.php',
        'ProfilerOutputText' => __DIR__ . '/includes/profiler/output/ProfilerOutputText.php',
        'ProfilerOutputUdp' => __DIR__ . '/includes/profiler/output/ProfilerOutputUdp.php',
        'ProfilerSectionOnly' => __DIR__ . '/includes/profiler/ProfilerSectionOnly.php',
@@ -976,16 +980,15 @@ $wgAutoloadLocalClasses = array(
        'ResourceLoaderContext' => __DIR__ . '/includes/resourceloader/ResourceLoaderContext.php',
        'ResourceLoaderEditToolbarModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderEditToolbarModule.php',
        'ResourceLoaderFileModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderFileModule.php',
-       'ResourceLoaderFilePageModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderFilePageModule.php',
        'ResourceLoaderFilePath' => __DIR__ . '/includes/resourceloader/ResourceLoaderFilePath.php',
        'ResourceLoaderImage' => __DIR__ . '/includes/resourceloader/ResourceLoaderImage.php',
        'ResourceLoaderImageModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderImageModule.php',
        'ResourceLoaderLanguageDataModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderLanguageDataModule.php',
        'ResourceLoaderLanguageNamesModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderLanguageNamesModule.php',
        'ResourceLoaderModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderModule.php',
-       'ResourceLoaderNoscriptModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderNoscriptModule.php',
        'ResourceLoaderSiteModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSiteModule.php',
        'ResourceLoaderSkinModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSkinModule.php',
+       'ResourceLoaderSpecialCharacterDataModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderSpecialCharacterDataModule.php',
        'ResourceLoaderStartUpModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderStartUpModule.php',
        'ResourceLoaderUserCSSPrefsModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserCSSPrefsModule.php',
        'ResourceLoaderUserDefaultsModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserDefaultsModule.php',
@@ -994,6 +997,7 @@ $wgAutoloadLocalClasses = array(
        'ResourceLoaderUserOptionsModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserOptionsModule.php',
        'ResourceLoaderUserTokensModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderUserTokensModule.php',
        'ResourceLoaderWikiModule' => __DIR__ . '/includes/resourceloader/ResourceLoaderWikiModule.php',
+       'RestbaseVirtualRESTService' => __DIR__ . '/includes/libs/virtualrest/RestbaseVirtualRESTService.php',
        'ResultWrapper' => __DIR__ . '/includes/db/DatabaseUtility.php',
        'RevDelArchiveItem' => __DIR__ . '/includes/revisiondelete/RevDelArchiveItem.php',
        'RevDelArchiveList' => __DIR__ . '/includes/revisiondelete/RevDelArchiveList.php',
@@ -1059,14 +1063,14 @@ $wgAutoloadLocalClasses = array(
        'SiteExporter' => __DIR__ . '/includes/site/SiteExporter.php',
        'SiteImporter' => __DIR__ . '/includes/site/SiteImporter.php',
        'SiteList' => __DIR__ . '/includes/site/SiteList.php',
-       'SiteListFileCache' => __DIR__ . '/includes/site/SiteListFileCache.php',
-       'SiteListFileCacheBuilder' => __DIR__ . '/includes/site/SiteListFileCacheBuilder.php',
+       'SiteLookup' => __DIR__ . '/includes/site/SiteLookup.php',
        'SiteObject' => __DIR__ . '/includes/site/Site.php',
        'SiteSQLStore' => __DIR__ . '/includes/site/SiteSQLStore.php',
        'SiteStats' => __DIR__ . '/includes/SiteStats.php',
        'SiteStatsInit' => __DIR__ . '/includes/SiteStats.php',
        'SiteStatsUpdate' => __DIR__ . '/includes/deferred/SiteStatsUpdate.php',
        'SiteStore' => __DIR__ . '/includes/site/SiteStore.php',
+       'SitesCacheFileBuilder' => __DIR__ . '/includes/site/SitesCacheFileBuilder.php',
        'Skin' => __DIR__ . '/includes/skins/Skin.php',
        'SkinApi' => __DIR__ . '/includes/skins/SkinApi.php',
        'SkinApiTemplate' => __DIR__ . '/includes/skins/SkinApiTemplate.php',
@@ -1159,7 +1163,6 @@ $wgAutoloadLocalClasses = array(
        'SquidPurgeClientPool' => __DIR__ . '/includes/SquidPurgeClient.php',
        'SquidUpdate' => __DIR__ . '/includes/deferred/SquidUpdate.php',
        'SrConverter' => __DIR__ . '/languages/classes/LanguageSr.php',
-       'StatCounter' => __DIR__ . '/includes/StatCounter.php',
        'StatsOutput' => __DIR__ . '/maintenance/language/StatOutputs.php',
        'Status' => __DIR__ . '/includes/Status.php',
        'StatusValue' => __DIR__ . '/includes/libs/StatusValue.php',
@@ -1261,7 +1264,6 @@ $wgAutoloadLocalClasses = array(
        'UploadStashFileException' => __DIR__ . '/includes/upload/UploadStash.php',
        'UploadStashFileNotFoundException' => __DIR__ . '/includes/upload/UploadStash.php',
        'UploadStashNoSuchKeyException' => __DIR__ . '/includes/upload/UploadStash.php',
-       'UploadStashNotAvailableException' => __DIR__ . '/includes/upload/UploadStash.php',
        'UploadStashNotLoggedInException' => __DIR__ . '/includes/upload/UploadStash.php',
        'UploadStashWrongOwnerException' => __DIR__ . '/includes/upload/UploadStash.php',
        'UploadStashZeroLengthFileException' => __DIR__ . '/includes/upload/UploadStash.php',
index d409025..b5995b2 100644 (file)
@@ -19,7 +19,8 @@
                "cssjanus/cssjanus": "1.1.1",
                "ext-iconv": "*",
                "leafo/lessphp": "0.5.0",
-               "oojs/oojs-ui": "0.8.1",
+               "liuggio/statsd-php-client": "1.0.12",
+               "oojs/oojs-ui": "0.9.4",
                "php": ">=5.3.3",
                "psr/log": "1.0.0",
                "wikimedia/cdb": "1.0.1",
                "zordius/lightncandy": "0.18"
        },
        "require-dev": {
+               "jakub-onderka/php-parallel-lint": "~0.8",
                "justinrainbow/json-schema": "~1.3",
-               "phpunit/phpunit": "~4.5"
+               "phpunit/phpunit": "~4.5",
+               "mediawiki/mediawiki-codesniffer": "0.1.0"
        },
        "suggest": {
                "ext-fileinfo": "*",
                }
        },
        "scripts": {
+               "lint": "parallel-lint --exclude vendor",
+               "phpcs": "phpcs $PHPCS_ARGS -s --standard=vendor/mediawiki/mediawiki-codesniffer/MediaWiki --ignore=vendor --encoding=utf-8 --extensions=php,php5,inc,sample",
+               "test": [
+                       "composer lint",
+                       "composer phpcs"
+               ],
                "pre-update-cmd": "ComposerHookHandler::onPreUpdate",
                "pre-install-cmd": "ComposerHookHandler::onPreInstall"
        },
index 33029bd..dd35d05 100644 (file)
@@ -5,7 +5,8 @@
        "properties": {
                "name": {
                        "type": "string",
-                       "description": "The extension's canonical name."
+                       "description": "The extension's canonical name.",
+                       "required": true
                },
                "type": {
                        "type": "string",
                "APIListModules": {
                        "type": "object"
                },
+               "ValidSkinNames": {
+                       "type": "object"
+               },
                "callback": {
                        "type": [
                                "array",
index cf2e3dd..20f5de8 100644 (file)
@@ -34,15 +34,15 @@ title before displaying the article; the other converts the title to all
 uppercase letters. Currently, in MediaWiki code, we would handle this as follows
 (note: not real code, here):
 
-       function showAnArticle($article) {
+       function showAnArticle( $article ) {
                global $wgReverseTitle, $wgCapitalizeTitle;
 
-               if ($wgReverseTitle) {
-                       wfReverseTitle($article);
+               if ( $wgReverseTitle ) {
+                       wfReverseTitle( $article );
                }
 
-               if ($wgCapitalizeTitle) {
-                       wfCapitalizeTitle($article);
+               if ( $wgCapitalizeTitle ) {
+                       wfCapitalizeTitle( $article );
                }
 
                # code to actually show the article goes here
@@ -52,34 +52,34 @@ An extension writer, or a local admin, will often add custom code to the
 function -- with or without a global variable. For example, someone wanting
 email notification when an article is shown may add:
 
-    function showAnArticle($article) {
+    function showAnArticle( $article ) {
         global $wgReverseTitle, $wgCapitalizeTitle, $wgNotifyArticle;
 
-               if ($wgReverseTitle) {
-                       wfReverseTitle($article);
+               if ( $wgReverseTitle ) {
+                       wfReverseTitle( $article );
                }
 
-               if ($wgCapitalizeTitle) {
-                       wfCapitalizeTitle($article);
+               if ( $wgCapitalizeTitle ) {
+                       wfCapitalizeTitle( $article );
                }
 
                # code to actually show the article goes here
 
-               if ($wgNotifyArticle) {
-                       wfNotifyArticleShow($article);
+               if ( $wgNotifyArticle ) {
+                       wfNotifyArticleShow( $article );
                }
        }
 
 Using a hook-running strategy, we can avoid having all this option-specific
 stuff in our mainline code. Using hooks, the function becomes:
 
-       function showAnArticle($article) {
+       function showAnArticle( $article ) {
 
-               if (wfRunHooks('ArticleShow', array(&$article))) {
+               if ( Hooks::run( 'ArticleShow', array( &$article ) ) ) {
 
                        # code to actually show the article goes here
 
-                       wfRunHooks('ArticleShowComplete', array(&$article));
+                       Hooks::run( 'ArticleShowComplete', array( &$article ) );
                }
        }
 
@@ -93,11 +93,11 @@ title-reversing if-blocks spread all over the codebase in showAnArticle,
 deleteAnArticle, exportArticle, etc., we can concentrate it all in an extension
 file:
 
-       function reverseArticleTitle($article) {
+       function reverseArticleTitle( $article ) {
                # ...
        }
 
-       function reverseForExport($article) {
+       function reverseForExport( $article ) {
                # ...
        }
 
@@ -139,29 +139,29 @@ Hooks are registered by adding them to the global $wgHooks array for a given
 event. All the following are valid ways to define hooks:
 
        $wgHooks['EventName'][] = 'someFunction'; # function, no data
-       $wgHooks['EventName'][] = array('someFunction', $someData);
-       $wgHooks['EventName'][] = array('someFunction'); # weird, but OK
+       $wgHooks['EventName'][] = array( 'someFunction', $someData );
+       $wgHooks['EventName'][] = array( 'someFunction' ); # weird, but OK
 
        $wgHooks['EventName'][] = $object; # object only
-       $wgHooks['EventName'][] = array($object, 'someMethod');
-       $wgHooks['EventName'][] = array($object, 'someMethod', $someData);
-       $wgHooks['EventName'][] = array($object); # weird but OK
+       $wgHooks['EventName'][] = array( $object, 'someMethod' );
+       $wgHooks['EventName'][] = array( $object, 'someMethod', $someData );
+       $wgHooks['EventName'][] = array( $object ); # weird but OK
 
 When an event occurs, the function (or object method) will be called with the
 optional data provided as well as event-specific parameters. The above examples
 would result in the following code being executed when 'EventName' happened:
 
        # function, no data
-       someFunction($param1, $param2)
+       someFunction( $param1, $param2 )
        # function with data
-       someFunction($someData, $param1, $param2)
+       someFunction( $someData, $param1, $param2 )
 
        # object only
-       $object->onEventName($param1, $param2)
+       $object->onEventName( $param1, $param2 )
        # object with method
-       $object->someMethod($param1, $param2)
+       $object->someMethod( $param1, $param2 )
        # object with method and data
-       $object->someMethod($someData, $param1, $param2)
+       $object->someMethod( $someData, $param1, $param2 )
 
 Note that when an object is the hook, and there's no specified method, the
 default method called is 'onEventName'. For different events this would be
@@ -170,8 +170,8 @@ different: 'onArticleSave', 'onUserLogin', etc.
 The extra data is useful if we want to use the same function or object for
 different purposes. For example:
 
-       $wgHooks['ArticleSaveComplete'][] = array('ircNotify', 'TimStarling');
-       $wgHooks['ArticleSaveComplete'][] = array('ircNotify', 'brion');
+       $wgHooks['ArticleSaveComplete'][] = array( 'ircNotify', 'TimStarling' );
+       $wgHooks['ArticleSaveComplete'][] = array( 'ircNotify', 'brion' );
 
 This code would result in ircNotify being run twice when an article is saved:
 once for 'TimStarling', and once for 'brion'.
@@ -188,9 +188,9 @@ The last result would be for cases where the hook function replaces the main
 functionality. For example, if you wanted to authenticate users to a custom
 system (LDAP, another PHP program, whatever), you could do:
 
-       $wgHooks['UserLogin'][] = array('ldapLogin', $ldapServer);
+       $wgHooks['UserLogin'][] = array( 'ldapLogin', $ldapServer );
 
-       function ldapLogin($username, $password) {
+       function ldapLogin( $username, $password ) {
                # log user into LDAP
                return false;
        }
@@ -204,25 +204,28 @@ Special:Version), and should be avoided when at all possible.
 
 ==Using hooks==
 
-A calling function or method uses the wfRunHooks() function to run the hooks
+A calling function or method uses the Hooks::run() function to run the hooks
 related to a particular event, like so:
 
        class Article {
                # ...
                function protect() {
                        global $wgUser;
-                       if (wfRunHooks('ArticleProtect', array(&$this, &$wgUser))) {
+                       if ( Hooks::run( 'ArticleProtect', array( &$this, &$wgUser ) ) ) {
                                # protect the article
-                               wfRunHooks('ArticleProtectComplete', array(&$this, &$wgUser));
+                               Hooks::run( 'ArticleProtectComplete', array( &$this, &$wgUser ) );
                        }
                }
        }
 
-wfRunHooks() returns true if the calling function should continue processing
+Hooks::run() returns true if the calling function should continue processing
 (the hooks ran OK, or there are no hooks to run), or false if it shouldn't (an
 error occurred, or one of the hooks handled the action already). Checking the
 return value matters more for "before" hooks than for "complete" hooks.
 
+Hooks::run() was added in MediaWiki 1.18, before that the global function
+wfRunHooks must be used, which was deprecated in MediaWiki 1.25.
+
 Note that hook parameters are passed in an array; this is a necessary
 inconvenience to make it possible to pass reference values (that can be changed)
 into the hook code. Also note that earlier versions of wfRunHooks took a
@@ -1144,6 +1147,11 @@ $editPage: EditPage      object
 saved, that is before WikiPage::doEditContent() is called
 $editpage_Obj: the current EditPage object
 
+'EditPage::attemptSave:after': Called after an article save attempt
+$editpage_Obj: the current EditPage object
+$status: the resulting Status object
+$resultDetails: Result details array
+
 'EditPage::importFormData': allow extensions to read additional data
 posted in the form
 $editpage: EditPage instance
@@ -1277,6 +1285,12 @@ $editToken: The user's edit token.
 &$hookErr: Out-param for the error. Passed as the parameters to
   OutputPage::showErrorPage.
 
+'EnhancedChangesList::getLogText': to alter, remove or add to the links of a
+group of changes in EnhancedChangesList.
+$changesList: EnhancedChangesList object
+&$links: The links that were generated by EnhancedChangesList
+$block: The RecentChanges objects in that block
+
 'ExemptFromAccountCreationThrottle': Exemption from the account creation
 throttle.
 $ip: The ip address of the user
@@ -2628,7 +2642,7 @@ $special: the special page object
   (message key) and a 'default' value.
 
 'SpecialPage_initList': Called when setting up SpecialPageFactory::$list, use this
-hook to remove a core special page.
+hook to remove a core special page or conditionally register special pages.
 $list: list (array) of core special pages
 
 'SpecialPageAfterExecute': Called after SpecialPage::execute.
index 70cebd2..7106d2e 100644 (file)
@@ -3,7 +3,7 @@
        "description": "Node.js dependencies used for KSS generation",
        "version": "0.0.1",
        "dependencies": {
-               "kss": ">=0.3.7"
+               "kss": ">=0.3.7 <=1.2.0"
        },
        "repository" : {
                "type" : "git",
diff --git a/docs/sitescache.txt b/docs/sitescache.txt
new file mode 100644 (file)
index 0000000..13bf371
--- /dev/null
@@ -0,0 +1,42 @@
+MediaWiki's SiteStore can be cached and stored in a flat file,
+in a json format. If the SiteStore is frequently accessed, the
+file cache may provide a performance benefit over a database
+store, even with memcached in front of it.
+
+Configuration:
+
+File-based caching can be enabled by setting $wgSitesCacheFile
+to the file path of the cache file.
+
+The file can then be generated with the rebuildSitesCache.php
+maintenance script.
+
+Format:
+
+In the sites cache file, sites are listed in a key-value
+map, with the key being the site's global id (e.g. "enwiki")
+and a key-value map as the value. The site list is wrapped
+with in a "sites" key.
+
+Example:
+
+"sites": {
+       "aawiktionary": {
+               "globalid": "aawiktionary",
+               "type": "mediawiki",
+               "group": "wiktionary",
+               "source": "local",
+               "language": "aa",
+               "localids": [],
+               "config": [],
+               "data": {
+                       "paths": {
+                               "file_path": "http:\/\/aa.wiktionary.org\/w\/$1",
+                               "page_path": "http:\/\/aa.wiktionary.org\/wiki\/$1"
+                       }
+               },
+               "forward": false,
+               "internalid": 2666,
+               "identifiers": []
+       }
+}
index 6786f81..5ab557e 100644 (file)
@@ -257,6 +257,23 @@ $wgFileCacheDirectory = false;
  */
 $wgLogo = false;
 
+/**
+ * Array with URL paths to HD versions of the wiki logo. The scaled logo size
+ * should be under 135x155 pixels.
+ * Only 1.5x and 2x versions are supported.
+ *
+ * @par Example:
+ * @code
+ * $wgLogoHD = array(
+ *     "1.5x" => "path/to/1.5x_version.png",
+ *     "2x" => "path/to/2x_version.png"
+ * );
+ * @endcode
+ *
+ * @since 1.25
+ */
+$wgLogoHD = false;
+
 /**
  * The URL path of the shortcut icon.
  * @since 1.6
@@ -951,7 +968,8 @@ $wgExiv2Command = '/usr/bin/exiv2';
  * are passed as parameters after $srcPath, $dstPath, $width, $height
  */
 $wgSVGConverters = array(
-       'ImageMagick' => '$path/convert -background "#ffffff00" -thumbnail $widthx$height\! $input PNG:$output',
+       'ImageMagick' =>
+               '$path/convert -background "#ffffff00" -thumbnail $widthx$height\! $input PNG:$output',
        'sodipodi' => '$path/sodipodi -z -w $width -f $input -e $output',
        'inkscape' => '$path/inkscape -z -w $width -f $input -e $output',
        'batik' => 'java -Djava.awt.headless=true -jar $path/batik-rasterizer.jar -w $width -d '
@@ -3173,9 +3191,10 @@ $wgFooterIcons = array(
        ),
        "poweredby" => array(
                "mediawiki" => array(
-                       "src" => null, // Defaults to point at
-                                      // "$wgResourceBasePath/resources/assets/poweredby_mediawiki_88x31.png"
-                                      // plus srcset for 1.5x, 2x resolution variants.
+                       // Defaults to point at
+                       // "$wgResourceBasePath/resources/assets/poweredby_mediawiki_88x31.png"
+                       // plus srcset for 1.5x, 2x resolution variants.
+                       "src" => null,
                        "url" => "//www.mediawiki.org/",
                        "alt" => "Powered by MediaWiki",
                )
@@ -3786,7 +3805,7 @@ $wgInterwikiFallbackSite = 'wiki';
  */
 
 /**
- * Specify the file location for the SiteStore json cache file.
+ * Specify the file location for the Sites json cache file.
  */
 $wgSitesCacheFile = false;
 
@@ -4844,7 +4863,6 @@ $wgAutopromote = array(
  * @endcode
  * Where event is either:
  *    - 'onEdit' (when user edits)
- *    - 'onView' (when user views the wiki)
  *
  * Criteria has the same format as $wgAutopromote
  *
@@ -4853,7 +4871,6 @@ $wgAutopromote = array(
  */
 $wgAutopromoteOnce = array(
        'onEdit' => array(),
-       'onView' => array()
 );
 
 /**
@@ -5301,6 +5318,11 @@ $wgDebugLogGroups = array();
  * inject an MWLoggerSpi instance into MWLoggerFactory and bypass the use of
  * this configuration variable entirely.
  *
+ * @par To completely disable logging:
+ * @code
+ * $wgMWLoggerDefaultSpi = array( 'class' => 'MWLoggerNullSpi' );
+ * @endcode
+ *
  * @since 1.25
  * @var array $wgMWLoggerDefaultSpi
  * @see MwLogger
@@ -6423,6 +6445,7 @@ $wgJobClasses = array(
        'ThumbnailRender' => 'ThumbnailRenderJob',
        'recentChangesUpdate' => 'RecentChangesUpdateJob',
        'refreshLinksPrioritized' => 'RefreshLinksJob', // for cascading protection
+       'enqueue' => 'EnqueueJob', // local queue for multi-DC setups
        'null' => 'NullJob'
 );
 
@@ -6465,7 +6488,7 @@ $wgJobTypeConf = array(
  * These settings should be global to all wikis.
  */
 $wgJobQueueAggregator = array(
-       'class' => 'JobQueueAggregatorMemc'
+       'class' => 'JobQueueAggregatorNull'
 );
 
 /**
@@ -6669,8 +6692,6 @@ $wgLogActions = array(
        'protect/modify' => 'modifiedarticleprotection',
        'protect/unprotect' => 'unprotectedarticle',
        'protect/move_prot' => 'movedarticleprotection',
-       'import/upload' => 'import-logentry-upload',
-       'import/interwiki' => 'import-logentry-interwiki',
 );
 
 /**
@@ -6705,6 +6726,8 @@ $wgLogActionsHandlers = array(
        'block/reblock' => 'BlockLogFormatter',
        'suppress/block' => 'BlockLogFormatter',
        'suppress/reblock' => 'BlockLogFormatter',
+       'import/upload' => 'LogFormatter',
+       'import/interwiki' => 'LogFormatter',
 );
 
 /**
@@ -7417,6 +7440,34 @@ $wgPageLanguageUseDB = false;
  */
 $wgUseLinkNamespaceDBFields = true;
 
+/**
+ * Global configuration variable for Virtual REST Services.
+ * Parameters for different services are to be declared inside
+ * $wgVirtualRestConfig['modules'], which is to be treated as an associative
+ * array. Global parameters will be merged with service-specific ones. The
+ * result will then be passed to VirtualRESTService::__construct() in the
+ * module.
+ *
+ * Example config for Parsoid:
+ *
+ *   $wgVirtualRestConfig['modules']['parsoid'] = array(
+ *     'url' => 'http://localhost:8000',
+ *     'prefix' => 'enwiki',
+ *   );
+ *
+ * @var array
+ * @since 1.25
+ */
+$wgVirtualRestConfig = array(
+       'modules' => array(),
+       'global' => array(
+               # Timeout in seconds
+               'timeout' => 360,
+               'forwardCookies' => false,
+               'HTTPProxy' => null
+       )
+);
+
 /**
  * For really cool vim folding this needs to be at the end:
  * vim: foldmarker=@{,@} foldmethod=marker
index 8456c5d..c9263da 100644 (file)
@@ -208,7 +208,6 @@ require_once __DIR__ . '/libs/normal/UtfNormalDefines.php';
 /**@{
  * Hook support constants
  */
-define( 'MW_SUPPORTS_EDITFILTERMERGED', 1 );
 define( 'MW_SUPPORTS_PARSERFIRSTCALLINIT', 1 );
 define( 'MW_SUPPORTS_LOCALISATIONCACHE', 1 );
 define( 'MW_SUPPORTS_CONTENTHANDLER', 1 );
@@ -245,11 +244,6 @@ define( 'SFH_NO_HASH', 1 );
 define( 'SFH_OBJECT_ARGS', 2 );
 /**@}*/
 
-/**
- * Flags for Parser::replaceLinkHolders
- */
-define( 'RLH_FOR_UPDATE', 1 );
-
 /**@{
  * Autopromote conditions (must be here and not in Autopromote.php, so that
  * they're loaded for DefaultSettings.php before AutoLoader.php)
index f5d98a7..6bdb85c 100644 (file)
@@ -534,7 +534,9 @@ class EditPage {
                # in the back door with a hand-edited submission URL.
 
                if ( 'save' == $this->formtype ) {
-                       if ( !$this->attemptSave() ) {
+                       $resultDetails = null;
+                       $status = $this->attemptSave( $resultDetails );
+                       if ( !$this->handleStatus( $status, $resultDetails ) ) {
                                return;
                        }
                }
@@ -1284,18 +1286,20 @@ class EditPage {
 
        /**
         * Attempt submission
+        * @param array $resultDetails See docs for $result in internalAttemptSave
         * @throws UserBlockedError|ReadOnlyError|ThrottledError|PermissionsError
-        * @return bool False if output is done, true if the rest of the form should be displayed
+        * @return Status The resulting status object.
         */
-       public function attemptSave() {
+       public function attemptSave( &$resultDetails = false ) {
                global $wgUser;
 
-               $resultDetails = false;
                # Allow bots to exempt some edits from bot flagging
                $bot = $wgUser->isAllowed( 'bot' ) && $this->bot;
                $status = $this->internalAttemptSave( $resultDetails, $bot );
 
-               return $this->handleStatus( $status, $resultDetails );
+               Hooks::run( 'EditPage::attemptSave:after', array( $this, $status, $resultDetails ) );
+
+               return $status;
        }
 
        /**
@@ -2094,6 +2098,9 @@ class EditPage {
                        $displayTitle = $contextTitle->getPrefixedText();
                }
                $wgOut->setPageTitle( wfMessage( $msg, $displayTitle ) );
+               # Transmit the name of the message to JavaScript for live preview
+               # Keep Resources.php/mediawiki.action.edit.preview in sync with the possible keys
+               $wgOut->addJsConfigVars( 'wgEditMessage', $msg );
        }
 
        /**
@@ -2551,7 +2558,19 @@ class EditPage {
                }
 
                // Add edit notices
-               $wgOut->addHTML( implode( "\n", $this->mTitle->getEditNotices( $this->oldid ) ) );
+               $editNotices = $this->mTitle->getEditNotices( $this->oldid );
+               if ( count( $editNotices ) ) {
+                       $wgOut->addHTML( implode( "\n", $editNotices ) );
+               } else {
+                       $msg = wfMessage( 'editnotice-notext' );
+                       if ( !$msg->isDisabled() ) {
+                               $wgOut->addHTML(
+                                       '<div class="mw-editnotice-notext">'
+                                       . $msg->parseAsBlock()
+                                       . '</div>'
+                               );
+                       }
+               }
 
                if ( $this->isConflict ) {
                        $wgOut->wrapWikiMsg( "<div class='mw-explainconflict'>\n$1\n</div>", 'explainconflict' );
@@ -2992,6 +3011,12 @@ HTML
 
                if ( $this->formtype == 'preview' ) {
                        $this->showPreview( $previewOutput );
+               } else {
+                       // Empty content container for LivePreview
+                       $pageViewLang = $this->mTitle->getPageViewLanguage();
+                       $attribs = array( 'lang' => $pageViewLang->getHtmlCode(), 'dir' => $pageViewLang->getDir(),
+                               'class' => 'mw-content-' . $pageViewLang->getDir() );
+                       $wgOut->addHTML( Html::rawElement( 'div', $attribs ) );
                }
 
                $wgOut->addHTML( '</div>' );
index 9be3f57..600b136 100644 (file)
@@ -92,7 +92,7 @@ class FeedItem {
         */
        public function getUniqueId() {
                if ( $this->uniqueId ) {
-                       return $this->xmlEncode( $this->uniqueId );
+                       return $this->xmlEncode( wfExpandUrl( $this->uniqueId, PROTO_CURRENT ) );
                }
        }
 
index 5232413..a9ed60f 100644 (file)
@@ -24,6 +24,9 @@ if ( !defined( 'MEDIAWIKI' ) ) {
        die( "This file is part of MediaWiki, it is not a valid entry point" );
 }
 
+use Liuggio\StatsdClient\StatsdClient;
+use Liuggio\StatsdClient\Sender\SocketSender;
+
 // Hide compatibility functions from Doxygen
 /// @cond
 
@@ -1027,12 +1030,7 @@ function wfMatchesDomainList( $url, $domains ) {
  * @since 1.25 support for additional context data
  *
  * @param string $text
- * @param string|bool $dest Destination of the message:
- *     - 'all': both to the log and HTML (debug toolbar or HTML comments)
- *     - 'log': only to the log and not in HTML
- *   For backward compatibility, it can also take a boolean:
- *     - true: same as 'all'
- *     - false: same as 'log'
+ * @param string|bool $dest Unused
  * @param array $context Additional logging context data
  */
 function wfDebug( $text, $dest = 'all', array $context = array() ) {
@@ -1043,13 +1041,6 @@ function wfDebug( $text, $dest = 'all', array $context = array() ) {
                return;
        }
 
-       // Turn $dest into a string if it's a boolean (for b/c)
-       if ( $dest === true ) {
-               $dest = 'all';
-       } elseif ( $dest === false ) {
-               $dest = 'log';
-       }
-
        $text = trim( $text );
 
        // Inline logic from deprecated wfDebugTimer()
@@ -1064,16 +1055,6 @@ function wfDebug( $text, $dest = 'all', array $context = array() ) {
                );
        }
 
-       if ( $dest === 'all' ) {
-               $prefix = '';
-               if ( $wgDebugTimestamps ) {
-                       // Prepend elapsed request time and real memory usage with two
-                       // trailing spaces.
-                       $prefix = "{$context['seconds_elapsed']} {$context['memory_used']}  ";
-               }
-               MWDebug::debugMsg( "{$prefix}{$text}" );
-       }
-
        if ( $wgDebugLogPrefix !== '' ) {
                $context['prefix'] = $wgDebugLogPrefix;
        }
@@ -1178,10 +1159,6 @@ function wfDebugLog(
 
        $text = trim( $text );
 
-       if ( $dest === 'all' ) {
-               MWDebug::debugMsg( "[{$logGroup}] {$text}\n" );
-       }
-
        $logger = MWLoggerFactory::getInstance( $logGroup );
        $context['private'] = ( $dest === 'private' );
        $logger->info( $text, $context );
@@ -1271,7 +1248,16 @@ function wfLogProfilingData() {
        global $wgRequestTime, $wgDebugLogGroups, $wgDebugRawPage;
        global $wgProfileLimit, $wgUser, $wgRequest;
 
-       StatCounter::singleton()->flush();
+       $context = RequestContext::getMain();
+       $config = $context->getConfig();
+       if ( $config->has( 'StatsdServer' ) ) {
+               $statsdServer = explode( ':', $config->get( 'StatsdServer' ) );
+               $statsdHost = $statsdServer[0];
+               $statsdPort = isset( $statsdServer[1] ) ? $statsdServer[1] : 8125;
+               $statsdSender = new SocketSender( $statsdHost, $statsdPort );
+               $statsdClient = new StatsdClient( $statsdSender );
+               $statsdClient->send( $context->getStats()->getBuffer() );
+       }
 
        $profiler = Profiler::instance();
 
@@ -1346,7 +1332,8 @@ function wfLogProfilingData() {
  * @return void
  */
 function wfIncrStats( $key, $count = 1 ) {
-       StatCounter::singleton()->incr( $key, $count );
+       $stats = RequestContext::getMain()->getStats();
+       $stats->updateCount( $key, $count );
 }
 
 /**
@@ -2660,13 +2647,19 @@ function wfIniGetBool( $setting ) {
  * Also fixes the locale problems on Linux in PHP 5.2.6+ (bug backported to
  * earlier distro releases of PHP)
  *
- * @param string $args,...
+ * @param string ... strings to escape and glue together, or a single array of strings parameter
  * @return string
  */
 function wfEscapeShellArg( /*...*/ ) {
        wfInitShellLocale();
 
        $args = func_get_args();
+       if ( count( $args ) === 1 && is_array( reset( $args ) ) ) {
+               // If only one argument has been passed, and that argument is an array,
+               // treat it as a list of arguments
+               $args = reset( $args );
+       }
+
        $first = true;
        $retVal = '';
        foreach ( $args as $arg ) {
@@ -2757,6 +2750,8 @@ function wfShellExecDisabled() {
  * @param array $options Array of options:
  *   - duplicateStderr: Set this to true to duplicate stderr to stdout,
  *     including errors from limit.sh
+ *   - profileMethod: By default this function will profile based on the calling
+ *     method. Set this to a string for an alternative method to profile from
  *
  * @return string Collected stdout as a string
  */
@@ -2775,6 +2770,7 @@ function wfShellExec( $cmd, &$retval = null, $environ = array(),
        }
 
        $includeStderr = isset( $options['duplicateStderr'] ) && $options['duplicateStderr'];
+       $profileMethod = isset( $options['profileMethod'] ) ? $options['profileMethod'] : wfGetCaller();
 
        wfInitShellLocale();
 
@@ -2796,12 +2792,7 @@ function wfShellExec( $cmd, &$retval = null, $environ = array(),
                }
        }
        if ( is_array( $cmd ) ) {
-               // Command line may be given as an array, escape each value and glue them together with a space
-               $cmdVals = array();
-               foreach ( $cmd as $val ) {
-                       $cmdVals[] = wfEscapeShellArg( $val );
-               }
-               $cmd = implode( ' ', $cmdVals );
+               $cmd = wfEscapeShellArg( $cmd );
        }
 
        $cmd = $envcmd . $cmd;
@@ -2848,6 +2839,7 @@ function wfShellExec( $cmd, &$retval = null, $environ = array(),
                $desc[3] = array( 'pipe', 'w' );
        }
        $pipes = null;
+       $scoped = Profiler::instance()->scopedProfileIn( __FUNCTION__ . '-' . $profileMethod );
        $proc = proc_open( $cmd, $desc, $pipes );
        if ( !$proc ) {
                wfDebugLog( 'exec', "proc_open() failed: $cmd" );
@@ -2999,7 +2991,8 @@ function wfShellExec( $cmd, &$retval = null, $environ = array(),
  * @return string Collected stdout and stderr as a string
  */
 function wfShellExecWithStderr( $cmd, &$retval = null, $environ = array(), $limits = array() ) {
-       return wfShellExec( $cmd, $retval, $environ, $limits, array( 'duplicateStderr' => true ) );
+       return wfShellExec( $cmd, $retval, $environ, $limits,
+               array( 'duplicateStderr' => true, 'profileMethod' => wfGetCaller() ) );
 }
 
 /**
@@ -3019,15 +3012,6 @@ function wfInitShellLocale() {
        }
 }
 
-/**
- * Alias to wfShellWikiCmd()
- *
- * @see wfShellWikiCmd()
- */
-function wfShellMaintenanceCmd( $script, array $parameters = array(), array $options = array() ) {
-       return wfShellWikiCmd( $script, $parameters, $options );
-}
-
 /**
  * Generate a shell-escaped command line string to run a MediaWiki cli script.
  * Note that $parameters should be a flat array and an option with an argument
@@ -3051,7 +3035,7 @@ function wfShellWikiCmd( $script, array $parameters = array(), array $options =
        }
        $cmd[] = $script;
        // Escape each parameter for shell
-       return implode( " ", array_map( 'wfEscapeShellArg', array_merge( $cmd, $parameters ) ) );
+       return wfEscapeShellArg( array_merge( $cmd, $parameters ) );
 }
 
 /**
@@ -3096,10 +3080,7 @@ function wfMerge( $old, $mine, $yours, &$result ) {
        fclose( $yourtextFile );
 
        # Check for a conflict
-       $cmd = wfEscapeShellArg( $wgDiff3 ) . ' -a --overlap-only ' .
-               wfEscapeShellArg( $mytextName ) . ' ' .
-               wfEscapeShellArg( $oldtextName ) . ' ' .
-               wfEscapeShellArg( $yourtextName );
+       $cmd = wfEscapeShellArg( $wgDiff3, '-a', '--overlap-only', $mytextName, $oldtextName, $yourtextName );
        $handle = popen( $cmd, 'r' );
 
        if ( fgets( $handle, 1024 ) ) {
@@ -3110,8 +3091,7 @@ function wfMerge( $old, $mine, $yours, &$result ) {
        pclose( $handle );
 
        # Merge differences
-       $cmd = wfEscapeShellArg( $wgDiff3 ) . ' -a -e --merge ' .
-               wfEscapeShellArg( $mytextName, $oldtextName, $yourtextName );
+       $cmd = wfEscapeShellArg( $wgDiff3, '-a', '-e', '--merge', $mytextName, $oldtextName, $yourtextName );
        $handle = popen( $cmd, 'r' );
        $result = '';
        do {
@@ -3135,7 +3115,9 @@ function wfMerge( $old, $mine, $yours, &$result ) {
 
 /**
  * Returns unified plain-text diff of two texts.
- * Useful for machine processing of diffs.
+ * "Useful" for machine processing of diffs.
+ *
+ * @deprecated since 1.25, use DiffEngine/UnifiedDiffFormatter directly
  *
  * @param string $before The text before the changes.
  * @param string $after The text after the changes.
@@ -3175,6 +3157,11 @@ function wfDiff( $before, $after, $params = '-u' ) {
        $cmd = "$wgDiff " . $params . ' ' . wfEscapeShellArg( $oldtextName, $newtextName );
 
        $h = popen( $cmd, 'r' );
+       if ( !$h ) {
+               unlink( $oldtextName );
+               unlink( $newtextName );
+               throw new Exception( __METHOD__ . '(): popen() failed' );
+       }
 
        $diff = '';
 
@@ -3659,19 +3646,7 @@ function wfGetLBFactory() {
  * Shortcut for RepoGroup::singleton()->findFile()
  *
  * @param string $title String or Title object
- * @param array $options Associative array of options:
- *     time:           requested time for an archived image, or false for the
- *                     current version. An image object will be returned which was
- *                     created at the specified time.
- *
- *     ignoreRedirect: If true, do not follow file redirects
- *
- *     private:        If true, return restricted (deleted) files if the current
- *                     user is allowed to view them. Otherwise, such files will not
- *                     be found.
- *
- *     bypassCache:    If true, do not use the process-local cache of File objects
- *
+ * @param array $options Associative array of options (see RepoGroup::findFile)
  * @return File|bool File, or false if the file does not exist
  */
 function wfFindFile( $title, $options = array() ) {
@@ -4008,16 +3983,6 @@ function wfGetParserCacheStorage() {
        return ObjectCache::getInstance( $wgParserCacheType );
 }
 
-/**
- * Get the cache object used by the language converter
- *
- * @return BagOStuff
- */
-function wfGetLangConverterCacheStorage() {
-       global $wgLanguageConverterCacheType;
-       return ObjectCache::getInstance( $wgLanguageConverterCacheType );
-}
-
 /**
  * Call hook functions defined in $wgHooks
  *
@@ -4159,6 +4124,18 @@ function wfCanIPUseHTTPS( $ip ) {
        return !!$canDo;
 }
 
+/**
+ * Determine input string is represents as infinity
+ *
+ * @param string $str The string to determine
+ * @return bool
+ * @since 1.25
+ */
+function wfIsInfinity( $str ) {
+       $infinityValues = array( 'infinite', 'indefinite', 'infinity', 'never' );
+       return in_array( $str, $infinityValues );
+}
+
 /**
  * Work out the IP address based on various globals
  * For trusted proxies, use the XFF client IP (first of the chain)
index fe8f57e..4b69885 100644 (file)
@@ -104,7 +104,8 @@ class Html {
        /**
         * Modifies a set of attributes meant for button elements
         * and apply a set of default attributes when $wgUseMediaWikiUIEverywhere enabled.
-        * @param array $modifiers to add to the button
+        * @param array $attrs
+        * @param string[] $modifiers to add to the button
         * @see https://tools.wmflabs.org/styleguide/desktop/index.html for guidance on available modifiers
         * @return array $attrs A modified attribute array
         */
@@ -141,58 +142,57 @@ class Html {
                if ( !$attrs ) {
                        $attrs = array();
                }
-               if ( isset( $attrs['class'] ) ) {
-                       if ( is_array( $attrs['class'] ) ) {
-                               $attrs['class'][] = 'mw-ui-input';
+               if ( $wgUseMediaWikiUIEverywhere ) {
+                       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';
+                               $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 link element in a string styled as a button (when $wgUseMediaWikiUIEverywhere is enabled).
+        * Returns an HTML link element in a string styled as a button
+        * (when $wgUseMediaWikiUIEverywhere is enabled).
         *
         * @param string $contents The raw HTML contents of the element: *not*
         *   escaped!
         * @param array $attrs Associative array of attributes, e.g., array(
         *   'href' => 'http://www.mediawiki.org/' ). See expandAttributes() for
         *   further documentation.
-        * @param array $modifiers to add to the button
+        * @param string[] $modifiers to add to the button
         * @see http://tools.wmflabs.org/styleguide/desktop/index.html for guidance on available modifiers
         * @return string Raw HTML
         */
        public static function linkButton( $contents, $attrs, $modifiers = array() ) {
-               return Html::element( 'a',
+               return self::element( 'a',
                        self::buttonAttributes( $attrs, $modifiers ),
                        $contents
                );
        }
 
        /**
-        * Returns an HTML link element in a string styled as a button (when $wgUseMediaWikiUIEverywhere is enabled).
+        * Returns an HTML link element in a string styled as a button
+        * (when $wgUseMediaWikiUIEverywhere is enabled).
         *
         * @param string $contents The raw HTML contents of the element: *not*
         *   escaped!
         * @param array $attrs Associative array of attributes, e.g., array(
         *   'href' => 'http://www.mediawiki.org/' ). See expandAttributes() for
         *   further documentation.
-        * @param array $modifiers to add to the button
+        * @param string[] $modifiers to add to the button
         * @see http://tools.wmflabs.org/styleguide/desktop/index.html for guidance on available modifiers
         * @return string Raw HTML
         */
        public static function submitButton( $contents, $attrs, $modifiers = array() ) {
                $attrs['type'] = 'submit';
                $attrs['value'] = $contents;
-               return Html::element( 'input', self::buttonAttributes( $attrs, $modifiers ) );
+               return self::element( 'input', self::buttonAttributes( $attrs, $modifiers ) );
        }
 
        /**
@@ -705,7 +705,7 @@ class Html {
         * new HTML5 input types and attributes.
         *
         * @param string $name Name attribute
-        * @param array $value Value attribute
+        * @param string $value Value attribute
         * @param string $type Type attribute
         * @param array $attribs Associative array of miscellaneous extra
         *   attributes, passed to Html::element()
@@ -716,7 +716,7 @@ class Html {
                $attribs['value'] = $value;
                $attribs['name'] = $name;
                if ( in_array( $type, array( 'text', 'search', 'email', 'password', 'number' ) ) ) {
-                       $attribs = Html::getTextInputAttributes( $attribs );
+                       $attribs = self::getTextInputAttributes( $attribs );
                }
                return self::element( 'input', $attribs );
        }
@@ -727,7 +727,7 @@ class Html {
         * @param string $name Name attribute
         * @param bool $checked Whether the checkbox is checked or not
         * @param array $attribs Array of additional attributes
-        * @return string
+        * @return string Raw HTML
         */
        public static function check( $name, $checked = false, array $attribs = array() ) {
                if ( isset( $attribs['value'] ) ) {
@@ -750,7 +750,7 @@ class Html {
         * @param string $name Name attribute
         * @param bool $checked Whether the checkbox is checked or not
         * @param array $attribs Array of additional attributes
-        * @return string
+        * @return string Raw HTML
         */
        public static function radio( $name, $checked = false, array $attribs = array() ) {
                if ( isset( $attribs['value'] ) ) {
@@ -773,7 +773,7 @@ class Html {
         * @param string $label Contents of the label
         * @param string $id ID of the element being labeled
         * @param array $attribs Additional attributes
-        * @return string
+        * @return string Raw HTML
         */
        public static function label( $label, $id, array $attribs = array() ) {
                $attribs += array(
@@ -819,7 +819,7 @@ class Html {
                } else {
                        $spacedValue = $value;
                }
-               return self::element( 'textarea', Html::getTextInputAttributes( $attribs ), $spacedValue );
+               return self::element( 'textarea', self::getTextInputAttributes( $attribs ), $spacedValue );
        }
 
        /**
@@ -890,7 +890,7 @@ class Html {
                        } elseif ( is_int( $nsId ) ) {
                                $nsName = $wgContLang->convertNamespace( $nsId );
                        }
-                       $optionsHtml[] = Html::element(
+                       $optionsHtml[] = self::element(
                                'option', array(
                                        'disabled' => in_array( $nsId, $params['disable'] ),
                                        'value' => $nsId,
@@ -909,7 +909,7 @@ class Html {
 
                $ret = '';
                if ( isset( $params['label'] ) ) {
-                       $ret .= Html::element(
+                       $ret .= self::element(
                                'label', array(
                                        'for' => isset( $selectAttribs['id'] ) ? $selectAttribs['id'] : null,
                                ), $params['label']
@@ -917,11 +917,11 @@ class Html {
                }
 
                // Wrap options in a <select>
-               $ret .= Html::openElement( 'select', $selectAttribs )
+               $ret .= self::openElement( 'select', $selectAttribs )
                        . "\n"
                        . implode( "\n", $optionsHtml )
                        . "\n"
-                       . Html::closeElement( 'select' );
+                       . self::closeElement( 'select' );
 
                return $ret;
        }
@@ -962,7 +962,7 @@ class Html {
                        $attribs['version'] = $wgHtml5Version;
                }
 
-               $html = Html::openElement( 'html', $attribs );
+               $html = self::openElement( 'html', $attribs );
 
                if ( $html ) {
                        $html .= "\n";
@@ -997,26 +997,26 @@ class Html {
         *
         * @return string
         */
-       static function infoBox( $text, $icon, $alt, $class = false ) {
-               $s = Html::openElement( 'div', array( 'class' => "mw-infobox $class" ) );
+       static function infoBox( $text, $icon, $alt, $class = '' ) {
+               $s = self::openElement( 'div', array( 'class' => "mw-infobox $class" ) );
 
-               $s .= Html::openElement( 'div', array( 'class' => 'mw-infobox-left' ) ) .
-                               Html::element( 'img',
+               $s .= self::openElement( 'div', array( 'class' => 'mw-infobox-left' ) ) .
+                               self::element( 'img',
                                        array(
                                                'src' => $icon,
                                                'alt' => $alt,
                                        )
                                ) .
-                               Html::closeElement( 'div' );
+                               self::closeElement( 'div' );
 
-               $s .= Html::openElement( 'div', array( 'class' => 'mw-infobox-right' ) ) .
+               $s .= self::openElement( 'div', array( 'class' => 'mw-infobox-right' ) ) .
                                $text .
-                               Html::closeElement( 'div' );
-               $s .= Html::element( 'div', array( 'style' => 'clear: left;' ), ' ' );
+                               self::closeElement( 'div' );
+               $s .= self::element( 'div', array( 'style' => 'clear: left;' ), ' ' );
 
-               $s .= Html::closeElement( 'div' );
+               $s .= self::closeElement( 'div' );
 
-               $s .= Html::element( 'div', array( 'style' => 'clear: left;' ), ' ' );
+               $s .= self::element( 'div', array( 'style' => 'clear: left;' ), ' ' );
 
                return $s;
        }
@@ -1026,7 +1026,7 @@ class Html {
         * to URLs. Note that srcset supports width and height values as well, which
         * are not used here.
         *
-        * @param array $urls
+        * @param string[] $urls
         * @return string
         */
        static function srcSet( $urls ) {
index d066df8..8e05f59 100644 (file)
@@ -55,9 +55,10 @@ class Http {
         *                                  to avoid attacks on intranet services accessible by HTTP.
         *    - userAgent           A user agent, if you want to override the default
         *                          MediaWiki/$wgVersion
+        * @param string $caller The method making this request, for profiling
         * @return string|bool (bool)false on failure or a string on success
         */
-       public static function request( $method, $url, $options = array() ) {
+       public static function request( $method, $url, $options = array(), $caller = __METHOD__ ) {
                wfDebug( "HTTP: $method: $url\n" );
 
                $options['method'] = strtoupper( $method );
@@ -69,7 +70,7 @@ class Http {
                        $options['connectTimeout'] = 'default';
                }
 
-               $req = MWHttpRequest::factory( $url, $options );
+               $req = MWHttpRequest::factory( $url, $options, $caller );
                $status = $req->execute();
 
                $content = false;
@@ -82,15 +83,26 @@ class Http {
        /**
         * Simple wrapper for Http::request( 'GET' )
         * @see Http::request()
+        * @since 1.25 Second parameter $timeout removed. Second parameter
+        * is now $options which can be given a 'timeout'
         *
         * @param string $url
-        * @param string $timeout
         * @param array $options
+        * @param string $caller The method making this request, for profiling
         * @return string
         */
-       public static function get( $url, $timeout = 'default', $options = array() ) {
-               $options['timeout'] = $timeout;
-               return Http::request( 'GET', $url, $options );
+       public static function get( $url, $options = array(), $caller = __METHOD__ ) {
+               $args = func_get_args();
+               if ( isset( $args[1] ) && ( is_string( $args[1] ) || is_numeric( $args[1] ) ) ) {
+                       // Second was used to be the timeout
+                       // And third parameter used to be $options
+                       wfWarn( "Second parameter should not be a timeout.", 2 );
+                       $options = isset( $args[2] ) && is_array( $args[2] ) ?
+                               $args[2] : array();
+                       $options['timeout'] = $args[1];
+                       $caller = __METHOD__;
+               }
+               return Http::request( 'GET', $url, $options, $caller );
        }
 
        /**
@@ -99,10 +111,11 @@ class Http {
         *
         * @param string $url
         * @param array $options
+        * @param string $caller The method making this request, for profiling
         * @return string
         */
-       public static function post( $url, $options = array() ) {
-               return Http::request( 'POST', $url, $options );
+       public static function post( $url, $options = array(), $caller = __METHOD__ ) {
+               return Http::request( 'POST', $url, $options, $caller );
        }
 
        /**
@@ -216,11 +229,23 @@ class MWHttpRequest {
 
        public $status;
 
+       /**
+        * @var Profiler
+        */
+       protected $profiler;
+
+       /**
+        * @var string
+        */
+       protected $profileName;
+
        /**
         * @param string $url Url to use. If protocol-relative, will be expanded to an http:// URL
         * @param array $options (optional) extra params to pass (see Http::request())
+        * @param string $caller The method making this request, for profiling
+        * @param Profiler $profiler An instance of the profiler for profiling, or null
         */
-       protected function __construct( $url, $options = array() ) {
+       protected function __construct( $url, $options = array(), $caller = __METHOD__, $profiler = null ) {
                global $wgHTTPTimeout, $wgHTTPConnectTimeout;
 
                $this->url = wfExpandUrl( $url, PROTO_HTTP );
@@ -263,6 +288,10 @@ class MWHttpRequest {
                if ( $this->noProxy ) {
                        $this->proxy = ''; // noProxy takes precedence
                }
+
+               // Profile based on what's calling us
+               $this->profiler = $profiler;
+               $this->profileName = $caller;
        }
 
        /**
@@ -278,11 +307,12 @@ class MWHttpRequest {
         * Generate a new request object
         * @param string $url Url to use
         * @param array $options (optional) extra params to pass (see Http::request())
+        * @param string $caller The method making this request, for profiling
         * @throws MWException
         * @return CurlHttpRequest|PhpHttpRequest
         * @see MWHttpRequest::__construct
         */
-       public static function factory( $url, $options = null ) {
+       public static function factory( $url, $options = null, $caller = __METHOD__ ) {
                if ( !Http::$httpEngine ) {
                        Http::$httpEngine = function_exists( 'curl_init' ) ? 'curl' : 'php';
                } elseif ( Http::$httpEngine == 'curl' && !function_exists( 'curl_init' ) ) {
@@ -292,7 +322,7 @@ class MWHttpRequest {
 
                switch ( Http::$httpEngine ) {
                        case 'curl':
-                               return new CurlHttpRequest( $url, $options );
+                               return new CurlHttpRequest( $url, $options, $caller, Profiler::instance() );
                        case 'php':
                                if ( !wfIniGetBool( 'allow_url_fopen' ) ) {
                                        throw new MWException( __METHOD__ . ': allow_url_fopen ' .
@@ -301,7 +331,7 @@ class MWHttpRequest {
                                                'http://php.net/curl.'
                                        );
                                }
-                               return new PhpHttpRequest( $url, $options );
+                               return new PhpHttpRequest( $url, $options, $caller, Profiler::instance() );
                        default:
                                throw new MWException( __METHOD__ . ': The setting of Http::$httpEngine is not valid.' );
                }
@@ -772,6 +802,12 @@ class CurlHttpRequest extends MWHttpRequest {
                        wfRestoreWarnings();
                }
 
+               if ( $this->profiler ) {
+                       $profileSection = $this->profiler->scopedProfileIn(
+                               __METHOD__ . '-' . $this->profileName
+                       );
+               }
+
                $curlRes = curl_exec( $curlHandle );
                if ( curl_errno( $curlHandle ) == CURLE_OPERATION_TIMEOUTED ) {
                        $this->status->fatal( 'http-timed-out', $this->url );
@@ -783,6 +819,10 @@ class CurlHttpRequest extends MWHttpRequest {
 
                curl_close( $curlHandle );
 
+               if ( $this->profiler ) {
+                       $this->profiler->scopedProfileOut( $profileSection );
+               }
+
                $this->parseHeader();
                $this->setStatus();
 
@@ -891,6 +931,11 @@ class PhpHttpRequest extends MWHttpRequest {
 
                $result = array();
 
+               if ( $this->profiler ) {
+                       $profileSection = $this->profiler->scopedProfileIn(
+                               __METHOD__ . '-' . $this->profileName
+                       );
+               }
                do {
                        $reqCount++;
                        wfSuppressWarnings();
@@ -921,6 +966,9 @@ class PhpHttpRequest extends MWHttpRequest {
                                break;
                        }
                } while ( true );
+               if ( $this->profiler ) {
+                       $this->profiler->scopedProfileOut( $profileSection );
+               }
 
                $this->setStatus();
 
index eb2ca77..de453b5 100644 (file)
@@ -376,12 +376,12 @@ class WikiImporter {
                $page->loadPageData( 'fromdbmaster' );
                $content = $page->getContent();
                $editInfo = $page->prepareContentForEdit( $content );
-
+               $countKey = 'title_' . $title->getPrefixedText();
                $countable = $page->isCountable( $editInfo );
-               $oldcountable = $this->countableCache['title_' . $title->getPrefixedText()];
-               if ( isset( $oldcountable ) && $countable != $oldcountable ) {
+               if ( array_key_exists( $countKey, $this->countableCache ) &&
+                       $countable != $this->countableCache[ $countKey ] ) {
                        DeferredUpdates::addUpdate( SiteStatsUpdate::factory( array(
-                               'articles' => ( (int)$countable - (int)$oldcountable )
+                               'articles' => ( (int)$countable - (int)$this->countableCache[ $countKey ] )
                        ) ) );
                }
 
@@ -477,7 +477,8 @@ class WikiImporter {
        /**
         * Retrieves the contents of the named attribute of the current element.
         * @param string $attr The name of the attribute
-        * @return string The value of the attribute or an empty string if it is not set in the current element.
+        * @return string The value of the attribute or an empty string if it is not set in the current
+        * element.
         */
        public function nodeAttribute( $attr ) {
                return $this->reader->getAttribute( $attr );
@@ -1669,6 +1670,7 @@ class WikiRevision {
                                RepoGroup::singleton()->getLocalRepo(), $archiveName );
                } else {
                        $file = wfLocalFile( $this->getTitle() );
+                       $file->load( File::READ_LATEST );
                        wfDebug( __METHOD__ . 'Importing new file as ' . $file->getName() . "\n" );
                        if ( $file->exists() && $file->getTimestamp() > $this->getTimestamp() ) {
                                $archiveName = $file->getTimestamp() . '!' . $file->getName();
@@ -1740,7 +1742,7 @@ class WikiRevision {
 
                // @todo FIXME!
                $src = $this->getSrc();
-               $data = Http::get( $src );
+               $data = Http::get( $src, array(), __METHOD__ );
                if ( !$data ) {
                        wfDebug( "IMPORT: couldn't fetch source $src\n" );
                        fclose( $f );
@@ -1897,7 +1899,7 @@ class ImportStreamSource implements ImportSource {
                # quicker and sorts out user-agent problems which might
                # otherwise prevent importing from large sites, such
                # as the Wikimedia cluster, etc.
-               $data = Http::request( $method, $url, array( 'followRedirects' => true ) );
+               $data = Http::request( $method, $url, array( 'followRedirects' => true ), __METHOD__ );
                if ( $data !== false ) {
                        $file = tmpfile();
                        fwrite( $file, $data );
index 340ae8f..99aaaa0 100644 (file)
@@ -92,7 +92,7 @@ class LinkFilter {
         * @return array Array to be passed to DatabaseBase::buildLike() or false on error
         */
        public static function makeLikeArray( $filterEntry, $protocol = 'http://' ) {
-               $db = wfGetDB( DB_MASTER );
+               $db = wfGetDB( DB_SLAVE );
 
                $target = $protocol . $filterEntry;
                $bits = wfParseUrl( $target );
index dd224ef..b58daba 100644 (file)
@@ -1388,7 +1388,9 @@ class Linker {
         *
         * @return string
         */
-       public static function formatLinksInComment( $comment, $title = null, $local = false, $wikiId = null ) {
+       public static function formatLinksInComment(
+               $comment, $title = null, $local = false, $wikiId = null
+       ) {
                return preg_replace_callback(
                        '/
                                \[\[
@@ -1750,14 +1752,6 @@ class Linker {
                $link, $legacyAnchor = false
        ) {
                $ret = "<h$level$attribs"
-                       . Html::element( 'a',
-                               array(
-                                       'href' => '#' . $anchor,
-                                       'class' => 'mw-headline-anchor',
-                                       'title' => wfMessage( 'headline-anchor-title' )->text()
-                               ),
-                               wfMessage( 'section-symbol' )->text()
-                       )
                        . "<span class=\"mw-headline\" id=\"$anchor\">$html</span>"
                        . $link
                        . "</h$level>";
index c21f5e9..c086a39 100644 (file)
@@ -22,8 +22,6 @@
 
 /**
  * The MediaWiki class is the helper class for the index.php entry point.
- *
- * @internal documentation reviewed 15 Mar 2010
  */
 class MediaWiki {
        /**
@@ -201,8 +199,6 @@ class MediaWiki {
                        throw new PermissionsError( 'read', $permErrors );
                }
 
-               $pageView = false; // was an article or special page viewed?
-
                // Interwiki redirects
                if ( $title->isExternal() ) {
                        $rdfrom = $request->getVal( 'rdfrom' );
@@ -265,7 +261,6 @@ class MediaWiki {
                        }
                // Special pages
                } elseif ( NS_SPECIAL == $title->getNamespace() ) {
-                       $pageView = true;
                        // Actions that need to be made when we have a special pages
                        SpecialPageFactory::executePath( $title, $this->context );
                } else {
@@ -273,7 +268,6 @@ class MediaWiki {
                        // may be a redirect to another article or URL.
                        $article = $this->initializeArticle();
                        if ( is_object( $article ) ) {
-                               $pageView = true;
                                $this->performAction( $article, $requestTitle );
                        } elseif ( is_string( $article ) ) {
                                $output->redirect( $article );
@@ -282,12 +276,6 @@ class MediaWiki {
                                        . " returned neither an object nor a URL" );
                        }
                }
-
-               if ( $pageView ) {
-                       // Promote user to any groups they meet the criteria for
-                       $user->addAutopromoteOnceGroups( 'onView' );
-               }
-
        }
 
        /**
@@ -489,14 +477,16 @@ class MediaWiki {
                $action = $this->getAction();
                $wgTitle = $title;
 
+               $trxProfiler = Profiler::instance()->getTransactionProfiler();
+
                // Aside from rollback, master queries should not happen on GET requests.
                // Periodic or "in passing" updates on GET should use the job queue.
                if ( !$request->wasPosted()
                        && in_array( $action, array( 'view', 'edit', 'history' ) )
                ) {
-                       $trxProfiler = Profiler::instance()->getTransactionProfiler();
                        $trxProfiler->setExpectation( 'masterConns', 0, __METHOD__ );
                        $trxProfiler->setExpectation( 'writes', 0, __METHOD__ );
+               } else {
                        $trxProfiler->setExpectation( 'maxAffected', 500, __METHOD__ );
                }
 
index 6f7e8e5..c384188 100644 (file)
@@ -127,7 +127,7 @@ class MessageBlobStore {
                                        );
                                }
                        }
-               } catch ( Exception $e ) {
+               } catch ( DBError $e ) {
                        wfDebug( __METHOD__ . " failed to update DB: $e\n" );
                }
                return $blob;
index 065e189..de7da3f 100644 (file)
@@ -159,6 +159,7 @@ class MovePage {
        protected function isValidFileMove() {
                $status = new Status();
                $file = wfLocalFile( $this->oldTitle );
+               $file->load( File::READ_LATEST );
                if ( $file->exists() ) {
                        if ( $this->newTitle->getText() != wfStripIllegalFilenameChars( $this->newTitle->getText() ) ) {
                                $status->fatal( 'imageinvalidfilename' );
@@ -186,6 +187,7 @@ class MovePage {
                # Is it an existing file?
                if ( $this->newTitle->inNamespace( NS_FILE ) ) {
                        $file = wfLocalFile( $this->newTitle );
+                       $file->load( File::READ_LATEST );
                        if ( $file->exists() ) {
                                wfDebug( __METHOD__ . ": file exists\n" );
                                return false;
@@ -238,6 +240,7 @@ class MovePage {
                $dbw = wfGetDB( DB_MASTER );
                if ( $this->oldTitle->getNamespace() == NS_FILE ) {
                        $file = wfLocalFile( $this->oldTitle );
+                       $file->load( File::READ_LATEST );
                        if ( $file->exists() ) {
                                $status = $file->move( $this->newTitle );
                                if ( !$status->isOk() ) {
@@ -370,7 +373,10 @@ class MovePage {
 
                $dbw->commit( __METHOD__ );
 
-               Hooks::run( 'TitleMoveComplete', array( &$this->oldTitle, &$this->newTitle, &$user, $pageid, $redirid, $reason ) );
+               Hooks::run(
+                       'TitleMoveComplete',
+                       array( &$this->oldTitle, &$this->newTitle, &$user, $pageid, $redirid, $reason )
+               );
                return Status::newGood();
        }
 
index 5c146e4..edeae0d 100644 (file)
@@ -196,12 +196,6 @@ class OutputPage extends ContextSource {
 
        // Parser related.
 
-       /**
-        * @var int
-        * @todo Unused?
-        */
-       private $mContainsOldMagic = 0;
-
        /** @var int */
        protected $mContainsNewMagic = 0;
 
@@ -1379,7 +1373,8 @@ class OutputPage extends ContextSource {
        }
 
        /**
-        * Add an array of indicators, with their identifiers as array keys and HTML contents as values.
+        * Add an array of indicators, with their identifiers as array
+        * keys and HTML contents as values.
         *
         * In case of duplicate keys, existing values are overwritten.
         *
@@ -1404,6 +1399,35 @@ class OutputPage extends ContextSource {
                return $this->mIndicators;
        }
 
+       /**
+        * Adds help link with an icon via page indicators.
+        * @param string $to
+        * @param bool $overrideBaseUrl
+        * @since 1.25
+        */
+       public function addHelpLink( $to, $overrideBaseUrl = false ) {
+               $this->addModuleStyles( 'mediawiki.helplink' );
+               $text = $this->msg( 'helppage-top-gethelp' )->escaped();
+
+               if ( $overrideBaseUrl ) {
+                       $helpUrl = $to;
+               } else {
+                       $toUrlencoded = wfUrlencode( str_replace( ' ', '_', $to ) );
+                       $helpUrl = "//www.mediawiki.org/wiki/Special:MyLanguage/$toUrlencoded";
+               }
+               $link = Html::rawElement(
+                       'a',
+                       array(
+                               'href' => $helpUrl,
+                               'target' => '_blank',
+                               'class' => 'mw-helplink',
+                       ),
+                       $text
+               );
+
+               $this->setIndicators( array( 'mw-helplink' => $link ) );
+       }
+
        /**
         * Do not allow scripts which can be modified by wiki users to load on this page;
         * only allow scripts bundled with, or generated by, the software.
@@ -2879,11 +2903,11 @@ class OutputPage extends ContextSource {
                                                );
                                        } else {
                                                $link = Html::linkedScript( $url );
-                                               if ( $context->getOnly() === 'scripts' && !$context->getRaw() && !$isRaw ) {
-                                                       // Wrap only=script requests in a conditional as browsers not supported
-                                                       // by the startup module would unconditionally execute this module.
-                                                       // Otherwise users will get "ReferenceError: mw is undefined" or
-                                                       // "jQuery is undefined" from e.g. a "site" module.
+                                               if ( !$context->getRaw() && !$isRaw ) {
+                                                       // Wrap only=script / only=combined requests in a conditional as
+                                                       // browsers not supported by the startup module would unconditionally
+                                                       // execute this module. Otherwise users will get "ReferenceError: mw is
+                                                       // undefined" or "jQuery is undefined" from e.g. a "site" module.
                                                        $link = Html::inlineScript(
                                                                ResourceLoader::makeLoaderConditionalScript(
                                                                        Xml::encodeJsCall( 'document.write', array( $link ) )
index 2885679..55a4f49 100644 (file)
@@ -155,7 +155,10 @@ abstract class PrefixSearch {
                        }
                }
                $srchres = array();
-               if ( Hooks::run( 'PrefixSearchBackend', array( $namespaces, $search, $limit, &$srchres, $offset ) ) ) {
+               if ( Hooks::run(
+                       'PrefixSearchBackend',
+                       array( $namespaces, $search, $limit, &$srchres, $offset )
+               ) ) {
                        return $this->titles( $this->defaultSearchBackend( $namespaces, $search, $limit, $offset ) );
                }
                return $this->strings( $this->handleResultFromHook( $srchres, $namespaces, $search, $limit ) );
index f777a37..1219da5 100644 (file)
@@ -156,7 +156,7 @@ class ProtectionForm {
                } else {
                        $value = $this->mExpirySelection[$action];
                }
-               if ( $value == 'infinite' || $value == 'indefinite' || $value == 'infinity' ) {
+               if ( wfIsInfinity( $value ) ) {
                        $time = wfGetDB( DB_SLAVE )->getInfinity();
                } else {
                        $unix = strtotime( $value );
index d535028..356cd32 100644 (file)
@@ -121,8 +121,6 @@ class Revision implements IDBAccessObject {
                if ( $id ) {
                        // Use the specified ID
                        $conds['rev_id'] = $id;
-                       // This uses slave->master fallback with READ_NORMAL. Assuming revdelete,
-                       // moves, and merges are rare, callers can use this to reduce master queries.
                        return self::newFromConds( $conds, $flags );
                } else {
                        // Use a join to get the latest revision
@@ -150,8 +148,6 @@ class Revision implements IDBAccessObject {
                $conds = array( 'page_id' => $pageId );
                if ( $revId ) {
                        $conds['rev_id'] = $revId;
-                       // This uses slave->master fallback with READ_NORMAL. Assuming revdelete
-                       // and merges are rare, callers can use this to reduce master queries.
                        return self::newFromConds( $conds, $flags );
                } else {
                        // Use a join to get the latest revision
@@ -310,12 +306,6 @@ class Revision implements IDBAccessObject {
        private static function newFromConds( $conditions, $flags = 0 ) {
                $db = wfGetDB( ( $flags & self::READ_LATEST ) ? DB_MASTER : DB_SLAVE );
                $rev = self::loadFromConds( $db, $conditions, $flags );
-               if ( $rev === null && wfGetLB()->getServerCount() > 1 ) {
-                       if ( !( $flags & self::READ_LATEST ) ) {
-                               $dbw = wfGetDB( DB_MASTER );
-                               $rev = self::loadFromConds( $dbw, $conditions, $flags );
-                       }
-               }
                if ( $rev ) {
                        $rev->mQueryFlags = $flags;
                }
@@ -1566,7 +1556,7 @@ class Revision implements IDBAccessObject {
         * @return Revision|null Revision or null on error
         */
        public static function newNullRevision( $dbw, $pageId, $summary, $minor, $user = null ) {
-               global $wgContentHandlerUseDB;
+               global $wgContentHandlerUseDB, $wgContLang;
 
                $fields = array( 'page_latest', 'page_namespace', 'page_title',
                                                'rev_text_id', 'rev_len', 'rev_sha1' );
@@ -1591,6 +1581,9 @@ class Revision implements IDBAccessObject {
                                $user = $wgUser;
                        }
 
+                       // Truncate for whole multibyte characters
+                       $summary = $wgContLang->truncate( $summary, 255 );
+
                        $row = array(
                                'page'       => $pageId,
                                'user_text'  => $user->getName(),
@@ -1684,23 +1677,21 @@ class Revision implements IDBAccessObject {
         *
         * @param Title $title
         * @param int $id
-        * @return string
+        * @return string|bool False if not found
         */
-       static function getTimestampFromId( $title, $id ) {
-               $dbr = wfGetDB( DB_SLAVE );
+       static function getTimestampFromId( $title, $id, $flags = 0 ) {
+               $db = ( $flags & self::READ_LATEST )
+                       ? wfGetDB( DB_MASTER )
+                       : wfGetDB( DB_SLAVE );
                // Casting fix for databases that can't take '' for rev_id
                if ( $id == '' ) {
                        $id = 0;
                }
                $conds = array( 'rev_id' => $id );
                $conds['rev_page'] = $title->getArticleID();
-               $timestamp = $dbr->selectField( 'revision', 'rev_timestamp', $conds, __METHOD__ );
-               if ( $timestamp === false && wfGetLB()->getServerCount() > 1 ) {
-                       # Not in slave, try master
-                       $dbw = wfGetDB( DB_MASTER );
-                       $timestamp = $dbw->selectField( 'revision', 'rev_timestamp', $conds, __METHOD__ );
-               }
-               return wfTimestamp( TS_MW, $timestamp );
+               $timestamp = $db->selectField( 'revision', 'rev_timestamp', $conds, __METHOD__ );
+
+               return ( $timestamp !== false ) ? wfTimestamp( TS_MW, $timestamp ) : false;
        }
 
        /**
index e4b29f0..e281768 100644 (file)
@@ -578,7 +578,6 @@ $ps_memcached = Profiler::instance()->scopedProfileIn( $fname . '-memcached' );
 $wgMemc = wfGetMainCache();
 $messageMemc = wfGetMessageCacheStorage();
 $parserMemc = wfGetParserCacheStorage();
-$wgLangConvMemc = wfGetLangConverterCacheStorage();
 
 wfDebugLog( 'caches', 'main: ' . get_class( $wgMemc ) .
        ', message: ' . get_class( $messageMemc ) .
diff --git a/includes/StatCounter.php b/includes/StatCounter.php
deleted file mode 100644 (file)
index 5fc8f2f..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-<?php
-/**
- * @defgroup StatCounter StatCounter
- *
- * StatCounter is used to increment arbitrary keys for profiling reasons.
- * The key/values are persisted in several possible ways (see $wgStatsMethod).
- */
-
-/**
- * Aggregator for wfIncrStats() that batches updates per request.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @ingroup StatCounter
- * @author Aaron Schulz
- */
-
-/**
- * Aggregator for wfIncrStats() that batches updates per request.
- * This avoids spamming the collector many times for the same key.
- *
- * @ingroup StatCounter
- */
-class StatCounter {
-       /** @var array */
-       protected $deltas = array(); // (key => count)
-
-       /** @var Config */
-       protected $config;
-
-       protected function __construct( Config $config ) {
-               $this->config = $config;
-       }
-
-       /**
-        * @return StatCounter
-        */
-       public static function singleton() {
-               static $instance = null;
-               if ( !$instance ) {
-                       $instance = new self(
-                               ConfigFactory::getDefaultInstance()->makeConfig( 'main' )
-                       );
-               }
-               return $instance;
-       }
-
-       /**
-        * Increment a key by delta $count
-        *
-        * @param string $key
-        * @param int $count
-        * @return void
-        */
-       public function incr( $key, $count = 1 ) {
-               $this->deltas[$key] = isset( $this->deltas[$key] ) ? $this->deltas[$key] : 0;
-               $this->deltas[$key] += $count;
-               if ( PHP_SAPI === 'cli' ) {
-                       $this->flush();
-               }
-       }
-
-       /**
-        * Flush all pending deltas to persistent storage
-        *
-        * @return void
-        */
-       public function flush() {
-               $statsMethod = $this->config->get( 'StatsMethod' );
-               $deltas = array_filter( $this->deltas ); // remove 0 valued entries
-               if ( $statsMethod === 'udp' ) {
-                       $this->sendDeltasUDP( $deltas );
-               } elseif ( $statsMethod === 'cache' ) {
-                       $this->sendDeltasMemc( $deltas );
-               } else {
-                       // disabled
-               }
-               $this->deltas = array();
-       }
-
-       /**
-        * @param array $deltas
-        * @return void
-        */
-       protected function sendDeltasUDP( array $deltas ) {
-               $aggregateStatsID = $this->config->get( 'AggregateStatsID' );
-               $id = strlen( $aggregateStatsID ) ? $aggregateStatsID : wfWikiID();
-
-               $lines = array();
-               foreach ( $deltas as $key => $count ) {
-                       $lines[] = sprintf( $this->config->get( 'StatsFormatString' ), $id, $count, $key );
-               }
-
-               if ( count( $lines ) ) {
-                       static $socket = null;
-                       if ( !$socket ) {
-                               $socket = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP );
-                       }
-                       $packet = '';
-                       $packets = array();
-                       foreach ( $lines as $line ) {
-                               if ( ( strlen( $packet ) + strlen( $line ) ) > 1450 ) {
-                                       $packets[] = $packet;
-                                       $packet = '';
-                               }
-                               $packet .= $line;
-                       }
-                       if ( $packet != '' ) {
-                               $packets[] = $packet;
-                       }
-                       foreach ( $packets as $packet ) {
-                               wfSuppressWarnings();
-                               socket_sendto(
-                                       $socket,
-                                       $packet,
-                                       strlen( $packet ),
-                                       0,
-                                       $this->config->get( 'UDPProfilerHost' ),
-                                       $this->config->get( 'UDPProfilerPort' )
-                               );
-                               wfRestoreWarnings();
-                       }
-               }
-       }
-
-       /**
-        * @param array $deltas
-        * @return void
-        */
-       protected function sendDeltasMemc( array $deltas ) {
-               global $wgMemc;
-
-               foreach ( $deltas as $key => $count ) {
-                       $ckey = wfMemcKey( 'stats', $key );
-                       if ( $wgMemc->incr( $ckey, $count ) === null ) {
-                               $wgMemc->add( $ckey, $count );
-                       }
-               }
-       }
-}
index 559ffb9..3de70fa 100644 (file)
@@ -49,9 +49,9 @@ class TemplateParser {
         * Constructs the location of the the source Mustache template
         * @param string $templateName The name of the template
         * @return string
-        * @throws Exception Disallows upwards directory traversal via $templateName
+        * @throws UnexpectedValueException Disallows upwards directory traversal via $templateName
         */
-       public function getTemplateFilename( $templateName ) {
+       protected function getTemplateFilename( $templateName ) {
                // Prevent upwards directory traversal using same methods as Title::secureAndSplit
                if (
                        strpos( $templateName, '.' ) !== false &&
@@ -65,7 +65,7 @@ class TemplateParser {
                                substr( $templateName, -3 ) === '/..'
                        )
                ) {
-                       throw new Exception( "Malformed \$templateName: $templateName" );
+                       throw new UnexpectedValueException( "Malformed \$templateName: $templateName" );
                }
 
                return "{$this->templateDir}/{$templateName}.mustache";
@@ -74,19 +74,19 @@ class TemplateParser {
        /**
         * Returns a given template function if found, otherwise throws an exception.
         * @param string $templateName The name of the template (without file suffix)
-        * @return Function
-        * @throws Exception
+        * @return callable
+        * @throws RuntimeException
         */
-       public function getTemplate( $templateName ) {
+       protected function getTemplate( $templateName ) {
                // If a renderer has already been defined for this template, reuse it
-               if ( isset( $this->renderers[$templateName] ) ) {
+               if ( isset( $this->renderers[$templateName] ) && is_callable( $this->renderers[$templateName] ) ) {
                        return $this->renderers[$templateName];
                }
 
                $filename = $this->getTemplateFilename( $templateName );
 
                if ( !file_exists( $filename ) ) {
-                       throw new Exception( "Could not locate template: {$filename}" );
+                       throw new RuntimeException( "Could not locate template: {$filename}" );
                }
 
                // Read the template file
@@ -99,60 +99,73 @@ class TemplateParser {
                $config = ConfigFactory::getDefaultInstance()->makeConfig( 'main' );
                $secretKey = $config->get( 'SecretKey' );
 
-               // See if the compiled PHP code is stored in cache.
-               // CACHE_ACCEL throws an exception if no suitable object cache is present, so fall
-               // back to CACHE_ANYTHING.
-               try {
-                       $cache = wfGetCache( CACHE_ACCEL );
-               } catch ( Exception $e ) {
-                       $cache = wfGetCache( CACHE_ANYTHING );
-               }
-               $key = wfMemcKey( 'template', $templateName, $fastHash );
-               $code = $this->forceRecompile ? null : $cache->get( $key );
-
-               if ( !$code ) {
-                       // Compile the template into PHP code
-                       $code = self::compile( $fileContents );
+               if ( $secretKey ) {
+                       // See if the compiled PHP code is stored in cache.
+                       // CACHE_ACCEL throws an exception if no suitable object cache is present, so fall
+                       // back to CACHE_ANYTHING.
+                       $cache = ObjectCache::newAccelerator( array(), CACHE_ANYTHING );
+                       $key = wfMemcKey( 'template', $templateName, $fastHash );
+                       $code = $this->forceRecompile ? null : $cache->get( $key );
 
                        if ( !$code ) {
-                               throw new Exception( "Could not compile template: {$filename}" );
-                       }
+                               $code = $this->compileForEval( $fileContents, $filename );
 
-                       // Strip the "<?php" added by lightncandy so that it can be eval()ed
-                       if ( substr( $code, 0, 5 ) === '<?php' ) {
-                               $code = substr( $code, 5 );
+                               // Prefix the cached code with a keyed hash (64 hex chars) as an integrity check
+                               $cache->set( $key, hash_hmac( 'sha256', $code, $secretKey ) . $code );
+                       } else {
+                               // Verify the integrity of the cached PHP code
+                               $keyedHash = substr( $code, 0, 64 );
+                               $code = substr( $code, 64 );
+                               if ( $keyedHash !== hash_hmac( 'sha256', $code, $secretKey ) ) {
+                                       // Generate a notice if integrity check fails
+                                       trigger_error( "Template failed integrity check: {$filename}" );
+                               }
                        }
+               // If there is no secret key available, don't use cache
+               } else {
+                       $code = $this->compileForEval( $fileContents, $filename );
+               }
 
-                       $renderer = eval( $code );
+               $renderer = eval( $code );
+               if ( !is_callable( $renderer ) ) {
+                       throw new RuntimeException( "Requested template, {$templateName}, is not callable" );
+               }
+               return $this->renderers[$templateName] = $renderer;
+       }
 
-                       // Prefix the code with a keyed hash (64 hex chars) as an integrity check
-                       $code = hash_hmac( 'sha256', $code, $secretKey ) . $code;
+       /**
+        * Wrapper for compile() function that verifies successful compilation and strips
+        * out the '<?php' part so that the code is ready for eval()
+        * @param string $fileContents Mustache code
+        * @param string $filename Name of the template
+        * @return string PHP code (without '<?php')
+        * @throws RuntimeException
+        */
+       protected function compileForEval( $fileContents, $filename ) {
+               // Compile the template into PHP code
+               $code = $this->compile( $fileContents );
 
-                       // Cache the compiled PHP code
-                       $cache->set( $key, $code );
-               } else {
-                       // Verify the integrity of the cached PHP code
-                       $keyedHash = substr( $code, 0, 64 );
-                       $code = substr( $code, 64 );
-                       if ( $keyedHash === hash_hmac( 'sha256', $code, $secretKey ) ) {
-                               $renderer = eval( $code );
-                       } else {
-                               throw new Exception( "Template failed integrity check: {$filename}" );
-                       }
+               if ( !$code ) {
+                       throw new RuntimeException( "Could not compile template: {$filename}" );
                }
 
-               return $this->renderers[$templateName] = $renderer;
+               // Strip the "<?php" added by lightncandy so that it can be eval()ed
+               if ( substr( $code, 0, 5 ) === '<?php' ) {
+                       $code = substr( $code, 5 );
+               }
+
+               return $code;
        }
 
        /**
         * Compile the Mustache code into PHP code using LightnCandy
         * @param string $code Mustache code
-        * @return string PHP code
-        * @throws Exception
+        * @return string PHP code (with '<?php')
+        * @throws RuntimeException
         */
-       public static function compile( $code ) {
+       protected function compile( $code ) {
                if ( !class_exists( 'LightnCandy' ) ) {
-                       throw new Exception( 'LightnCandy class not defined' );
+                       throw new RuntimeException( 'LightnCandy class not defined' );
                }
                return LightnCandy::compile(
                        $code,
index 2ef4ee4..921538b 100644 (file)
@@ -29,8 +29,6 @@
  *       however, it does so inefficiently.
  * @note Consider using a TitleValue object instead. TitleValue is more lightweight
  *       and does not rely on global state or the database.
- *
- * @internal documentation reviewed 15 Mar 2010
  */
 class Title {
        /** @var MapCacheLRU */
@@ -3631,7 +3629,10 @@ class Title {
                $errors = array();
 
                $destFile = wfLocalFile( $nt );
-               if ( !$wgUser->isAllowed( 'reupload-shared' ) && !$destFile->exists() && wfFindFile( $nt ) ) {
+               $destFile->load( File::READ_LATEST );
+               if ( !$wgUser->isAllowed( 'reupload-shared' )
+                       && !$destFile->exists() && wfFindFile( $nt )
+               ) {
                        $errors[] = array( 'file-exists-sharedrepo' );
                }
 
@@ -3806,6 +3807,7 @@ class Title {
                # Is it an existing file?
                if ( $nt->getNamespace() == NS_FILE ) {
                        $file = wfLocalFile( $nt );
+                       $file->load( File::READ_LATEST );
                        if ( $file->exists() ) {
                                wfDebug( __METHOD__ . ": file exists\n" );
                                return false;
@@ -4676,34 +4678,64 @@ class Title {
        public function getEditNotices( $oldid = 0 ) {
                $notices = array();
 
-               # Optional notices on a per-namespace and per-page basis
+               // Optional notice for the entire namespace
                $editnotice_ns = 'editnotice-' . $this->getNamespace();
-               $editnotice_ns_message = wfMessage( $editnotice_ns );
-               if ( $editnotice_ns_message->exists() ) {
-                       $notices[$editnotice_ns] = '<div class="mw-editnotice mw-editnotice-namespace ' .
-                               Sanitizer::escapeClass( "mw-$editnotice_ns" ) . '">' .
-                               $editnotice_ns_message->parseAsBlock() . '</div>';
+               $msg = wfMessage( $editnotice_ns );
+               if ( $msg->exists() ) {
+                       $html = $msg->parseAsBlock();
+                       // Edit notices may have complex logic, but output nothing (T91715)
+                       if ( trim( $html ) !== '' ) {
+                               $notices[$editnotice_ns] = Html::rawElement(
+                                       'div',
+                                       array( 'class' => array(
+                                               'mw-editnotice',
+                                               'mw-editnotice-namespace',
+                                               Sanitizer::escapeClass( "mw-$editnotice_ns" )
+                                       ) ),
+                                       $html
+                               );
+                       }
                }
+
                if ( MWNamespace::hasSubpages( $this->getNamespace() ) ) {
+                       // Optional notice for page itself and any parent page
                        $parts = explode( '/', $this->getDBkey() );
                        $editnotice_base = $editnotice_ns;
                        while ( count( $parts ) > 0 ) {
                                $editnotice_base .= '-' . array_shift( $parts );
-                               $editnotice_base_msg = wfMessage( $editnotice_base );
-                               if ( $editnotice_base_msg->exists() ) {
-                                       $notices[$editnotice_base] = '<div class="mw-editnotice mw-editnotice-base ' .
-                                               Sanitizer::escapeClass( "mw-$editnotice_base" ) . '">' .
-                                               $editnotice_base_msg->parseAsBlock() . '</div>';
+                               $msg = wfMessage( $editnotice_base );
+                               if ( $msg->exists() ) {
+                                       $html = $msg->parseAsBlock();
+                                       if ( trim( $html ) !== '' ) {
+                                               $notices[$editnotice_base] = Html::rawElement(
+                                                       'div',
+                                                       array( 'class' => array(
+                                                               'mw-editnotice',
+                                                               'mw-editnotice-base',
+                                                               Sanitizer::escapeClass( "mw-$editnotice_base" )
+                                                       ) ),
+                                                       $html
+                                               );
+                                       }
                                }
                        }
                } else {
-                       # Even if there are no subpages in namespace, we still don't want / in MW ns.
+                       // Even if there are no subpages in namespace, we still don't want "/" in MediaWiki message keys
                        $editnoticeText = $editnotice_ns . '-' . str_replace( '/', '-', $this->getDBkey() );
-                       $editnoticeMsg = wfMessage( $editnoticeText );
-                       if ( $editnoticeMsg->exists() ) {
-                               $notices[$editnoticeText] = '<div class="mw-editnotice mw-editnotice-page ' .
-                                       Sanitizer::escapeClass( "mw-$editnoticeText" ) . '">' .
-                                       $editnoticeMsg->parseAsBlock() . '</div>';
+                       $msg = wfMessage( $editnoticeText );
+                       if ( $msg->exists() ) {
+                               $html = $msg->parseAsBlock();
+                               if ( trim( $html ) !== '' ) {
+                                       $notices[$editnoticeText] = Html::rawElement(
+                                               'div',
+                                               array( 'class' => array(
+                                                       'mw-editnotice',
+                                                       'mw-editnotice-page',
+                                                       Sanitizer::escapeClass( "mw-$editnoticeText" )
+                                               ) ),
+                                               $html
+                                       );
+                               }
                        }
                }
 
index 7025717..78693c1 100644 (file)
@@ -204,8 +204,10 @@ class User implements IDBAccessObject {
        public $mNewpassTime;
 
        public $mEmail;
-
+       /** @var string TS_MW timestamp from the DB */
        public $mTouched;
+       /** @var string TS_MW timestamp from cache */
+       protected $mQuickTouched;
 
        protected $mToken;
 
@@ -320,8 +322,10 @@ class User implements IDBAccessObject {
 
        /**
         * Load the user table data for this object from the source given by mFrom.
+        *
+        * @param integer $flags User::READ_* constant bitfield
         */
-       public function load() {
+       public function load( $flags = self::READ_LATEST ) {
                if ( $this->mLoadedItems === true ) {
                        return;
                }
@@ -334,16 +338,18 @@ class User implements IDBAccessObject {
                                $this->loadDefaults();
                                break;
                        case 'name':
+                               // @TODO: this gets the ID from a slave, assuming renames
+                               // are rare. This should be controllable and more consistent.
                                $this->mId = self::idFromName( $this->mName );
                                if ( !$this->mId ) {
                                        // Nonexistent user placeholder object
                                        $this->loadDefaults( $this->mName );
                                } else {
-                                       $this->loadFromId();
+                                       $this->loadFromId( $flags );
                                }
                                break;
                        case 'id':
-                               $this->loadFromId();
+                               $this->loadFromId( $flags );
                                break;
                        case 'session':
                                if ( !$this->loadFromSession() ) {
@@ -359,9 +365,10 @@ class User implements IDBAccessObject {
 
        /**
         * Load user table data, given mId has already been set.
+        * @param integer $flags User::READ_* constant bitfield
         * @return bool False if the ID does not exist, true otherwise
         */
-       public function loadFromId() {
+       public function loadFromId( $flags = self::READ_LATEST ) {
                if ( $this->mId == 0 ) {
                        $this->loadDefaults();
                        return false;
@@ -372,11 +379,16 @@ class User implements IDBAccessObject {
                if ( !$cache ) {
                        wfDebug( "User: cache miss for user {$this->mId}\n" );
                        // Load from DB
-                       if ( !$this->loadFromDatabase() ) {
+                       if ( !$this->loadFromDatabase( $flags ) ) {
                                // Can't load from ID, user is anonymous
                                return false;
                        }
-                       $this->saveToCache();
+                       if ( $flags & self::READ_LATEST ) {
+                               // Only save master data back to the cache to keep it consistent.
+                               // @TODO: save it anyway and have callers specifiy $flags and have
+                               // load() called as needed. That requires updating MANY callers...
+                               $this->saveToCache();
+                       }
                }
 
                $this->mLoadedItems = true;
@@ -419,6 +431,8 @@ class User implements IDBAccessObject {
         * Save user data to the shared cache
         */
        public function saveToCache() {
+               global $wgMemc;
+
                $this->load();
                $this->loadGroups();
                $this->loadOptions();
@@ -432,7 +446,7 @@ class User implements IDBAccessObject {
                }
                $data['mVersion'] = self::VERSION;
                $key = wfMemcKey( 'user', 'id', $this->mId );
-               global $wgMemc;
+
                $wgMemc->set( $key, $data );
        }
 
@@ -1080,6 +1094,7 @@ class User implements IDBAccessObject {
 
        /**
         * Load user data from the session or login cookie.
+        *
         * @return bool True if the user is logged in, false otherwise.
         */
        private function loadFromSession() {
@@ -1118,6 +1133,7 @@ class User implements IDBAccessObject {
                }
 
                $proposedUser = User::newFromId( $sId );
+               $proposedUser->load( self::READ_LATEST );
                if ( !$proposedUser->isLoggedIn() ) {
                        // Not a valid ID
                        return false;
@@ -1162,10 +1178,10 @@ class User implements IDBAccessObject {
         * Load user and user_group data from the database.
         * $this->mId must be set, this is how the user is identified.
         *
-        * @param int $flags Supports User::READ_LOCKING
+        * @param integer $flags User::READ_* constant bitfield
         * @return bool True if the user exists, false if the user is anonymous
         */
-       public function loadFromDatabase( $flags = 0 ) {
+       public function loadFromDatabase( $flags = self::READ_LATEST ) {
                // Paranoia
                $this->mId = intval( $this->mId );
 
@@ -1175,8 +1191,11 @@ class User implements IDBAccessObject {
                        return false;
                }
 
-               $dbr = wfGetDB( DB_MASTER );
-               $s = $dbr->selectRow(
+               $db = ( $flags & self::READ_LATEST )
+                       ? wfGetDB( DB_MASTER )
+                       : wfGetDB( DB_SLAVE );
+
+               $s = $db->selectRow(
                        'user',
                        self::selectFields(),
                        array( 'user_id' => $this->mId ),
@@ -1211,7 +1230,7 @@ class User implements IDBAccessObject {
         *      user_groups             Array with groups out of the user_groups table
         *      user_properties         Array with properties out of the user_properties table
         */
-       public function loadFromRow( $row, $data = null ) {
+       protected function loadFromRow( $row, $data = null ) {
                $all = true;
                $passwordFactory = self::getPasswordFactory();
 
@@ -1240,6 +1259,10 @@ class User implements IDBAccessObject {
                        $all = false;
                }
 
+               if ( isset( $row->user_id ) && isset( $row->user_name ) ) {
+                       self::$idCacheByName[$row->user_name] = $row->user_id;
+               }
+
                if ( isset( $row->user_editcount ) ) {
                        $this->mEditCount = $row->user_editcount;
                } else {
@@ -1369,7 +1392,7 @@ class User implements IDBAccessObject {
                global $wgAutopromoteOnceLogInRC, $wgAuth;
 
                $toPromote = array();
-               if ( $this->getId() ) {
+               if ( !wfReadOnly() && $this->getId() ) {
                        $toPromote = Autopromote::getAutopromoteOnceGroups( $this, $event );
                        if ( count( $toPromote ) ) {
                                $oldGroups = $this->getGroups(); // previous groups
@@ -1395,6 +1418,7 @@ class User implements IDBAccessObject {
                                }
                        }
                }
+
                return $toPromote;
        }
 
@@ -2007,17 +2031,7 @@ class User implements IDBAccessObject {
                                        // Anon newtalk disabled by configuration.
                                        $this->mNewtalk = false;
                                } else {
-                                       global $wgMemc;
-                                       $key = wfMemcKey( 'newtalk', 'ip', $this->getName() );
-                                       $newtalk = $wgMemc->get( $key );
-                                       if ( strval( $newtalk ) !== '' ) {
-                                               $this->mNewtalk = (bool)$newtalk;
-                                       } else {
-                                               // Since we are caching this, make sure it is up to date by getting it
-                                               // from the master
-                                               $this->mNewtalk = $this->checkNewtalk( 'user_ip', $this->getName(), true );
-                                               $wgMemc->set( $key, (int)$this->mNewtalk, 1800 );
-                                       }
+                                       $this->mNewtalk = $this->checkNewtalk( 'user_ip', $this->getName() );
                                }
                        } else {
                                $this->mNewtalk = $this->checkNewtalk( 'user_id', $this->mId );
@@ -2205,9 +2219,10 @@ class User implements IDBAccessObject {
         * Called implicitly from invalidateCache() and saveSettings().
         */
        public function clearSharedCache() {
+               global $wgMemc;
+
                $this->load();
                if ( $this->mId ) {
-                       global $wgMemc;
                        $wgMemc->delete( wfMemcKey( 'user', 'id', $this->mId ) );
                }
        }
@@ -2246,6 +2261,31 @@ class User implements IDBAccessObject {
                }
        }
 
+       /**
+        * Update the "touched" timestamp for the user
+        *
+        * This is useful on various login/logout events when making sure that
+        * a browser or proxy that has multiple tenants does not suffer cache
+        * pollution where the new user sees the old users content. The value
+        * of getTouched() is checked when determining 304 vs 200 responses.
+        * Unlike invalidateCache(), this preserves the User object cache and
+        * avoids database writes.
+        *
+        * @since 1.25
+        */
+       public function touch() {
+               global $wgMemc;
+
+               $this->load();
+
+               if ( $this->mId ) {
+                       $key = wfMemcKey( 'user-quicktouched', 'id', $this->mId );
+                       $timestamp = self::newTouchedTimestamp();
+                       $wgMemc->set( $key, $timestamp );
+                       $this->mQuickTouched = $timestamp;
+               }
+       }
+
        /**
         * Validate the cache for this account.
         * @param string $timestamp A timestamp in TS_MW format
@@ -2258,10 +2298,28 @@ class User implements IDBAccessObject {
 
        /**
         * Get the user touched timestamp
-        * @return string Timestamp
+        * @return string TS_MW Timestamp
         */
        public function getTouched() {
+               global $wgMemc;
+
                $this->load();
+
+               if ( $this->mId ) {
+                       if ( $this->mQuickTouched === null ) {
+                               $key = wfMemcKey( 'user-quicktouched', 'id', $this->mId );
+                               $timestamp = $wgMemc->get( $key );
+                               if ( $timestamp ) {
+                                       $this->mQuickTouched = $timestamp;
+                               } else {
+                                       # Set the timestamp to get HTTP 304 cache hits
+                                       $this->touch();
+                               }
+                       }
+
+                       return max( $this->mTouched, $this->mQuickTouched );
+               }
+
                return $this->mTouched;
        }
 
@@ -3371,7 +3429,9 @@ class User implements IDBAccessObject {
         * @param WebRequest|null $request WebRequest object to use; $wgRequest will be used if null
         *        is passed.
         */
-       protected function setCookie( $name, $value, $exp = 0, $secure = null, $params = array(), $request = null ) {
+       protected function setCookie(
+               $name, $value, $exp = 0, $secure = null, $params = array(), $request = null
+       ) {
                if ( $request === null ) {
                        $request = $this->getRequest();
                }
@@ -4416,7 +4476,7 @@ class User implements IDBAccessObject {
 
        /**
         * Get a list of all available permissions.
-        * @return array Array of permission names
+        * @return string[] Array of permission names
         */
        public static function getAllRights() {
                if ( self::$mAllRights === false ) {
index e5621da..31bd601 100644 (file)
@@ -56,6 +56,27 @@ abstract class UserArray implements Iterator {
                return self::newFromResult( $res );
        }
 
+       /**
+        * @since 1.25
+        * @param array $names
+        * @return UserArrayFromResult
+        */
+       static function newFromNames( $names ) {
+               $names = array_map( 'strval', (array)$names ); // paranoia
+               if ( !$names ) {
+                       // Database::select() doesn't like empty arrays
+                       return new ArrayIterator( array() );
+               }
+               $dbr = wfGetDB( DB_SLAVE );
+               $res = $dbr->select(
+                       'user',
+                       User::selectFields(),
+                       array( 'user_name' => array_unique( $names ) ),
+                       __METHOD__
+               );
+               return self::newFromResult( $res );
+       }
+
        /**
         * @param ResultWrapper $res
         * @return UserArrayFromResult
index 3be5847..1b9e4b6 100644 (file)
@@ -114,7 +114,8 @@ class UserRightsProxy {
         */
        private static function newFromLookup( $database, $field, $value, $ignoreInvalidDB = false ) {
                global $wgSharedDB, $wgSharedTables;
-               // If the user table is shared, perform the user query on it, but don't pass it to the UserRightsProxy,
+               // If the user table is shared, perform the user query on it,
+               // but don't pass it to the UserRightsProxy,
                // as user rights are normally not shared.
                if ( $wgSharedDB && in_array( 'user', $wgSharedTables ) ) {
                        $userdb = self::getDB( $wgSharedDB, $ignoreInvalidDB );
index f977c20..ab34931 100644 (file)
@@ -55,8 +55,8 @@ class WebResponse {
 
        /**
         * Set the browser cookie
-        * @param string $name Name of cookie
-        * @param string $value Value to give cookie
+        * @param string $name The name of the cookie.
+        * @param string $value The value to be stored in the cookie.
         * @param int|null $expire Unix timestamp (in seconds) when the cookie should expire.
         *        0 (the default) causes it to expire $wgCookieExpiration seconds from now.
         *        null causes it to be a session cookie.
@@ -72,7 +72,7 @@ class WebResponse {
         *   'prefix', 'domain', and 'secure'
         * @since 1.22 Replaced $prefix, $domain, and $forceSecure with $options
         */
-       public function setcookie( $name, $value, $expire = 0, $options = null ) {
+       public function setcookie( $name, $value, $expire = 0, $options = array() ) {
                global $wgCookiePath, $wgCookiePrefix, $wgCookieDomain;
                global $wgCookieSecure, $wgCookieExpiration, $wgCookieHttpOnly;
 
@@ -164,7 +164,7 @@ class FauxResponse extends WebResponse {
 
        /**
         * @param string $key The name of the header to get (case insensitive).
-        * @return string
+        * @return string|null The header value (if set); null otherwise.
         */
        public function getHeader( $key ) {
                $key = strtoupper( $key );
@@ -185,20 +185,18 @@ class FauxResponse extends WebResponse {
        }
 
        /**
-        * @todo document. It just ignore optional parameters.
-        *
-        * @param string $name Name of cookie
-        * @param string $value Value to give cookie
-        * @param int $expire Number of seconds til cookie expires (Default: 0)
-        * @param array $options Ignored
+        * @param string $name The name of the cookie.
+        * @param string $value The value to be stored in the cookie.
+        * @param int|null $expire Ignored in this faux subclass.
+        * @param array $options Ignored in this faux subclass.
         */
-       public function setcookie( $name, $value, $expire = 0, $options = null ) {
+       public function setcookie( $name, $value, $expire = 0, $options = array() ) {
                $this->cookies[$name] = $value;
        }
 
        /**
         * @param string $name
-        * @return string
+        * @return string|null
         */
        public function getcookie( $name ) {
                if ( isset( $this->cookies[$name] ) ) {
index 651b114..4be2751 100644 (file)
@@ -9,6 +9,8 @@
  */
 
 $zh2Hant = array(
+'㐷' => '傌',
+'㐹' => '㑶',
 '㐽' => '偑',
 '㑇' => '㑳',
 '㑈' => '倲',
@@ -72,10 +74,13 @@ $zh2Hant = array(
 '䌼' => '綐',
 '䌽' => '綵',
 '䌾' => '䋻',
+'䌿' => '䋹',
 '䍀' => '繿',
 '䍁' => '繸',
-'䑽' => '𦪙',
+'䎬' => '䎱',
+'䏝' => '膞',
 '䓕' => '薳',
+'䓖' => '藭',
 '䗖' => '螮',
 '䘛' => '𧝞',
 '䘞' => '𧜗',
@@ -142,6 +147,7 @@ $zh2Hant = array(
 '为' => '為',
 '丽' => '麗',
 '举' => '舉',
+'么' => '麼',
 '义' => '義',
 '乌' => '烏',
 '乐' => '樂',
@@ -185,6 +191,7 @@ $zh2Hant = array(
 '伪' => '偽',
 '伫' => '佇',
 '体' => '體',
+'佣' => '傭',
 '佥' => '僉',
 '侠' => '俠',
 '侣' => '侶',
@@ -235,6 +242,7 @@ $zh2Hant = array(
 '况' => '況',
 '冻' => '凍',
 '净' => '凈',
+'凄' => '淒',
 '凉' => '涼',
 '减' => '減',
 '凑' => '湊',
@@ -290,7 +298,6 @@ $zh2Hant = array(
 '卤' => '鹵',
 '卫' => '衛',
 '却' => '卻',
-'卺' => '巹',
 '厂' => '廠',
 '厅' => '廳',
 '历' => '歷',
@@ -309,6 +316,8 @@ $zh2Hant = array(
 '县' => '縣',
 '叁' => '叄',
 '参' => '參',
+'叆' => '靉',
+'叇' => '靆',
 '双' => '雙',
 '发' => '發',
 '变' => '變',
@@ -341,7 +350,6 @@ $zh2Hant = array(
 '咙' => '嚨',
 '咛' => '嚀',
 '咝' => '噝',
-'咤' => '吒',
 '响' => '響',
 '哑' => '啞',
 '哒' => '噠',
@@ -362,7 +370,7 @@ $zh2Hant = array(
 '啧' => '嘖',
 '啬' => '嗇',
 '啭' => '囀',
-'啮' => '',
+'啮' => '',
 '啯' => '嘓',
 '啰' => '囉',
 '啴' => '嘽',
@@ -425,7 +433,6 @@ $zh2Hant = array(
 '复' => '復',
 '够' => '夠',
 '头' => '頭',
-'夸' => '誇',
 '夹' => '夾',
 '夺' => '奪',
 '奁' => '奩',
@@ -503,6 +510,7 @@ $zh2Hant = array(
 '岭' => '嶺',
 '岽' => '崬',
 '岿' => '巋',
+'峃' => '嶨',
 '峄' => '嶧',
 '峡' => '峽',
 '峣' => '嶢',
@@ -533,9 +541,10 @@ $zh2Hant = array(
 '帻' => '幘',
 '帼' => '幗',
 '幂' => '冪',
-'幞' => '襆',
 '并' => '並',
+'幺' => '么',
 '广' => '廣',
+'庄' => '莊',
 '庆' => '慶',
 '庐' => '廬',
 '庑' => '廡',
@@ -544,6 +553,7 @@ $zh2Hant = array(
 '庙' => '廟',
 '庞' => '龐',
 '废' => '廢',
+'庼' => '廎',
 '廪' => '廩',
 '开' => '開',
 '异' => '異',
@@ -723,7 +733,7 @@ $zh2Hant = array(
 '杀' => '殺',
 '杂' => '雜',
 '权' => '權',
-'æ\9d\86' => 'æ¡¿',
+'æ\9d ' => 'æ§\93',
 '条' => '條',
 '来' => '來',
 '杨' => '楊',
@@ -783,6 +793,7 @@ $zh2Hant = array(
 '椤' => '欏',
 '椫' => '樿',
 '椭' => '橢',
+'椮' => '槮',
 '楼' => '樓',
 '榄' => '欖',
 '榅' => '榲',
@@ -856,6 +867,7 @@ $zh2Hant = array(
 '浆' => '漿',
 '浇' => '澆',
 '浈' => '湞',
+'浉' => '溮',
 '浊' => '濁',
 '测' => '測',
 '浍' => '澮',
@@ -888,6 +900,7 @@ $zh2Hant = array(
 '渐' => '漸',
 '渑' => '澠',
 '渔' => '漁',
+'渖' => '瀋',
 '渗' => '滲',
 '温' => '溫',
 '湾' => '灣',
@@ -899,7 +912,7 @@ $zh2Hant = array(
 '滗' => '潷',
 '滚' => '滾',
 '滞' => '滯',
-'æ»\9f' => 'ç\81§',
+'æ»\9f' => 'ç\81©',
 '滠' => '灄',
 '满' => '滿',
 '滢' => '瀅',
@@ -928,6 +941,7 @@ $zh2Hant = array(
 '灿' => '燦',
 '炀' => '煬',
 '炉' => '爐',
+'炖' => '燉',
 '炜' => '煒',
 '炝' => '熗',
 '点' => '點',
@@ -980,6 +994,7 @@ $zh2Hant = array(
 '献' => '獻',
 '獭' => '獺',
 '玑' => '璣',
+'玙' => '璵',
 '玚' => '瑒',
 '玛' => '瑪',
 '玮' => '瑋',
@@ -991,11 +1006,13 @@ $zh2Hant = array(
 '珑' => '瓏',
 '珰' => '璫',
 '珲' => '琿',
+'琎' => '璡',
 '琏' => '璉',
 '琐' => '瑣',
 '琼' => '瓊',
 '瑶' => '瑤',
 '瑷' => '璦',
+'瑸' => '璸',
 '璎' => '瓔',
 '瓒' => '瓚',
 '瓯' => '甌',
@@ -1013,7 +1030,6 @@ $zh2Hant = array(
 '疮' => '瘡',
 '疯' => '瘋',
 '疱' => '皰',
-'疴' => '痾',
 '痈' => '癰',
 '痉' => '痙',
 '痒' => '癢',
@@ -1021,6 +1037,7 @@ $zh2Hant = array(
 '痨' => '癆',
 '痪' => '瘓',
 '痫' => '癇',
+'痳' => '痲',
 '瘅' => '癉',
 '瘆' => '瘮',
 '瘗' => '瘞',
@@ -1072,10 +1089,11 @@ $zh2Hant = array(
 '硚' => '礄',
 '确' => '確',
 '硵' => '磠',
-'硷' => '',
+'硷' => '',
 '碍' => '礙',
 '碛' => '磧',
 '碜' => '磣',
+'碱' => '鹼',
 '礼' => '禮',
 '祃' => '禡',
 '祎' => '禕',
@@ -1221,7 +1239,7 @@ $zh2Hant = array(
 '绠' => '綆',
 '绡' => '綃',
 '绢' => '絹',
-'绣' => 'ç\89',
+'绣' => '繡',
 '绤' => '綌',
 '绥' => '綏',
 '绦' => '絛',
@@ -1235,13 +1253,13 @@ $zh2Hant = array(
 '绮' => '綺',
 '绯' => '緋',
 '绰' => '綽',
-'绱' => '',
+'绱' => '',
 '绲' => '緄',
 '绳' => '繩',
 '维' => '維',
 '绵' => '綿',
 '绶' => '綬',
-'ç»·' => '綳',
+'ç»·' => 'ç¹\83',
 '绸' => '綢',
 '绹' => '綯',
 '绺' => '綹',
@@ -1266,6 +1284,7 @@ $zh2Hant = array(
 '缍' => '綞',
 '缎' => '緞',
 '缏' => '緶',
+'缐' => '線',
 '缑' => '緱',
 '缒' => '縋',
 '缓' => '緩',
@@ -1344,7 +1363,7 @@ $zh2Hant = array(
 '胶' => '膠',
 '脉' => '脈',
 '脍' => '膾',
-'脏' => '',
+'脏' => '',
 '脐' => '臍',
 '脑' => '腦',
 '脓' => '膿',
@@ -1384,7 +1403,6 @@ $zh2Hant = array(
 '苎' => '苧',
 '苏' => '蘇',
 '苧' => '薴',
-'苹' => '蘋',
 '茎' => '莖',
 '茏' => '蘢',
 '茑' => '蔦',
@@ -1414,7 +1432,7 @@ $zh2Hant = array(
 '荬' => '蕒',
 '荭' => '葒',
 '荮' => '葤',
-'è\8d¯' => 'è\91¯',
+'è\8d¯' => 'è\97¥',
 '莅' => '蒞',
 '莱' => '萊',
 '莲' => '蓮',
@@ -1425,7 +1443,8 @@ $zh2Hant = array(
 '莸' => '蕕',
 '莹' => '瑩',
 '莺' => '鶯',
-'莼' => '蒓',
+'莼' => '蓴',
+'萚' => '蘀',
 '萝' => '蘿',
 '萤' => '螢',
 '营' => '營',
@@ -1667,7 +1686,7 @@ $zh2Hant = array(
 '谢' => '謝',
 '谣' => '謠',
 '谤' => '謗',
-'è°¥' => 'è¬\9a',
+'è°¥' => 'è«¡',
 '谦' => '謙',
 '谧' => '謐',
 '谨' => '謹',
@@ -1890,7 +1909,6 @@ $zh2Hant = array(
 '鉴' => '鑒',
 '銮' => '鑾',
 '錾' => '鏨',
-'鎭' => '鎮',
 '钅' => '釒',
 '钆' => '釓',
 '钇' => '釔',
@@ -1927,7 +1945,7 @@ $zh2Hant = array(
 '钦' => '欽',
 '钧' => '鈞',
 '钨' => '鎢',
-'é\92©' => 'é\89¤',
+'é\92©' => 'é\88\8e',
 '钪' => '鈧',
 '钫' => '鈁',
 '钬' => '鈥',
@@ -2089,7 +2107,7 @@ $zh2Hant = array(
 '镈' => '鎛',
 '镉' => '鎘',
 '镊' => '鑷',
-'é\95\8b' => 'é\8e²',
+'é\95\8b' => 'é\92\82',
 '镌' => '鐫',
 '镍' => '鎳',
 '镎' => '鎿',
@@ -2144,7 +2162,7 @@ $zh2Hant = array(
 '闯' => '闖',
 '闰' => '閏',
 '闱' => '闈',
-'é\97²' => 'é\96\91',
+'é\97²' => 'é\96\92',
 '闳' => '閎',
 '间' => '間',
 '闵' => '閔',
@@ -2218,7 +2236,6 @@ $zh2Hant = array(
 '鞑' => '韃',
 '鞒' => '鞽',
 '鞯' => '韉',
-'鞲' => '韝',
 '韦' => '韋',
 '韧' => '韌',
 '韨' => '韍',
@@ -2515,6 +2532,7 @@ $zh2Hant = array(
 '鳡' => '鱤',
 '鳢' => '鱧',
 '鳣' => '鱣',
+'鳤' => '䲘',
 '鸟' => '鳥',
 '鸠' => '鳩',
 '鸡' => '雞',
@@ -2604,6 +2622,7 @@ $zh2Hant = array(
 '鹾' => '鹺',
 '麦' => '麥',
 '麸' => '麩',
+'麹' => '麴',
 '黄' => '黃',
 '黉' => '黌',
 '黡' => '黶',
@@ -2614,7 +2633,6 @@ $zh2Hant = array(
 '鼍' => '鼉',
 '鼗' => '鞀',
 '鼹' => '鼴',
-'齄' => '齇',
 '齐' => '齊',
 '齑' => '齏',
 '齿' => '齒',
@@ -2642,7 +2660,6 @@ $zh2Hant = array(
 '𠚳' => '𠠎',
 '𠛅' => '剾',
 '𠛆' => '𠞆',
-'𠮶' => '嗰',
 '𠯟' => '哯',
 '𠯠' => '噅',
 '𠲥' => '𡅏',
@@ -2872,6 +2889,7 @@ $zh2Hant = array(
 '𩧿' => '䮠',
 '𩨀' => '騔',
 '𩨁' => '䮞',
+'𩨂' => '驄',
 '𩨃' => '騝',
 '𩨄' => '騪',
 '𩨅' => '𩤸',
@@ -2897,7 +2915,6 @@ $zh2Hant = array(
 '𩽽' => '𩶱',
 '𩽾' => '鮟',
 '𩽿' => '𩶰',
-'𩾀' => '鮕',
 '𩾁' => '鯄',
 '𩾂' => '䲖',
 '𩾃' => '鮸',
@@ -2926,6 +2943,7 @@ $zh2Hant = array(
 '𪉐' => '𪃍',
 '𪉑' => '鷔',
 '𪉒' => '𪄕',
+'𪉓' => '𪈼',
 '𪉔' => '𪄆',
 '𪉕' => '𪇳',
 '𪎈' => '䴬',
@@ -2951,7 +2969,6 @@ $zh2Hant = array(
 '𫌀' => '襀',
 '𫌨' => '覼',
 '𫍙' => '訑',
-'𫍟' => '詑',
 '𫍢' => '譊',
 '𫍰' => '諰',
 '𫍲' => '謏',
@@ -2985,14 +3002,18 @@ $zh2Hant = array(
 '𫛢' => '鸋',
 '𫛶' => '鶒',
 '𫛸' => '鶗',
+'0出現' => '0出現',
+'0出现' => '0出現',
+'0出線' => '0出線',
+'0出线' => '0出線',
 '0只支持' => '0只支持',
 '0只支援' => '0只支援',
 '0周后' => '0周後',
-'0多只' => '0多隻',
 '0天后' => '0天後',
 '0年' => '0年',
 '0只' => '0隻',
 '0余' => '0餘',
+'0出' => '0齣',
 '1只支持' => '1只支持',
 '1只支援' => '1只支援',
 '1周后' => '1周後',
@@ -3057,12 +3078,15 @@ $zh2Hant = array(
 '9只' => '9隻',
 '9余' => '9餘',
 '·范' => '·范',
-'、克制' => '、剋制',
-'。克制' => '。剋制',
+'’s' => '’s',
 '〇周后' => '〇周後',
 '〇年' => '〇年',
 '〇只' => '〇隻',
 '〇余' => '〇餘',
+'“' => '「',
+'”' => '」',
+'‘' => '『',
+'’' => '』',
 '一干二净' => '一乾二淨',
 '一伙人' => '一伙人',
 '一伙头' => '一伙頭',
@@ -3070,15 +3094,8 @@ $zh2Hant = array(
 '一并' => '一併',
 '一个' => '一個',
 '一个准' => '一個準',
-'一出刊' => '一出刊',
-'一出口' => '一出口',
-'一出版' => '一出版',
-'一出生' => '一出生',
-'一出祁山' => '一出祁山',
-'一出逃' => '一出逃',
 '一划' => '一划',
 '一半只' => '一半只',
-'一吊錢' => '一吊錢',
 '一吊钱' => '一吊錢',
 '一周后' => '一周後',
 '一地里' => '一地裡',
@@ -3092,7 +3109,6 @@ $zh2Hant = array(
 '一干部下' => '一干部下',
 '一年' => '一年',
 '一年里' => '一年裡',
-'一吊' => '一弔',
 '一别头' => '一彆頭',
 '一斗斗' => '一斗斗',
 '一树百获' => '一樹百穫',
@@ -3102,23 +3118,23 @@ $zh2Hant = array(
 '一目了然' => '一目了然',
 '一扎' => '一紮',
 '一冲' => '一衝',
+'一厘一毫' => '一釐一毫',
 '一锅面' => '一鍋麵',
 '一只' => '一隻',
 '一面食' => '一面食',
-'一头长发' => '一頭長髮',
 '一余' => '一餘',
 '一发千钧' => '一髮千鈞',
 '一哄而散' => '一鬨而散',
+'一出剧' => '一齣劇',
+'一出喜剧' => '一齣喜劇',
+'一出好戏' => '一齣好戲',
 '一出子' => '一齣子',
+'一出悲剧' => '一齣悲劇',
+'一出戏' => '一齣戲',
+'一出电影' => '一齣電影',
 '丁丁当当' => '丁丁當當',
 '丁丑' => '丁丑',
 '七个' => '七個',
-'七出刊' => '七出刊',
-'七出口' => '七出口',
-'七出版' => '七出版',
-'七出生' => '七出生',
-'七出祁山' => '七出祁山',
-'七出逃' => '七出逃',
 '七周后' => '七周後',
 '七天后' => '七天後',
 '七年' => '七年',
@@ -3129,12 +3145,6 @@ $zh2Hant = array(
 '万俟' => '万俟',
 '万旗' => '万旗',
 '三个' => '三個',
-'三出刊' => '三出刊',
-'三出口' => '三出口',
-'三出版' => '三出版',
-'三出生' => '三出生',
-'三出祁山' => '三出祁山',
-'三出逃' => '三出逃',
 '三周后' => '三周後',
 '三天后' => '三天後',
 '三年' => '三年',
@@ -3143,52 +3153,52 @@ $zh2Hant = array(
 '三扎' => '三紮',
 '三统历' => '三統曆',
 '三统历史' => '三統歷史',
-'三复' => '三複',
 '三只' => '三隻',
 '三余' => '三餘',
+'三出戏' => '三齣戲',
+'上天里' => '上天里',
 '上梁山' => '上梁山',
 '上梁' => '上樑',
+'上台面' => '上檯面',
 '上签名' => '上簽名',
 '上签字' => '上簽字',
+'上签定' => '上簽定',
 '上签写' => '上簽寫',
 '上签收' => '上簽收',
+'上签发' => '上簽發',
+'上签约' => '上簽約',
+'上签署' => '上簽署',
+'上签订' => '上簽訂',
 '上签' => '上籤',
-'上药' => '上藥',
+'上系上' => '上繫上',
 '上课钟' => '上課鐘',
 '上面糊' => '上面糊',
-'下仑路' => '下崙路',
 '下于' => '下於',
 '下梁' => '下樑',
 '下注解' => '下注解',
 '下签名' => '下簽名',
 '下签字' => '下簽字',
+'下签定' => '下簽定',
 '下签写' => '下簽寫',
 '下签收' => '下簽收',
+'下签发' => '下簽發',
+'下签约' => '下簽約',
+'下签署' => '下簽署',
+'下签订' => '下簽訂',
 '下签' => '下籤',
-'下药' => '下藥',
 '下课钟' => '下課鐘',
 '不干不净' => '不乾不淨',
-'不占' => '不佔',
 '不克自制' => '不克自制',
-'不准他' => '不准他',
-'不准你' => '不准你',
-'不准她' => '不准她',
-'不准它' => '不准它',
-'不准我' => '不准我',
-'不准没' => '不准沒',
-'不准翻印' => '不准翻印',
-'不准许' => '不准許',
-'不准谁' => '不准誰',
-'不克制' => '不剋制',
 '不加自制' => '不加自制',
 '不占凶吉' => '不占凶吉',
 '不占卜' => '不占卜',
 '不占吉凶' => '不占吉凶',
 '不占算' => '不占算',
 '不只' => '不只',
+'不太准' => '不太準',
 '不好干涉' => '不好干涉',
-'不好干预' => '不好干預',
 '不好干預' => '不好干預',
+'不好干预' => '不好干預',
 '不嫌母丑' => '不嫌母醜',
 '不寒而栗' => '不寒而慄',
 '不干事' => '不干事',
@@ -3203,30 +3213,27 @@ $zh2Hant = array(
 '不干涉' => '不干涉',
 '不干牠' => '不干牠',
 '不干犯' => '不干犯',
-'不干预' => '不干預',
 '不干預' => '不干預',
+'不干预' => '不干預',
 '不干' => '不幹',
 '不吊' => '不弔',
+'不卷' => '不捲',
 '不采' => '不採',
 '不斗膽' => '不斗膽',
 '不斗胆' => '不斗膽',
 '不断发' => '不斷發',
 '不每只' => '不每只',
-'不准' => '不準',
-'不准确' => '不準確',
 '不谷' => '不穀',
-'不药而愈' => '不藥而癒',
 '不托' => '不託',
 '不负所托' => '不負所托',
 '不通吊庆' => '不通弔慶',
 '不丑' => '不醜',
-'不采声' => '不采聲',
 '不采聲' => '不采聲',
+'不采声' => '不采聲',
 '不锈钢' => '不鏽鋼',
 '不食干腊' => '不食乾腊',
 '不斗' => '不鬥',
 '丑三' => '丑三',
-'丑婆子' => '丑婆子',
 '丑年' => '丑年',
 '丑日' => '丑日',
 '丑旦' => '丑旦',
@@ -3237,13 +3244,10 @@ $zh2Hant = array(
 '且于' => '且於',
 '世田谷' => '世田谷',
 '世界杯' => '世界盃',
-'ä¸\96ç\95\8cé\87\8c' => 'ä¸\96ç\95\8c裡',
+'ä¸\96纪é\87\8c' => 'ä¸\96ç´\80裡',
 '世纪钟' => '世紀鐘',
 '世纪钟表' => '世紀鐘錶',
 '丢丑' => '丟醜',
-'并不准' => '並不准',
-'并不准确' => '並不準確',
-'并存着' => '並存著',
 '并曰入淀' => '並曰入澱',
 '并发动' => '並發動',
 '并发展' => '並發展',
@@ -3256,20 +3260,24 @@ $zh2Hant = array(
 '中型钟表面' => '中型鐘表面',
 '中型钟表' => '中型鐘錶',
 '中型钟面' => '中型鐘面',
-'中仑' => '中崙',
 '中岳' => '中嶽',
 '中庄子' => '中庄子',
 '中文里' => '中文裡',
 '中于' => '中於',
+'中签名' => '中簽名',
+'中签字' => '中簽字',
+'中签定' => '中簽定',
+'中签写' => '中簽寫',
+'中签收' => '中簽收',
+'中签发' => '中簽發',
+'中签约' => '中簽約',
+'中签署' => '中簽署',
+'中签订' => '中簽訂',
 '中签' => '中籤',
-'中美发表' => '中美發表',
-'中药' => '中藥',
-'中西合并' => '中西合併',
 '中风后' => '中風後',
 '丰儀' => '丰儀',
 '丰仪' => '丰儀',
 '丰南' => '丰南',
-'丰台' => '丰台',
 '丰姿' => '丰姿',
 '丰容' => '丰容',
 '丰度' => '丰度',
@@ -3280,14 +3288,20 @@ $zh2Hant = array(
 '丰神' => '丰神',
 '丰茸' => '丰茸',
 '丰采' => '丰采',
-'丰韵' => '丰韻',
 '丰韻' => '丰韻',
-'丸药' => '丸藥',
-'丹药' => '丹藥',
+'丰韵' => '丰韻',
 '主仆' => '主僕',
 '主干' => '主幹',
 '主钟差' => '主鐘差',
 '主钟曲线' => '主鐘曲線',
+'乃系' => '乃係',
+'么么唱唱' => '么么唱唱',
+'么儿' => '么兒',
+'么喝' => '么喝',
+'么妹' => '么妹',
+'么弟' => '么弟',
+'么爷' => '么爺',
+'么雞' => '么雞',
 '么么小丑' => '么麼小丑',
 '之一只' => '之一只',
 '之二只' => '之二只',
@@ -3295,16 +3309,11 @@ $zh2Hant = array(
 '之征' => '之徵',
 '之托' => '之託',
 '之钟' => '之鐘',
+'之鉴' => '之鑑',
 '之余' => '之餘',
 '乙丑' => '乙丑',
 '九世之仇' => '九世之讎',
 '九个' => '九個',
-'九出刊' => '九出刊',
-'九出口' => '九出口',
-'九出版' => '九出版',
-'九出生' => '九出生',
-'九出祁山' => '九出祁山',
-'九出逃' => '九出逃',
 '九周后' => '九周後',
 '九天后' => '九天後',
 '九年' => '九年',
@@ -3312,13 +3321,12 @@ $zh2Hant = array(
 '九扎' => '九紮',
 '九只' => '九隻',
 '九余' => '九餘',
-'九龙表行' => '九龍表行',
-'九龍表行' => '九龍表行',
-'也克制' => '也剋制',
 '也斗了胆' => '也斗了膽',
+'干上' => '乾上',
 '干干' => '乾乾',
 '干干儿的' => '乾乾兒的',
 '干干净净' => '乾乾淨淨',
+'干了' => '乾了',
 '干井' => '乾井',
 '干个够' => '乾個夠',
 '干儿' => '乾兒',
@@ -3327,7 +3335,6 @@ $zh2Hant = array(
 '干刻版' => '乾刻版',
 '干剥剥' => '乾剝剝',
 '干卦' => '乾卦',
-'干吊着下巴' => '乾吊著下巴',
 '干和' => '乾和',
 '干咳' => '乾咳',
 '干咽' => '乾咽',
@@ -3357,6 +3364,7 @@ $zh2Hant = array(
 '干巴' => '乾巴',
 '干式' => '乾式',
 '干弟' => '乾弟',
+'干得' => '乾得',
 '干急' => '乾急',
 '干性' => '乾性',
 '干打雷' => '乾打雷',
@@ -3393,13 +3401,13 @@ $zh2Hant = array(
 '干湿' => '乾濕',
 '干熬' => '乾熬',
 '干热' => '乾熱',
-'干熱' => '乾熱',
 '干灯盏' => '乾燈盞',
 '干燥' => '乾燥',
 '干爸' => '乾爸',
 '干爹' => '乾爹',
 '干爽' => '乾爽',
 '干片' => '乾片',
+'干物' => '乾物',
 '干生受' => '乾生受',
 '干生子' => '乾生子',
 '干产' => '乾產',
@@ -3437,7 +3445,6 @@ $zh2Hant = array(
 '干草' => '乾草',
 '干菜' => '乾菜',
 '干落' => '乾落',
-'干着' => '乾著',
 '干姜' => '乾薑',
 '干薪' => '乾薪',
 '干虔' => '乾虔',
@@ -3471,27 +3478,21 @@ $zh2Hant = array(
 '干鱼' => '乾魚',
 '干鲜' => '乾鮮',
 '干面' => '乾麵',
+'乱发生' => '亂發生',
+'乱发脾气' => '亂發脾氣',
 '乱发' => '亂髮',
 '乱哄' => '亂鬨',
 '乱哄不过来' => '亂鬨不過來',
-'了克制' => '了剋制',
 '了然后' => '了然後',
 '事情干脆' => '事情干脆',
 '事有斗巧' => '事有鬥巧',
-'事迹' => '事迹',
+'事里' => '事裡',
 '事都干脆' => '事都干脆',
 '二不棱登' => '二不稜登',
 '二个' => '二個',
-'二出刊' => '二出刊',
-'二出口' => '二出口',
-'二出版' => '二出版',
-'二出生' => '二出生',
-'二出祁山' => '二出祁山',
-'二出逃' => '二出逃',
 '二只得' => '二只得',
 '二周后' => '二周後',
 '二天后' => '二天後',
-'二仑' => '二崙',
 '二年' => '二年',
 '二缶钟惑' => '二缶鐘惑',
 '二老板' => '二老板',
@@ -3506,13 +3507,13 @@ $zh2Hant = array(
 '于仲文' => '于仲文',
 '于佳卉' => '于佳卉',
 '于来山' => '于來山',
-'于伟国' => '于偉國',
 '于偉國' => '于偉國',
+'于伟国' => '于偉國',
 '于光新' => '于光新',
 '于光遠' => '于光遠',
 '于光远' => '于光遠',
-'于克-蘭多縣' => '于克-蘭多縣',
 '于克-兰多县' => '于克-蘭多縣',
+'于克-蘭多縣' => '于克-蘭多縣',
 '于克勒' => '于克勒',
 '于再清' => '于再清',
 '于冕' => '于冕',
@@ -3523,20 +3524,20 @@ $zh2Hant = array(
 '于化虎' => '于化虎',
 '于占元' => '于占元',
 '于友泽' => '于友澤',
-'于台煙' => '于台煙',
 '于台烟' => '于台煙',
+'于台煙' => '于台煙',
 '于右任' => '于右任',
 '于吉' => '于吉',
 '于和伟' => '于和偉',
 '于品海' => '于品海',
-'于国桢' => '于國楨',
 '于國楨' => '于國楨',
+'于国桢' => '于國楨',
 '于国治' => '于國治',
 '于國治' => '于國治',
-'于坚' => '于堅',
 '于堅' => '于堅',
-'äº\8e大寶' => 'äº\8e大寶',
+'äº\8eå\9d\9a' => 'äº\8eå \85',
 '于大宝' => '于大寶',
+'于大寶' => '于大寶',
 '于天仁' => '于天仁',
 '于天龙' => '于天龍',
 '于奇库杜克' => '于奇庫杜克',
@@ -3546,31 +3547,32 @@ $zh2Hant = array(
 '于娟' => '于娟',
 '于子千' => '于子千',
 '于孔兼' => '于孔兼',
-'于學忠' => '于學忠',
 '于学忠' => '于學忠',
+'于學忠' => '于學忠',
 '于家堡' => '于家堡',
 '于寘' => '于寘',
+'于宝轩' => '于寶軒',
 '于小伟' => '于小偉',
 '于小偉' => '于小偉',
 '于小彤' => '于小彤',
 '于小惠' => '于小惠',
 '于少保' => '于少保',
 '于山' => '于山',
-'于山国' => '于山國',
 '于山國' => '于山國',
-'äº\8e帥' => 'äº\8e帥',
+'äº\8eå±±å\9b½' => 'äº\8eå±±å\9c\8b',
 '于帅' => '于帥',
+'于帥' => '于帥',
 '于幼軍' => '于幼軍',
 '于幼军' => '于幼軍',
 '于康震' => '于康震',
-'于廣洲' => '于廣洲',
 '于广洲' => '于廣洲',
+'于廣洲' => '于廣洲',
 '于式枚' => '于式枚',
-'于從濂' => '于從濂',
 '于从濂' => '于從濂',
+'于從濂' => '于從濂',
 '于德海' => '于德海',
-'于志宁' => '于志寧',
 '于志寧' => '于志寧',
+'于志宁' => '于志寧',
 '于忠肃集' => '于忠肅集',
 '于思' => '于思',
 '于慎行' => '于慎行',
@@ -3583,29 +3585,28 @@ $zh2Hant = array(
 '于敏中' => '于敏中',
 '于斌' => '于斌',
 '于斯塔德' => '于斯塔德',
-'于斯纳尔斯贝里' => '于斯納爾斯貝里',
 '于斯納爾斯貝里' => '于斯納爾斯貝里',
-'于斯达尔' => '于斯達爾',
+'于斯纳尔斯贝里' => '于斯納爾斯貝里',
 '于斯達爾' => '于斯達爾',
-'äº\8eæ\98\8eæ¶\9b' => 'äº\8eæ\98\8e濤',
+'äº\8eæ\96¯è¾¾å°\94' => 'äº\8eæ\96¯é\81\94ç\88¾',
 '于明濤' => '于明濤',
+'于明涛' => '于明濤',
 '于是之' => '于是之',
 '于晨楠' => '于晨楠',
 '于晴' => '于晴',
-'于會泳' => '于會泳',
 '于会泳' => '于會泳',
-'äº\8eæ ¹ä¼\9f' => 'äº\8eæ ¹å\81\89',
+'äº\8eæ\9c\83æ³³' => 'äº\8eæ\9c\83æ³³',
 '于根偉' => '于根偉',
+'于根伟' => '于根偉',
 '于格' => '于格',
-'于楓' => '于楓',
 '于枫' => '于楓',
+'于楓' => '于楓',
 '于荣光' => '于榮光',
 '于樂' => '于樂',
-'于树洁' => '于樹潔',
 '于樹潔' => '于樹潔',
+'于树洁' => '于樹潔',
 '于欣' => '于欣',
 '于欣源' => '于欣源',
-'于正升' => '于正昇',
 '于正昇' => '于正昇',
 '于正昌' => '于正昌',
 '于归' => '于歸',
@@ -3614,25 +3615,25 @@ $zh2Hant = array(
 '于江震' => '于江震',
 '于波' => '于波',
 '于洋' => '于洋',
-'于洪区' => '于洪區',
 '于洪區' => '于洪區',
+'于洪区' => '于洪區',
 '于浩威' => '于浩威',
 '于海' => '于海',
 '于海洋' => '于海洋',
-'于湘兰' => '于湘蘭',
 '于湘蘭' => '于湘蘭',
+'于湘兰' => '于湘蘭',
 '于漢超' => '于漢超',
 '于汉超' => '于漢超',
 '于澄' => '于澄',
-'于泽尔' => '于澤爾',
 '于澤爾' => '于澤爾',
+'于泽尔' => '于澤爾',
 '于涛' => '于濤',
 '于濤' => '于濤',
 '于熙珍' => '于熙珍',
-'于爾岑' => '于爾岑',
 '于尔岑' => '于爾岑',
-'于爾根' => '于爾根',
+'于爾岑' => '于爾岑',
 '于尔根' => '于爾根',
+'于爾根' => '于爾根',
 '于尔里克' => '于爾里克',
 '于爾里克' => '于爾里克',
 '于特森' => '于特森',
@@ -3645,8 +3646,8 @@ $zh2Hant = array(
 '于美人' => '于美人',
 '于耘婕' => '于耘婕',
 '于若木' => '于若木',
-'于蔭霖' => '于蔭霖',
 '于荫霖' => '于蔭霖',
+'于蔭霖' => '于蔭霖',
 '于衡' => '于衡',
 '于西翰' => '于西翰',
 '于謙' => '于謙',
@@ -3662,35 +3663,36 @@ $zh2Hant = array(
 '于道泉' => '于道泉',
 '于远伟' => '于遠偉',
 '于遠偉' => '于遠偉',
-'于都縣' => '于都縣',
 '于都县' => '于都縣',
+'于都縣' => '于都縣',
 '于里察' => '于里察',
 '于阗' => '于闐',
-'于雙戈' => '于雙戈',
 '于双戈' => '于雙戈',
+'于雙戈' => '于雙戈',
 '于云鹤' => '于雲鶴',
 '于震' => '于震',
 '于震寰' => '于震寰',
 '于震环' => '于震環',
 '于震環' => '于震環',
 '于靖' => '于靖',
+'于非暗' => '于非闇',
 '于非闇' => '于非闇',
 '于韋斯屈萊' => '于韋斯屈萊',
 '于韦斯屈莱' => '于韋斯屈萊',
 '于风政' => '于風政',
 '于風政' => '于風政',
 '于飞' => '于飛',
-'于飞岛' => '于飛島',
 '于飛島' => '于飛島',
+'于飞岛' => '于飛島',
 '于余曲折' => '于餘曲折',
 '于鬯' => '于鬯',
 '于魁智' => '于魁智',
-'于凤桐' => '于鳳桐',
 '于鳳桐' => '于鳳桐',
-'于凤至' => '于鳳至',
+'于凤桐' => '于鳳桐',
 '于鳳至' => '于鳳至',
-'于默奥' => '于默奧',
+'于凤至' => '于鳳至',
 '于默奧' => '于默奧',
+'于默奥' => '于默奧',
 '云乎' => '云乎',
 '云云' => '云云',
 '云何' => '云何',
@@ -3700,24 +3702,19 @@ $zh2Hant = array(
 '云尔' => '云爾',
 '云:' => '云:',
 '五个' => '五個',
-'五出刊' => '五出刊',
-'五出口' => '五出口',
-'五出版' => '五出版',
-'五出生' => '五出生',
-'五出祁山' => '五出祁山',
-'五出逃' => '五出逃',
 '五周后' => '五周後',
 '五天后' => '五天後',
 '五岳' => '五嶽',
 '五年' => '五年',
 '五谷' => '五穀',
 '五扎' => '五紮',
+'五脏' => '五臟',
 '五行生克' => '五行生剋',
 '五谷王北街' => '五谷王北街',
 '五谷王南街' => '五谷王南街',
 '五只' => '五隻',
 '五余' => '五餘',
-'äº\94å\87º' => 'äº\94é½£',
+'äº\95å¹²' => 'äº\95å¹¹',
 '井干摧败' => '井榦摧敗',
 '井里' => '井裡',
 '亚于' => '亞於',
@@ -3726,53 +3723,31 @@ $zh2Hant = array(
 '交游' => '交遊',
 '交哄' => '交鬨',
 '亦云' => '亦云',
-'亦庄亦谐' => '亦莊亦諧',
 '亮丑' => '亮醜',
 '亮钟' => '亮鐘',
 '人云' => '人云',
-'人参加' => '人參加',
-'人参展' => '人參展',
-'人参战' => '人參戰',
-'人参拜' => '人參拜',
-'人参政' => '人參政',
-'人参照' => '人參照',
-'人参看' => '人參看',
-'人参禅' => '人參禪',
-'人参考' => '人參考',
-'人参与' => '人參與',
-'人参见' => '人參見',
-'人参观' => '人參觀',
-'人参谋' => '人參謀',
-'人参议' => '人參議',
-'人参赞' => '人參贊',
-'人参透' => '人參透',
-'人参选' => '人參選',
-'人参酌' => '人參酌',
-'人参阅' => '人參閱',
 '人如风后入江云' => '人如風後入江雲',
 '人欲' => '人慾',
+'人数只' => '人數只',
+'人数里' => '人數裡',
 '人物志' => '人物誌',
-'人参' => '人蔘',
+'人生天里' => '人生天里',
 '什锦面' => '什錦麵',
-'什么' => '什麼',
 '仇仇' => '仇讎',
-'今天' => '今天',
-'他克制' => '他剋制',
+'介胄' => '介冑',
 '他钟' => '他鐘',
 '付托' => '付託',
 '仙后' => '仙后',
-'仙药' => '仙藥',
+'仙后座' => '仙后座',
+'代数里' => '代數裡',
+'代理发行' => '代理發行',
 '代码表' => '代碼表',
 '代表' => '代表',
 '令人发指' => '令人髮指',
 '以自制' => '以自制',
-'ä»°è\8d¯' => 'ä»°è\97¥',
+'仲è£\81å\88¶' => '仲è£\81å\88',
 '件钟' => '件鐘',
-'任何表演' => '任何表演',
-'任何表示' => '任何表示',
-'任何表達' => '任何表達',
-'任何表达' => '任何表達',
-'任何表' => '任何錶',
+'价川' => '价川',
 '任何钟' => '任何鐘',
 '任何钟表' => '任何鐘錶',
 '任教于' => '任教於',
@@ -3797,270 +3772,19 @@ $zh2Hant = array(
 '伴游' => '伴遊',
 '似于' => '似於',
 '但云' => '但云',
-'布于' => '佈於',
-'布道' => '佈道',
-'布雷、' => '佈雷、',
-'布雷。' => '佈雷。',
-'布雷封锁' => '佈雷封鎖',
-'布雷的' => '佈雷的',
-'布雷艇' => '佈雷艇',
-'布雷舰' => '佈雷艦',
-'布雷速度' => '佈雷速度',
-'布雷,' => '佈雷,',
-'布雷;' => '佈雷;',
 '位于' => '位於',
 '位准' => '位準',
 '低洼' => '低洼',
 '住扎' => '住紮',
-'占0' => '佔0',
-'占1' => '佔1',
-'占2' => '佔2',
-'占3' => '佔3',
-'占4' => '佔4',
-'占5' => '佔5',
-'占6' => '佔6',
-'占7' => '佔7',
-'占8' => '佔8',
-'占9' => '佔9',
-'占A' => '佔A',
-'占B' => '佔B',
-'占C' => '佔C',
-'占D' => '佔D',
-'占E' => '佔E',
-'占F' => '佔F',
-'占G' => '佔G',
-'占H' => '佔H',
-'占I' => '佔I',
-'占J' => '佔J',
-'占K' => '佔K',
-'占L' => '佔L',
-'占M' => '佔M',
-'占N' => '佔N',
-'占O' => '佔O',
-'占P' => '佔P',
-'占Q' => '佔Q',
-'占R' => '佔R',
-'占S' => '佔S',
-'占T' => '佔T',
-'占U' => '佔U',
-'占V' => '佔V',
-'占W' => '佔W',
-'占X' => '佔X',
-'占Y' => '佔Y',
-'占Z' => '佔Z',
-'占a' => '佔a',
-'占b' => '佔b',
-'占c' => '佔c',
-'占d' => '佔d',
-'占e' => '佔e',
-'占f' => '佔f',
-'占g' => '佔g',
-'占h' => '佔h',
-'占i' => '佔i',
-'占j' => '佔j',
-'占k' => '佔k',
-'占l' => '佔l',
-'占m' => '佔m',
-'占n' => '佔n',
-'占o' => '佔o',
-'占p' => '佔p',
-'占q' => '佔q',
-'占r' => '佔r',
-'占s' => '佔s',
-'占t' => '佔t',
-'占u' => '佔u',
-'占v' => '佔v',
-'占w' => '佔w',
-'占x' => '佔x',
-'占y' => '佔y',
-'占z' => '佔z',
-'占〇' => '佔〇',
-'占一' => '佔一',
-'占七' => '佔七',
-'占万' => '佔万',
-'占三' => '佔三',
-'占上风' => '佔上風',
-'占下' => '佔下',
-'占下风' => '佔下風',
-'占不占' => '佔不佔',
-'占不足' => '佔不足',
-'占世界' => '佔世界',
-'占中' => '佔中',
-'占主' => '佔主',
-'占九' => '佔九',
-'占了' => '佔了',
-'占二' => '佔二',
-'占五' => '佔五',
-'占人便宜' => '佔人便宜',
-'占位' => '佔位',
-'占住' => '佔住',
-'占占' => '佔佔',
-'占便宜' => '佔便宜',
-'占俄' => '佔俄',
-'占个' => '佔個',
-'占个位' => '佔個位',
-'占停车' => '佔停車',
-'占亿' => '佔億',
-'占优' => '佔優',
-'占先' => '佔先',
-'占光' => '佔光',
-'占全' => '佔全',
-'占两' => '佔兩',
-'占八' => '佔八',
-'占六' => '佔六',
-'占分' => '佔分',
-'占到' => '佔到',
-'占加' => '佔加',
-'占劣' => '佔劣',
-'占北' => '佔北',
-'占十' => '佔十',
-'占千' => '佔千',
-'占半' => '佔半',
-'占南' => '佔南',
-'占印' => '佔印',
-'占去' => '佔去',
-'占取' => '佔取',
-'占台' => '佔台',
-'占哺乳' => '佔哺乳',
-'占嗫' => '佔囁',
-'占四' => '佔四',
-'占国内' => '佔國內',
-'占在' => '佔在',
-'占地' => '佔地',
-'占场' => '佔場',
-'占压' => '佔壓',
-'占多' => '佔多',
-'占大' => '佔大',
-'占好' => '佔好',
-'占小' => '佔小',
-'占少' => '佔少',
-'占局部' => '佔局部',
-'占屋' => '佔屋',
-'占山' => '佔山',
-'占市场' => '佔市場',
-'占平均' => '佔平均',
-'占床' => '佔床',
-'占座' => '佔座',
-'占后' => '佔後',
-'占得' => '佔得',
-'占德' => '佔德',
-'占掉' => '佔掉',
-'占据' => '佔據',
-'占整体' => '佔整體',
-'占新' => '佔新',
-'占有' => '佔有',
-'占有欲' => '佔有慾',
-'占东' => '佔東',
-'占查' => '佔查',
-'占次' => '佔次',
-'占比' => '佔比',
-'占法' => '佔法',
-'占满' => '佔滿',
-'占澳' => '佔澳',
-'占为' => '佔為',
-'占率' => '佔率',
-'占用' => '佔用',
 '占毕' => '佔畢',
-'占百' => '佔百',
-'占尽' => '佔盡',
-'占稳' => '佔穩',
-'占网' => '佔網',
-'占线' => '佔線',
-'占总' => '佔總',
-'占缺' => '佔缺',
-'占美' => '佔美',
-'占耕' => '佔耕',
-'占至多' => '佔至多',
-'占至少' => '佔至少',
-'占英' => '佔英',
-'占着' => '佔著',
-'占葡' => '佔葡',
-'占苏' => '佔蘇',
-'占西' => '佔西',
-'占资源' => '佔資源',
-'占起' => '佔起',
-'占超过' => '佔超過',
-'占过' => '佔過',
-'占道' => '佔道',
-'占零' => '佔零',
-'占領' => '佔領',
-'占领' => '佔領',
-'占头' => '佔頭',
 '占头筹' => '佔頭籌',
-'占饭' => '佔飯',
-'占香' => '佔香',
-'占马' => '佔馬',
 '占高枝儿' => '佔高枝兒',
-'占0' => '佔0',
-'占1' => '佔1',
-'占2' => '佔2',
-'占3' => '佔3',
-'占4' => '佔4',
-'占5' => '佔5',
-'占6' => '佔6',
-'占7' => '佔7',
-'占8' => '佔8',
-'占9' => '佔9',
-'占A' => '佔A',
-'占B' => '佔B',
-'占C' => '佔C',
-'占D' => '佔D',
-'占E' => '佔E',
-'占F' => '佔F',
-'占G' => '佔G',
-'占H' => '佔H',
-'占I' => '佔I',
-'占J' => '佔J',
-'占K' => '佔K',
-'占L' => '佔L',
-'占M' => '佔M',
-'占N' => '佔N',
-'占O' => '佔O',
-'占P' => '佔P',
-'占Q' => '佔Q',
-'占R' => '佔R',
-'占S' => '佔S',
-'占T' => '佔T',
-'占U' => '佔U',
-'占V' => '佔V',
-'占W' => '佔W',
-'占X' => '佔X',
-'占Y' => '佔Y',
-'占Z' => '佔Z',
-'占a' => '佔a',
-'占b' => '佔b',
-'占c' => '佔c',
-'占d' => '佔d',
-'占e' => '佔e',
-'占f' => '佔f',
-'占g' => '佔g',
-'占h' => '佔h',
-'占i' => '佔i',
-'占j' => '佔j',
-'占k' => '佔k',
-'占l' => '佔l',
-'占m' => '佔m',
-'占n' => '佔n',
-'占o' => '佔o',
-'占p' => '佔p',
-'占q' => '佔q',
-'占r' => '佔r',
-'占s' => '佔s',
-'占t' => '佔t',
-'占u' => '佔u',
-'占v' => '佔v',
-'占w' => '佔w',
-'占x' => '佔x',
-'占y' => '佔y',
-'占z' => '佔z',
 '何杰' => '何杰',
-'余三胜' => '余三勝',
 '余三勝' => '余三勝',
+'余三胜' => '余三勝',
 '余光中' => '余光中',
 '余光生' => '余光生',
-'余力為' => '余力為',
 '余力为' => '余力為',
-'余姓' => '余姓',
 '余威德' => '余威德',
 '余子明' => '余子明',
 '余思敏' => '余思敏',
@@ -4069,12 +3793,13 @@ $zh2Hant = array(
 '作品里' => '作品裡',
 '作奸犯科' => '作姦犯科',
 '作准' => '作準',
-'作庄' => '作莊',
-'你克制' => '你剋制',
 '你斗了胆' => '你斗了膽',
-'你才子发昏' => '你纔子發昏',
-'佣金收益' => '佣金收益',
-'佣金费用' => '佣金費用',
+'你夸' => '你誇',
+'佣金' => '佣金',
+'佣鈿' => '佣鈿',
+'佣钿' => '佣鈿',
+'佣钱' => '佣錢',
+'佣錢' => '佣錢',
 '佳肴' => '佳肴',
 '佳里鎮' => '佳里鎮',
 '并一不二' => '併一不二',
@@ -4083,15 +3808,13 @@ $zh2Hant = array(
 '并到' => '併到',
 '并合' => '併合',
 '并名' => '併名',
-'并吞下' => '併吞下',
+'并吞' => '併吞',
 '并拢' => '併攏',
 '并案' => '併案',
 '并流' => '併流',
 '并火' => '併火',
 '并为一家' => '併為一家',
 '并为一体' => '併為一體',
-'并产' => '併產',
-'并当' => '併當',
 '并叠' => '併疊',
 '并发型模式' => '併發型模式',
 '并发模式' => '併發模式',
@@ -4102,76 +3825,56 @@ $zh2Hant = array(
 '并线' => '併線',
 '并肩子' => '併肩子',
 '并购' => '併購',
-'并除' => '併除',
 '并骨' => '併骨',
 '使其斗' => '使其鬥',
 '来于' => '來於',
-'来复' => '來複',
 '侍仆' => '侍僕',
 '供制' => '供製',
 '依依不舍' => '依依不捨',
 '依托' => '依託',
-'侵占' => '侵佔',
 '侵并' => '侵併',
-'侵占到' => '侵占到',
-'侵占罪' => '侵占罪',
-'便药' => '便藥',
+'局促' => '侷促',
 '系数' => '係數',
 '系为' => '係為',
-'俄占' => '俄佔',
 '保险柜' => '保險柜',
 '信托贸易' => '信托貿易',
 '信托' => '信託',
 '修杰楷' => '修杰楷',
 '修杰麟' => '修杰麟',
-'修炼' => '修鍊',
 '修胡刀' => '修鬍刀',
 '俯冲' => '俯衝',
-'个人' => '個人',
 '个里' => '個裡',
 '个钟' => '個鐘',
 '个钟表' => '個鐘錶',
-'们克制' => '們剋制',
 '们斗了胆' => '們斗了膽',
-'倒绷孩儿' => '倒繃孩兒',
 '幸免' => '倖免',
 '幸存' => '倖存',
 '幸幸' => '倖幸',
 '候复' => '候覆',
+'倚闲' => '倚閑',
 '倛丑' => '倛醜',
 '借听于聋' => '借聽於聾',
+'借鉴' => '借鑑',
 '倦游' => '倦遊',
-'假药' => '假藥',
+'假里' => '假裡',
 '假托' => '假託',
+'假里白' => '假里白',
 '假发' => '假髮',
 '偎干' => '偎乾',
-'做庄' => '做莊',
 '停停当当' => '停停當當',
 '停征' => '停徵',
 '停制' => '停製',
-'偷鸡不着' => '偷雞不著',
-'伪药' => '偽藥',
 '备注' => '備註',
 '家伙' => '傢伙',
-'家俱' => '傢俱',
-'家具' => '傢具',
 '催并' => '催併',
-'佣中佼佼' => '傭中佼佼',
-'佣人' => '傭人',
 '佣仆' => '傭僕',
-'佣兵' => '傭兵',
-'佣工' => '傭工',
-'佣懒' => '傭懶',
-'佣书' => '傭書',
-'佣金' => '傭金',
 '傲游' => '傲遊',
 '傲霜斗雪' => '傲霜鬥雪',
-'传位于四太子' => '傳位于四太子',
 '傳位于四太子' => '傳位于四太子',
+'传位于四太子' => '傳位于四太子',
 '传于' => '傳於',
-'伤痕累累' => '傷痕纍纍',
+'债累累' => '債纍纍',
 '傻里傻气' => '傻裡傻氣',
-'倾复' => '傾複',
 '仆人' => '僕人',
 '仆使' => '僕使',
 '仆仆' => '僕僕',
@@ -4196,15 +3899,14 @@ $zh2Hant = array(
 '雇人' => '僱人',
 '雇佣' => '僱傭',
 '雇到' => '僱到',
-'雇员' => '僱員',
 '雇工' => '僱工',
-'雇用' => '僱用',
+'雇船' => '僱船',
+'雇请' => '僱請',
+'雇车' => '僱車',
 '雇农' => '僱農',
 '仪范' => '儀範',
-'仪表' => '儀錶',
 '亿个' => '億個',
 '亿周后' => '億周後',
-'亿多只' => '億多隻',
 '亿天后' => '億天後',
 '亿年' => '億年',
 '亿只' => '億隻',
@@ -4219,13 +3921,14 @@ $zh2Hant = array(
 '尽尽' => '儘儘',
 '尽先' => '儘先',
 '尽其所有' => '儘其所有',
-'尽力' => '儘力',
 '尽可能' => '儘可能',
 '尽快' => '儘快',
 '尽早' => '儘早',
 '尽是' => '儘是',
 '尽管' => '儘管',
+'尽自' => '儘自',
 '尽速' => '儘速',
+'尽量' => '儘量',
 '优于' => '優於',
 '优游' => '優遊',
 '兀术' => '兀朮',
@@ -4243,9 +3946,7 @@ $zh2Hant = array(
 '凶案' => '兇案',
 '凶枪' => '兇槍',
 '凶横' => '兇橫',
-'凶殘' => '兇殘',
 '凶残' => '兇殘',
-'凶殺' => '兇殺',
 '凶杀' => '兇殺',
 '凶犯' => '兇犯',
 '凶狠' => '兇狠',
@@ -4253,18 +3954,17 @@ $zh2Hant = array(
 '凶疑' => '兇疑',
 '凶相' => '兇相',
 '凶险' => '兇險',
-'先占' => '先佔',
 '先采' => '先採',
 '光致致' => '光緻緻',
-'克药' => '克藥',
-'克复' => '克複',
 '免征' => '免徵',
-'党参' => '党參',
 '党太尉' => '党太尉',
+'党姓' => '党姓',
+'党家' => '党家',
 '党怀英' => '党懷英',
 '党进' => '党進',
-'党項' => '党項',
 '党项' => '党項',
+'党項' => '党項',
+'内脏' => '內臟',
 '内制' => '內製',
 '内面包' => '內面包',
 '内面包的' => '內面包的',
@@ -4276,20 +3976,15 @@ $zh2Hant = array(
 '两个' => '兩個',
 '两周后' => '兩周後',
 '两天后' => '兩天後',
-'两天晒网' => '兩天晒網',
 '两年' => '兩年',
+'两杆' => '兩桿',
 '两扎' => '兩紮',
 '两虎共斗' => '兩虎共鬥',
 '两只' => '兩隻',
 '两余' => '兩餘',
 '两鼠斗穴' => '兩鼠鬥穴',
+'两出' => '兩齣',
 '八个' => '八個',
-'八出刊' => '八出刊',
-'八出口' => '八出口',
-'八出版' => '八出版',
-'八出生' => '八出生',
-'八出祁山' => '八出祁山',
-'八出逃' => '八出逃',
 '八周后' => '八周後',
 '八天后' => '八天後',
 '八字胡' => '八字鬍',
@@ -4304,24 +3999,19 @@ $zh2Hant = array(
 '公干' => '公幹',
 '公历' => '公曆',
 '公历史' => '公歷史',
-'公厘' => '公釐',
+'公里海' => '公里海',
 '公余' => '公餘',
+'六么' => '六么',
 '六个' => '六個',
-'六出刊' => '六出刊',
-'六出口' => '六出口',
-'六出版' => '六出版',
-'六出生' => '六出生',
-'六出祁山' => '六出祁山',
-'六出逃' => '六出逃',
 '六周后' => '六周後',
 '六天后' => '六天後',
 '六年' => '六年',
+'六楼后座' => '六樓后座',
 '六谷' => '六穀',
 '六扎' => '六紮',
 '六冲' => '六衝',
 '六只' => '六隻',
 '六余' => '六餘',
-'六出' => '六齣',
 '共和历' => '共和曆',
 '共和历史' => '共和歷史',
 '其一只' => '其一只',
@@ -4335,27 +4025,17 @@ $zh2Hant = array(
 '冗余' => '冗餘',
 '冤仇' => '冤讎',
 '冥蒙' => '冥濛',
-'冬天里' => '冬天裡',
 '冬山庄' => '冬山庄',
-'冬日里' => '冬日裡',
 '冬游' => '冬遊',
-'å\86°å\86·' => 'å\86°å\86·',
+'å\86°å±±é\87\8c' => 'å\86°å±±è£¡',
 '冶游' => '冶遊',
-'冷庄子' => '冷莊子',
 '冷面相' => '冷面相',
 '冷面' => '冷麵',
 '准三后' => '准三后',
-'准不准他' => '准不准他',
-'准不准你' => '准不准你',
-'准不准她' => '准不准她',
-'准不准它' => '准不准它',
-'准不准我' => '准不准我',
-'准不准许' => '准不准許',
-'准不准谁' => '准不准誰',
 '准保護' => '准保護',
 '准保护' => '准保護',
-'准保释' => '准保釋',
 '准保釋' => '准保釋',
+'准保释' => '准保釋',
 '凌蒙初' => '凌濛初',
 '凝炼' => '凝鍊',
 '几上' => '几上',
@@ -4369,25 +4049,21 @@ $zh2Hant = array(
 '几榻' => '几榻',
 '几净窗明' => '几淨窗明',
 '几筵' => '几筵',
-'几丝' => '几絲',
 '几面上' => '几面上',
-'凶杀案' => '凶殺案',
+'凶征' => '凶徵',
 '凶相毕露' => '凶相畢露',
-'凹洞里' => '凹洞裡',
 '出乖弄丑' => '出乖弄醜',
 '出乖露丑' => '出乖露醜',
 '出征收' => '出征收',
 '出于' => '出於',
 '出游' => '出遊',
 '出丑' => '出醜',
-'å\88\86å\8d ' => 'å\88\86ä½\94',
+'å\87½æ\95°é\87\8c' => 'å\87½æ\95¸è£¡',
 '分别致' => '分别致',
 '分半钟' => '分半鐘',
 '分多钟' => '分多鐘',
 '分子钟' => '分子鐘',
 '分子云' => '分子雲',
-'分布圖' => '分布圖',
-'分布图' => '分布圖',
 '分布于' => '分布於',
 '分散于' => '分散於',
 '分钟' => '分鐘',
@@ -4395,56 +4071,49 @@ $zh2Hant = array(
 '划一桨' => '划一槳',
 '划上' => '划上',
 '划下' => '划下',
+'划不來' => '划不來',
 '划不来' => '划不來',
-'划了' => '划了',
 '划了一会' => '划了一會',
 '划来划去' => '划來划去',
+'划來划去' => '划來划去',
 '划具' => '划具',
-'划出' => '划出',
-'划到' => '划到',
 '划到岸' => '划到岸',
 '划到江心' => '划到江心',
 '划动' => '划動',
+'划動' => '划動',
 '划去' => '划去',
 '划子' => '划子',
+'划得來' => '划得來',
 '划得来' => '划得來',
 '划拳' => '划拳',
-'划桨' => '划槳',
 '划槳' => '划槳',
+'划桨' => '划槳',
 '划水' => '划水',
 '划算' => '划算',
 '划船' => '划船',
 '划艇' => '划艇',
-'划着' => '划著',
-'划着走' => '划著走',
+'划著' => '划著',
 '划行' => '划行',
 '划走' => '划走',
 '划起' => '划起',
+'划進' => '划進',
 '划进' => '划進',
-'划进来' => '划進來',
-'划进去' => '划進去',
 '划过' => '划過',
-'划过来' => '划過來',
-'划过去' => '划過去',
+'划過' => '划過',
 '划龙舟' => '划龍舟',
+'划龍舟' => '划龍舟',
 '判断发' => '判斷發',
-'别日南鸿才北去' => '別日南鴻纔北去',
-'别致' => '別緻',
-'别庄' => '別莊',
-'别着' => '別著',
 '别辟' => '別闢',
 '利欲' => '利慾',
 '利于' => '利於',
-'利欲熏心' => '利欲熏心',
 '刮来刮去' => '刮來刮去',
-'刮着' => '刮著',
 '刮起来' => '刮起來',
 '刮风下雪倒便宜' => '刮風下雪倒便宜',
 '刮胡' => '刮鬍',
+'到山里' => '到山裡',
 '制冷机' => '制冷機',
 '制签' => '制籤',
 '制钟' => '制鐘',
-'刺绣' => '刺繡',
 '刻半钟' => '刻半鐘',
 '刻多钟' => '刻多鐘',
 '刻钟' => '刻鐘',
@@ -4453,26 +4122,21 @@ $zh2Hant = array(
 '剃须' => '剃鬚',
 '削发' => '削髮',
 '削面' => '削麵',
-'克制不了' => '剋制不了',
-'克制不住' => '剋制不住',
+'克剥' => '剋剝',
 '克扣' => '剋扣',
 '克星' => '剋星',
 '克期' => '剋期',
 '克死' => '剋死',
 '克薄' => '剋薄',
-'前天' => '前天',
 '前往' => '前往',
-'前言不答后语' => '前言不答後語',
 '前面店' => '前面店',
-'å\89\94åº\84è´§' => 'å\89\94è\8e\8a貨',
+'å\89\96å\8e\98' => 'å\89\96é\87\90',
 '刚干' => '剛乾',
 '刚雇' => '剛僱',
-'刚才一载' => '剛纔一載',
 '剥制' => '剝製',
 '剩余' => '剩餘',
 '剪其发' => '剪其髮',
 '剪牡丹喂牛' => '剪牡丹喂牛',
-'剪彩' => '剪綵',
 '剪发' => '剪髮',
 '割舍' => '割捨',
 '创获' => '創穫',
@@ -4484,31 +4148,28 @@ $zh2Hant = array(
 '铲头' => '剷頭',
 '划入' => '劃入',
 '划为' => '劃為',
-'剧药' => '劇藥',
-'刘佳怜' => '劉佳怜',
 '劉佳怜' => '劉佳怜',
-'刘克庄' => '劉克莊',
+'刘佳怜' => '劉佳怜',
 '刘芸后' => '劉芸后',
-'力克制' => '力剋制',
 '力拼' => '力拚',
 '力拼众敌' => '力拼眾敵',
-'力求克制' => '力求剋制',
 '力争上游' => '力爭上遊',
+'功勋' => '功勳',
 '功致' => '功緻',
 '加氢精制' => '加氫精制',
-'加药' => '加藥',
 '加注' => '加註',
 '劣于' => '劣於',
 '助于' => '助於',
 '劫余' => '劫餘',
 '勃郁' => '勃鬱',
-'动荡' => '動蕩',
 '胜于' => '勝於',
-'劳力士表' => '勞力士錶',
 '勤仆' => '勤僕',
 '勤朴' => '勤樸',
+'勋劳' => '勳勞',
+'勋业' => '勳業',
+'勋爵' => '勳爵',
 '勋章' => '勳章',
-'å\8bºè\8d¯' => 'å\8bºè\97¥',
+'å\8b\8b绩' => 'å\8b³ç¸¾',
 '勾干' => '勾幹',
 '勾心斗角' => '勾心鬥角',
 '勾魂荡魄' => '勾魂蕩魄',
@@ -4516,24 +4177,20 @@ $zh2Hant = array(
 '包准' => '包準',
 '包谷' => '包穀',
 '包扎' => '包紮',
-'包庄' => '包莊',
 '匏系' => '匏繫',
-'å\8c\96学家' => 'å\8c\96學家',
+'å\8c\97山索é\9d¢' => 'å\8c\97山索麵',
 '北岳' => '北嶽',
 '北回线' => '北迴線',
 '北回铁路' => '北迴鐵路',
-'匡复' => '匡複',
 '匪干' => '匪幹',
 '匿于' => '匿於',
 '十个' => '十個',
-'十出刊' => '十出刊',
-'十出口' => '十出口',
-'十出版' => '十出版',
+'十出家' => '十出家',
+'十出击' => '十出擊',
 '十出生' => '十出生',
 '十出祁山' => '十出祁山',
-'十出逃' => '十出逃',
+'十出头' => '十出頭',
 '十周后' => '十周後',
-'十多只' => '十多隻',
 '十天后' => '十天後',
 '十年' => '十年',
 '十扎' => '十紮',
@@ -4542,34 +4199,31 @@ $zh2Hant = array(
 '十出' => '十齣',
 '千个' => '千個',
 '千只可' => '千只可',
-'千只夠' => '千只夠',
 '千只够' => '千只夠',
+'千只夠' => '千只夠',
 '千只怕' => '千只怕',
 '千只能' => '千只能',
 '千只足够' => '千只足夠',
 '千只足夠' => '千只足夠',
 '千周后' => '千周後',
-'千多只' => '千多隻',
 '千天后' => '千天後',
 '千年' => '千年',
 '千扎' => '千紮',
-'千丝万缕' => '千絲萬縷',
 '千回百折' => '千迴百折',
 '千回百转' => '千迴百轉',
 '千钧一发' => '千鈞一髮',
 '千只' => '千隻',
 '千余' => '千餘',
-'升官发财' => '升官發財',
 '半制品' => '半制品',
 '半只可' => '半只可',
 '半只够' => '半只夠',
 '半于' => '半於',
 '半只' => '半隻',
-'协调' => '協調',
 '协防' => '協防',
 '南京钟' => '南京鐘',
 '南京钟表' => '南京鐘錶',
 '南宫适' => '南宮适',
+'南宮适' => '南宮适',
 '南屏晚钟' => '南屏晚鐘',
 '南岳' => '南嶽',
 '南筑' => '南筑',
@@ -4578,42 +4232,34 @@ $zh2Hant = array(
 '南游' => '南遊',
 '博汇' => '博彙',
 '博采' => '博採',
+'博尔术' => '博爾朮',
 '卜云吉' => '卜云吉',
-'卞庄' => '卞莊',
-'卞庄子' => '卞莊子',
 '占了卜' => '占了卜',
 '占便宜的是呆' => '占便宜的是獃',
-'占卜' => '占卜',
-'占多数' => '占多數',
-'占有五不验' => '占有五不驗',
-'占有权' => '占有權',
 '印累绶若' => '印纍綬若',
 '印制' => '印製',
+'印鉴' => '印鑑',
 '危于' => '危於',
 '卵与石斗' => '卵與石鬥',
+'卷发' => '卷髮',
 '卷须' => '卷鬚',
 '厂部' => '厂部',
 '厝薪于火' => '厝薪於火',
 '原子钟' => '原子鐘',
 '原钟' => '原鐘',
 '历物之意' => '厤物之意',
-'参合' => '參合',
-'参考价值' => '參考價值',
-'参与' => '參與',
-'参与人员' => '參與人員',
-'参与制' => '參與制',
-'参与感' => '參與感',
-'参与者' => '參與者',
-'参观团' => '參觀團',
-'参观团体' => '參觀團體',
-'参阅' => '參閱',
+'去山里' => '去山裡',
+'参数只' => '參數只',
+'参数里' => '參數裡',
 '反朴' => '反樸',
 '反冲' => '反衝',
 '反复制' => '反複製',
-'反复' => '反覆',
 '反覆' => '反覆',
+'反复' => '反覆',
 '取舍' => '取捨',
+'受雇' => '受僱',
 '受托' => '受託',
+'丛林里' => '叢林裡',
 '口干' => '口乾',
 '口干冒' => '口干冒',
 '口干政' => '口干政',
@@ -4623,25 +4269,24 @@ $zh2Hant = array(
 '口燥唇干' => '口燥唇乾',
 '口腹之欲' => '口腹之慾',
 '口里' => '口裡',
-'口试' => '口試',
 '口钟' => '口鐘',
-'古书云' => '古書云',
 '古書云' => '古書云',
+'古书云' => '古書云',
 '古柯咸' => '古柯鹹',
-'古柯碱' => '古柯鹼',
 '古朴' => '古樸',
 '古语云' => '古語云',
 '古語云' => '古語云',
-'å\8f¤è¿¹' => 'å\8f¤è¿¹',
+'å\8f¤è¿¹' => 'å\8f¤è¹\9f',
 '古钟' => '古鐘',
 '古钟表' => '古鐘錶',
 '另辟' => '另闢',
 '叩钟' => '叩鐘',
-'只占' => '只佔',
 '只占卜' => '只占卜',
 '只占吉' => '只占吉',
 '只占神问卜' => '只占神問卜',
 '只占算' => '只占算',
+'只影响' => '只影響',
+'只影響' => '只影響',
 '只采' => '只採',
 '只冲' => '只衝',
 '只要功夫深,铁杵磨成锈花针' => '只要功夫深,鐵杵磨成鏽花針',
@@ -4659,76 +4304,58 @@ $zh2Hant = array(
 '只身子' => '只身子',
 '只身形' => '只身形',
 '只身影' => '只身影',
-'只身后' => '只身後',
 '只身後' => '只身後',
+'只身后' => '只身後',
 '只身心' => '只身心',
 '只身旁' => '只身旁',
 '只身材' => '只身材',
 '只身段' => '只身段',
 '只身为' => '只身為',
 '只身為' => '只身為',
-'只身边' => '只身邊',
 '只身邊' => '只身邊',
+'只身边' => '只身邊',
 '只身首' => '只身首',
-'只身体' => '只身體',
 '只身體' => '只身體',
+'只身体' => '只身體',
 '只身高' => '只身高',
 '只采声' => '只采聲',
 '叮叮当当' => '叮叮噹噹',
 '叮当' => '叮噹',
-'可以克制' => '可以剋制',
 '可紧可松' => '可緊可鬆',
 '可自制' => '可自制',
+'可鉴' => '可鑑',
 '台子女' => '台子女',
 '台子孙' => '台子孫',
 '台州' => '台州',
 '台布景' => '台布景',
 '台历史' => '台歷史',
 '台钟' => '台鐘',
-'台面前' => '台面前',
-'叱咤903' => '叱咤903',
-'叱咤MY903' => '叱咤MY903',
-'叱咤My903' => '叱咤My903',
-'叱咤叱叱咤' => '叱咤叱叱咤',
-'叱咤叱咤叱咤咤' => '叱咤叱咤叱咤咤',
-'叱咤咤' => '叱咤咤',
-'叱咤乐坛' => '叱咤樂壇',
-'叱咤樂壇' => '叱咤樂壇',
-'叶 恭弘' => '叶 恭弘',
-'叶 恭弘' => '叶 恭弘',
+'台风奖' => '台風獎',
+'台风稳健' => '台風穩健',
+'史鉴' => '史鑑',
 '叶不二子' => '叶不二子',
 '叶志穗' => '叶志穗',
 '叶恭弘' => '叶恭弘',
 '叶音' => '叶音',
 '叶韵' => '叶韻',
 '吃板刀面' => '吃板刀麵',
-'吃着不尽' => '吃著不盡',
 '吃姜' => '吃薑',
-'吃药' => '吃藥',
 '吃里扒外' => '吃裡扒外',
 '吃里爬外' => '吃裡爬外',
-'吃辣面' => '吃辣麵',
-'吃错药' => '吃錯藥',
 '各辟' => '各闢',
 '各类钟' => '各類鐘',
 '合伙人' => '合伙人',
+'合并' => '合併',
 '合伙' => '合夥',
-'合并' => '合并',
 '合府上' => '合府上',
 '合采' => '合採',
 '合历' => '合曆',
 '合历史' => '合歷史',
 '合准' => '合準',
-'合着' => '合著',
-'合著者' => '合著者',
 '吉凶庆吊' => '吉凶慶弔',
-'吊带裤' => '吊帶褲',
-'吊挂着' => '吊掛著',
-'吊杆' => '吊杆',
-'吊着' => '吊著',
-'吊裤' => '吊褲',
-'吊裤带' => '吊褲帶',
+'吉征' => '吉徵',
 '吊钟' => '吊鐘',
+'同人志' => '同人誌',
 '同伙' => '同夥',
 '同于' => '同於',
 '同余' => '同餘',
@@ -4739,22 +4366,24 @@ $zh2Hant = array(
 '后姓' => '后姓',
 '后安路' => '后安路',
 '后平路' => '后平路',
+'后庄' => '后庄',
 '后座' => '后座',
 '后母戊' => '后母戊',
-'后海湾' => '后海灣',
 '后海灣' => '后海灣',
+'后海湾' => '后海灣',
 '后瑞站' => '后瑞站',
 '后稷' => '后稷',
+'后綜' => '后綜',
 '后羿' => '后羿',
 '后街' => '后街',
 '后角' => '后角',
-'后丰' => '后豐',
 '后豐' => '后豐',
+'后丰' => '后豐',
 '后里' => '后里',
-'后发FK型星' => '后髮FK型星',
 '后髮FK型星' => '后髮FK型星',
-'后髮座' => '后髮座',
+'后发FK型星' => '后髮FK型星',
 '后发座' => '后髮座',
+'后髮座' => '后髮座',
 '后发星系团' => '后髮星系團',
 '后髮星系團' => '后髮星系團',
 '吐哺捉发' => '吐哺捉髮',
@@ -4763,9 +4392,9 @@ $zh2Hant = array(
 '向往常' => '向往常',
 '向往日' => '向往日',
 '向往时' => '向往時',
-'向着' => '向著',
 '吞并' => '吞併',
 '吟游' => '吟遊',
+'吧台' => '吧檯',
 '含齿戴发' => '含齒戴髮',
 '吹干' => '吹乾',
 '吹发' => '吹髮',
@@ -4773,42 +4402,31 @@ $zh2Hant = array(
 '吾为之范我驰驱' => '吾爲之範我馳驅',
 '吕后' => '呂后',
 '呂后' => '呂后',
-'呆呆傻傻' => '呆呆傻傻',
-'呆呆挣挣' => '呆呆掙掙',
-'呆呆獸' => '呆呆獸',
 '呆呆兽' => '呆呆獸',
-'呆呆笨笨' => '呆呆笨笨',
 '呆致致' => '呆緻緻',
 '呆里呆气' => '呆裡呆氣',
-'周一' => '周一',
-'周三' => '周三',
-'周二' => '周二',
-'周五' => '周五',
-'周六' => '周六',
+'告札' => '告劄',
 '周后' => '周后',
-'周四' => '周四',
 '周历' => '周曆',
-'周杰伦' => '周杰倫',
 '周杰倫' => '周杰倫',
+'周杰伦' => '周杰倫',
 '周历史' => '周歷史',
-'周庄王' => '周莊王',
 '周游' => '周遊',
 '呼吁' => '呼籲',
 '命中注定' => '命中注定',
-'和克制' => '和剋制',
 '和奸' => '和姦',
 '咎征' => '咎徵',
 '咕咕钟' => '咕咕鐘',
+'咪表' => '咪錶',
 '咬姜呷醋' => '咬薑呷醋',
 '咯当' => '咯噹',
-'咳嗽药' => '咳嗽藥',
 '哀吊' => '哀弔',
 '哀挽' => '哀輓',
 '品汇' => '品彙',
+'品鉴' => '品鑑',
 '哄堂大笑' => '哄堂大笑',
-'å\91\98山庄' => '員山庄',
+'å\93¡山庄' => '員山庄',
 '哪里' => '哪裡',
-'哭脏' => '哭髒',
 '唁吊' => '唁弔',
 '呗赞' => '唄讚',
 '唇干' => '唇乾',
@@ -4817,6 +4435,7 @@ $zh2Hant = array(
 '唾面自干' => '唾面自乾',
 '唾余' => '唾餘',
 '商历' => '商曆',
+'商标准许' => '商標准許',
 '商历史' => '商歷史',
 '启发式' => '啟發式',
 '啷当' => '啷噹',
@@ -4827,15 +4446,15 @@ $zh2Hant = array(
 '喜欢钟' => '喜歡鐘',
 '喜欢钟表' => '喜歡鐘錶',
 '喝干' => '喝乾',
+'喧哗' => '喧譁',
 '喧哄' => '喧鬨',
 '丧钟' => '喪鐘',
 '乔岳' => '喬嶽',
+'單于' => '單于',
 '单于' => '單于',
 '单单于' => '單單於',
 '单干' => '單幹',
 '单打独斗' => '單打獨鬥',
-'嗑药' => '嗑藥',
-'嘀嗒的表' => '嘀嗒的錶',
 '嘉谷' => '嘉穀',
 '嘉肴' => '嘉肴',
 '嘴里' => '嘴裡',
@@ -4845,25 +4464,21 @@ $zh2Hant = array(
 '当啷' => '噹啷',
 '当当' => '噹噹',
 '噜苏' => '嚕囌',
+'啮合' => '嚙合',
+'啮齿类' => '嚙齒類',
 '向导' => '嚮導',
 '向往' => '嚮往',
-'向应' => '嚮應',
+'向慕' => '嚮慕',
 '向迩' => '嚮邇',
 '严云农' => '嚴云農',
 '严于' => '嚴於',
-'严丝合缝' => '嚴絲合縫',
 '嚼谷' => '嚼穀',
 '啰啰苏苏' => '囉囉囌囌',
 '啰苏' => '囉囌',
 '嘱托' => '囑託',
+'啮虫' => '囓蟲',
 '四个' => '四個',
-'四出刊' => '四出刊',
-'四出口' => '四出口',
 '四出征收' => '四出徵收',
-'四出版' => '四出版',
-'四出生' => '四出生',
-'四出祁山' => '四出祁山',
-'四出逃' => '四出逃',
 '四分历' => '四分曆',
 '四分历史' => '四分歷史',
 '四周后' => '四周後',
@@ -4871,21 +4486,25 @@ $zh2Hant = array(
 '四年' => '四年',
 '四舍五入' => '四捨五入',
 '四舍六入' => '四捨六入',
+'四杆铁笔' => '四桿鐵筆',
 '四扎' => '四紮',
 '四只' => '四隻',
 '四面包' => '四面包',
 '四面钟' => '四面鐘',
 '四余' => '四餘',
-'å\9b\9bå\87º' => 'å\9b\9bé½£',
+'å\9b\9eä½£' => 'å\9b\9eä½£',
 '回采' => '回採',
 '回旋加速' => '回旋加速',
 '回历' => '回曆',
 '回历史' => '回歷史',
-'回丝' => '回絲',
-'回着' => '回著',
-'回荡' => '回蕩',
+'回复中' => '回覆中',
+'回复你' => '回覆你',
+'回复帖子' => '回覆帖子',
+'回复意见' => '回覆意見',
+'回复说' => '回覆說',
+'回复邮件' => '回覆郵件',
+'回复:' => '回覆:',
 '回游' => '回遊',
-'回阳荡气' => '回陽蕩氣',
 '因于' => '因於',
 '困倦起来' => '困倦起來',
 '困兽之斗' => '困獸之鬥',
@@ -4894,8 +4513,6 @@ $zh2Hant = array(
 '固定制' => '固定制',
 '固征' => '固徵',
 '囿于' => '囿於',
-'圈占' => '圈佔',
-'圈子里' => '圈子裡',
 '圈梁' => '圈樑',
 '圈里' => '圈裡',
 '国之桢干' => '國之楨榦',
@@ -4910,23 +4527,23 @@ $zh2Hant = array(
 '国仇' => '國讎',
 '园里' => '園裡',
 '园游会' => '園遊會',
-'图里' => '圖裡',
+'图里的' => '圖裡的',
+'图里,' => '圖裡,',
 '图鉴' => '圖鑑',
+'土索面' => '土索麵',
 '土里' => '土裡',
 '土制' => '土製',
-'土霉素' => '土霉素',
 '在制品' => '在制品',
-'å\9c¨å\85\8bå\88¶' => 'å\9c¨å\89\8bå\88',
+'å\9c¨å±±é\87\8c' => 'å\9c¨å±±è£¡',
 '在于' => '在於',
-'地占' => '地佔',
-'地克制' => '地剋制',
+'地图里' => '地圖裡',
 '地心历表' => '地心曆表',
 '地方志' => '地方志',
 '地志' => '地誌',
 '地丑德齐' => '地醜德齊',
 '坏于' => '坏於',
 '坐如钟' => '坐如鐘',
-'å\9d\90åº\84' => 'å\9d\90è\8e\8a',
+'å\9d\90å\8f°' => 'å\9d\90檯',
 '坐钟' => '坐鐘',
 '坑里' => '坑裡',
 '坤范' => '坤範',
@@ -4941,59 +4558,55 @@ $zh2Hant = array(
 '埃及历史' => '埃及歷史',
 '埃及艳后' => '埃及豔后',
 '埃荣冲' => '埃榮衝',
-'埋头寻表' => '埋頭尋錶',
-'埋头寻钟' => '埋頭尋鐘',
-'埋头寻钟表' => '埋頭尋鐘錶',
 '城里' => '城裡',
-'埔裡社撫墾局' => '埔裏社撫墾局',
-'埔裏社撫墾局' => '埔裏社撫墾局',
-'å\9f\94é\87\8c社æ\8a\9aå\9e¦å±\80' => 'å\9f\94è£\8f社æ\92«å¢¾å±\80',
+'埔子里' => '埔子里',
+'埔里社' => '埔裏社',
+'å\9f\9fé\87\8c' => 'å\9f\9f裡',
 '基干' => '基幹',
 '基于' => '基於',
 '基准' => '基準',
 '坚致' => '堅緻',
 '堙淀' => '堙澱',
-'涂着' => '塗著',
-'涂药' => '塗藥',
+'堡子里' => '堡子里',
+'场里' => '場裡',
 '塞耳盗钟' => '塞耳盜鐘',
-'塞药' => '塞藥',
 '墓志铭' => '墓志銘',
 '墓志' => '墓誌',
 '增辟' => '增闢',
+'墨子里' => '墨子里',
 '墨沈' => '墨沈',
 '墨沈未干' => '墨瀋未乾',
-'堕胎药' => '墮胎藥',
-'垦复' => '墾複',
 '垦辟' => '墾闢',
-'垄断价格' => '壟斷價格',
-'垄断资产' => '壟斷資產',
-'垄断集团' => '壟斷集團',
 '壮游' => '壯遊',
 '壮面' => '壯麵',
 '壹郁' => '壹鬱',
 '壶里' => '壺裡',
 '壸范' => '壼範',
+'壽天里' => '壽天里',
 '寿面' => '壽麵',
 '夏于乔' => '夏于喬',
 '夏于喬' => '夏于喬',
-'夏天里' => '夏天裡',
-'夏日里' => '夏日裡',
 '夏历' => '夏曆',
 '夏历史' => '夏歷史',
 '夏游' => '夏遊',
 '外强中干' => '外強中乾',
 '外制' => '外製',
-'多占' => '多佔',
 '多半只' => '多半只',
+'多只包括' => '多只包括',
 '多只可' => '多只可',
+'多只含' => '多只含',
 '多只在' => '多只在',
 '多只是' => '多只是',
 '多只會' => '多只會',
 '多只会' => '多只會',
 '多只有' => '多只有',
+'多只比' => '多只比',
 '多只用' => '多只用',
 '多只能' => '多只能',
+'多只限' => '多只限',
 '多只需' => '多只需',
+'多只须' => '多只須',
+'多只須' => '多只須',
 '多周后' => '多周後',
 '多天后' => '多天後',
 '多于' => '多於',
@@ -5001,13 +4614,10 @@ $zh2Hant = array(
 '多丑' => '多醜',
 '多只' => '多隻',
 '多余' => '多餘',
-'多么' => '多麼',
-'夜光表' => '夜光錶',
+'多出电影' => '多齣電影',
+'夜晚里' => '夜晚裡',
 '夜里' => '夜裡',
 '夜游' => '夜遊',
-'够克制' => '夠剋制',
-'夢有五不占' => '夢有五不占',
-'梦有五不占' => '夢有五不占',
 '梦里' => '夢裡',
 '梦游' => '夢遊',
 '伙伴' => '夥伴',
@@ -5015,7 +4625,6 @@ $zh2Hant = array(
 '伙同' => '夥同',
 '伙众' => '夥眾',
 '伙计' => '夥計',
-'大丑' => '大丑',
 '大伙儿' => '大伙兒',
 '大只可' => '大只可',
 '大只在' => '大只在',
@@ -5029,6 +4638,7 @@ $zh2Hant = array(
 '大型钟表面' => '大型鐘表面',
 '大型钟表' => '大型鐘錶',
 '大型钟面' => '大型鐘面',
+'大多只' => '大多只',
 '大伙' => '大夥',
 '大干' => '大幹',
 '大批涌到' => '大批湧到',
@@ -5039,7 +4649,6 @@ $zh2Hant = array(
 '大本钟' => '大本鐘',
 '大本钟敲' => '大本鐘敲',
 '大历史' => '大歷史',
-'大呆' => '大獃',
 '大病初愈' => '大病初癒',
 '大目干连' => '大目乾連',
 '大笨钟' => '大笨鐘',
@@ -5048,14 +4657,15 @@ $zh2Hant = array(
 '大衍历' => '大衍曆',
 '大衍历史' => '大衍歷史',
 '大言非夸' => '大言非夸',
+'大夸' => '大誇',
 '大赞' => '大讚',
 '大周折' => '大週摺',
+'大丑' => '大醜',
 '大金发苔' => '大金髮苔',
 '大钟' => '大鐘',
 '大只' => '大隻',
 '大风后' => '大風後',
-'大曲' => '大麴',
-'天干物燥' => '天乾物燥',
+'大曲酒' => '大麴酒',
 '天克地冲' => '天克地衝',
 '天后' => '天后',
 '天后宫' => '天后宮',
@@ -5065,47 +4675,44 @@ $zh2Hant = array(
 '天后来' => '天後來',
 '天后半' => '天後半',
 '天后天' => '天後天',
-'天文学家' => '天文學家',
 '天文学钟' => '天文學鐘',
 '天文历表' => '天文曆表',
 '天文钟' => '天文鐘',
 '天历' => '天曆',
 '天历史' => '天歷史',
-'天然碱' => '天然鹼',
-'天翻地覆' => '天翻地覆',
-'天覆地载' => '天覆地載',
+'天神之后' => '天神之后',
+'天里' => '天裡',
+'天里昂' => '天里昂',
+'天里村' => '天里村',
 '太仆' => '太僕',
+'太凶' => '太兇',
 '太初历' => '太初曆',
 '太初历史' => '太初歷史',
 '太后' => '太后',
+'太丑' => '太醜',
+'太阁' => '太閤',
 '夯干' => '夯幹',
 '夸人' => '夸人',
 '夸克' => '夸克',
-'夸夸其谈' => '夸夸其談',
 '夸姣' => '夸姣',
 '夸容' => '夸容',
-'夸毗' => '夸毗',
 '夸父' => '夸父',
 '夸特' => '夸特',
 '夸脱' => '夸脫',
-'夸诞' => '夸誕',
-'夸诞不经' => '夸誕不經',
 '夸丽' => '夸麗',
+'奇勋' => '奇勳',
 '奇迹' => '奇蹟',
 '奇丑' => '奇醜',
 '奏折' => '奏摺',
-'奥占' => '奧佔',
 '夺斗' => '奪鬥',
 '奋斗' => '奮鬥',
 '女丑' => '女丑',
-'女佣人' => '女佣人',
-'女佣' => '女傭',
 '女仆' => '女僕',
 '奴仆' => '奴僕',
 '奸淫掳掠' => '奸淫擄掠',
-'她克制' => '她剋制',
 '好干' => '好乾',
 '好家伙' => '好傢夥',
+'好凶' => '好兇',
 '好勇斗狠' => '好勇鬥狠',
 '好斗大' => '好斗大',
 '好斗室' => '好斗室',
@@ -5115,14 +4722,15 @@ $zh2Hant = array(
 '好斗膽' => '好斗膽',
 '好斗蓬' => '好斗蓬',
 '好于' => '好於',
-'好呆' => '好獃',
 '好困' => '好睏',
 '好签' => '好籤',
 '好丑' => '好醜',
 '好斗' => '好鬥',
 '如果干' => '如果幹',
+'如饥似渴' => '如饑似渴',
 '妖后' => '妖后',
-'妙药' => '妙藥',
+'妖气冲天' => '妖氣衝天',
+'妆台' => '妝檯',
 '始于' => '始於',
 '委托' => '委託',
 '委托书' => '委託書',
@@ -5132,42 +4740,43 @@ $zh2Hant = array(
 '奸宄' => '姦宄',
 '奸情' => '姦情',
 '奸杀' => '姦殺',
-'奸污' => '姦æ±\99',
+'奸污' => '姦污',
 '奸淫' => '姦淫',
 '奸猾' => '姦猾',
 '奸细' => '姦細',
 '奸邪' => '姦邪',
 '威棱' => '威稜',
 '婢仆' => '婢僕',
-'娲杆' => '媧杆',
 '嫁祸于' => '嫁禍於',
 '嫌凶' => '嫌兇',
 '嫌好道丑' => '嫌好道醜',
+'嫩姜' => '嫩薑',
 '嬉游' => '嬉遊',
 '嬖幸' => '嬖倖',
 '嬴余' => '嬴餘',
 '子之丰兮' => '子之丰兮',
 '子云' => '子云',
-'子晳' => '子晳',
+'子里' => '子裡',
+'子里甲' => '子里甲',
 '字汇' => '字彙',
 '字码表' => '字碼表',
 '字里行间' => '字裡行間',
 '存十一于千百' => '存十一於千百',
 '存折' => '存摺',
 '存于' => '存於',
+'孛里海' => '孛里海',
 '孤寡不谷' => '孤寡不穀',
+'学家' => '學家',
 '学里' => '學裡',
 '宇宙志' => '宇宙誌',
 '安于' => '安於',
 '安沈铁路' => '安瀋鐵路',
-'安眠药' => '安眠藥',
-'安胎药' => '安胎藥',
+'宋王台' => '宋王臺',
 '宗周钟' => '宗周鐘',
 '官不怕大只怕管' => '官不怕大只怕管',
 '官地为采' => '官地為寀',
 '官历' => '官曆',
 '官历史' => '官歷史',
-'官庄' => '官莊',
 '定于' => '定於',
 '定准' => '定準',
 '定制' => '定製',
@@ -5178,12 +4787,6 @@ $zh2Hant = array(
 '害于' => '害於',
 '宴游' => '宴遊',
 '家仆' => '家僕',
-'家具备' => '家具備',
-'家具有' => '家具有',
-'家具木工科' => '家具木工科',
-'家具行' => '家具行',
-'家具体' => '家具體',
-'家庄' => '家莊',
 '家里' => '家裡',
 '家丑' => '家醜',
 '容于' => '容於',
@@ -5195,52 +4798,47 @@ $zh2Hant = array(
 '寇准' => '寇準',
 '寇仇' => '寇讎',
 '富余' => '富餘',
-'寒假里' => '寒假裡',
 '寒栗' => '寒慄',
 '寒于' => '寒於',
 '寓于' => '寓於',
-'寡占' => '寡佔',
 '寡欲' => '寡慾',
 '实干' => '實幹',
+'实累累' => '實纍纍',
 '写字台' => '寫字檯',
 '宽宽松松' => '寬寬鬆鬆',
 '宽于' => '寬於',
 '宽余' => '寬餘',
 '宽松' => '寬鬆',
 '寮采' => '寮寀',
-'宝山庄' => '寶山庄',
-'寶曆' => '寶曆',
+'寶山庄' => '寶山庄',
 '宝历' => '寶曆',
+'寶曆' => '寶曆',
 '宝历史' => '寶歷史',
-'宝庄' => '寶莊',
 '宝里宝气' => '寶裡寶氣',
+'宝鉴' => '寶鑑',
 '寸发千金' => '寸髮千金',
 '寺钟' => '寺鐘',
 '封后' => '封后',
+'封为后' => '封為后',
 '封面里' => '封面裡',
 '射雕' => '射鵰',
-'将占' => '將佔',
-'将占卜' => '將占卜',
 '专向往' => '專向往',
-'专注' => '專註',
 '专辑里' => '專輯裡',
 '尊后' => '尊后',
+'对不准' => '對不準',
 '对折' => '對摺',
 '对于' => '對於',
 '对准' => '對準',
 '对准表' => '對準錶',
 '对准钟' => '對準鐘',
 '对准钟表' => '對準鐘錶',
-'对华发动' => '對華發動',
+'对华发' => '對華發',
 '对表中' => '對表中',
 '对表扬' => '對表揚',
 '对表明' => '對表明',
-'对表格' => '對表格',
 '对表演' => '對表演',
 '对表现' => '對表現',
-'对表示' => '對表示',
 '对表达' => '對表達',
-'对表' => '對錶',
 '导游' => '導遊',
 '小丑' => '小丑',
 '小价' => '小价',
@@ -5258,12 +4856,9 @@ $zh2Hant = array(
 '小型钟表面' => '小型鐘表面',
 '小型钟表' => '小型鐘錶',
 '小型钟面' => '小型鐘面',
-'小伙子' => '小夥子',
 '小米面' => '小米麵',
 '小只' => '小隻',
-'少占' => '少佔',
 '少采' => '少採',
-'就克制' => '就剋制',
 '就范' => '就範',
 '就里' => '就裡',
 '尸位素餐' => '尸位素餐',
@@ -5278,9 +4873,8 @@ $zh2Hant = array(
 '尸谏' => '尸諫',
 '尸魂界' => '尸魂界',
 '尸鸠' => '尸鳩',
+'局促不安' => '局促不安',
 '局里' => '局裡',
-'屁股大吊了心' => '屁股大弔了心',
-'屋子里' => '屋子裡',
 '屋梁' => '屋樑',
 '屋里' => '屋裡',
 '屏风后' => '屏風後',
@@ -5290,30 +4884,35 @@ $zh2Hant = array(
 '属托' => '屬託',
 '屯扎' => '屯紮',
 '屯里' => '屯裡',
+'山仔后' => '山仔后',
 '山崩钟应' => '山崩鐘應',
 '山岳' => '山嶽',
 '山梁' => '山樑',
-'山洞里' => '山洞裡',
 '山棱' => '山稜',
 '山羊胡' => '山羊鬍',
-'山庄' => '山莊',
-'山药' => '山藥',
-'山里' => '山裡',
+'山里有' => '山裡有',
+'山里的' => '山裡的',
 '山谷道' => '山谷道',
 '山重水复' => '山重水複',
 '岱岳' => '岱嶽',
+'峇里海' => '峇里海',
 '峰回' => '峰迴',
 '峻岭' => '峻岭',
 '昆剧' => '崑劇',
+'崑剧' => '崑劇',
+'崑山' => '崑山',
 '昆山' => '崑山',
+'昆冈' => '崑岡',
 '昆仑' => '崑崙',
-'昆仑山脉' => '崑崙山脈',
+'崑曲' => '崑曲',
 '昆曲' => '崑曲',
 '昆腔' => '崑腔',
+'崑腔' => '崑腔',
 '昆苏' => '崑蘇',
+'崑苏' => '崑蘇',
 '昆调' => '崑調',
+'崑调' => '崑調',
 '崖广' => '崖广',
-'仑背' => '崙背',
 '嶒棱' => '嶒稜',
 '岳岳' => '嶽嶽',
 '岳麓' => '嶽麓',
@@ -5321,28 +4920,26 @@ $zh2Hant = array(
 '巡回医疗' => '巡回醫療',
 '巡回' => '巡迴',
 '巡游' => '巡遊',
+'工作台' => '工作檯',
 '工致' => '工緻',
 '左冲右突' => '左衝右突',
 '巧妇做不得无面馎饦' => '巧婦做不得無麵餺飥',
 '巧干' => '巧幹',
 '巧历' => '巧曆',
 '巧历史' => '巧歷史',
+'巨制' => '巨製',
 '差之毫厘' => '差之毫厘',
-'差之毫厘,谬以千里' => '差之毫釐,謬以千里',
 '差于' => '差於',
 '己丑' => '己丑',
-'已占' => '已佔',
 '已占卜' => '已占卜',
 '已占算' => '已占算',
 '巴尔干' => '巴爾幹',
 '巷里' => '巷裡',
-'市占' => '市佔',
-'市占率' => '市佔率',
 '市里' => '市裡',
 '布谷' => '布穀',
+'布谷鸟' => '布穀鳥',
 '布谷鸟钟' => '布穀鳥鐘',
-'布庄' => '布莊',
-'布谷鸟' => '布谷鳥',
+'布里海' => '布里海',
 '希伯来历' => '希伯來曆',
 '希伯来历史' => '希伯來歷史',
 '帘子' => '帘子',
@@ -5350,40 +4947,34 @@ $zh2Hant = array(
 '帝后台' => '帝后臺',
 '师范' => '師範',
 '席卷' => '席捲',
-'带团参加' => '帶團參加',
 '带征' => '帶徵',
 '带发修行' => '帶髮修行',
-'帮佣' => '幫å\82­',
+'å¹\85å\9b¾é\87\8c' => 'å¹\85å\9c\96裡',
 '干系' => '干係',
-'干着急' => '干著急',
 '平平当当' => '平平當當',
-'平泉庄' => '平泉莊',
 '平准' => '平準',
 '年代里' => '年代裡',
 '年历' => '年曆',
 '年历史' => '年歷史',
 '年谷' => '年穀',
 '年里' => '年裡',
+'年鉴' => '年鑑',
 '并力' => '并力',
-'并吞' => '并吞',
 '并州' => '并州',
 '并日而食' => '并日而食',
 '并迭' => '并迭',
 '幸免于难' => '幸免於難',
 '幸于' => '幸於',
 '幸运胡' => '幸運鬍',
-'干上' => '幹上',
 '干下去' => '幹下去',
 '干不了' => '幹不了',
 '干不成' => '幹不成',
-'干了' => '幹了',
 '干事' => '幹事',
 '干些' => '幹些',
 '干人' => '幹人',
 '干什么' => '幹什麼',
 '干个' => '幹個',
 '干劲' => '幹勁',
-'干劲冲天' => '幹勁沖天',
 '干吏' => '幹吏',
 '干员' => '幹員',
 '干啥' => '幹啥',
@@ -5393,7 +4984,7 @@ $zh2Hant = array(
 '干完' => '幹完',
 '干家' => '幹家',
 '干将' => '幹將',
-'干得' => '幹得',
+'干得了' => '幹得了',
 '干性油' => '幹性油',
 '干才' => '幹才',
 '干掉' => '幹掉',
@@ -5410,7 +5001,6 @@ $zh2Hant = array(
 '干当' => '幹當',
 '干的停当' => '幹的停當',
 '干细胞' => '幹細胞',
-'干細胞' => '幹細胞',
 '干线' => '幹線',
 '干练' => '幹練',
 '干缺' => '幹缺',
@@ -5430,11 +5020,11 @@ $zh2Hant = array(
 '几个' => '幾個',
 '几周后' => '幾周後',
 '几天后' => '幾天後',
+'几进几出' => '幾進幾出',
 '几只' => '幾隻',
 '几出' => '幾齣',
 '广部' => '广部',
-'庄稼人' => '庄稼人',
-'庄稼院' => '庄稼院',
+'床席' => '床蓆',
 '店里' => '店裡',
 '府干卿' => '府干卿',
 '府干擾' => '府干擾',
@@ -5446,55 +5036,46 @@ $zh2Hant = array(
 '府干预' => '府干預',
 '府干' => '府幹',
 '座钟' => '座鐘',
-'康åº\84大é\81\93' => '康åº\84大é\81\93',
-'康åº\84' => '康è\8e\8a',
+'å»\8då­\90é\87\8c' => 'å»\8då­\90é\87\8c',
+'å»\93å­\90é\87\8c' => 'å»\93å­\90é\87\8c',
 '厨余' => '廚餘',
 '厮斗' => '廝鬥',
 '庙里' => '廟裡',
-'废后' => '廢后',
 '廢后' => '廢后',
+'废后' => '廢后',
 '广征' => '廣徵',
 '广舍' => '廣捨',
 '延历' => '延曆',
 '建于' => '建於',
 '弄干' => '弄乾',
 '弄丑' => '弄醜',
-'弄脏' => '弄髒',
+'弄脏胸' => '弄髒胸',
 '弄松' => '弄鬆',
 '弄鬼吊猴' => '弄鬼弔猴',
-'吊儿郎当' => '弔兒郎當',
 '吊卷' => '弔卷',
 '吊取' => '弔取',
 '吊古' => '弔古',
-'吊古寻幽' => '弔古尋幽',
 '吊唁' => '弔唁',
 '吊问' => '弔問',
 '吊喉' => '弔喉',
 '吊丧' => '弔喪',
-'吊丧问疾' => '弔喪問疾',
 '吊喭' => '弔喭',
-'吊场' => '弔場',
 '吊奠' => '弔奠',
 '吊孝' => '弔孝',
 '吊客' => '弔客',
 '吊宴' => '弔宴',
 '吊带' => '弔帶',
 '吊影' => '弔影',
+'吊恤' => '弔恤',
 '吊慰' => '弔慰',
 '吊扣' => '弔扣',
 '吊拷' => '弔拷',
-'吊拷绷扒' => '弔拷繃扒',
 '吊挂' => '弔掛',
 '吊撒' => '弔撒',
 '吊文' => '弔文',
 '吊旗' => '弔旗',
-'吊书' => '弔書',
-'吊桥' => '弔橋',
 '吊死' => '弔死',
-'吊死问孤' => '弔死問孤',
-'吊死问疾' => '弔死問疾',
 '吊民' => '弔民',
-'吊民伐罪' => '弔民伐罪',
 '吊祭' => '弔祭',
 '吊纸' => '弔紙',
 '吊者大悦' => '弔者大悅',
@@ -5503,28 +5084,23 @@ $zh2Hant = array(
 '吊膀子' => '弔膀子',
 '吊词' => '弔詞',
 '吊诡' => '弔詭',
-'吊诡矜奇' => '弔詭矜奇',
 '吊谎' => '弔謊',
 '吊贺迎送' => '弔賀迎送',
 '吊头' => '弔頭',
-'吊颈' => '弔頸',
 '吊鹤' => '弔鶴',
 '引斗' => '引鬥',
 '弘历' => '弘曆',
 '弘历史' => '弘歷史',
 '弱于' => '弱於',
 '弱水三千只取一瓢' => '弱水三千只取一瓢',
-'弱碱' => '弱鹼',
-'张三丰' => '張三丰',
 '張三丰' => '張三丰',
+'张三丰' => '張三丰',
 '张勋' => '張勳',
 '张乐于张徐' => '張樂于張徐',
-'强占' => '強佔',
 '强制作用' => '強制作用',
 '强奸' => '強姦',
 '强干' => '強幹',
 '强于' => '強於',
-'强碱' => '強鹼',
 '别口气' => '彆口氣',
 '别强' => '彆強',
 '别扭' => '彆扭',
@@ -5532,7 +5108,6 @@ $zh2Hant = array(
 '别气' => '彆氣',
 '弹子台' => '彈子檯',
 '弹珠台' => '彈珠檯',
-'弹药' => '彈藥',
 '汇刊' => '彙刊',
 '汇报' => '彙報',
 '汇整' => '彙整',
@@ -5542,37 +5117,40 @@ $zh2Hant = array(
 '汇辑' => '彙輯',
 '汇集' => '彙集',
 '形单影只' => '形單影隻',
-'形影相吊' => '形影相弔',
 '形于' => '形於',
 '彭于晏' => '彭于晏',
 '影后' => '影后',
-'仿佛' => '彷彿',
+'影相吊' => '影相弔',
 '役于' => '役於',
-'彼此克制' => '彼此剋制',
 '往日無仇' => '往日無讎',
 '往里' => '往裡',
-'往复' => '往複',
 '待复' => '待覆',
 '很干' => '很乾',
 '很凶' => '很兇',
+'很准' => '很準',
 '很丑' => '很醜',
 '律历志' => '律曆志',
 '后印' => '後印',
 '后台老板' => '後台老板',
 '后天' => '後天',
-'后庄' => '後庄',
 '后面店' => '後面店',
 '徐干' => '徐幹',
+'徒杠' => '徒杠',
 '徒托空言' => '徒託空言',
-'得克制' => '得剋制',
+'得到回复' => '得到回覆',
+'从仆' => '從僕',
+'从图里' => '從圖裡',
+'从山里' => '從山裡',
 '从于' => '從於',
 '从里到外' => '從裡到外',
 '从里向外' => '從裡向外',
+'御岳山' => '御嶽山',
+'御制' => '御製',
 '复始' => '復始',
 '复活节历表' => '復活節曆表',
+'复苏' => '復甦',
 '征人' => '徵人',
 '征令' => '徵令',
-'征占' => '徵佔',
 '征信' => '徵信',
 '征候' => '徵候',
 '征兆' => '徵兆',
@@ -5620,7 +5198,6 @@ $zh2Hant = array(
 '征集' => '徵集',
 '征风召雨' => '徵風召雨',
 '征验' => '徵驗',
-'德占' => '德佔',
 '心愿' => '心愿',
 '心于' => '心於',
 '心理' => '心理',
@@ -5719,7 +5296,6 @@ $zh2Hant = array(
 '心系英' => '心繫英',
 '心系茶' => '心繫茶',
 '心系万' => '心繫萬',
-'心系着' => '心繫著',
 '心系兰' => '心繫蘭',
 '心系西' => '心繫西',
 '心系贫' => '心繫貧',
@@ -5738,26 +5314,24 @@ $zh2Hant = array(
 '心系麦' => '心繫麥',
 '心系黄' => '心繫黃',
 '心脏' => '心臟',
+'心脏痳痹' => '心臟痲痺',
 '心荡' => '心蕩',
-'心药' => '心藥',
 '心里面' => '心裏面',
 '心里' => '心裡',
 '心长发短' => '心長髮短',
 '心余' => '心餘',
 '必须' => '必須',
-'忙并' => '忙併',
 '忙里' => '忙裡',
 '忙里偷闲' => '忙裡偷閒',
 '忠人之托' => '忠人之托',
 '忠仆' => '忠僕',
 '忠于' => '忠於',
 '快干' => '快乾',
-'快克制' => '快剋制',
 '快快当当' => '快快當當',
 '快冲' => '快衝',
-'怎么' => '怎麼',
-'怎么着' => '怎麼著',
 '怒于' => '怒於',
+'怒气冲天' => '怒氣衝天',
+'怒火冲天' => '怒火衝天',
 '怒发冲冠' => '怒髮衝冠',
 '思如泉涌' => '思如泉湧',
 '怠于' => '怠於',
@@ -5765,6 +5339,7 @@ $zh2Hant = array(
 '急冲而下' => '急衝而下',
 '性征' => '性徵',
 '性欲' => '性慾',
+'怨气冲天' => '怨氣衝天',
 '怪里怪气' => '怪裡怪氣',
 '怫郁' => '怫鬱',
 '恂栗' => '恂慄',
@@ -5772,35 +5347,42 @@ $zh2Hant = array(
 '恕乏价催' => '恕乏价催',
 '息交绝游' => '息交絕遊',
 '息谷' => '息穀',
-'恰才' => '恰纔',
-'悍药' => '悍藥',
 '悒郁' => '悒鬱',
 '悠悠荡荡' => '悠悠蕩蕩',
 '悠荡' => '悠蕩',
 '悠游' => '悠遊',
-'æ\82¨å\85\8bå\88¶' => 'æ\82¨å\89\8bå\88',
+'æ\82²å\87\84' => 'æ\82²æ\82½',
 '悲筑' => '悲筑',
 '悲郁' => '悲鬱',
-'闷着头儿干' => '悶著頭兒幹',
 '悸栗' => '悸慄',
+'凄厉' => '悽厲',
+'凄怨' => '悽怨',
+'凄惋' => '悽惋',
+'凄惶' => '悽惶',
+'凄恻' => '悽惻',
+'凄怆' => '悽愴',
+'凄惨' => '悽慘',
+'凄戾' => '悽戾',
+'凄然' => '悽然',
+'凄美' => '悽美',
+'凄苦' => '悽苦',
+'凄酸' => '悽酸',
 '情欲' => '情慾',
 '惇朴' => '惇樸',
+'恶仆' => '惡僕',
 '恶直丑正' => '惡直醜正',
 '恶斗' => '惡鬥',
-'想克制' => '想剋制',
 '惴栗' => '惴慄',
-'意占' => '意佔',
-'意克制' => '意剋制',
 '意大利面' => '意大利麵',
-'意面' => '意麵',
 '爱困' => '愛睏',
-'感冒药' => '感冒藥',
 '感于' => '感於',
 '愿朴' => '愿樸',
+'愿樸' => '愿樸',
 '愿而恭' => '愿而恭',
 '栗冽' => '慄冽',
 '栗栗' => '慄慄',
 '慌里慌张' => '慌裡慌張',
+'惨淡' => '慘澹',
 '庆吊' => '慶弔',
 '庆历' => '慶曆',
 '庆历史' => '慶歷史',
@@ -5817,10 +5399,10 @@ $zh2Hant = array(
 '凭折' => '憑摺',
 '凭准' => '憑準',
 '凭借' => '憑藉',
-'凭借着' => '憑藉著',
+'凭闲' => '憑閑',
+'宪法里' => '憲法裡',
 '恳托' => '懇託',
 '懈松' => '懈鬆',
-'应克制' => '應剋制',
 '应征' => '應徵',
 '应钟' => '應鐘',
 '懔栗' => '懍慄',
@@ -5829,7 +5411,6 @@ $zh2Hant = array(
 '蒙直' => '懞直',
 '惩忿窒欲' => '懲忿窒欲',
 '怀里' => '懷裡',
-'怀表' => '懷錶',
 '怀钟' => '懷鐘',
 '悬挂' => '懸掛',
 '悬梁' => '懸樑',
@@ -5839,44 +5420,44 @@ $zh2Hant = array(
 '恋恋不舍' => '戀戀不捨',
 '成于' => '成於',
 '成于思' => '成於思',
-'成药' => '成藥',
-'我克制' => '我剋制',
 '戬谷' => '戩穀',
 '截发' => '截髮',
 '战天斗地' => '戰天鬥地',
 '战栗' => '戰慄',
 '战斗' => '戰鬥',
-'戏彩娱亲' => '戲綵娛親',
 '戏里' => '戲裡',
+'戲院里' => '戲院里',
 '戴表元' => '戴表元',
-'戴表' => '戴錶',
 '戴发含齿' => '戴髮含齒',
 '房里' => '房裡',
 '所云' => '所云',
 '所云云' => '所云云',
-'所占' => '所佔',
 '所占卜' => '所占卜',
 '所占星' => '所占星',
 '所占算' => '所占算',
 '所托' => '所託',
 '扁拟谷盗虫' => '扁擬穀盜蟲',
-'手塚治虫' => '手塚治虫',
 '手冢治虫' => '手塚治虫',
+'手塚治虫' => '手塚治虫',
 '手折' => '手摺',
+'手表態' => '手表態',
 '手表态' => '手表態',
 '手表明' => '手表明',
+'手表決' => '手表決',
 '手表决' => '手表決',
 '手表演' => '手表演',
+'手表現' => '手表現',
 '手表现' => '手表現',
 '手表示' => '手表示',
+'手表達' => '手表達',
 '手表达' => '手表達',
 '手表露' => '手表露',
 '手表面' => '手表面',
 '手里剑' => '手裏劍',
 '手里' => '手裡',
 '手表' => '手錶',
+'手链' => '手鍊',
 '手松' => '手鬆',
-'才克制' => '才剋制',
 '才干休' => '才干休',
 '才干戈' => '才干戈',
 '才干扰' => '才干擾',
@@ -5890,25 +5471,24 @@ $zh2Hant = array(
 '扑打' => '扑打',
 '扑挞' => '扑撻',
 '打干哕' => '打乾噦',
-'打并' => '打併',
 '打出吊入' => '打出弔入',
 '打卡钟' => '打卡鐘',
 '打吨' => '打吨',
 '打干' => '打幹',
 '打拼' => '打拚',
 '打断发' => '打斷發',
+'打卤' => '打滷',
 '打谷' => '打穀',
-'打着钟' => '打著鐘',
-'打路庄板' => '打路莊板',
 '打钟' => '打鐘',
 '打风后' => '打風後',
 '打斗' => '打鬥',
 '托管国' => '托管國',
 '扛大梁' => '扛大樑',
-'æ\89\9e御' => '扞禦',
+'æ\8d\8d御' => '扞禦',
 '扯面' => '扯麵',
-'扶余国' => '扶餘國',
+'扶余' => '扶餘',
 '批准的' => '批准的',
+'批准确定' => '批准確定',
 '批复' => '批覆',
 '批注' => '批註',
 '批斗' => '批鬥',
@@ -5917,15 +5497,11 @@ $zh2Hant = array(
 '抑制剂' => '抑制劑',
 '抑郁' => '抑鬱',
 '抓奸' => '抓姦',
-'抓药' => '抓藥',
 '抓斗' => '抓鬥',
-'投药' => '投藥',
-'抗癌药' => '抗癌藥',
 '抗御' => '抗禦',
-'抗药' => '抗藥',
-'抗碱' => '抗鹼',
 '折向往' => '折向往',
 '折子戏' => '折子戲',
+'折子戲' => '折子戲',
 '折戟沈河' => '折戟沈河',
 '折冲' => '折衝',
 '披榛采兰' => '披榛採蘭',
@@ -5942,7 +5518,6 @@ $zh2Hant = array(
 '拆伙' => '拆夥',
 '拈须' => '拈鬚',
 '拉克施尔德钟' => '拉克施爾德鐘',
-'拉杆' => '拉杆',
 '拉纤' => '拉縴',
 '拉面上' => '拉面上',
 '拉面具' => '拉面具',
@@ -5975,6 +5550,7 @@ $zh2Hant = array(
 '括发' => '括髮',
 '拭干' => '拭乾',
 '拮据' => '拮据',
+'拳局' => '拳跼',
 '拼死拼活' => '拼死拼活',
 '拾沈' => '拾瀋',
 '拿下表' => '拿下錶',
@@ -5987,21 +5563,19 @@ $zh2Hant = array(
 '挂念' => '挂念',
 '挂号' => '挂號',
 '挂车' => '挂車',
-'挂面' => '挂面',
 '挌斗' => '挌鬥',
 '挑大梁' => '挑大樑',
 '挑斗' => '挑鬥',
 '振荡' => '振蕩',
-'捆扎' => '捆紮',
 '捉奸徒' => '捉奸徒',
 '捉奸细' => '捉奸細',
 '捉奸贼' => '捉奸賊',
 '捉奸党' => '捉奸黨',
 '捉奸' => '捉姦',
 '捉发' => '捉髮',
-'捍御' => '捍禦',
 '捏面人' => '捏麵人',
 '舍不得' => '捨不得',
+'舍入' => '捨入',
 '舍出' => '捨出',
 '舍去' => '捨去',
 '舍命' => '捨命',
@@ -6031,39 +5605,44 @@ $zh2Hant = array(
 '卷去' => '捲去',
 '卷图' => '捲圖',
 '卷土重来' => '捲土重來',
+'卷地' => '捲地',
 '卷尺' => '捲尺',
+'卷尾猴' => '捲尾猴',
 '卷心菜' => '捲心菜',
 '卷成' => '捲成',
 '卷曲' => '捲曲',
 '卷款' => '捲款',
 '卷毛' => '捲毛',
-'卷烟' => '捲煙',
+'卷烟盒' => '捲煙盒',
+'卷积云' => '捲積雲',
 '卷筒' => '捲筒',
 '卷帘' => '捲簾',
 '卷纸' => '捲紙',
 '卷缩' => '捲縮',
 '卷舌' => '捲舌',
-'卷舖盖' => '捲舖蓋',
-'卷菸' => '捲菸',
+'卷铺盖' => '捲舖蓋',
+'卷烟' => '捲菸',
+'卷叶蛾' => '捲葉蛾',
 '卷袖' => '捲袖',
 '卷走' => '捲走',
 '卷起' => '捲起',
 '卷轴' => '捲軸',
 '卷逃' => '捲逃',
-'卷铺盖' => '捲鋪蓋',
 '卷云' => '捲雲',
 '卷风' => '捲風',
-'卷发' => '捲髮',
+'卷发器' => '捲髮器',
 '捵面' => '捵麵',
 '捶炼' => '捶鍊',
 '扫荡' => '掃蕩',
+'授勋' => '授勳',
 '掌柜' => '掌柜',
 '排骨面' => '排骨麵',
 '挂名' => '掛名',
 '挂帘' => '掛帘',
 '挂历' => '掛曆',
-'æ\8c\82é\88\8e' => '掛鈎',
+'æ\8c\82é\92©' => '掛鈎',
 '挂钟' => '掛鐘',
+'挂面' => '掛麵',
 '采下' => '採下',
 '采伐' => '採伐',
 '采住' => '採住',
@@ -6101,15 +5680,14 @@ $zh2Hant = array(
 '采珠' => '採珠',
 '采生折割' => '採生折割',
 '采用' => '採用',
-'采的' => '採的',
 '采石' => '採石',
 '采砂场' => '採砂場',
 '采矿' => '採礦',
 '采种' => '採種',
 '采空区' => '採空區',
 '采空采穗' => '採空採穗',
-'采納' => '採納',
 '采纳' => '採納',
+'采納' => '採納',
 '采给' => '採給',
 '采花' => '採花',
 '采芹人' => '採芹人',
@@ -6138,7 +5716,6 @@ $zh2Hant = array(
 '采食' => '採食',
 '采盐' => '採鹽',
 '掣签' => '掣籤',
-'接着说' => '接著說',
 '控制' => '控制',
 '推情准理' => '推情準理',
 '推托之词' => '推托之詞',
@@ -6149,7 +5726,6 @@ $zh2Hant = array(
 '提摩太后书' => '提摩太後書',
 '插于' => '插於',
 '换签' => '換籤',
-'换药' => '換藥',
 '换只' => '換隻',
 '换发' => '換髮',
 '握发' => '握髮',
@@ -6158,20 +5734,17 @@ $zh2Hant = array(
 '揪发' => '揪髮',
 '揪须' => '揪鬚',
 '揭丑' => '揭醜',
+'揮手表' => '揮手表',
 '挥手表' => '揮手表',
-'挥杆' => '揮杆',
 '搋面' => '搋麵',
 '损于' => '損於',
 '搏斗' => '搏鬥',
-'摇摇荡荡' => '搖搖蕩蕩',
-'摇荡' => '搖蕩',
 '捣鬼吊白' => '搗鬼弔白',
-'搤肮拊背' => '搤肮拊背',
+'扼肮' => '搤肮',
+'扼肮拊背' => '搤肮拊背',
 '搬斗' => '搬鬥',
 '搭干铺' => '搭乾鋪',
 '搭伙' => '搭夥',
-'抢占' => '搶佔',
-'搽药' => '搽藥',
 '摧坚获丑' => '摧堅獲醜',
 '摭采' => '摭採',
 '摸棱' => '摸稜',
@@ -6183,6 +5756,7 @@ $zh2Hant = array(
 '折扇' => '摺扇',
 '折梯' => '摺梯',
 '折椅' => '摺椅',
+'折台' => '摺檯',
 '折叠' => '摺疊',
 '折痕' => '摺痕',
 '折篷' => '摺篷',
@@ -6192,7 +5766,6 @@ $zh2Hant = array(
 '捞干' => '撈乾',
 '捞面' => '撈麵',
 '撚须' => '撚鬚',
-'撞球台' => '撞球檯',
 '撞钟' => '撞鐘',
 '撞阵冲军' => '撞陣衝軍',
 '撤并' => '撤併',
@@ -6207,31 +5780,26 @@ $zh2Hant = array(
 '操作钟' => '操作鐘',
 '担仔面' => '擔仔麵',
 '担担面' => '擔擔麵',
-'担着' => '擔著',
-'担负着' => '擔負著',
 '据云' => '據云',
 '据干而窥井底' => '據榦而窺井底',
 '擢发' => '擢髮',
 '擦干' => '擦乾',
 '擦干净' => '擦乾淨',
-'擦药' => '擦藥',
 '拧干' => '擰乾',
 '摆钟' => '擺鐘',
 '摄制' => '攝製',
 '支干' => '支幹',
-'支杆' => '支杆',
+'支配欲' => '支配慾',
 '收获' => '收穫',
 '改征' => '改徵',
-'æ\94»å\8d ' => 'æ\94»ä½\94',
+'æ\94¹é\87\87' => 'æ\94¹æ\8e¡',
 '放蒙挣' => '放懞掙',
 '放荡' => '放蕩',
 '放松' => '放鬆',
-'æ\95\85äº\8bé\87\8c' => 'æ\95\85äº\8b裡',
+'æ\94¿æ\96\97' => 'æ\94¿é¬¥',
 '故云' => '故云',
 '敏于' => '敏於',
-'救药' => '救藥',
 '败于' => '敗於',
-'叙说着' => '敘說著',
 '教学钟' => '教學鐘',
 '教于' => '教於',
 '教范' => '教範',
@@ -6245,37 +5813,52 @@ $zh2Hant = array(
 '敬挽' => '敬輓',
 '敲扑' => '敲扑',
 '敲钟' => '敲鐘',
-'整庄' => '整莊',
 '整只' => '整隻',
 '整风后' => '整風後',
 '整发用品' => '整髮用品',
+'整出剧' => '整齣劇',
+'整出戏' => '整齣戲',
+'整出电影' => '整齣電影',
 '敌忾同仇' => '敵愾同讎',
-'敷药' => '敷藥',
+'数只包括' => '數只包括',
+'数只可' => '數只可',
+'数只含' => '數只含',
+'数只在' => '數只在',
+'数只应' => '數只應',
+'数只是' => '數只是',
+'数只会' => '數只會',
+'数只有' => '數只有',
+'数只比' => '數只比',
+'数只能' => '數只能',
+'数只限' => '數只限',
+'数只需' => '數只需',
+'数只须' => '數只須',
 '数天后' => '數天後',
 '数字钟' => '數字鐘',
 '数字钟表' => '數字鐘錶',
-'数学家' => '數學家',
 '数罪并罚' => '數罪併罰',
 '数与虏确' => '數與虜确',
+'数只' => '數隻',
 '文丑' => '文丑',
 '文汇报' => '文匯報',
+'文学志' => '文學誌',
 '文征明' => '文徵明',
 '文思泉涌' => '文思泉湧',
 '文采郁郁' => '文采郁郁',
-'斗转参横' => '斗轉參橫',
+'斗牛星' => '斗牛星',
 '斫雕为朴' => '斫雕為樸',
 '新井里美' => '新井里美',
 '新历' => '新曆',
 '新历史' => '新歷史',
 '新扎' => '新紮',
-'新庄' => '新莊',
-'新庄市' => '新莊市',
 '斲雕为朴' => '斲雕為樸',
 '断发' => '斷髮',
 '断发文身' => '斷髮文身',
 '方便面' => '方便麵',
 '方几' => '方几',
 '方向往' => '方向往',
+'方志恒' => '方志恒',
+'方法里' => '方法裡',
 '方志' => '方誌',
 '方面' => '方面',
 '于0' => '於0',
@@ -6307,7 +5890,6 @@ $zh2Hant = array(
 '于你' => '於你',
 '于八' => '於八',
 '于六' => '於六',
-'于克制' => '於剋制',
 '于前' => '於前',
 '于劣' => '於劣',
 '于勤' => '於勤',
@@ -6383,92 +5965,54 @@ $zh2Hant = array(
 '于震中' => '於震中',
 '于震前' => '於震前',
 '于震后' => '於震后',
-'于0' => '於0',
-'于1' => '於1',
-'于2' => '於2',
-'于3' => '於3',
-'于4' => '於4',
-'于5' => '於5',
-'于6' => '於6',
-'于7' => '於7',
-'于8' => '於8',
-'于9' => '於9',
 '施舍' => '施捨',
 '施于' => '施於',
 '施舍之道' => '施舍之道',
-'施药' => '施藥',
 '旁征博引' => '旁徵博引',
 '旁注' => '旁註',
 '旅游' => '旅遊',
 '旋干转坤' => '旋乾轉坤',
-'旋绕着' => '旋繞著',
 '旋回' => '旋迴',
 '族里' => '族裡',
-'旗杆' => '旗杆',
-'日占' => '日佔',
-'日子里' => '日子裡',
 '日心历表' => '日心曆表',
-'日晒' => '日晒',
 '日历' => '日曆',
 '日历史' => '日歷史',
+'日里' => '日裡',
 '日志' => '日誌',
 '早于' => '早於',
 '旱干' => '旱乾',
-'昆仑山' => '昆崙山',
+'升州' => '昇州',
 '升平' => '昇平',
 '升阳' => '昇陽',
 '昊天不吊' => '昊天不弔',
-'明天' => '明天',
 '明征' => '明徵',
 '明目张胆' => '明目張胆',
 '明窗净几' => '明窗淨几',
 '明范' => '明範',
-'明里' => '明裡',
-'易克制' => '易剋制',
+'明鉴' => '明鑑',
 '易于' => '易於',
-'星巴克' => '星巴克',
 '星历' => '星曆',
 '星期后' => '星期後',
 '星历史' => '星歷史',
-'星辰表' => '星辰錶',
-'春假里' => '春假裡',
-'春天里' => '春天裡',
-'春日里' => '春日裡',
-'春药' => '春藥',
 '春游' => '春遊',
 '春香斗学' => '春香鬥學',
-'æ\98¨å¤©' => 'æ\98¨å¤©',
+'æ\98¯å\8f\91å°\8f' => 'æ\98¯é«®å°\8f',
 '时钟' => '時鐘',
-'时间里' => '時間裡',
+'时间不准' => '時間不準',
 '晃荡' => '晃蕩',
-'晋升' => '晉陞',
-'晒干' => '晒乾',
-'晒伤' => '晒傷',
-'晒图' => '晒圖',
-'晒图纸' => '晒圖紙',
-'晒成' => '晒成',
-'晒晒' => '晒晒',
-'晒烟' => '晒煙',
-'晒种' => '晒種',
-'晒衣' => '晒衣',
-'晒黑' => '晒黑',
 '晚于' => '晚於',
 '晚钟' => '晚鐘',
 '晞发' => '晞髮',
 '晨钟' => '晨鐘',
 '普冬冬' => '普鼕鼕',
-'景致' => '景緻',
 '晾干' => '晾乾',
-'晕船药' => '暈船藥',
-'晕车药' => '暈車藥',
-'暑假里' => '暑假裡',
 '暗地里' => '暗地裡',
 '暗沟里' => '暗溝裡',
 '暗里' => '暗裡',
 '暗斗' => '暗鬥',
 '畅游' => '暢遊',
+'昵称' => '暱稱',
 '暴敛横征' => '暴斂橫徵',
-'暴晒' => '暴晒',
 '历元' => '曆元',
 '历命' => '曆命',
 '历始' => '曆始',
@@ -6482,24 +6026,22 @@ $zh2Hant = array(
 '历狱' => '曆獄',
 '历纪' => '曆紀',
 '历象' => '曆象',
-'æ\9b\9dæ\99\92' => 'æ\9b\9dæ\99\92',
+'æ\99\92å¹²' => 'æ\9b¬ä¹¾',
 '晒谷' => '曬穀',
 '曰云' => '曰云',
 '更仆难数' => '更僕難數',
+'更加注' => '更加注',
 '更签' => '更籤',
 '更钟' => '更鐘',
-'书呆子' => '書獃子',
 '书签' => '書籤',
 '书面' => '書面',
+'曹子里' => '曹子里',
 '曼谷人' => '曼谷人',
 '曾朴' => '曾樸',
 '最多' => '最多',
-'会上签署' => '會上簽署',
-'会上签订' => '會上簽訂',
-'会占' => '會佔',
-'会占卜' => '會占卜',
-'会干扰' => '會干擾',
+'最多只' => '最多只',
 '會干擾' => '會干擾',
+'会干扰' => '會干擾',
 '会干' => '會幹',
 '会吊' => '會弔',
 '会里' => '會裡',
@@ -6514,10 +6056,11 @@ $zh2Hant = array(
 '有只不' => '有只不',
 '有只允' => '有只允',
 '有只容' => '有只容',
-'有只採' => '有只採',
 '有只采' => '有只採',
+'有只採' => '有只採',
 '有只是' => '有只是',
 '有只用' => '有只用',
+'有回复' => '有回覆',
 '有够赞' => '有夠讚',
 '有征伐' => '有征伐',
 '有征战' => '有征戰',
@@ -6534,45 +6077,44 @@ $zh2Hant = array(
 '有余' => '有餘',
 '有发头陀寺' => '有髮頭陀寺',
 '服于' => '服於',
-'服药' => '服藥',
 '望了望' => '望了望',
 '望后石' => '望后石',
-'望着表' => '望著錶',
-'望着钟' => '望著鐘',
-'望着钟表' => '望著鐘錶',
 '朝乾夕惕' => '朝乾夕惕',
 '朝钟' => '朝鐘',
 '朦胧' => '朦朧',
 '蒙胧' => '朦朧',
 '木偶戏扎' => '木偶戲紮',
-'木杆' => '木杆',
 '木材干馏' => '木材乾餾',
 '木梁' => '木樑',
+'木签' => '木籤',
 '木制' => '木製',
 '木钟' => '木鐘',
 '未干' => '未乾',
 '未干涉' => '未干涉',
-'末药' => '末藥',
+'未干預' => '未干預',
+'未干预' => '未干預',
 '本征' => '本徵',
+'本出戏' => '本齣戲',
 '术赤' => '朮赤',
-'朱仑街' => '朱崙街',
 '朱庆余' => '朱慶餘',
 '朱理安历' => '朱理安曆',
 '朱理安历史' => '朱理安歷史',
-'æ\9d\86å­\90' => 'æ\9d\86å­\90',
+'æ\9c´å­\90é\87\8c' => 'æ\9c´å­\90é\87\8c',
 '李志喜' => '李志喜',
-'李連杰' => '李連杰',
 '李连杰' => '李連杰',
+'李連杰' => '李連杰',
 '材干' => '材幹',
-'村子里' => '村子裡',
-'村庄' => '村莊',
 '村落发' => '村落發',
 '村里' => '村裡',
-'村里长' => '村里長',
 '村里長' => '村里長',
+'村里长' => '村里長',
 '杜老志道' => '杜老誌道',
 '杞宋无征' => '杞宋無徵',
 '束发' => '束髮',
+'杠人' => '杠人',
+'杠梁' => '杠梁',
+'杠轂' => '杠轂',
+'杠毂' => '杠轂',
 '杯干' => '杯乾',
 '杯面' => '杯麵',
 '杰伦' => '杰倫',
@@ -6581,20 +6123,21 @@ $zh2Hant = array(
 '杰特' => '杰特',
 '东周钟' => '東周鐘',
 '东岳' => '東嶽',
+'東湖里' => '東湖里',
 '东冲西突' => '東衝西突',
 '东游' => '東遊',
 '松山庄' => '松山庄',
-'板着脸' => '板著臉',
 '板荡' => '板蕩',
 '林宏岳' => '林宏嶽',
+'林杰樑' => '林杰樑',
 '林郁方' => '林郁方',
 '林钟' => '林鐘',
+'林鹅峰' => '林鵞峰',
 '果干' => '果乾',
 '果子干' => '果子乾',
-'æ\9e\9dä¸\8då¾\97大äº\8eå¹²' => 'æ\9e\9dä¸\8då¾\97大æ\96¼æ¦¦',
+'æ\9e\9c累累' => 'æ\9e\9cçº\8dçº\8d',
 '枝干' => '枝幹',
 '枯干' => '枯乾',
-'台历' => '枱曆',
 '架钟' => '架鐘',
 '某只' => '某隻',
 '染指于' => '染指於',
@@ -6606,8 +6149,10 @@ $zh2Hant = array(
 '柱梁' => '柱樑',
 '柳诒征' => '柳詒徵',
 '栖栖皇皇' => '栖栖皇皇',
+'栗栖溪' => '栗栖溪',
 '校准' => '校準',
-'校仇' => '校讎',
+'校舍' => '校舍',
+'校仇学' => '校讎學',
 '核准的' => '核准的',
 '格于' => '格於',
 '格范' => '格範',
@@ -6615,11 +6160,14 @@ $zh2Hant = array(
 '格里高利历' => '格里高利曆',
 '格斗' => '格鬥',
 '桂圆干' => '桂圓乾',
-'桅杆' => '桅杆',
 '桌几' => '桌几',
 '桌历' => '桌曆',
 '桌历史' => '桌歷史',
+'桌游' => '桌遊',
 '桑干' => '桑乾',
+'杆枪' => '桿槍',
+'杆秤' => '桿秤',
+'杆菌' => '桿菌',
 '梁上君子' => '梁上君子',
 '条干' => '條幹',
 '梨干' => '梨乾',
@@ -6627,30 +6175,28 @@ $zh2Hant = array(
 '械系' => '械繫',
 '械斗' => '械鬥',
 '弃舍' => '棄捨',
+'棉里' => '棉裡',
 '棉制' => '棉製',
 '棒子面' => '棒子麵',
-'枣庄' => '棗莊',
 '栋梁' => '棟樑',
 '棫朴' => '棫樸',
 '森林里' => '森林裡',
 '棺材里' => '棺材裡',
 '植发' => '植髮',
+'椒面' => '椒麵',
 '椰枣干' => '椰棗乾',
 '楊雅筑' => '楊雅筑',
 '杨雅筑' => '楊雅筑',
-'楚庄问鼎' => '楚莊問鼎',
-'楚庄王' => '楚莊王',
-'楚庄绝缨' => '楚莊絕纓',
 '桢干' => '楨幹',
 '业余' => '業餘',
 '榨干' => '榨乾',
+'枪杆' => '槍桿',
 '杠杆' => '槓桿',
 '乐器钟' => '樂器鐘',
 '樊于期' => '樊於期',
 '梁上' => '樑上',
 '梁柱' => '樑柱',
 '樗里子' => '樗里子',
-'标杆' => '標杆',
 '标标致致' => '標標致致',
 '标准' => '標準',
 '标签' => '標籤',
@@ -6662,8 +6208,8 @@ $zh2Hant = array(
 '模范14棒' => '模范14棒',
 '模范21棒' => '模范21棒',
 '模范七棒' => '模范七棒',
-'模范三军' => '模范三軍',
 '模范三軍' => '模范三軍',
+'模范三军' => '模范三軍',
 '模范棒棒堂' => '模范棒棒堂',
 '模制' => '模製',
 '样范' => '樣範',
@@ -6687,39 +6233,32 @@ $zh2Hant = array(
 '朴陋' => '樸陋',
 '朴马' => '樸馬',
 '朴鲁' => '樸魯',
-'树干' => '樹榦',
+'树干' => '樹幹',
+'树林里' => '樹林裡',
 '树梁' => '樹樑',
 '桥梁' => '橋樑',
-'機械系' => '機械系',
 '机械系' => '機械系',
+'機械系' => '機械系',
 '机械表' => '機械錶',
 '机械钟' => '機械鐘',
 '机械钟表' => '機械鐘錶',
-'机绣' => '機繡',
 '横征暴敛' => '橫徵暴斂',
-'横杆' => '橫杆',
 '横梁' => '橫樑',
 '横冲' => '橫衝',
-'台子' => '檯子',
 '台布' => '檯布',
+'台历' => '檯曆',
 '台灯' => '檯燈',
 '台球' => '檯球',
-'台面' => '檯面',
+'台面上' => '檯面上',
 '柜台' => '櫃檯',
 '栉发工' => '櫛髮工',
-'栏杆' => '欄杆',
 '欲海难填' => '欲海難填',
 '欺蒙' => '欺矇',
 '歌后' => '歌后',
 '歌钟' => '歌鐘',
 '欧游' => '歐遊',
-'止咳药' => '止咳藥',
 '止于' => '止於',
-'止痛药' => '止痛藥',
-'止血药' => '止血藥',
-'正在叱咤' => '正在叱咤',
 '正官庄' => '正官庄',
-'正当着' => '正當著',
 '武丑' => '武丑',
 '武后' => '武后',
 '武斗' => '武鬥',
@@ -6737,7 +6276,7 @@ $zh2Hant = array(
 '残余' => '殘餘',
 '僵尸' => '殭屍',
 '殷师牛斗' => '殷師牛鬥',
-'æ\9d\80è\99«è\8d¯' => '殺è\9f²è\97¥',
+'æ®·é\89´' => 'æ®·é\91\91',
 '壳里' => '殼裡',
 '殿钟自鸣' => '殿鐘自鳴',
 '毁于' => '毀於',
@@ -6748,7 +6287,6 @@ $zh2Hant = array(
 '母丑' => '母醜',
 '每每只' => '每每只',
 '每只' => '每隻',
-'毒药' => '毒藥',
 '毗婆尸佛' => '毗婆尸佛',
 '毛坏' => '毛坏',
 '毛姜' => '毛薑',
@@ -6762,24 +6300,26 @@ $zh2Hant = array(
 '水准' => '水準',
 '水无怜奈' => '水無怜奈',
 '水里' => '水裡',
+'水里商工' => '水里商工',
 '水里溪' => '水里溪',
-'æ°´é\87\8cæµ\8a水溪' => '水里濁水溪',
+'æ°´é\87\8cæ¿\81水溪' => '水里濁水溪',
 '水里鄉' => '水里鄉',
-'水里乡' => '水里鄉',
-'水碱' => '水鹼',
+'水里高級商工' => '水里高級商工',
+'水里鳳林' => '水里鳳林',
+'水表' => '水錶',
 '永历' => '永曆',
 '永历史' => '永歷史',
 '永志不忘' => '永誌不忘',
 '求知欲' => '求知慾',
 '求签' => '求籤',
 '求道于盲' => '求道於盲',
-'æ±\97碱' => 'æ±\97é¹¼',
+'污è\94\91' => 'æ±\99è¡\8a',
 '池里' => '池裡',
-'污è\94\91' => '污è¡\8a',
+'汤å\8d¤' => '汤滷',
 '汲于' => '汲於',
 '决斗' => '決鬥',
+'沈海蓉' => '沈海蓉',
 '沈淀' => '沈澱',
-'沈着' => '沈著',
 '沈郁' => '沈鬱',
 '沉淀' => '沉澱',
 '沉郁' => '沉鬱',
@@ -6790,18 +6330,20 @@ $zh2Hant = array(
 '没梢干' => '沒梢幹',
 '没样范' => '沒樣範',
 '没准' => '沒準',
-'没药' => '沒藥',
 '冲冠发怒' => '沖冠髮怒',
+'冲天' => '沖天',
+'沙羡' => '沙羡',
 '沙里淘金' => '沙裡淘金',
 '河岳' => '河嶽',
 '河流汇集' => '河流匯集',
 '河里' => '河裡',
+'油泼面' => '油潑麵',
 '油斗' => '油鬥',
 '油面' => '油麵',
 '治愈' => '治癒',
 '沿溯' => '沿泝',
-'法占' => '法佔',
 '法自制' => '法自制',
+'法里,' => '法裡,',
 '泛游' => '泛遊',
 '泡制' => '泡製',
 '泡面' => '泡麵',
@@ -6814,6 +6356,7 @@ $zh2Hant = array(
 '泱郁' => '泱鬱',
 '泳气钟' => '泳氣鐘',
 '洄游' => '洄遊',
+'洋河大曲' => '洋河大麴',
 '洒家' => '洒家',
 '洒扫' => '洒掃',
 '洒水' => '洒水',
@@ -6827,12 +6370,13 @@ $zh2Hant = array(
 '洗练' => '洗鍊',
 '洗发' => '洗髮',
 '洛钟东应' => '洛鐘東應',
+'洞里' => '洞裡',
 '泄欲' => '洩慾',
 '洪范' => '洪範',
+'洪谷子' => '洪谷子',
 '洪适' => '洪适',
 '洪钟' => '洪鐘',
 '汹涌' => '洶湧',
-'派团参加' => '派團參加',
 '流征' => '流徵',
 '流于' => '流於',
 '流荡' => '流蕩',
@@ -6840,29 +6384,27 @@ $zh2Hant = array(
 '流风余韵' => '流風餘韻',
 '浩浩荡荡' => '浩浩蕩蕩',
 '浩荡' => '浩蕩',
-'浪琴表' => '浪琴錶',
 '浪荡' => '浪蕩',
 '浪游' => '浪遊',
 '浮于' => '浮於',
 '浮荡' => '浮蕩',
 '浮夸' => '浮誇',
 '浮松' => '浮鬆',
-'海上布雷' => '海上佈雷',
 '海干' => '海乾',
-'海淀山后' => '海淀山後',
 '海淀山後' => '海淀山後',
-'海湾布雷' => '海灣佈雷',
+'海淀山后' => '海淀山後',
+'浸卤' => '浸滷',
 '涂善妮' => '涂善妮',
 '涂坤' => '涂坤',
-'涂壯勳' => '涂壯勳',
 '涂壮勋' => '涂壯勳',
+'涂壯勳' => '涂壯勳',
 '涂天相' => '涂天相',
 '涂姓' => '涂姓',
 '涂序瑄' => '涂序瑄',
-'涂敏恒' => '涂敏恆',
 '涂敏恆' => '涂敏恆',
-'æ¶\82澤æ°\91' => 'æ¶\82澤æ°\91',
+'æ¶\82æ\95\8fæ\81\92' => 'æ¶\82æ\95\8fæ\81\86',
 '涂泽民' => '涂澤民',
+'涂澤民' => '涂澤民',
 '涂绍煃' => '涂紹煃',
 '涂羽卿' => '涂羽卿',
 '涂謹申' => '涂謹申',
@@ -6873,11 +6415,9 @@ $zh2Hant = array(
 '涂长望' => '涂長望',
 '涂鸿钦' => '涂鴻欽',
 '涂鴻欽' => '涂鴻欽',
-'消炎药' => '消炎藥',
-'消肿药' => '消腫藥',
-'液晶表' => '液晶錶',
 '涳蒙' => '涳濛',
 '涸干' => '涸乾',
+'凉席' => '涼蓆',
 '凉面' => '涼麵',
 '淋余土' => '淋餘土',
 '淑范' => '淑範',
@@ -6892,25 +6432,22 @@ $zh2Hant = array(
 '淫荡' => '淫蕩',
 '淬炼' => '淬鍊',
 '深山何处钟' => '深山何處鐘',
-'深渊里' => '深淵裡',
+'深山里' => '深山裡',
 '淳于' => '淳于',
 '淳朴' => '淳樸',
 '渊淳岳峙' => '淵淳嶽峙',
+'渊里' => '淵裡',
 '浅淀' => '淺澱',
 '清心寡欲' => '清心寡欲',
-'清汤挂面' => '清湯掛麵',
-'减肥药' => '減肥藥',
 '渠冲' => '渠衝',
-'测试' => '測試',
+'测不准' => '測不準',
 '港制' => '港製',
+'游牧民族' => '游牧民族',
 '游离' => '游離',
 '浑朴' => '渾樸',
 '浑个' => '渾箇',
-'凑合着' => '湊合著',
 '湖里' => '湖裡',
-'湘绣' => '湘繡',
 '湘累' => '湘纍',
-'湟潦生苹' => '湟潦生苹',
 '涌上' => '湧上',
 '涌来' => '湧來',
 '涌入' => '湧入',
@@ -6923,7 +6460,6 @@ $zh2Hant = array(
 '湮郁' => '湮鬱',
 '汤下面' => '湯下麵',
 '汤团' => '湯糰',
-'汤药' => '湯藥',
 '汤面' => '湯麵',
 '源于' => '源於',
 '准不准' => '準不準',
@@ -6966,16 +6502,37 @@ $zh2Hant = array(
 '滃郁' => '滃鬱',
 '滑借' => '滑藉',
 '汇丰' => '滙豐',
-'滷制' => '滷製',
-'滷面' => '滷麵',
+'卤了' => '滷了',
+'卤五花' => '滷五花',
+'卤味' => '滷味',
+'卤好' => '滷好',
+'卤子' => '滷子',
+'卤料' => '滷料',
+'卤水' => '滷水',
+'卤汁' => '滷汁',
+'卤湖' => '滷湖',
+'卤煮' => '滷煮',
+'卤牛' => '滷牛',
+'卤的' => '滷的',
+'卤肉' => '滷肉',
+'卤菜' => '滷菜',
+'卤蛋' => '滷蛋',
+'卤虾' => '滷蝦',
+'卤制' => '滷製',
+'卤豆' => '滷豆',
+'卤鸡' => '滷雞',
+'卤鸭' => '滷鴨',
+'卤鹅' => '滷鵝',
+'卤面' => '滷麵',
 '满拼自尽' => '滿拚自盡',
 '满满当当' => '滿滿當當',
 '满头洋发' => '滿頭洋髮',
 '漂荡' => '漂蕩',
 '漕挽' => '漕輓',
 '沤郁' => '漚鬱',
+'漠里' => '漠裡',
 '汉弥登钟' => '漢彌登鐘',
-'æ±\89å¼¥ç\99»é\92\9f表å\85¬å\8f¸' => 'æ¼¢å½\8cç\99»é\90\98é\8c¶å\85¬å\8f¸',
+'漫å\8d·' => '漫æ\8d²',
 '漫游' => '漫遊',
 '潜意识里' => '潛意識裡',
 '潜水表' => '潛水錶',
@@ -6998,7 +6555,7 @@ $zh2Hant = array(
 '淀谓之滓' => '澱謂之滓',
 '澹台' => '澹臺',
 '澹荡' => '澹蕩',
-'激荡' => '激蕩',
+'激斗' => '激鬥',
 '浓发' => '濃髮',
 '蒙汜' => '濛汜',
 '蒙蒙细雨' => '濛濛細雨',
@@ -7006,77 +6563,64 @@ $zh2Hant = array(
 '蒙松雨' => '濛鬆雨',
 '蒙鸿' => '濛鴻',
 '滨田里佳子' => '濱田里佳子',
-'泻药' => '瀉藥',
 '沈吉线' => '瀋吉線',
 '沈山线' => '瀋山線',
 '沈州' => '瀋州',
+'沈抚' => '瀋撫',
 '沈水' => '瀋水',
 '沈河' => '瀋河',
 '沈海' => '瀋海',
 '沈海铁路' => '瀋海鐵路',
 '沈阳' => '瀋陽',
+'泸州大曲' => '瀘州大麯',
 '潇洒' => '瀟洒',
 '弥山遍野' => '瀰山遍野',
 '弥漫' => '瀰漫',
-'弥漫着' => '瀰漫著',
 '弥弥' => '瀰瀰',
-'灌药' => '灌藥',
 '漓水' => '灕水',
 '漓江' => '灕江',
 '漓湘' => '灕湘',
 '漓然' => '灕然',
 '滩涂' => '灘涂',
+'滩席' => '灘蓆',
 '火并非' => '火並非',
 '火并' => '火併',
+'火山里' => '火山裡',
 '火拼' => '火拚',
 '火折子' => '火摺子',
-'火箭布雷' => '火箭佈雷',
 '火签' => '火籤',
-'火药' => '火藥',
 '灰蒙' => '灰濛',
 '灰蒙蒙' => '灰濛濛',
 '炆面' => '炆麵',
 '炒面' => '炒麵',
 '炮制' => '炮製',
-'炸药' => '炸藥',
 '炸酱面' => '炸醬麵',
 '为准' => '為準',
-'为着' => '為著',
+'为鉴' => '為鑑',
+'乌兹冲锋枪' => '烏茲衝鋒槍',
 '乌发' => '烏髮',
 '乌龙面' => '烏龍麵',
 '烘干' => '烘乾',
 '烘制' => '烘製',
 '烤干' => '烤乾',
-'烤晒' => '烤晒',
+'烤卤' => '烤滷',
 '焙干' => '焙乾',
 '无征不信' => '無徵不信',
 '无业游民' => '無業游民',
 '无梁楼盖' => '無樑樓蓋',
-'无法克制' => '無法剋制',
-'无药可救' => '無藥可救',
 '無言不仇' => '無言不讎',
 '无余' => '無餘',
-'然身死才数月耳' => '然身死纔數月耳',
-'炼药' => '煉藥',
 '炼制' => '煉製',
-'煎药' => '煎藥',
 '煎面' => '煎麵',
 '烟卷' => '煙捲',
-'烟斗丝' => '煙斗絲',
-'烟碱' => '煙鹼',
-'照占' => '照佔',
 '照入签' => '照入籤',
-'照准' => '照準',
 '照相干片' => '照相乾片',
 '煨干' => '煨乾',
 '煮面' => '煮麵',
 '熊杰' => '熊杰',
 '荧郁' => '熒鬱',
-'熬药' => '熬藥',
-'燉药' => '燉藥',
 '燎发' => '燎髮',
 '烧干' => '燒乾',
-'烧碱' => '燒鹼',
 '燕几' => '燕几',
 '燕巢于幕' => '燕巢於幕',
 '燕燕于飞' => '燕燕于飛',
@@ -7089,6 +6633,7 @@ $zh2Hant = array(
 '烫发' => '燙髮',
 '烫面' => '燙麵',
 '营干' => '營幹',
+'烩面' => '燴麵',
 '烬余' => '燼餘',
 '爆发指数' => '爆發指數',
 '争奇斗妍' => '爭奇鬥妍',
@@ -7100,26 +6645,25 @@ $zh2Hant = array(
 '争斗' => '爭鬥',
 '爰定祥历' => '爰定祥厤',
 '爽荡' => '爽蕩',
-'尔冬' => '爾冬陞',
+'尔冬' => '爾冬陞',
 '墙里' => '牆裡',
 '片言只语' => '片言隻語',
+'版图里' => '版圖裡',
 '牙签' => '牙籤',
-'牛肉面' => '牛肉麵',
 '牛只' => '牛隻',
 '物欲' => '物慾',
-'物理学家' => '物理學家',
+'抵牾' => '牴牾',
+'抵触' => '牴觸',
 '特别致' => '特别致',
 '特制住' => '特制住',
 '特制定' => '特制定',
 '特制止' => '特制止',
 '特制订' => '特制訂',
 '特征' => '特徵',
-'特效药' => '特效藥',
 '特制' => '特製',
 '牵一发' => '牽一髮',
 '牵系' => '牽繫',
 '荦确' => '犖确',
-'狂占' => '狂佔',
 '狂并潮' => '狂併潮',
 '狃于' => '狃於',
 '狄志杰' => '狄志杰',
@@ -7131,43 +6675,25 @@ $zh2Hant = array(
 '犹如钟' => '猶如鐘',
 '犹如钟表' => '猶如鐘錶',
 '呆串了皮' => '獃串了皮',
-'呆事' => '獃事',
-'呆人' => '獃人',
-'呆子' => '獃子',
-'呆性' => '獃性',
-'呆想' => '獃想',
-'呆憨呆' => '獃憨獃',
-'呆根' => '獃根',
-'呆气' => '獃氣',
-'呆滞' => '獃滯',
-'呆呆' => '獃獃',
-'呆痴' => '獃痴',
-'呆磕' => '獃磕',
-'呆等' => '獃等',
-'呆脑' => '獃腦',
-'呆着' => '獃著',
-'呆话' => '獃話',
-'呆头' => '獃頭',
 '狱里' => '獄裡',
 '奖杯' => '獎盃',
-'独占' => '獨佔',
-'独占鳌头' => '獨佔鰲頭',
+'独裁制' => '獨裁制',
 '独辟蹊径' => '獨闢蹊徑',
 '获匪其丑' => '獲匪其醜',
 '兽欲' => '獸慾',
 '献丑' => '獻醜',
-'率团参加' => '率團參加',
 '玉历' => '玉曆',
 '玉历史' => '玉歷史',
+'玉米面' => '玉米面',
 '王侯后' => '王侯后',
 '王后' => '王后',
 '王田里' => '王田里',
-'王庄' => '王莊',
+'王鉴' => '王鑑',
 '王余鱼' => '王餘魚',
 '珍肴异馔' => '珍肴異饌',
 '班里' => '班裡',
 '现于' => '現於',
-'球杆' => '球杆',
+'球台' => '球檯',
 '理一个发' => '理一個髮',
 '理一次发' => '理一次髮',
 '理个发' => '理個髮',
@@ -7175,6 +6701,7 @@ $zh2Hant = array(
 '理次发' => '理次髮',
 '理发' => '理髮',
 '琴钟' => '琴鐘',
+'瑞城里' => '瑞城里',
 '瑞征' => '瑞徵',
 '瑶签' => '瑤籤',
 '环游' => '環遊',
@@ -7182,13 +6709,11 @@ $zh2Hant = array(
 '甄后' => '甄后',
 '瓮安' => '甕安',
 '甚于' => '甚於',
-'甚么' => '甚麼',
 '甜水面' => '甜水麵',
 '甜面酱' => '甜麵醬',
 '生力面' => '生力麵',
 '生于' => '生於',
 '生殖洄游' => '生殖洄游',
-'生物学家' => '生物學家',
 '生物钟' => '生物鐘',
 '生发生' => '生發生',
 '生华发' => '生華髮',
@@ -7196,29 +6721,29 @@ $zh2Hant = array(
 '生锈' => '生鏽',
 '生发' => '生髮',
 '产卵洄游' => '產卵洄游',
-'用药' => '用藥',
+'苏醒' => '甦醒',
+'用法里' => '用法裡',
 '甩发' => '甩髮',
+'田子里' => '田子里',
 '田庄英雄' => '田庄英雄',
 '田谷' => '田穀',
-'田庄' => '田莊',
 '田里' => '田裡',
 '由余' => '由余',
 '由于' => '由於',
-'ç\94±è¡¨å\8f\8aé\87\8c' => 'ç\94±è¡¨å\8f\8a裡',
+'ç\94²è\83\84' => 'ç\94²å\86\91',
 '甲后路' => '甲后路',
-'ç\94·ä½£äºº' => 'ç\94·ä½£äºº',
+'ç\94µå½±å\90\8e' => 'ç\94µå½±å¾\8c',
 '男仆' => '男僕',
-'ç\94·ç\94¨è¡¨' => 'ç\94·ç\94¨é\8c',
+'ç\95\8cé\87\8c' => 'ç\95\8c裡',
 '畏于' => '畏於',
 '留发' => '留髮',
 '毕于' => '畢於',
 '毕业于' => '畢業於',
 '毕生发展' => '畢生發展',
-'画着' => '畫著',
-'当家才知柴米价' => '當家纔知柴米價',
 '当准' => '當準',
 '当当丁丁' => '當當丁丁',
-'当着' => '當著',
+'当当网' => '當當網',
+'叠席' => '疊蓆',
 '疏松' => '疏鬆',
 '疑系' => '疑係',
 '疑凶' => '疑兇',
@@ -7227,29 +6752,25 @@ $zh2Hant = array(
 '病征' => '病徵',
 '病愈' => '病癒',
 '病余' => '病餘',
-'症候群' => '症候群',
 '痊愈' => '痊癒',
 '痒疹' => '痒疹',
 '痒痒' => '痒痒',
-'痕迹' => '痕迹',
+'痳木' => '痳木',
+'痳疹' => '痳疹',
+'痳病' => '痳病',
+'痳痹' => '痳痺',
+'痳疯' => '痳瘋',
 '愈合' => '癒合',
-'症候' => '癥候',
-'症状' => '癥狀',
 '症结' => '癥結',
 '癸丑' => '癸丑',
 '发干' => '發乾',
-'发汗药' => '發汗藥',
 '发呆' => '發獃',
 '发蒙' => '發矇',
 '发签' => '發籤',
-'发庄' => '發莊',
-'发着' => '發著',
-'发表' => '發表',
-'發表' => '發表',
 '发松' => '發鬆',
 '发面' => '發麵',
 '白干' => '白乾',
-'ç\99½å\85\94ð¢­\8fè\8d¯' => 'ç\99½å\85\94æ\93£è\97¥',
+'ç\99½å­\90é\87\8c' => 'ç\99½å­\90é\87\8c',
 '白干儿' => '白干兒',
 '白术' => '白朮',
 '白朴' => '白樸',
@@ -7258,6 +6779,7 @@ $zh2Hant = array(
 '白皮松' => '白皮松',
 '白粉面' => '白粉麵',
 '白里透红' => '白裡透紅',
+'白面包青天' => '白面包青天',
 '白发' => '白髮',
 '白胡' => '白鬍',
 '白霉' => '白黴',
@@ -7266,10 +6788,9 @@ $zh2Hant = array(
 '百只夠' => '百只夠',
 '百只够' => '百只夠',
 '百只怕' => '百只怕',
-'百只足够' => '百只足夠',
 '百只足夠' => '百只足夠',
+'百只足够' => '百只足夠',
 '百周后' => '百周後',
-'百多只' => '百多隻',
 '百天后' => '百天後',
 '百年' => '百年',
 '百拙千丑' => '百拙千醜',
@@ -7278,14 +6799,15 @@ $zh2Hant = array(
 '百扎' => '百紮',
 '百花历' => '百花曆',
 '百花历史' => '百花歷史',
-'百药之长' => '百藥之長',
 '百炼' => '百鍊',
 '百只' => '百隻',
 '百余' => '百餘',
-'的克制' => '的剋制',
+'的回复' => '的回覆',
+'的图里' => '的圖裡',
+'的山里' => '的山裡',
 '的钟' => '的鐘',
-'的钟表' => '的鐘錶',
 '的长发' => '的長髮',
+'的发小' => '的髮小',
 '皆可作淀' => '皆可作澱',
 '皆准' => '皆準',
 '皇后' => '皇后',
@@ -7293,9 +6815,9 @@ $zh2Hant = array(
 '皇极历' => '皇極曆',
 '皇极历史' => '皇極歷史',
 '皇历史' => '皇歷史',
-'皇庄' => '皇莊',
 '皓发' => '皓髮',
 '皮制服' => '皮制服',
+'皮托管' => '皮托管',
 '皮肤' => '皮膚',
 '皮里春秋' => '皮裡春秋',
 '皮里阳秋' => '皮裡陽秋',
@@ -7310,13 +6832,12 @@ $zh2Hant = array(
 '盛赞' => '盛讚',
 '盗采' => '盜採',
 '盗钟' => '盜鐘',
-'尽量克制' => '盡量剋制',
 '监制' => '監製',
 '盘里' => '盤裡',
 '盘回' => '盤迴',
 '卢棱伽' => '盧稜伽',
+'荡气回肠' => '盪氣迴腸',
 '盲干' => '盲幹',
-'直接参与' => '直接參与',
 '直于' => '直於',
 '直冲' => '直衝',
 '相并' => '相併',
@@ -7329,10 +6850,8 @@ $zh2Hant = array(
 '相斗' => '相鬥',
 '看下表' => '看下錶',
 '看下钟' => '看下鐘',
+'看法里' => '看法裡',
 '看准' => '看準',
-'看着表' => '看著錶',
-'看着钟' => '看著鐘',
-'看着钟表' => '看著鐘錶',
 '看表面' => '看表面',
 '看表' => '看錶',
 '看钟' => '看鐘',
@@ -7342,19 +6861,16 @@ $zh2Hant = array(
 '眼帘' => '眼帘',
 '眼眶里' => '眼眶裡',
 '眼睛里' => '眼睛裡',
-'眼药' => '眼藥',
 '眼里' => '眼裡',
 '困乏' => '睏乏',
+'困了' => '睏了',
 '困倦' => '睏倦',
 '困觉' => '睏覺',
-'睡着了' => '睡著了',
 '睡游病' => '睡遊病',
 '瞄准' => '瞄準',
 '瞅下表' => '瞅下錶',
 '瞅下钟' => '瞅下鐘',
-'瞧着表' => '瞧著錶',
-'瞧着钟' => '瞧著鐘',
-'瞧着钟表' => '瞧著鐘錶',
+'瞎蒙' => '瞎矇',
 '了望' => '瞭望',
 '了然' => '瞭然',
 '了若指掌' => '瞭若指掌',
@@ -7365,28 +6881,24 @@ $zh2Hant = array(
 '蒙瞍' => '矇瞍',
 '蒙眬' => '矇矓',
 '蒙聩' => '矇聵',
-'蒙着' => '矇著',
-'蒙着锅儿' => '矇著鍋兒',
 '蒙头转' => '矇頭轉',
 '蒙骗' => '矇騙',
 '瞩托' => '矚託',
-'ç\9f\9cåº\84' => 'ç\9f\9cè\8e\8a',
+'ç\9f\9c夸' => 'ç\9f\9cèª\87',
 '短几' => '短几',
 '短于' => '短於',
 '短发' => '短髮',
 '矮几' => '矮几',
 '石几' => '石几',
-'石家庄' => '石家莊',
+'石杠' => '石杠',
 '石梁' => '石樑',
-'石英表' => '石英錶',
 '石英钟' => '石英鐘',
 '石英钟表' => '石英鐘錶',
-'石莼' => '石蓴',
-'石钟乳' => '石鐘乳',
-'石碱' => '石鹼',
-'矽谷' => '矽谷',
+'石钟' => '石鐘',
+'石钟山' => '石鐘山',
 '研制' => '研製',
 '砰当' => '砰噹',
+'破鉴' => '破鑑',
 '朱唇皓齿' => '硃唇皓齒',
 '朱批' => '硃批',
 '朱砂' => '硃砂',
@@ -7394,18 +6906,18 @@ $zh2Hant = array(
 '朱红色' => '硃紅色',
 '朱色' => '硃色',
 '朱谕' => '硃諭',
-'硫化碱' => '硫化鹼',
 '硬干' => '硬幹',
 '确瘠' => '确瘠',
 '碑志' => '碑誌',
 '碰钟' => '碰鐘',
+'确系' => '確係',
 '码表' => '碼錶',
 '磁制' => '磁製',
+'磨蝎' => '磨蝎',
 '磨制' => '磨製',
 '磨炼' => '磨鍊',
 '磬钟' => '磬鐘',
 '硗确' => '磽确',
-'碍难照准' => '礙難照准',
 '砻谷机' => '礱穀機',
 '示范' => '示範',
 '社里' => '社裡',
@@ -7415,44 +6927,44 @@ $zh2Hant = array(
 '神游' => '神遊',
 '神雕像' => '神雕像',
 '神雕' => '神鵰',
-'票庄' => '票莊',
 '祭吊' => '祭弔',
-'祭吊文' => '祭弔文',
 '禁欲' => '禁慾',
 '禁欲主义' => '禁欲主義',
-'禁药' => '禁藥',
 '祸于' => '禍於',
 '御侮' => '禦侮',
 '御寇' => '禦寇',
 '御寒' => '禦寒',
 '御敌' => '禦敵',
 '礼赞' => '禮讚',
-'禹余粮' => '禹餘糧',
 '禾谷' => '禾穀',
 '秃妃之发' => '禿妃之髮',
 '秃发' => '禿髮',
+'秀发动' => '秀發動',
+'秀发展' => '秀發展',
+'秀发布' => '秀發布',
+'秀发村' => '秀發村',
+'秀发现' => '秀發現',
+'秀发生' => '秀發生',
+'秀发表' => '秀發表',
+'秀发起' => '秀發起',
 '秀发' => '秀髮',
 '私下里' => '私下裡',
 '私欲' => '私慾',
 '私斗' => '私鬥',
-'秋假里' => '秋假裡',
-'秋天里' => '秋天裡',
-'秋日里' => '秋日裡',
-'秋裤' => '秋褲',
 '秋游' => '秋遊',
 '秋阴入井干' => '秋陰入井幹',
 '秋发' => '秋髮',
+'种丹妮' => '种丹妮',
 '种师中' => '种師中',
 '种师道' => '种師道',
 '种放' => '种放',
-'ç§\91学家' => 'ç§\91學家',
+'ç§\91å°¼äº\9aå\85\8bæ\9c\9f' => 'ç§\91å°¼äº\9eå\85\8bæ\9c\9f',
 '科斗' => '科斗',
 '科范' => '科範',
 '秒表明' => '秒表明',
 '秒表示' => '秒表示',
-'秒表' => '秒錶',
 '秒钟' => '秒鐘',
-'秦åº\84è¥\84ç\8e\8b' => '秦è\8e\8aè¥\84ç\8e\8b',
+'秤æ\9d\86' => '秤桿',
 '移祸于' => '移禍於',
 '稀松' => '稀鬆',
 '棱台' => '稜台',
@@ -7485,6 +6997,7 @@ $zh2Hant = array(
 '谷物' => '穀物',
 '谷皮' => '穀皮',
 '谷神' => '穀神',
+'谷禄' => '穀祿',
 '谷谷' => '穀穀',
 '谷米' => '穀米',
 '谷粒' => '穀粒',
@@ -7499,15 +7012,12 @@ $zh2Hant = array(
 '谷食' => '穀食',
 '穆罕默德历' => '穆罕默德曆',
 '穆罕默德历史' => '穆罕默德歷史',
-'积极参与' => '積极參与',
-'积极参加' => '積极參加',
 '积淀' => '積澱',
 '积谷' => '積穀',
+'积谷防饥' => '積穀防饑',
 '积郁' => '積鬱',
-'稳å\8d ' => 'ç©©ä½\94',
+'稳å\81¥ç\9a\84å\8f°é£\8e' => 'ç©©å\81¥ç\9a\84å\8f°é¢¨',
 '稳扎' => '穩紮',
-'空中布雷' => '空中佈雷',
-'空投布雷' => '空投佈雷',
 '空蒙' => '空濛',
 '空荡' => '空蕩',
 '空荡荡' => '空蕩蕩',
@@ -7515,39 +7025,52 @@ $zh2Hant = array(
 '空钟' => '空鐘',
 '空余' => '空餘',
 '窒欲' => '窒慾',
-'窗台上' => '窗台上',
-'窗帘' => '窗帘',
 '窗明几亮' => '窗明几亮',
 '窗明几净' => '窗明几淨',
-'çª\97å\8f°' => 'çª\97檯',
+'çª\97å¸\98' => 'çª\97ç°¾',
 '窝里' => '窩裡',
 '穷于' => '窮於',
 '穷追不舍' => '窮追不捨',
 '穷发' => '窮髮',
 '窃钟掩耳' => '竊鐘掩耳',
-'立后综' => '立后綜',
 '立于' => '立於',
 '立范' => '立範',
 '站干岸儿' => '站乾岸兒',
 '童仆' => '童僕',
-'端庄' => '端莊',
 '竞斗' => '競鬥',
 '竹几' => '竹几',
 '竹林之游' => '竹林之遊',
 '竹签' => '竹籤',
+'竹席' => '竹蓆',
 '竹制' => '竹製',
 '笑里藏刀' => '笑裡藏刀',
-'笨笨呆呆' => '笨笨呆呆',
+'第一出现' => '第一出現',
+'第一出現' => '第一出現',
+'第一出線' => '第一出線',
+'第一出线' => '第一出線',
+'第一出' => '第一齣',
+'第七出' => '第七齣',
+'第三出局' => '第三出局',
+'第三出' => '第三齣',
+'第九出' => '第九齣',
+'第二出线' => '第二出線',
+'第二出線' => '第二出線',
+'第二出' => '第二齣',
+'第五出局' => '第五出局',
+'第五出' => '第五齣',
+'第八出' => '第八齣',
+'第六出' => '第六齣',
 '第四出局' => '第四出局',
+'第四出' => '第四齣',
+'笔杆' => '筆桿',
 '笔秃墨干' => '筆禿墨乾',
-'笔试' => '筆試',
 '等于' => '等於',
 '笋干' => '筍乾',
 '筑前' => '筑前',
 '筑北' => '筑北',
 '筑州' => '筑州',
-'筑後' => '筑後',
 '筑后' => '筑後',
+'筑後' => '筑後',
 '筑波' => '筑波',
 '筑紫' => '筑紫',
 '筑肥' => '筑肥',
@@ -7556,7 +7079,6 @@ $zh2Hant = array(
 '筑陽' => '筑陽',
 '筑阳' => '筑陽',
 '答复' => '答覆',
-'答覆' => '答覆',
 '筵几' => '筵几',
 '个中原因' => '箇中原因',
 '个中奥妙' => '箇中奧妙',
@@ -7575,11 +7097,11 @@ $zh2Hant = array(
 '算历史' => '算歷史',
 '算准' => '算準',
 '算发' => '算髮',
-'管人吊脚儿事' => '管人弔腳兒事',
 '管制法' => '管制法',
 '管干' => '管幹',
 '箱里' => '箱裡',
 '节欲' => '節慾',
+'节目里' => '節目裡',
 '节余' => '節餘',
 '范例' => '範例',
 '范围' => '範圍',
@@ -7593,10 +7115,9 @@ $zh2Hant = array(
 '范金' => '範金',
 '简并' => '簡併',
 '简朴' => '簡樸',
-'简筑翎' => '簡筑翎',
 '簡筑翎' => '簡筑翎',
+'简筑翎' => '簡筑翎',
 '簸荡' => '簸蕩',
-'签着' => '簽著',
 '签幐' => '籤幐',
 '签押' => '籤押',
 '签条' => '籤條',
@@ -7604,8 +7125,10 @@ $zh2Hant = array(
 '吁天' => '籲天',
 '吁求' => '籲求',
 '吁请' => '籲請',
+'米沈' => '米瀋',
 '米谷' => '米穀',
-'粉拳绣腿' => '粉拳繡腿',
+'米团' => '米糰',
+'米面' => '米麵',
 '粉签子' => '粉籤子',
 '粗制' => '粗製',
 '精制伏' => '精制伏',
@@ -7624,29 +7147,25 @@ $zh2Hant = array(
 '粪秽蔑面' => '糞穢衊面',
 '团子' => '糰子',
 '系列里' => '系列裡',
-'系着' => '系著',
 '系里' => '系裡',
 '纪历' => '紀曆',
 '纪历史' => '紀歷史',
-'约占' => '約佔',
 '红后假说' => '紅后假說',
 '红绳系足' => '紅繩繫足',
-'红色长发' => '紅色長髮',
 '红钟' => '紅鐘',
-'红霉素' => '紅霉素',
 '红发' => '紅髮',
 '纡回' => '紆迴',
 '纡余' => '紆餘',
 '纡郁' => '紆鬱',
 '纳征' => '納徵',
 '纯朴' => '純樸',
-'纯碱' => '純鹼',
 '纸扎' => '紙紮',
+'素数里' => '素數裡',
 '素朴' => '素樸',
 '素发' => '素髮',
 '素面' => '素麵',
-'索马里' => '索馬里',
 '索馬里' => '索馬里',
+'索马里' => '索馬里',
 '索面' => '索麵',
 '紫姜' => '紫薑',
 '扎上' => '紮上',
@@ -7674,61 +7193,39 @@ $zh2Hant = array(
 '结伴同游' => '結伴同遊',
 '结伙' => '結夥',
 '结扎' => '結紮',
-'结彩' => '結綵',
 '结余' => '結餘',
 '结发' => '結髮',
-'绝对参照' => '絕對參照',
 '绝于' => '絕於',
 '绞干' => '絞乾',
 '络腮胡' => '絡腮鬍',
 '給我干脆' => '給我干脆',
 '给我干脆' => '給我干脆',
 '给于' => '給於',
-'丝来线去' => '絲來線去',
-'丝布' => '絲布',
 '丝恩发怨' => '絲恩髮怨',
-'丝板' => '絲板',
-'丝瓜布' => '絲瓜布',
-'丝绒布' => '絲絨布',
-'丝线' => '絲線',
-'丝织厂' => '絲織廠',
-'丝虫' => '絲蟲',
 '丝制' => '絲製',
 '丝发' => '絲髮',
 '绑扎' => '綁紮',
-'綑扎' => '綑紮',
-'经有云' => '經有云',
+'捆扎' => '綑紮',
 '經有云' => '經有云',
+'经有云' => '經有云',
+'综合征' => '綜合徵',
 '绿发' => '綠髮',
-'绸缎庄' => '綢緞莊',
 '维系' => '維繫',
 '绾发' => '綰髮',
+'纲鉴' => '綱鑑',
 '网里' => '網裡',
 '网志' => '網誌',
 '网游' => '網遊',
-'彩带' => '綵帶',
-'彩排' => '綵排',
-'彩楼' => '綵樓',
-'彩牌楼' => '綵牌樓',
-'彩球' => '綵球',
-'彩绸' => '綵綢',
-'彩线' => '綵線',
-'彩船' => '綵船',
-'彩衣' => '綵衣',
 '紧致' => '緊緻',
-'紧绷' => '緊繃',
-'紧绷绷' => '緊繃繃',
-'紧绷着' => '緊繃著',
 '紧追不舍' => '緊追不捨',
 '绪余' => '緒餘',
-'ç·\9då\87¶' => 'ç·\9då\85\87',
+'线å\9b¾é\87\8c' => 'ç·\9aå\9c\96裡',
 '缉凶' => '緝兇',
-'编余' => '編余',
 '编制法' => '編制法',
 '编采' => '編採',
 '编码表' => '編碼表',
-'编制' => '編製',
 '编钟' => '編鐘',
+'编余' => '編餘',
 '编发' => '編髮',
 '缓征' => '緩徵',
 '缓冲' => '緩衝',
@@ -7743,36 +7240,25 @@ $zh2Hant = array(
 '纵欲' => '縱慾',
 '纤夫' => '縴夫',
 '纤手' => '縴手',
+'纤绳' => '縴繩',
+'总数只' => '總數只',
+'总数里' => '總數裡',
 '总裁制' => '總裁制',
 '繁复' => '繁複',
 '繁钟' => '繁鐘',
-'绷住' => '繃住',
-'绷子' => '繃子',
-'绷带' => '繃帶',
 '绷扒吊拷' => '繃扒弔拷',
-'绷紧' => '繃緊',
-'绷脸' => '繃臉',
-'绷着' => '繃著',
-'绷着脸' => '繃著臉',
-'绷着脸儿' => '繃著臉兒',
-'绷开' => '繃開',
 '穗帏飘井干' => '繐幃飄井幹',
 '绕梁' => '繞樑',
-'绣像' => '繡像',
-'绣口' => '繡口',
-'绣得' => '繡得',
-'绣户' => '繡戶',
-'绣房' => '繡房',
-'绣毯' => '繡毯',
-'绣球' => '繡球',
-'绣的' => '繡的',
-'绣花' => '繡花',
-'绣衣' => '繡衣',
-'绣起' => '繡起',
-'绣阁' => '繡閣',
-'绣鞋' => '繡鞋',
 '绘制' => '繪製',
-'系上' => '繫上',
+'系上。' => '繫上。',
+'系上了' => '繫上了',
+'系上安全' => '繫上安全',
+'系上红' => '繫上紅',
+'系上丝' => '繫上絲',
+'系上绳' => '繫上繩',
+'系上头' => '繫上頭',
+'系上黑' => '繫上黑',
+'系上,' => '繫上,',
 '系世' => '繫世',
 '系到' => '繫到',
 '系囚' => '繫囚',
@@ -7782,68 +7268,71 @@ $zh2Hant = array(
 '系恋' => '繫戀',
 '系于' => '繫於',
 '系于一发' => '繫於一髮',
+'系着' => '繫着',
 '系结' => '繫結',
 '系紧' => '繫緊',
 '系绳' => '繫繩',
 '系累' => '繫纍',
+'系船' => '繫船',
 '系辞' => '繫辭',
+'系鞋带' => '繫鞋帶',
 '系风捕影' => '繫風捕影',
+'继承制' => '繼承制',
 '累囚' => '纍囚',
 '累堆' => '纍堆',
 '累瓦结绳' => '纍瓦結繩',
 '累绁' => '纍紲',
 '累臣' => '纍臣',
 '缠斗' => '纏鬥',
-'才则' => '纔則',
-'才可容颜十五余' => '纔可容顏十五餘',
-'才得两年' => '纔得兩年',
-'才此' => '纔此',
 '坛子' => '罈子',
 '坛坛罐罐' => '罈罈罐罐',
 '坛騞' => '罈騞',
 '置于' => '置於',
 '置言成范' => '置言成範',
-'骂着' => '罵著',
 '罢于' => '罷於',
+'罗马历' => '羅馬曆',
+'罗马历代' => '羅馬歷代',
+'罗马历史' => '羅馬歷史',
 '羁系' => '羈繫',
-'美占' => '美佔',
-'美仑' => '美崙',
+'美容美发' => '美容美髮',
 '美于' => '美於',
 '美制' => '美製',
 '美丑' => '美醜',
-'美发' => '美髮',
+'美发学' => '美髮學',
+'美发师' => '美髮師',
+'美发店' => '美髮店',
+'美发业' => '美髮業',
+'美发沙龙' => '美髮沙龍',
+'美发馆' => '美髮館',
 '群丑' => '群醜',
 '羡余' => '羨餘',
-'义占' => '義佔',
 '义仆' => '義僕',
-'义庄' => '義莊',
+'義联' => '義联',
+'翁子里' => '翁子里',
 '翕辟' => '翕闢',
 '翱游' => '翱遊',
 '翻涌' => '翻湧',
-'翻云覆雨' => '翻雲覆雨',
 '翻松' => '翻鬆',
+'老么' => '老么',
 '老干' => '老乾',
 '老仆' => '老僕',
 '老干部' => '老幹部',
 '老蒙' => '老懞',
 '老于' => '老於',
 '老爷钟' => '老爺鐘',
-'老庄' => '老莊',
 '老姜' => '老薑',
 '老板' => '老闆',
 '老面皮' => '老面皮',
 '考征' => '考徵',
-'考试' => '考試',
-'而克制' => '而剋制',
 '耍斗' => '耍鬥',
-'耐碱' => '耐鹼',
-'耕佣' => '耕傭',
 '耕获' => '耕穫',
 '耳余' => '耳餘',
 '耿于' => '耿於',
 '聊斋志异' => '聊齋志異',
+'圣人历' => '聖人曆',
 '圣后' => '聖后',
 '聘雇' => '聘僱',
+'聚药雄蕊' => '聚葯雄蕊',
 '闻风后' => '聞風後',
 '联系' => '聯繫',
 '听于' => '聽於',
@@ -7852,6 +7341,7 @@ $zh2Hant = array(
 '肉丝面' => '肉絲麵',
 '肉羹面' => '肉羹麵',
 '肉松' => '肉鬆',
+'肉面' => '肉麵',
 '肚里' => '肚裡',
 '肝脏' => '肝臟',
 '肝郁' => '肝鬱',
@@ -7859,9 +7349,8 @@ $zh2Hant = array(
 '肥筑方言' => '肥筑方言',
 '肴馔' => '肴饌',
 '肺脏' => '肺臟',
-'è\83\83è\8d¯' => 'è\83\83è\97¥',
+'è\83\83è\84\8f' => 'è\83\83è\87\9f',
 '胃里' => '胃裡',
-'背向着' => '背向著',
 '背地里' => '背地裡',
 '胎发' => '胎髮',
 '胜肽' => '胜肽',
@@ -7870,7 +7359,7 @@ $zh2Hant = array(
 '胡子昂' => '胡子昂',
 '胡朴安' => '胡樸安',
 '胡里胡涂' => '胡裡胡塗',
-'è\83½å\85\8bå\88¶' => 'è\83½å\89\8bå\88',
+'è\83°è\84\8f' => 'è\83°è\87\9f',
 '能干休' => '能干休',
 '能干戈' => '能干戈',
 '能干扰' => '能干擾',
@@ -7885,6 +7374,7 @@ $zh2Hant = array(
 '脊梁' => '脊樑',
 '脱谷机' => '脫穀機',
 '脱发' => '脫髮',
+'脺脏' => '脺臟',
 '脾脏' => '脾臟',
 '腊之以为饵' => '腊之以為餌',
 '腊味' => '腊味',
@@ -7893,16 +7383,20 @@ $zh2Hant = array(
 '肾脏' => '腎臟',
 '腐干' => '腐乾',
 '腐余' => '腐餘',
+'腑脏' => '腑臟',
 '腕表' => '腕錶',
-'脑子里' => '腦子裡',
 '脑干' => '腦幹',
 '腰里' => '腰裡',
 '脚注' => '腳註',
 '脚炼' => '腳鍊',
-'膏药' => '膏藥',
-'肤发' => '膚髮',
+'肠脏' => '腸臟',
 '胶卷' => '膠捲',
 '膨松' => '膨鬆',
+'膵脏' => '膵臟',
+'臊子面' => '臊子麵',
+'脏器' => '臟器',
+'脏胸' => '臟胸',
+'脏腑' => '臟腑',
 '臣仆' => '臣僕',
 '卧游' => '臥遊',
 '臧谷亡羊' => '臧穀亡羊',
@@ -7924,26 +7418,30 @@ $zh2Hant = array(
 '自制的能' => '自制的能',
 '自制能力' => '自制能力',
 '自于' => '自於',
+'自然数里' => '自然數裡',
 '自制' => '自製',
 '自觉自愿' => '自覺自愿',
+'自夸' => '自誇',
+'臭气冲天' => '臭氣衝天',
 '至多' => '至多',
+'至多只' => '至多只',
 '至于' => '至於',
 '致于' => '致於',
+'台佟' => '臺佟',
+'台静农' => '臺靜農',
 '臻于' => '臻於',
 '舂谷' => '舂穀',
-'与克制' => '與剋制',
-'兴致' => '興緻',
+'舉手表' => '舉手表',
 '举手表' => '舉手表',
-'举手表决' => '舉手表決',
-'旧庄' => '舊庄',
+'舊庄' => '舊庄',
 '旧历' => '舊曆',
 '旧历史' => '舊歷史',
-'旧药' => '舊藥',
 '旧游' => '舊遊',
 '旧表' => '舊錶',
 '旧钟' => '舊鐘',
 '旧钟表' => '舊鐘錶',
 '舌干唇焦' => '舌乾唇焦',
+'舍入口' => '舍入口',
 '舒卷' => '舒捲',
 '舞后' => '舞后',
 '航海历' => '航海曆',
@@ -7954,31 +7452,25 @@ $zh2Hant = array(
 '船钟' => '船鐘',
 '船只' => '船隻',
 '舰只' => '艦隻',
-'良药' => '良藥',
 '色欲' => '色慾',
-'è\89·å\90\8e' => 'è\89·å\90\8e',
+'è\89²é\95¿å\8f\91' => 'è\89²é\95·é«®',
 '艳后' => '艷后',
+'艷后' => '艷后',
 '艸木丰丰' => '艸木丰丰',
-'芍药' => '芍藥',
 '芒果干' => '芒果乾',
-'花拳绣腿' => '花拳繡腿',
 '花卷' => '花捲',
 '花盆里' => '花盆裡',
-'花词选' => '花菴詞選',
-'è\8a±è\8d¯' => 'è\8a±è\97¥',
+'花词选' => '花菴詞選',
+'è\8a±è\8d¯' => 'è\8a±è\91¯',
 '花钟' => '花鐘',
 '花马吊嘴' => '花馬弔嘴',
 '花哄' => '花鬨',
 '苑里' => '苑裡',
-'苛性碱' => '苛性鹼',
 '若干' => '若干',
 '苦干' => '苦幹',
-'苦药' => '苦藥',
 '苦里' => '苦裡',
 '苦斗' => '苦鬥',
 '苎麻' => '苧麻',
-'英占' => '英佔',
-'苹萦' => '苹縈',
 '茂都淀' => '茂都澱',
 '范文同' => '范文同',
 '范文正公' => '范文正公',
@@ -7990,57 +7482,34 @@ $zh2Hant = array(
 '范文藤' => '范文藤',
 '范文虎' => '范文虎',
 '范登堡' => '范登堡',
-'范贤惠' => '范賢惠',
 '范賢惠' => '范賢惠',
+'范贤惠' => '范賢惠',
+'茅于轼' => '茅于軾',
+'茅于軾' => '茅于軾',
 '茶几' => '茶几',
-'茶庄' => '茶莊',
 '茶余' => '茶餘',
 '茶面' => '茶麵',
 '草丛里' => '草叢裡',
 '草荐' => '草荐',
-'草药' => '草藥',
+'草席' => '草蓆',
 '荐居' => '荐居',
 '荐臻' => '荐臻',
-'è\8d\90é¥\91' => '荐饑',
+'è\8d\90饥' => '荐饑',
 '荷花淀' => '荷花澱',
-'庄上' => '莊上',
-'庄主' => '莊主',
-'庄周' => '莊周',
-'庄员' => '莊員',
-'庄严' => '莊嚴',
-'庄园' => '莊園',
-'庄士顿道' => '莊士頓道',
-'庄子' => '莊子',
-'庄客' => '莊客',
-'庄家' => '莊家',
-'庄户' => '莊戶',
-'庄房' => '莊房',
-'庄敬' => '莊敬',
-'庄田' => '莊田',
-'庄稼' => '莊稼',
-'庄舄越吟' => '莊舄越吟',
 '庄里' => '莊裡',
-'庄语' => '莊語',
-'庄农' => '莊農',
-'庄重' => '莊重',
-'庄院' => '莊院',
-'庄骚' => '莊騷',
 '茎干' => '莖幹',
 '莜面' => '莜麵',
 '莽荡' => '莽蕩',
-'菌丝体' => '菌絲體',
 '菜干' => '菜乾',
+'菜坛' => '菜罈',
 '菜肴' => '菜肴',
 '菠棱菜' => '菠稜菜',
 '菠萝干' => '菠蘿乾',
 '华严钟' => '華嚴鐘',
-'华发' => '華髮',
-'菸碱' => '菸鹼',
 '萬一只' => '萬一只',
 '万一只' => '萬一只',
 '万个' => '萬個',
 '万周后' => '萬周後',
-'万多只' => '萬多隻',
 '万天后' => '萬天後',
 '万年' => '萬年',
 '万年历' => '萬年曆',
@@ -8056,27 +7525,21 @@ $zh2Hant = array(
 '落发' => '落髮',
 '叶叶琴' => '葉叶琴',
 '叶叶琹' => '葉叶琹',
-'着儿' => '著兒',
-'着克制' => '著剋制',
-'着书立说' => '著書立說',
-'着色软体' => '著色軟體',
-'着重指出' => '著重指出',
-'着录' => '著錄',
-'着录规则' => '著錄規則',
-'葡占' => '葡佔',
 '葡萄干' => '葡萄乾',
 '董氏封发' => '董氏封髮',
 '葫芦里卖甚么药' => '葫蘆裡賣甚麼藥',
-'蒙汗药' => '蒙汗藥',
-'蒙庄' => '蒙莊',
 '蒙雾露' => '蒙霧露',
 '蒜发' => '蒜髮',
+'蒲席' => '蒲蓆',
+'蒸干' => '蒸乾',
+'蒸制' => '蒸製',
 '苍术' => '蒼朮',
 '苍发' => '蒼髮',
 '苍郁' => '蒼鬱',
 '蓄发' => '蓄髮',
 '蓄胡' => '蓄鬍',
 '蓄须' => '蓄鬚',
+'席子' => '蓆子',
 '蓊郁' => '蓊鬱',
 '蓬蓬松松' => '蓬蓬鬆鬆',
 '蓬发' => '蓬髮',
@@ -8084,12 +7547,13 @@ $zh2Hant = array(
 '参绥' => '蔘綏',
 '葱郁' => '蔥鬱',
 '荞麦面' => '蕎麥麵',
+'芸薹' => '蕓薹',
 '荡来荡去' => '蕩來蕩去',
 '荡女' => '蕩女',
 '荡妇' => '蕩婦',
 '荡寇' => '蕩寇',
 '荡平' => '蕩平',
-'荡气回肠' => '蕩氣迴腸',
+'荡气' => '蕩氣',
 '荡涤' => '蕩滌',
 '荡漾' => '蕩漾',
 '荡然' => '蕩然',
@@ -8100,6 +7564,7 @@ $zh2Hant = array(
 '萧参' => '蕭蔘',
 '薄幸' => '薄倖',
 '薄干' => '薄幹',
+'姜啤' => '薑啤',
 '姜是老的辣' => '薑是老的辣',
 '姜末' => '薑末',
 '姜桂' => '薑桂',
@@ -8115,110 +7580,61 @@ $zh2Hant = array(
 '姜饼' => '薑餅',
 '姜黄' => '薑黃',
 '薙发' => '薙髮',
-'薝蔔' => '薝蔔',
+'薝卜' => '薝蔔',
+'熏心' => '薰心',
+'熏染' => '薰染',
+'熏沐' => '薰沐',
+'熏习' => '薰習',
+'熏陶' => '薰陶',
+'熏风' => '薰風',
+'熏香' => '薰香',
 '苧悴' => '薴悴',
 '薴烯' => '薴烯',
 '苧烯' => '薴烯',
 '借以' => '藉以',
 '借助' => '藉助',
+'借口' => '藉口',
 '借寇兵' => '藉寇兵',
 '借手' => '藉手',
+'借故' => '藉故',
 '借机' => '藉機',
 '借此' => '藉此',
 '借由' => '藉由',
 '借箸代筹' => '藉箸代籌',
-'借着' => '藉著',
+'借词' => '藉詞',
 '借资' => '藉資',
 '蓝淀' => '藍澱',
 '藏于' => '藏於',
 '藏历' => '藏曆',
 '藏历史' => '藏歷史',
 '藏蒙歌儿' => '藏矇歌兒',
+'藤席' => '藤蓆',
 '藤制' => '藤製',
-'药丸' => '藥丸',
-'药典' => '藥典',
-'药到命除' => '藥到命除',
-'药到病除' => '藥到病除',
-'药剂' => '藥劑',
-'药力' => '藥力',
-'药包' => '藥包',
-'药名' => '藥名',
-'药味' => '藥味',
-'药品' => '藥品',
-'药商' => '藥商',
-'药单' => '藥單',
-'药婆' => '藥婆',
-'药学' => '藥學',
-'药害' => '藥害',
-'药专' => '藥專',
-'药局' => '藥局',
-'药师' => '藥師',
-'药店' => '藥店',
-'药厂' => '藥廠',
-'药引' => '藥引',
-'药性' => '藥性',
-'药房' => '藥房',
-'药效' => '藥效',
-'药方' => '藥方',
-'药材' => '藥材',
-'药棉' => '藥棉',
-'药检局' => '藥檢局',
-'药水' => '藥水',
-'药油' => '藥油',
-'药液' => '藥液',
-'药渣' => '藥渣',
-'药片' => '藥片',
-'药物' => '藥物',
-'药王' => '藥王',
-'药理' => '藥理',
-'药瓶' => '藥瓶',
-'药用' => '藥用',
-'药皂' => '藥皂',
-'药盒' => '藥盒',
-'药石' => '藥石',
-'药科' => '藥科',
-'药箱' => '藥箱',
 '药签' => '藥籤',
-'药粉' => '藥粉',
-'药糖' => '藥糖',
-'药线' => '藥線',
-'药罐' => '藥罐',
-'药膏' => '藥膏',
-'药舖' => '藥舖',
-'药茶' => '藥茶',
-'药草' => '藥草',
-'药行' => '藥行',
-'药贩' => '藥販',
-'药费' => '藥費',
-'药酒' => '藥酒',
-'药医学系' => '藥醫學系',
-'药量' => '藥量',
-'药针' => '藥針',
-'药铺' => '藥鋪',
-'药头' => '藥頭',
-'药饵' => '藥餌',
 '药面儿' => '藥麵兒',
 '苏昆' => '蘇崑',
-'è\95´å\90«ç\9d\80' => 'è\98\8aå\90«è\91\97',
-'è\95´æ¶µç\9d\80' => 'è\98\8a涵è\91\97',
+'è\8b\8få´\91' => 'è\98\87å´\91',
+'è\8b¹æ\9e\9c' => 'è\98\8bæ\9e\9c',
 '苹果干' => '蘋果乾',
-'萝蔔干' => '蘿蔔乾',
+'萝卜' => '蘿蔔',
+'萝卜干' => '蘿蔔乾',
 '虎须' => '虎鬚',
 '虎斗' => '虎鬥',
+'虚夸' => '虛誇',
 '号志' => '號誌',
 '虫部' => '虫部',
 '蚊动牛斗' => '蚊動牛鬥',
 '蛇发女妖' => '蛇髮女妖',
-'蛔虫药' => '蛔蟲藥',
 '蜂后' => '蜂后',
 '蜂涌' => '蜂湧',
 '蜂准' => '蜂準',
 '蜜里调油' => '蜜裡調油',
 '蜡月' => '蜡月',
 '蜡祭' => '蜡祭',
+'蝎虎' => '蝎虎',
 '蝎蝎螫螫' => '蝎蝎螫螫',
 '蝎谮' => '蝎譖',
-'è\99®è\9d¨相吊' => '蟣蝨相弔',
+'è\99®è\99±相吊' => '蟣蝨相弔',
 '蛏干' => '蟶乾',
 '蚁后' => '蟻后',
 '蟻后' => '蟻后',
@@ -8229,8 +7645,6 @@ $zh2Hant = array(
 '行事历' => '行事曆',
 '行事历史' => '行事歷史',
 '行凶' => '行兇',
-'行凶前' => '行兇前',
-'行凶後' => '行兇後',
 '行于' => '行於',
 '行百里者半于九十' => '行百里者半於九十',
 '卫后庄公' => '衛後莊公',
@@ -8253,7 +7667,7 @@ $zh2Hant = array(
 '冲堂' => '衝堂',
 '冲坚陷阵' => '衝堅陷陣',
 '冲压' => '衝壓',
-'冲天' => '衝天',
+'冲天炮' => '衝天炮',
 '冲州撞府' => '衝州撞府',
 '冲心' => '衝心',
 '冲掉' => '衝掉',
@@ -8267,11 +7681,11 @@ $zh2Hant = array(
 '冲激' => '衝激',
 '冲然' => '衝然',
 '冲盹' => '衝盹',
+'冲着' => '衝着',
 '冲破' => '衝破',
 '冲程' => '衝程',
 '冲突' => '衝突',
 '冲线' => '衝線',
-'冲着' => '衝著',
 '冲要' => '衝要',
 '冲起' => '衝起',
 '冲车' => '衝車',
@@ -8279,38 +7693,38 @@ $zh2Hant = array(
 '冲过' => '衝過',
 '冲量' => '衝量',
 '冲锋' => '衝鋒',
+'冲锋枪' => '衝鋒鎗',
 '冲陷' => '衝陷',
 '冲头阵' => '衝頭陣',
 '冲风' => '衝風',
-'衣绣昼行' => '衣繡晝行',
-'表征' => '表徵',
-'表里' => '表裡',
-'表面' => '表面',
+'衡鉴' => '衡鑑',
 '衷于' => '衷於',
+'袋杆' => '袋桿',
 '袋里' => '袋裡',
 '袋表' => '袋錶',
 '袖里' => '袖裡',
+'被废后' => '被廢後',
+'被系上' => '被繫上',
 '被里' => '被裡',
-'被复' => '被複',
-'被覆着' => '被覆著',
+'被夸' => '被誇',
 '被发佯狂' => '被髮佯狂',
 '被发入山' => '被髮入山',
 '被发左衽' => '被髮左衽',
 '被发缨冠' => '被髮纓冠',
 '被发阳狂' => '被髮陽狂',
+'夹衣' => '袷衣',
+'夹裙' => '袷裙',
 '裁并' => '裁併',
 '裁制' => '裁製',
 '里手' => '裏手',
+'里水镇' => '裏水鎮',
 '里海' => '裏海',
 '补于' => '補於',
-'补药' => '補藥',
-'补血药' => '補血藥',
 '补注' => '補註',
 '装折' => '裝摺',
 '里勾外连' => '裡勾外連',
 '里屋' => '裡屋',
 '里层' => '裡層',
-'里布' => '裡布',
 '里带' => '裡帶',
 '里弦' => '裡弦',
 '里应外合' => '裡應外合',
@@ -8337,22 +7751,17 @@ $zh2Hant = array(
 '制成' => '製成',
 '制法' => '製法',
 '制浆' => '製漿',
-'制为' => '製為',
 '制片' => '製片',
 '制版' => '製版',
 '制程' => '製程',
 '制糖' => '製糖',
 '制纸' => '製紙',
 '制药' => '製藥',
-'å\88¶è¡¨' => '製表',
+'å\88¶è¡£' => '製衣',
 '制造' => '製造',
 '制革' => '製革',
 '制鞋' => '製鞋',
 '制盐' => '製鹽',
-'复仞年如' => '複仞年如',
-'复以百万' => '複以百萬',
-'复位' => '複位',
-'复信' => '複信',
 '复元音' => '複元音',
 '复函数' => '複函數',
 '复分数' => '複分數',
@@ -8362,11 +7771,7 @@ $zh2Hant = array(
 '复利' => '複利',
 '复印' => '複印',
 '复句' => '複句',
-'复合' => '複合',
-'复名' => '複名',
-'复员' => '複員',
 '复壁' => '複壁',
-'复壮' => '複壯',
 '复姓' => '複姓',
 '复字键' => '複字鍵',
 '复审' => '複審',
@@ -8374,19 +7779,14 @@ $zh2Hant = array(
 '复对数' => '複對數',
 '复平面' => '複平面',
 '复式' => '複式',
-'复复' => '複復',
 '复数' => '複數',
 '复本' => '複本',
 '复查' => '複查',
-'复核' => '複核',
-'复检' => '複檢',
 '复次' => '複次',
 '复比' => '複比',
 '复决' => '複決',
 '复流' => '複流',
 '复测' => '複測',
-'复亩珍' => '複畝珍',
-'复发' => '複發',
 '复目' => '複目',
 '复眼' => '複眼',
 '复种' => '複種',
@@ -8409,38 +7809,24 @@ $zh2Hant = array(
 '复钱' => '複錢',
 '复阅' => '複閱',
 '复杂' => '複雜',
-'复电' => '複電',
 '复音' => '複音',
 '复韵' => '複韻',
 '褒赞' => '褒讚',
 '衬里' => '襯裡',
-'西占' => '西佔',
 '西周钟' => '西周鐘',
+'西昆' => '西崑',
 '西岳' => '西嶽',
-'西晒' => '西晒',
 '西历' => '西曆',
 '西历史' => '西歷史',
+'西湖里' => '西湖里',
 '西米谷' => '西米谷',
-'西药' => '西藥',
 '西西里' => '西西里',
 '西谷米' => '西谷米',
 '西游' => '西遊',
-'要占' => '要佔',
-'要克制' => '要剋制',
-'要占卜' => '要占卜',
 '要自制' => '要自制',
 '要冲' => '要衝',
-'要么' => '要麼',
-'覆亡' => '覆亡',
-'覆命' => '覆命',
-'覆巢之下无完卵' => '覆巢之下無完卵',
-'覆水难收' => '覆水難收',
-'覆没' => '覆沒',
-'覆着' => '覆著',
-'覆盖' => '覆蓋',
-'覆盖着' => '覆蓋著',
-'覆辙' => '覆轍',
-'覆雨翻云' => '覆雨翻雲',
+'复信' => '覆信',
+'复核' => '覆核',
 '见于' => '見於',
 '见棱见角' => '見稜見角',
 '见素抱朴' => '見素抱樸',
@@ -8449,12 +7835,11 @@ $zh2Hant = array(
 '視如寇仇' => '視如寇讎',
 '视于' => '視於',
 '观采' => '觀採',
+'角抵' => '角牴',
 '角落发' => '角落發',
 '角落里' => '角落裡',
 '觚棱' => '觚稜',
 '解雇' => '解僱',
-'解痛药' => '解痛藥',
-'解药' => '解藥',
 '解铃仍须系铃人' => '解鈴仍須繫鈴人',
 '解铃还须系铃人' => '解鈴還須繫鈴人',
 '解发佯狂' => '解髮佯狂',
@@ -8470,7 +7855,7 @@ $zh2Hant = array(
 '托交' => '託交',
 '托人' => '託人',
 '托付' => '託付',
-'托儿所' => '託兒所',
+'托儿' => '託兒',
 '托古讽今' => '託古諷今',
 '托名' => '託名',
 '托命' => '託命',
@@ -8494,7 +7879,6 @@ $zh2Hant = array(
 '托附' => '託附',
 '许愿起经' => '許愿起經',
 '许虬' => '許虬',
-'诉说着' => '訴說著',
 '注上' => '註上',
 '注册' => '註冊',
 '注失' => '註失',
@@ -8509,17 +7893,18 @@ $zh2Hant = array(
 '注译' => '註譯',
 '注销' => '註銷',
 '注:' => '註:',
+'证谏' => '証諫',
 '评断发' => '評斷發',
 '评注' => '評註',
+'评鉴' => '評鑑',
 '词干' => '詞幹',
 '词汇' => '詞彙',
 '词余' => '詞餘',
 '询于' => '詢於',
 '询于刍荛' => '詢於芻蕘',
-'试药' => '試藥',
 '试制' => '試製',
-'诗云' => '詩云',
 '詩云' => '詩云',
+'诗云' => '詩云',
 '诗赞' => '詩讚',
 '诗钟' => '詩鐘',
 '诗余' => '詩餘',
@@ -8528,9 +7913,44 @@ $zh2Hant = array(
 '详征博引' => '詳徵博引',
 '详注' => '詳註',
 '诔赞' => '誄讚',
+'夸下海口' => '誇下海口',
+'夸了' => '誇了',
+'夸他' => '誇他',
+'夸你' => '誇你',
+'夸来夸去' => '誇來誇去',
+'夸别' => '誇別',
+'夸功' => '誇功',
+'夸胜道强' => '誇勝道強',
+'夸口' => '誇口',
+'夸嘴' => '誇嘴',
 '夸多斗靡' => '誇多鬥靡',
+'夸大' => '誇大',
+'夸她' => '誇她',
+'夸官' => '誇官',
+'夸张' => '誇張',
+'夸强说会' => '誇強說會',
+'夸得' => '誇得',
+'夸成' => '誇成',
+'夸我' => '誇我',
+'夸才' => '誇才',
+'夸毗' => '誇毗',
+'夸海口' => '誇海口',
+'夸奖' => '誇獎',
+'夸示' => '誇示',
+'夸称' => '誇稱',
+'夸耀' => '誇耀',
+'夸能' => '誇能',
 '夸能斗智' => '誇能鬥智',
+'夸诩' => '誇詡',
+'夸夸' => '誇誇',
+'夸夸其谈' => '誇誇其談',
+'夸诞' => '誇誕',
+'夸说' => '誇說',
 '夸赞' => '誇讚',
+'夸起' => '誇起',
+'夸辩' => '誇辯',
+'夸过' => '誇過',
+'夸饰' => '誇飾',
 '志哀' => '誌哀',
 '志喜' => '誌喜',
 '志庆' => '誌慶',
@@ -8539,12 +7959,14 @@ $zh2Hant = array(
 '诱奸' => '誘姦',
 '语云' => '語云',
 '语汇' => '語彙',
-'语有云' => '語有云',
 '語有云' => '語有云',
+'语有云' => '語有云',
+'语法里' => '語法裡',
+'语里' => '語裡',
 '诚征' => '誠徵',
 '诚朴' => '誠樸',
 '诬蔑' => '誣衊',
-'说着' => '說著',
+'说不准' => '說不準',
 '谁干的' => '誰幹的',
 '课征' => '課徵',
 '课余' => '課餘',
@@ -8553,19 +7975,25 @@ $zh2Hant = array(
 '调表' => '調錶',
 '调钟表' => '調鐘錶',
 '谈征' => '談徵',
-'请参阅' => '請參閱',
 '请君入瓮' => '請君入甕',
-'请求' => '請求',
 '请托' => '請託',
 '咨询' => '諮詢',
 '诸余' => '諸餘',
 '谋干' => '謀幹',
-'谢绝参观' => '謝絕參觀',
 '谢华后' => '謝華后',
 '谬采虚声' => '謬採虛聲',
 '谬赞' => '謬讚',
 '謷丑' => '謷醜',
+'謹愿' => '謹愿',
+'谨愿' => '謹愿',
 '谨于心' => '謹於心',
+'哗噪' => '譁噪',
+'哗嚣' => '譁囂',
+'哗然' => '譁然',
+'哗众' => '譁眾',
+'哗笑' => '譁笑',
+'哗变' => '譁變',
+'噪诈' => '譟詐',
 '警世钟' => '警世鐘',
 '警报钟' => '警報鐘',
 '警示钟' => '警示鐘',
@@ -8574,21 +8002,15 @@ $zh2Hant = array(
 '护发' => '護髮',
 '变征' => '變徵',
 '变丑' => '變醜',
-'变脏' => '變髒',
-'变髒' => '變髒',
-'仇問' => '讎問',
-'仇夷' => '讎夷',
-'仇校' => '讎校',
 '仇正' => '讎正',
 '仇隙' => '讎隙',
 '赞不绝口' => '讚不絕口',
 '赞佩' => '讚佩',
 '赞呗' => '讚唄',
-'赞叹不已' => '讚嘆不已',
+'赞叹' => '讚嘆',
 '赞扬' => '讚揚',
 '赞乐' => '讚樂',
 '赞歌' => '讚歌',
-'赞叹' => '讚歎',
 '赞美' => '讚美',
 '赞羡' => '讚羨',
 '赞许' => '讚許',
@@ -8597,45 +8019,43 @@ $zh2Hant = array(
 '赞赏' => '讚賞',
 '赞辞' => '讚辭',
 '赞颂' => '讚頌',
+'谷子敬' => '谷子敬',
 '豆干' => '豆乾',
 '豆腐干' => '豆腐乾',
-'竖着' => '豎著',
 '竖起脊梁' => '豎起脊梁',
 '丰滨' => '豐濱',
 '丰滨乡' => '豐濱鄉',
+'丰台' => '豐臺',
+'豔后' => '豔后',
 '象征' => '象徵',
-'象征着' => '象徵著',
-'负债累累' => '負債纍纍',
 '贪欲' => '貪慾',
 '贵价' => '貴价',
+'貴子里' => '貴子里',
 '贵干' => '貴幹',
 '贵征' => '貴徵',
-'買凶' => '買兇',
 '买凶' => '買兇',
 '买断发' => '買斷發',
-'费占' => '費佔',
 '贻范' => '貽範',
-'资金占用' => '資金占用',
-'贾后' => '賈后',
 '賈后' => '賈后',
+'贾后' => '賈后',
+'赈饥' => '賑饑',
 '赏赞' => '賞讚',
-'贤后' => '賢后',
 '賢后' => '賢后',
+'贤后' => '賢后',
 '卖断发' => '賣斷發',
-'卖呆' => '賣獃',
+'赋范' => '賦范',
+'賦范' => '賦范',
+'质数里' => '質數裡',
 '质朴' => '質樸',
 '赌后' => '賭后',
 '赌台' => '賭檯',
 '赌斗' => '賭鬥',
-'賸余' => '賸餘',
 '购并' => '購併',
 '购买欲' => '購買慾',
 '赢余' => '贏餘',
 '赤术' => '赤朮',
 '赤绳系足' => '赤繩繫足',
-'赤霉素' => '赤霉素',
 '走回路' => '走回路',
-'起复' => '起複',
 '起哄' => '起鬨',
 '超级杯' => '超級盃',
 '赶制' => '趕製',
@@ -8643,16 +8063,19 @@ $zh2Hant = array(
 '赵威后' => '趙威后',
 '赵惠后' => '趙惠后',
 '赵治勋' => '趙治勳',
-'赵庄' => '趙莊',
 '趱干' => '趲幹',
 '足于' => '足於',
 '跌扑' => '跌扑',
-'è·\8cè\8d¡' => 'è·\8cè\95©',
+'è·¯å\9b¾é\87\8c' => 'è·¯å\9c\96裡',
 '路签' => '路籤',
 '路面' => '路面',
 '跳梁小丑' => '跳樑小丑',
 '跳荡' => '跳蕩',
-'跳表' => '跳錶',
+'局蹐' => '跼蹐',
+'局躅' => '跼躅',
+'踡局' => '踡跼',
+'逾闲' => '踰閑',
+'蹒局' => '蹣跼',
 '蹪于' => '蹪於',
 '蹭棱子' => '蹭稜子',
 '躁郁' => '躁鬱',
@@ -8662,29 +8085,29 @@ $zh2Hant = array(
 '车库里' => '車庫裡',
 '车站里' => '車站裡',
 '车里' => '車裡',
+'车里雅宾斯克' => '車里雅賓斯克',
 '轨范' => '軌範',
-'军队克制' => '軍隊剋制',
 '轩辟' => '軒闢',
 '较于' => '較於',
 '挽曲' => '輓曲',
 '挽歌' => '輓歌',
-'挽聯' => '輓聯',
 '挽联' => '輓聯',
-'挽詞' => '輓詞',
 '挽词' => '輓詞',
 '挽诗' => '輓詩',
-'挽詩' => '輓詩',
+'挽车' => '輓車',
+'挽输' => '輓輸',
+'挽辞' => '輓辭',
 '轻于' => '輕於',
 '轻轻松松' => '輕輕鬆鬆',
 '轻松' => '輕鬆',
 '轮奸' => '輪姦',
 '轮回' => '輪迴',
 '转向往' => '轉向往',
-'转台' => '轉檯',
 '转托' => '轉託',
 '转斗千里' => '轉鬥千里',
 '辛丑' => '辛丑',
 '辟谷' => '辟穀',
+'辣面' => '辣麵',
 '办公台' => '辦公檯',
 '辞汇' => '辭彙',
 '辫发' => '辮髮',
@@ -8693,11 +8116,8 @@ $zh2Hant = array(
 '农历史' => '農歷史',
 '农民历' => '農民曆',
 '农民历史' => '農民歷史',
-'农庄' => '農莊',
-'农药' => '農藥',
 '迂回' => '迂迴',
 '近日無仇' => '近日無讎',
-'近日里' => '近日裡',
 '返朴' => '返樸',
 '迥然回异' => '迥然迴異',
 '迫于' => '迫於',
@@ -8708,12 +8128,13 @@ $zh2Hant = array(
 '回形夹' => '迴形夾',
 '回文' => '迴文',
 '回旋' => '迴旋',
-'回流' => '迴流',
 '回环' => '迴環',
 '回纹针' => '迴紋針',
 '回绕' => '迴繞',
 '回翔' => '迴翔',
 '回肠' => '迴腸',
+'回肠荡气' => '迴腸盪氣',
+'回荡' => '迴蕩',
 '回诵' => '迴誦',
 '回路' => '迴路',
 '回转' => '迴轉',
@@ -8723,14 +8144,10 @@ $zh2Hant = array(
 '回音' => '迴音',
 '回响' => '迴響',
 '回风' => '迴風',
-'迷幻药' => '迷幻藥',
 '迷于' => '迷於',
 '迷蒙' => '迷濛',
-'迷药' => '迷藥',
-'迷魂药' => '迷魂藥',
 '追凶' => '追兇',
 '退伙' => '退夥',
-'退烧药' => '退燒藥',
 '退藏于密' => '退藏於密',
 '逆钟' => '逆鐘',
 '逆钟向' => '逆鐘向',
@@ -8738,41 +8155,50 @@ $zh2Hant = array(
 '逋发' => '逋髮',
 '逍遥游' => '逍遙遊',
 '透辟' => '透闢',
+'这出世' => '這出世',
+'这出乎' => '這出乎',
+'这出人' => '這出人',
+'这出版' => '這出版',
+'这出现' => '這出現',
+'这出生' => '這出生',
+'这出色' => '這出色',
+'这出身' => '這出身',
+'这出道' => '這出道',
 '这只不' => '這只不',
+'这只不过' => '這只不過',
 '这只允' => '這只允',
+'这只包括' => '這只包括',
 '这只可' => '這只可',
 '这只在' => '這只在',
 '这只容' => '這只容',
+'这只应' => '這只應',
 '这只采' => '這只採',
 '这只是' => '這只是',
 '这只会' => '這只會',
+'这只比' => '這只比',
 '这只用' => '這只用',
 '这只能' => '這只能',
+'这只限' => '這只限',
 '这只需' => '這只需',
+'这只须' => '這只須',
 '这伙人' => '這夥人',
 '这里' => '這裡',
 '这钟' => '這鐘',
 '这只' => '這隻',
-'这么' => '這麼',
-'这么着' => '這麼著',
+'这出' => '這齣',
 '通奸' => '通姦',
 '通心面' => '通心麵',
 '通于' => '通於',
 '通历' => '通曆',
 '通历史' => '通歷史',
-'通庄' => '通莊',
-'逞凶鬥狠' => '逞兇鬥狠',
+'通鉴' => '通鑑',
 '逞凶斗狠' => '逞兇鬥狠',
 '造钟' => '造鐘',
-'造钟表' => '造鐘錶',
-'造曲' => '造麯',
 '连三并四' => '連三併四',
-'连占' => '連佔',
 '连采' => '連採',
 '连系' => '連繫',
-'连庄' => '連莊',
 '周游世界' => '週遊世界',
-'进占' => '進佔',
+'进两出' => '進兩出',
 '進制' => '進制',
 '进制' => '進制',
 '逼并' => '逼併',
@@ -8783,7 +8209,7 @@ $zh2Hant = array(
 '游伴' => '遊伴',
 '游侠' => '遊俠',
 '游冶' => '遊冶',
-'游刃有余' => '遊刃有餘',
+'游刃' => '遊刃',
 '游动' => '遊動',
 '游园' => '遊園',
 '游子' => '遊子',
@@ -8802,16 +8228,16 @@ $zh2Hant = array(
 '游历' => '遊歷',
 '游民' => '遊民',
 '游河' => '遊河',
+'游牧' => '遊牧',
 '游猎' => '遊獵',
 '游玩' => '遊玩',
-'游荡' => '遊盪',
 '游目骋怀' => '遊目騁懷',
 '游程' => '遊程',
 '游丝' => '遊絲',
 '游兴' => '遊興',
 '游船' => '遊船',
 '游艇' => '遊艇',
-'游荡不归' => '遊蕩不歸',
+'游荡' => '遊蕩',
 '游艺' => '遊藝',
 '游行' => '遊行',
 '游街' => '遊街',
@@ -8821,24 +8247,20 @@ $zh2Hant = array(
 '游资' => '遊資',
 '游走' => '遊走',
 '游踪' => '遊蹤',
+'游轮' => '遊輪',
 '游逛' => '遊逛',
 '游错' => '遊錯',
-'游离份子' => '遊離份子',
-'游离票' => '遊離票',
 '游骑兵' => '遊騎兵',
 '游魂' => '遊魂',
 '过于' => '過於',
-'过杆' => '過杆',
 '过水面' => '過水麵',
 '道范' => '道範',
 '逊于' => '遜於',
 '递回' => '遞迴',
-'远县才至' => '遠縣纔至',
 '远游' => '遠遊',
 '遨游' => '遨遊',
 '遮丑' => '遮醜',
 '迁于' => '遷於',
-'选手' => '選手',
 '选手表明' => '選手表明',
 '选手表决' => '選手表決',
 '选手表现' => '選手表現',
@@ -8846,54 +8268,56 @@ $zh2Hant = array(
 '选手表达' => '選手表達',
 '遗传钟' => '遺傳鐘',
 '遗范' => '遺範',
-'é\81\97迹' => 'é\81ºè¿¹',
+'é\81\97迹' => 'é\81ºè¹\9f',
 '辽沈' => '遼瀋',
-'避孕药' => '避孕藥',
 '邀天之幸' => '邀天之倖',
-'还占' => '還佔',
 '还采' => '還採',
 '还冲' => '還衝',
 '邋里邋遢' => '邋裡邋遢',
+'那只不过' => '那只不過',
+'那只包括' => '那只包括',
 '那只可' => '那只可',
 '那只在' => '那只在',
+'那只怕' => '那只怕',
+'那只应' => '那只應',
 '那只是' => '那只是',
 '那只会' => '那只會',
 '那只有' => '那只有',
+'那只比' => '那只比',
 '那只用' => '那只用',
 '那只能' => '那只能',
+'那只限' => '那只限',
 '那只需' => '那只需',
+'那只须' => '那只須',
 '那卷' => '那捲',
 '那里' => '那裡',
 '那只' => '那隻',
-'那么' => '那麼',
-'那么着' => '那麼著',
 '邱于庭' => '邱于庭',
 '郁朴' => '郁樸',
 '郁郁菲菲' => '郁郁菲菲',
 '郁郁青青' => '郁郁青青',
 '郊游' => '郊遊',
 '郘钟' => '郘鐘',
+'部子里' => '部子里',
 '部落发' => '部落發',
 '郭后' => '郭后',
 '都于' => '都於',
-'鄉愿' => '鄉愿',
 '乡愿' => '鄉愿',
-'é\84­å\87±äº\91' => 'é\84­å\87±äº\91',
+'é\84\89æ\84¿' => 'é\84\89æ\84¿',
 '郑凯云' => '鄭凱云',
-'é\83\91åº\84å\85¬' => 'é\84­è\8e\8aå\85¬',
+'é\84­å\87±äº\91' => 'é\84­å\87±äº\91',
 '配制饲料' => '配制飼料',
-'é\85\8då\90\88ç\9d\80' => 'é\85\8då\90\88è\91\97',
+'é\85\8då\9b¾é\87\8c' => 'é\85\8då\9c\96裡',
 '配水干管' => '配水幹管',
-'配药' => '配藥',
 '配制' => '配製',
 '酒帘' => '酒帘',
+'酒气冲天' => '酒氣衝天',
 '酒坛' => '酒罈',
 '酒肴' => '酒肴',
-'酒药' => '酒藥',
-'酒醴曲蘖' => '酒醴麴櫱',
+'酒麹' => '酒麴',
 '酒曲' => '酒麴',
 '酥松' => '酥鬆',
-'酸碱' => '酸鹼',
+'酸姜' => '酸薑',
 '醇朴' => '醇樸',
 '醉于' => '醉於',
 '醋坛' => '醋罈',
@@ -8907,12 +8331,13 @@ $zh2Hant = array(
 '丑化' => '醜化',
 '丑史' => '醜史',
 '丑名' => '醜名',
-'ä¸\91å\92¤' => '醜吒',
+'ä¸\91å\90\92' => '醜吒',
 '丑地' => '醜地',
 '丑夷' => '醜夷',
 '丑女' => '醜女',
 '丑女效颦' => '醜女效顰',
 '丑奴儿' => '醜奴兒',
+'丑婆子' => '醜婆子',
 '丑妇' => '醜婦',
 '丑媳' => '醜媳',
 '丑媳妇' => '醜媳婦',
@@ -8948,18 +8373,18 @@ $zh2Hant = array(
 '丑杂' => '醜雜',
 '丑头怪脸' => '醜頭怪臉',
 '丑类' => '醜類',
-'酝酿着' => '醞釀著',
-'医药' => '醫藥',
-'医院里' => '醫院裡',
 '酿制' => '釀製',
 '衅钟' => '釁鐘',
 '采石之役' => '采石之役',
 '采石之战' => '采石之戰',
 '采石之戰' => '采石之戰',
-'采石磯' => '采石磯',
 '采石矶' => '采石磯',
-'釉药' => '釉藥',
-'里程表' => '里程錶',
+'采石磯' => '采石磯',
+'里海大学' => '里海大學',
+'里海大學' => '里海大學',
+'里海崖' => '里海崖',
+'里海茨' => '里海茨',
+'里铺' => '里舖',
 '重回' => '重回',
 '重折' => '重摺',
 '重于' => '重於',
@@ -8970,17 +8395,17 @@ $zh2Hant = array(
 '重游' => '重遊',
 '野姜' => '野薑',
 '野游' => '野遊',
-'厘出' => '釐出',
-'厘升' => '釐升',
-'厘定' => '釐定',
+'量不准' => '量不準',
+'厘改' => '釐改',
+'厘整' => '釐整',
 '厘正' => '釐正',
+'厘毫' => '釐毫',
 '厘清' => '釐清',
 '厘订' => '釐訂',
+'厘革' => '釐革',
 '金仆姑' => '金僕姑',
-'金仑溪' => '金崙溪',
-'金布道' => '金布道',
+'金城里' => '金城里',
 '金范' => '金範',
-'金色长发' => '金色長髮',
 '金表情' => '金表情',
 '金表态' => '金表態',
 '金表扬' => '金表揚',
@@ -8992,12 +8417,10 @@ $zh2Hant = array(
 '金表露' => '金表露',
 '金表面' => '金表面',
 '金装玉里' => '金裝玉裡',
-'金表' => '金錶',
+'金链' => '金鍊',
 '金钟' => '金鐘',
-'金鸡纳碱' => '金雞納鹼',
-'金马仑道' => '金馬崙道',
 '金发' => '金髮',
-'é\88\8e心斗角' => '鈎心鬥角',
+'é\92©心斗角' => '鈎心鬥角',
 '银朱' => '銀硃',
 '银发' => '銀髮',
 '铜范' => '銅範',
@@ -9005,37 +8428,27 @@ $zh2Hant = array(
 '铜钟' => '銅鐘',
 '铯钟' => '銫鐘',
 '铝制' => '鋁製',
-'铺锦列绣' => '鋪錦列繡',
 '钢之炼金术师' => '鋼之鍊金術師',
 '钢梁' => '鋼樑',
 '钢制' => '鋼製',
-'录着' => '錄著',
 '录制' => '錄製',
 '锤炼' => '錘鍊',
 '钱谷' => '錢穀',
 '钱范' => '錢範',
-'钱庄' => '錢莊',
-'锦綉花园' => '錦綉花園',
-'锦绣' => '錦繡',
+'锦卤' => '錦滷',
+'锦绣花园' => '錦綉花園',
 '表停' => '錶停',
 '表冠' => '錶冠',
 '表带' => '錶帶',
-'表店' => '錶店',
-'表厂' => '錶廠',
 '表快' => '錶快',
 '表慢' => '錶慢',
 '表板' => '錶板',
-'表壳' => '錶殼',
 '表王' => '錶王',
-'表的嘀嗒' => '錶的嘀嗒',
-'表的历史' => '錶的歷史',
 '表盘' => '錶盤',
 '表蒙子' => '錶蒙子',
-'表行' => '錶行',
 '表转' => '錶轉',
 '表速' => '錶速',
 '表针' => '錶針',
-'表链' => '錶鏈',
 '炼冶' => '鍊冶',
 '炼句' => '鍊句',
 '炼字' => '鍊字',
@@ -9045,13 +8458,12 @@ $zh2Hant = array(
 '炼气' => '鍊氣',
 '炼汞' => '鍊汞',
 '炼石' => '鍊石',
+'链表' => '鍊表',
 '炼贫' => '鍊貧',
 '炼金术' => '鍊金術',
-'炼钢' => '鍊鋼',
-'锅庄' => '鍋莊',
-'锻炼出' => '鍛鍊出',
 '锲而不舍' => '鍥而不捨',
 '镰仓' => '鎌倉',
+'镜图里' => '鏡圖裡',
 '锈病' => '鏽病',
 '锈菌' => '鏽菌',
 '锈蚀' => '鏽蝕',
@@ -9080,7 +8492,6 @@ $zh2Hant = array(
 '钟形虫' => '鐘形蟲',
 '钟律' => '鐘律',
 '钟快' => '鐘快',
-'钟意' => '鐘意',
 '钟慢' => '鐘慢',
 '钟摆' => '鐘擺',
 '钟敲' => '鐘敲',
@@ -9111,12 +8522,8 @@ $zh2Hant = array(
 '钟表停' => '鐘錶停',
 '钟表快' => '鐘錶快',
 '钟表慢' => '鐘錶慢',
-'钟表历史' => '鐘錶歷史',
 '钟表王' => '鐘錶王',
-'钟表的' => '鐘錶的',
-'钟表的历史' => '鐘錶的歷史',
 '钟表盘' => '鐘錶盤',
-'钟表行' => '鐘錶行',
 '钟表速' => '鐘錶速',
 '钟关' => '鐘關',
 '钟陈列' => '鐘陳列',
@@ -9129,41 +8536,55 @@ $zh2Hant = array(
 '钟点' => '鐘點',
 '钟鼎' => '鐘鼎',
 '钟鼓' => '鐘鼓',
-'铁杆' => '鐵杆',
-'铁栏杆' => '鐵欄杆',
 '铁锈' => '鐵鏽',
 '铁钟' => '鐵鐘',
 '铸钟' => '鑄鐘',
+'鉴别' => '鑑別',
+'鉴古' => '鑑古',
+'鉴定' => '鑑定',
+'鉴察' => '鑑察',
+'鉴往知来' => '鑑往知來',
+'鉴戒' => '鑑戒',
+'鉴湖' => '鑑湖',
+'鉴藏' => '鑑藏',
+'鉴谅' => '鑑諒',
+'鉴证' => '鑑證',
+'鉴识' => '鑑識',
+'鉴赏' => '鑑賞',
 '鉴于' => '鑒於',
 '长几' => '長几',
 '长于' => '長於',
 '长历' => '長曆',
 '长历史' => '長歷史',
-'长生药' => '長生藥',
+'长发公主' => '長髮公主',
+'长发妹' => '長髮妹',
+'长发姑娘' => '長髮姑娘',
 '长胡' => '長鬍',
 '门帘' => '門帘',
 '门吊儿' => '門弔兒',
 '门里' => '門裡',
 '闫怀礼' => '閆懷禮',
+'開山辟谷' => '開山辟谷',
+'开山辟谷' => '開山闢谷',
 '开吊' => '開弔',
 '开征' => '開徵',
 '开采' => '開採',
 '开发' => '開發',
-'开药' => '開藥',
 '开辟' => '開闢',
 '开哄' => '開鬨',
+'闲邪' => '閑邪',
 '闲情逸致' => '閒情逸緻',
 '闲荡' => '閒蕩',
 '闲游' => '閒遊',
 '间不容发' => '間不容髮',
+'间里' => '間裡',
 '闵采尔' => '閔採爾',
-'府' => '閤府',
+'府' => '閤府',
 '闺范' => '閨範',
 '阃范' => '閫範',
 '闯荡' => '闖蕩',
 '闯炼' => '闖鍊',
 '关系' => '關係',
-'关系着' => '關係著',
 '关弓与我确' => '關弓與我确',
 '关于' => '關於',
 '辟佛' => '闢佛',
@@ -9179,37 +8600,34 @@ $zh2Hant = array(
 '辟谣' => '闢謠',
 '辟辟' => '闢辟',
 '辟邪以律' => '闢邪以律',
-'防晒' => '防晒',
 '防水表' => '防水錶',
 '防御' => '防禦',
 '防范' => '防範',
 '防锈' => '防鏽',
 '防台' => '防颱',
 '阻于' => '阻於',
-'阿呆瓜' => '阿呆瓜',
-'阿斯图里亚斯' => '阿斯圖里亞斯',
-'阿呆' => '阿獃',
 '阿里' => '阿里',
 '附于' => '附於',
 '附注' => '附註',
-'降压药' => '降壓藥',
 '限制' => '限制',
-'升官' => '陞官',
-'除臭药' => '除臭藥',
+'院里' => '院裡',
 '陪吊' => '陪弔',
 '阴干' => '陰乾',
 '阴历' => '陰曆',
 '阴历史' => '陰歷史',
 '阴沟里翻船' => '陰溝裡翻船',
 '阴郁' => '陰鬱',
-'陈冲' => '陳冲',
 '陳冲' => '陳冲',
+'陳士杰' => '陳士杰',
+'陈升' => '陳昇',
+'陳有后' => '陳有后',
 '陈有后' => '陳有后',
 '陈炼' => '陳鍊',
 '陆游' => '陸遊',
 '阳春面' => '陽春麵',
 '阳历' => '陽曆',
 '阳历史' => '陽歷史',
+'阳谷' => '陽穀',
 '隆准许' => '隆准許',
 '隆准' => '隆準',
 '随于' => '隨於',
@@ -9224,12 +8642,14 @@ $zh2Hant = array(
 '只身' => '隻身',
 '雄斗斗' => '雄斗斗',
 '雅范' => '雅範',
-'é\9b\85è\87´' => 'é\9b\85ç·»',
+'é\9b\86æ\95°é\87\8c' => 'é\9b\86æ\95¸è£¡',
 '集于' => '集於',
+'集里' => '集裡',
 '集游法' => '集遊法',
 '雕梁画栋' => '雕樑畫棟',
 '双折射' => '雙折射',
 '双折' => '雙摺',
+'双沟大曲' => '雙溝大麯',
 '双胜类' => '雙胜類',
 '双雕' => '雙鵰',
 '杂合面儿' => '雜合麵兒',
@@ -9246,46 +8666,37 @@ $zh2Hant = array(
 '离于' => '離於',
 '难舍' => '難捨',
 '难于' => '難於',
+'雨蒙蒙' => '雨濛濛',
 '雪窗萤几' => '雪窗螢几',
 '雪里' => '雪裡',
 '雪里红' => '雪裡紅',
 '雪里蕻' => '雪裡蕻',
-'äº\91å\8d\97ç\99½è\8d¯' => 'é\9b²å\8d\97ç\99½è\97¥',
+'äº\91å\90\9eé\9d¢' => 'é\9b²å\90\9e麵',
 '云笈七签' => '雲笈七籤',
 '云游' => '雲遊',
 '云须' => '雲鬚',
 '零个' => '零個',
 '零周后' => '零周後',
-'零多只' => '零多隻',
 '零天后' => '零天後',
 '零年' => '零年',
 '零只' => '零隻',
 '零余' => '零餘',
 '电子表格' => '電子表格',
-'电子表' => '電子錶',
 '电子钟' => '電子鐘',
 '电子钟表' => '電子鐘錶',
-'电杆' => '電杆',
 '电波钟' => '電波鐘',
 '电码表' => '電碼表',
-'电线杆' => '電線杆',
 '电冲' => '電衝',
 '电表' => '電錶',
 '电钟' => '電鐘',
 '震栗' => '震慄',
-'é\9c\87è\8d¡' => 'é\9c\87è\95©',
+'é\9c\89æ°\94å\86²å¤©' => 'é\9c\89æ°£è¡\9d天',
 '雾里' => '霧裡',
 '露丑' => '露醜',
-'霸占' => '霸佔',
 '霁范' => '霽範',
-'灵药' => '靈藥',
 '青山一发' => '青山一髮',
-'青苹' => '青苹',
-'青苹果' => '青蘋果',
-'青蝇吊客' => '青蠅弔客',
-'青霉素' => '青霉素',
 '青霉' => '青黴',
-'é\9d\9eå\8d ä¸\8då\8f¯' => 'é\9d\9eä½\94ä¸\8då\8f¯',
+'é\9d\9e常å\87\86' => 'é\9d\9e常æº\96',
 '面包住' => '面包住',
 '面包含' => '面包含',
 '面包围' => '面包圍',
@@ -9299,64 +8710,68 @@ $zh2Hant = array(
 '面包管' => '面包管',
 '面包扎' => '面包紮',
 '面包罗' => '面包羅',
-'面包着' => '面包著',
 '面包藏' => '面包藏',
 '面包装' => '面包裝',
 '面包裹' => '面包裹',
 '面包起' => '面包起',
 '面包办' => '面包辦',
-'面店舖' => '面店舖',
-'面朝着' => '面朝著',
-'面条目' => '面條目',
+'面店铺' => '面店鋪',
 '面條目' => '面條目',
+'面条目' => '面條目',
 '面粉碎' => '面粉碎',
 '面粉红' => '面粉紅',
-'面临着' => '面臨著',
 '面食饭' => '面食飯',
 '面食面' => '面食麵',
 '鞋里' => '鞋裡',
 '鞣制' => '鞣製',
 '秋千' => '鞦韆',
 '鞭辟入里' => '鞭辟入裡',
-'é\9f¦åº\84' => 'é\9f\8bè\8e\8a',
+'é\9f¦å¸­' => 'é\9f\8bè\93\86',
 '韩国制' => '韓國製',
 '韩制' => '韓製',
+'音不准' => '音不準',
 '音准' => '音準',
 '音声如钟' => '音聲如鐘',
 '韶山冲' => '韶山沖',
 '响钟' => '響鐘',
 '頁面' => '頁面',
 '页面' => '頁面',
-'é \82å¤\9a' => 'é \82å¤\9a',
+'顶å\87¶' => 'é \82å\85\87',
 '顶多' => '頂多',
-'项庄' => '項莊',
+'頂多' => '頂多',
+'项链' => '項鍊',
 '顺于' => '順於',
 '顺钟向' => '順鐘向',
 '顺风后' => '順風後',
 '须根据' => '須根據',
 '颂系' => '頌繫',
 '颂赞' => '頌讚',
+'预报不准' => '預報不準',
 '预制' => '預製',
-'领域里' => '領域裡',
 '领袖欲' => '領袖慾',
-'头巾å\90\8aå\9c¨æ°´é\87\8c' => 'é ­å·¾å¼\94å\9c¨æ°´è£¡',
+'头å\84¿å¹²' => 'é ­å\85\92å¹¹',
 '头里' => '頭裡',
+'头长发' => '頭長髮',
 '头发' => '頭髮',
 '颊须' => '頰鬚',
-'题签' => '題籤',
 '额征' => '額徵',
 '额我略历' => '額我略曆',
 '额我略历史' => '額我略歷史',
 '颜范' => '顏範',
 '颠干倒坤' => '顛乾倒坤',
-'颠覆' => '顛覆',
-'颠颠仆仆' => '顛顛仆仆',
 '顛顛仆仆' => '顛顛仆仆',
+'颠颠仆仆' => '顛顛仆仆',
 '颤栗' => '顫慄',
+'显示表明' => '顯示表明',
+'显示表格' => '顯示表格',
+'显示表现' => '顯示表現',
+'显示表示' => '顯示表示',
+'显示表达' => '顯示表達',
+'显示表面' => '顯示表面',
+'显示表头' => '顯示表頭',
 '显示表' => '顯示錶',
 '显示钟' => '顯示鐘',
 '显示钟表' => '顯示鐘錶',
-'显著标志' => '顯著標志',
 '风干' => '風乾',
 '风后' => '風后',
 '风土志' => '風土誌',
@@ -9366,8 +8781,8 @@ $zh2Hant = array(
 '风范' => '風範',
 '风里' => '風裡',
 '风起云涌' => '風起雲湧',
-'风采' => '風采',
 '風采' => '風采',
+'风采' => '風采',
 '台风' => '颱風',
 '台风后' => '颱風後',
 '刮了' => '颳了',
@@ -9387,13 +8802,12 @@ $zh2Hant = array(
 '飞行钟' => '飛行鐘',
 '食欲' => '食慾',
 '食欲不振' => '食欲不振',
-'食野之苹' => '食野之苹',
 '食面' => '食麵',
 '饭后钟' => '飯後鐘',
 '饭团' => '飯糰',
-'饭庄' => '飯莊',
-'饲喂' => '飼餵',
 '饼干' => '餅乾',
+'养脏' => '養臟',
+'餐台' => '餐檯',
 '馂余' => '餕餘',
 '余0' => '餘0',
 '余1' => '餘1',
@@ -9440,6 +8854,8 @@ $zh2Hant = array(
 '余子' => '餘子',
 '余存' => '餘存',
 '余孽' => '餘孽',
+'余年' => '餘年',
+'余式' => '餘式',
 '余弦' => '餘弦',
 '余思' => '餘思',
 '余悸' => '餘悸',
@@ -9461,7 +8877,6 @@ $zh2Hant = array(
 '余毒' => '餘毒',
 '余气' => '餘氣',
 '余波' => '餘波',
-'余波荡漾' => '餘波盪漾',
 '余温' => '餘溫',
 '余泽' => '餘澤',
 '余沥' => '餘瀝',
@@ -9470,6 +8885,7 @@ $zh2Hant = array(
 '余烬' => '餘燼',
 '余珍' => '餘珍',
 '余生' => '餘生',
+'余留' => '餘留',
 '余众' => '餘眾',
 '余窍' => '餘竅',
 '余粮' => '餘糧',
@@ -9489,6 +8905,7 @@ $zh2Hant = array(
 '余貾' => '餘貾',
 '余辉' => '餘輝',
 '余辜' => '餘辜',
+'余部' => '餘部',
 '余酲' => '餘酲',
 '余量' => '餘量',
 '余闰' => '餘閏',
@@ -9497,82 +8914,48 @@ $zh2Hant = array(
 '余震' => '餘震',
 '余霞' => '餘霞',
 '余音' => '餘音',
-'余音绕梁' => '餘音繞梁',
 '余韵' => '餘韻',
 '余响' => '餘響',
+'余项' => '餘項',
 '余额' => '餘額',
 '余风' => '餘風',
 '余食' => '餘食',
 '余党' => '餘黨',
-'余0' => '餘0',
-'余1' => '餘1',
-'余2' => '餘2',
-'余3' => '餘3',
-'余4' => '餘4',
-'余5' => '餘5',
-'余6' => '餘6',
-'余7' => '餘7',
-'余8' => '餘8',
-'余9' => '餘9',
 '馄饨面' => '餛飩麵',
 '馆谷' => '館穀',
 '馆里' => '館裡',
-'喂乳' => '餵乳',
-'喂了' => '餵了',
-'喂奶' => '餵奶',
-'喂给' => '餵給',
-'喂羊' => '餵羊',
-'喂猪' => '餵豬',
-'喂过' => '餵過',
-'喂鸡' => '餵雞',
-'喂食' => '餵食',
-'喂饱' => '餵飽',
-'喂养' => '餵養',
-'喂驴' => '餵驢',
-'喂鱼' => '餵魚',
-'喂鸭' => '餵鴨',
-'喂鹅' => '餵鵝',
-'饑荒' => '饑荒',
-'饑馑' => '饑饉',
+'餵驴' => '餵驢',
+'饥寒' => '饑寒',
+'饥民' => '饑民',
+'饥渴' => '饑渴',
+'饥溺' => '饑溺',
+'饥荒' => '饑荒',
+'饥饱' => '饑飽',
+'饥馑' => '饑饉',
 '首当其冲' => '首當其衝',
 '首发' => '首發',
 '首只' => '首隻',
+'首出电影' => '首齣電影',
 '香干' => '香乾',
 '香山庄' => '香山庄',
 '马干' => '馬乾',
-'马占山' => '馬占山',
 '馬占山' => '馬占山',
-'马æ\9d\86' => '馬æ\9d\86',
+'马æ\96¯å\9e\82å\85\8bæ\9c\9f' => '馬æ\96¯å\9e\82å\85\8bæ\9c\9f',
 '馬格里布' => '馬格里布',
 '马格里布' => '馬格里布',
-'马表' => '馬錶',
 '驻扎' => '駐紮',
 '骀荡' => '駘蕩',
-'腾格里' => '騰格里',
 '騰格里' => '騰格里',
+'腾格里' => '騰格里',
+'腾涌' => '騰湧',
 '腾冲' => '騰衝',
+'惊栗' => '驚慄',
 '惊赞' => '驚讚',
 '惊钟' => '驚鐘',
-'骨子里' => '骨子裡',
 '骨干' => '骨幹',
 '骨灰坛' => '骨灰罈',
 '骨坛' => '骨罈',
-'骨头里挣出来的钱才做得肉' => '骨頭裡掙出來的錢纔做得肉',
-'肮肮脏脏' => '骯骯髒髒',
-'肮脏' => '骯髒',
-'脏乱' => '髒亂',
-'脏了' => '髒了',
-'脏兮兮' => '髒兮兮',
-'脏字' => '髒字',
-'脏得' => '髒得',
-'脏心' => '髒心',
-'脏东西' => '髒東西',
-'脏水' => '髒水',
-'脏的' => '髒的',
-'脏词' => '髒詞',
-'脏话' => '髒話',
-'脏钱' => '髒錢',
-'脏发' => '髒髮',
+'体征' => '體徵',
 '体范' => '體範',
 '体系' => '體系',
 '高几' => '高几',
@@ -9620,7 +9003,7 @@ $zh2Hant = array(
 '发胶' => '髮膠',
 '发菜' => '髮菜',
 '发蜡' => '髮蠟',
-'å\8f\91è¸\8aå\86²å\86 ' => 'é«®è¸\8a沖冠',
+'å\8f\91è¸\8aå\86²å\86 ' => '髮踴沖冠',
 '发辫' => '髮辮',
 '发针' => '髮針',
 '发钗' => '髮釵',
@@ -9640,6 +9023,7 @@ $zh2Hant = array(
 '松元音' => '鬆元音',
 '松劲' => '鬆勁',
 '松动' => '鬆動',
+'松化' => '鬆化',
 '松口' => '鬆口',
 '松喉' => '鬆喉',
 '松土' => '鬆土',
@@ -9683,12 +9067,12 @@ $zh2Hant = array(
 '须鲨' => '鬚鯊',
 '须鲸' => '鬚鯨',
 '鬓发' => '鬢髮',
-'斗上' => '鬥上',
 '斗不过' => '鬥不過',
 '斗了' => '鬥了',
 '斗来斗去' => '鬥來鬥去',
 '斗倒' => '鬥倒',
 '斗分子' => '鬥分子',
+'斗剑' => '鬥劍',
 '斗力' => '鬥力',
 '斗劲' => '鬥勁',
 '斗胜' => '鬥勝',
@@ -9739,13 +9123,12 @@ $zh2Hant = array(
 '斗草' => '鬥草',
 '斗叶儿' => '鬥葉兒',
 '斗叶子' => '鬥葉子',
-'斗着' => '鬥著',
 '斗蟋蟀' => '鬥蟋蟀',
 '斗话' => '鬥話',
 '斗艳' => '鬥豔',
 '斗起' => '鬥起',
 '斗趣' => '鬥趣',
-'æ\96\97é\97²æ°\94' => '鬥é\96\91氣',
+'æ\96\97é\97²æ°\94' => '鬥é\96\92氣',
 '斗鸡' => '鬥雞',
 '斗雪红' => '鬥雪紅',
 '斗头' => '鬥頭',
@@ -9757,7 +9140,6 @@ $zh2Hant = array(
 '斗鸭' => '鬥鴨',
 '斗鹌鹑' => '鬥鵪鶉',
 '斗丽' => '鬥麗',
-'闹着玩儿' => '鬧著玩兒',
 '闹表' => '鬧錶',
 '闹钟' => '鬧鐘',
 '哄动' => '鬨動',
@@ -9800,8 +9182,10 @@ $zh2Hant = array(
 '郁郁不乐' => '鬱鬱不樂',
 '郁郁寡欢' => '鬱鬱寡歡',
 '郁郁而终' => '鬱鬱而終',
+'郁郁苍苍' => '鬱鬱蒼蒼',
 '郁郁葱葱' => '鬱鬱蔥蔥',
 '郁黑' => '鬱黑',
+'鬼气冲天' => '鬼氣衝天',
 '鬼谷子' => '鬼谷子',
 '魂牵梦系' => '魂牽夢繫',
 '魏征' => '魏徵',
@@ -9809,15 +9193,13 @@ $zh2Hant = array(
 '魔表' => '魔錶',
 '鱼干' => '魚乾',
 '鱼松' => '魚鬆',
+'鲜于枢' => '鮮于樞',
+'鮮于樞' => '鮮于樞',
 '鲸须' => '鯨鬚',
-'鯰鱼' => '鯰魚',
-'鸠占鹊巢' => '鳩佔鵲巢',
-'凤凰于飞' => '鳳凰于飛',
+'鳳凰于飛' => '鳳凰于飛',
 '凤梨干' => '鳳梨乾',
 '鸣钟' => '鳴鐘',
-'鸿案相庄' => '鴻案相莊',
 '鸿范' => '鴻範',
-'鸿篇巨制' => '鴻篇巨製',
 '鹅准' => '鵝準',
 '鹄发' => '鵠髮',
 '雕心雁爪' => '鵰心雁爪',
@@ -9826,6 +9208,7 @@ $zh2Hant = array(
 '雕鹗' => '鵰鶚',
 '鹤吊' => '鶴弔',
 '鹤发' => '鶴髮',
+'鸾鉴' => '鸞鑑',
 '鹰雕' => '鹰鵰',
 '咸味' => '鹹味',
 '咸嘴淡舌' => '鹹嘴淡舌',
@@ -9840,6 +9223,7 @@ $zh2Hant = array(
 '咸湖' => '鹹湖',
 '咸汤' => '鹹湯',
 '咸潟' => '鹹潟',
+'咸湿' => '鹹濕',
 '咸的' => '鹹的',
 '咸粥' => '鹹粥',
 '咸肉' => '鹹肉',
@@ -9853,32 +9237,18 @@ $zh2Hant = array(
 '咸鸭蛋' => '鹹鴨蛋',
 '咸卤' => '鹹鹵',
 '咸咸' => '鹹鹹',
-'碱化' => '鹼化',
-'碱土金属' => '鹼土金屬',
-'碱地' => '鹼地',
-'碱度' => '鹼度',
-'碱性' => '鹼性',
-'碱水' => '鹼水',
-'碱液' => '鹼液',
-'碱熔' => '鹼熔',
-'碱石灰' => '鹼石灰',
-'碱纤维素' => '鹼纖維素',
-'碱金属' => '鹼金屬',
-'碱类' => '鹼類',
 '盐打怎么咸' => '鹽打怎麼鹹',
+'盐卤' => '鹽滷',
 '盐余' => '鹽餘',
-'盐碱土' => '鹽鹼土',
-'盐碱滩' => '鹽鹼灘',
+'鹿場里' => '鹿場里',
 '丽于' => '麗於',
 '曲尘' => '麴塵',
-'曲蘖' => '麴櫱',
-'曲生' => '麴生',
+'曲櫱' => '麴櫱',
 '曲秀才' => '麴秀才',
-'曲菌' => '麴菌',
 '曲车' => '麴車',
 '曲道士' => '麴道士',
 '曲钱' => '麴錢',
-'曲院' => '麴院',
+'麹霉' => '麴黴',
 '曲霉' => '麴黴',
 '面人儿' => '麵人兒',
 '面价' => '麵價',
@@ -9901,19 +9271,16 @@ $zh2Hant = array(
 '面粉' => '麵粉',
 '面糊' => '麵糊',
 '面团' => '麵糰',
-'面线' => '麵線',
 '面缸' => '麵缸',
 '面茶' => '麵茶',
 '面食' => '麵食',
 '面饺' => '麵餃',
 '面饼' => '麵餅',
 '面馆' => '麵館',
-'麻药' => '麻藥',
-'麻醉药' => '麻醉藥',
+'麻将席' => '麻將蓆',
 '麻酱面' => '麻醬麵',
 '黄干黑瘦' => '黃乾黑瘦',
 '黄历' => '黃曆',
-'黄曲霉' => '黃曲霉',
 '黄历史' => '黃歷史',
 '黃詩杰' => '黃詩杰',
 '黄诗杰' => '黃詩杰',
@@ -9923,14 +9290,16 @@ $zh2Hant = array(
 '黄钟' => '黃鐘',
 '黄发' => '黃髮',
 '黄曲毒素' => '黃麴毒素',
-'é»\8eå\90\89äº\91' => 'é»\8eå\90\89é\9b²',
+'é»\8eå\85\8bç\89¹å\88¶' => 'é»\8eå\85\8bç\89¹å\88',
 '黎吉雲' => '黎吉雲',
+'黎吉云' => '黎吉雲',
 '黑奴吁天录' => '黑奴籲天錄',
-'黑色长发' => '黑色長髮',
 '黑发' => '黑髮',
+'点札' => '點劄',
 '点半钟' => '點半鐘',
 '点多钟' => '點多鐘',
 '点里' => '點裡',
+'点里程' => '點里程',
 '点钟' => '點鐘',
 '霉毒' => '黴毒',
 '霉素' => '黴素',
@@ -9938,119 +9307,96 @@ $zh2Hant = array(
 '霉黑' => '黴黑',
 '霉黧' => '黴黧',
 '鼓里' => '鼓裡',
+'鼓噪' => '鼓譟',
 '冬冬鼓' => '鼕鼕鼓',
-'鼠药' => '鼠藥',
 '鼠曲草' => '鼠麴草',
 '鼻梁儿' => '鼻梁兒',
 '鼻梁' => '鼻樑',
 '鼻准' => '鼻準',
 '齐王舍牛' => '齊王捨牛',
-'齐庄' => '齊莊',
 '齿危发秀' => '齒危髮秀',
 '齿落发白' => '齒落髮白',
 '齿发' => '齒髮',
 '出儿' => '齣兒',
-'出剧' => '齣劇',
-'出动画' => '齣動畫',
-'出卡通' => '齣卡通',
-'出戏' => '齣戲',
-'出节目' => '齣節目',
-'出电影' => '齣電影',
-'出电视' => '齣電視',
 '龙卷' => '龍捲',
 '龙眼干' => '龍眼乾',
 '龙须' => '龍鬚',
+'龙须面' => '龍鬚麵',
 '龙斗虎伤' => '龍鬥虎傷',
-'龟山庄' => '龜山庄',
-'!克制' => '!剋制',
-',克制' => ',剋制',
-'0周后' => '0周後',
-'0多只' => '0多隻',
-'0天后' => '0天後',
-'0年' => '0年',
-'0只' => '0隻',
-'0余' => '0餘',
-'1周后' => '1周後',
-'1天后' => '1天後',
-'1年' => '1年',
-'1只' => '1隻',
-'1余' => '1餘',
-'2周后' => '2周後',
-'2天后' => '2天後',
-'2年' => '2年',
-'2只' => '2隻',
-'2余' => '2餘',
-'3周后' => '3周後',
-'3天后' => '3天後',
-'3年' => '3年',
-'3只' => '3隻',
-'3余' => '3餘',
-'4周后' => '4周後',
-'4天后' => '4天後',
-'4年' => '4年',
-'4只' => '4隻',
-'4余' => '4餘',
-'5周后' => '5周後',
-'5天后' => '5天後',
-'5年' => '5年',
-'5只' => '5隻',
-'5余' => '5餘',
-'6周后' => '6周後',
-'6天后' => '6天後',
-'6年' => '6年',
-'6只' => '6隻',
-'6余' => '6餘',
-'7周后' => '7周後',
-'7天后' => '7天後',
-'7年' => '7年',
-'7只' => '7隻',
-'7余' => '7餘',
-'8周后' => '8周後',
-'8天后' => '8天後',
-'8年' => '8年',
-'8只' => '8隻',
-'8余' => '8餘',
-'9周后' => '9周後',
-'9天后' => '9天後',
-'9年' => '9年',
-'9只' => '9隻',
-'9余' => '9餘',
-':克制' => ':剋制',
-';克制' => ';剋制',
-'?克制' => '?剋制',
+'龜山庄' => '龜山庄',
+'龟鉴' => '龜鑑',
 );
 
 $zh2Hans = array(
 '㑯' => '㑔',
 '㑳' => '㑇',
+'㑶' => '㐹',
+'㑺' => '俊',
 '㒓' => '𠉂',
+'㒺' => '罔',
+'㓂' => '寇',
 '㓨' => '刾',
+'㕁' => '却',
+'㕑' => '厨',
+'㕘' => '参',
+'㕥' => '以',
 '㗲' => '𠵾',
 '㘚' => '㘎',
+'㘭' => '坳',
 '㜄' => '㚯',
 '㜏' => '㛣',
 '㜢' => '𡞱',
 '㜷' => '𡝠',
+'㝛' => '宿',
+'㝠' => '冥',
 '㞞' => '𪨊',
+'㠀' => '岛',
 '㠏' => '㟆',
+'㠯' => '以',
+'㠶' => '帆',
+'㡌' => '帽',
+'㢘' => '廉',
 '㢝' => '𢋈',
+'㤙' => '恩',
+'㥦' => '惬',
+'㥫' => '惇',
 '㥮' => '㤘',
 '㦎' => '𢛯',
+'㧱' => '拿',
+'㨗' => '捷',
+'㨪' => '晃',
+'㨿' => '据',
+'㩗' => '携',
 '㩜' => '㨫',
+'㩦' => '携',
 '㩳' => '㧐',
+'㪚' => '散',
+'㪟' => '敦',
+'㬉' => '暖',
+'㬪' => '叠',
+'㯭' => '橹',
+'㱃' => '饮',
+'㳒' => '法',
+'㴱' => '深',
 '㷿' => '𤈷',
 '㺏' => '𤠋',
+'㼝' => '碗',
+'㽞' => '留',
+'㿜' => '瘪',
 '㿧' => '𤽯',
 '䀹' => '𥅴',
 '䁪' => '𥇢',
 '䁻' => '䀥',
+'䈰' => '筲',
 '䉙' => '𥬀',
 '䉬' => '𫂈',
 '䉲' => '𥮜',
+'䊀' => '糊',
 '䊭' => '𥺅',
 '䊷' => '䌶',
 '䋙' => '䌺',
 '䋚' => '䌻',
+'䋹' => '䌿',
 '䋻' => '䌾',
 '䋿' => '𦈓',
 '䌈' => '𦈖',
@@ -10060,15 +9406,26 @@ $zh2Hans = array(
 '䌟' => '𦈞',
 '䌥' => '𦈠',
 '䌰' => '𦈙',
+'䎱' => '䎬',
 '䕳' => '𦰴',
+'䗬' => '蜂',
 '䗿' => '𧉞',
+'䘏' => '恤',
+'䘑' => '脉',
+'䘚' => '卒',
 '䙡' => '䙌',
+'䛐' => '词',
+'䛡' => '话',
 '䜀' => '䜧',
+'䝔' => '獾',
 '䝻' => '𧹕',
 '䝼' => '䞍',
 '䞈' => '𧹑',
+'䠀' => '蹚',
+'䠶' => '射',
 '䢨' => '𨑹',
 '䥇' => '䦂',
+'䥥' => '镰',
 '䥩' => '𨱖',
 '䥱' => '䥾',
 '䦘' => '𨸄',
@@ -10080,11 +9437,13 @@ $zh2Hans = array(
 '䪗' => '𩐀',
 '䪘' => '𩏿',
 '䫴' => '𩖗',
+'䬃' => '飒',
 '䬘' => '𩙮',
 '䬝' => '𩙯',
 '䬞' => '𩙧',
 '䭀' => '𩠇',
 '䭃' => '𩠈',
+'䭾' => '驮',
 '䭿' => '𩧭',
 '䮝' => '𩧰',
 '䮞' => '𩨁',
@@ -10093,6 +9452,7 @@ $zh2Hans = array(
 '䮳' => '𩨏',
 '䮾' => '𩧪',
 '䯀' => '䯅',
+'䰟' => '魂',
 '䰾' => '鲃',
 '䱙' => '𩾈',
 '䱬' => '𩾊',
@@ -10101,16 +9461,27 @@ $zh2Hans = array(
 '䱽' => '䲝',
 '䲁' => '鳚',
 '䲖' => '𩾂',
+'䲘' => '鳤',
 '䲰' => '𪉂',
+'䳘' => '鹅',
 '䴉' => '鹮',
 '䴬' => '𪎈',
 '䴴' => '𪎋',
+'䶊' => '衄',
 '丟' => '丢',
+'丣' => '卯',
 '並' => '并',
+'乗' => '乘',
+'乹' => '干',
 '乾' => '干',
+'亁' => '干',
 '亂' => '乱',
 '亙' => '亘',
+'亝' => '斋',
 '亞' => '亚',
+'亱' => '夜',
+'亷' => '廉',
+'亾' => '亡',
 '佇' => '伫',
 '佈' => '布',
 '佔' => '占',
@@ -10118,29 +9489,36 @@ $zh2Hans = array(
 '來' => '来',
 '侖' => '仑',
 '侶' => '侣',
+'侷' => '局',
 '俁' => '俣',
 '係' => '系',
 '俔' => '伣',
 '俠' => '侠',
 '俥' => '伡',
+'俻' => '备',
 '倀' => '伥',
 '倆' => '俩',
 '倈' => '俫',
 '倉' => '仓',
 '個' => '个',
+'倐' => '倏',
 '們' => '们',
 '倖' => '幸',
+'倣' => '仿',
 '倫' => '伦',
 '倲' => '㑈',
+'倸' => '睬',
 '偉' => '伟',
 '偑' => '㐽',
 '側' => '侧',
 '偵' => '侦',
 '偽' => '伪',
+'傌' => '㐷',
 '傑' => '杰',
 '傖' => '伧',
 '傘' => '伞',
 '備' => '备',
+'傚' => '效',
 '傢' => '家',
 '傭' => '佣',
 '傯' => '偬',
@@ -10152,6 +9530,8 @@ $zh2Hans = array(
 '僂' => '偻',
 '僅' => '仅',
 '僉' => '佥',
+'僊' => '仙',
+'働' => '动',
 '僑' => '侨',
 '僕' => '仆',
 '僞' => '伪',
@@ -10164,6 +9544,7 @@ $zh2Hans = array(
 '億' => '亿',
 '儈' => '侩',
 '儉' => '俭',
+'儌' => '侥',
 '儐' => '傧',
 '儔' => '俦',
 '儕' => '侪',
@@ -10179,32 +9560,49 @@ $zh2Hans = array(
 '儼' => '俨',
 '兇' => '凶',
 '兌' => '兑',
+'兎' => '兔',
 '兒' => '儿',
 '兗' => '兖',
+'兠' => '兜',
 '內' => '内',
 '兩' => '两',
+'冄' => '冉',
 '冊' => '册',
+'冐' => '冒',
+'冑' => '胄',
 '冪' => '幂',
+'冺' => '泯',
 '凈' => '净',
 '凍' => '冻',
 '凙' => '𪞝',
 '凜' => '凛',
+'凢' => '凡',
 '凱' => '凯',
+'凴' => '凭',
 '別' => '别',
+'刦' => '劫',
+'刧' => '劫',
 '刪' => '删',
+'刼' => '劫',
 '剄' => '刭',
 '則' => '则',
+'剉' => '锉',
 '剋' => '克',
 '剎' => '刹',
+'剏' => '创',
 '剗' => '刬',
+'剙' => '创',
 '剛' => '刚',
 '剝' => '剥',
 '剮' => '剐',
+'剳' => '札',
 '剴' => '剀',
 '創' => '创',
 '剷' => '铲',
+'剹' => '戮',
 '剾' => '𠛅',
 '劃' => '划',
+'劄' => '札',
 '劇' => '剧',
 '劉' => '刘',
 '劊' => '刽',
@@ -10212,48 +9610,73 @@ $zh2Hans = array(
 '劍' => '剑',
 '劏' => '㓥',
 '劑' => '剂',
+'劒' => '剑',
 '劚' => '㔉',
+'効' => '效',
 '勁' => '劲',
+'勅' => '敕',
+'勌' => '倦',
+'勑' => '敕',
 '動' => '动',
 '務' => '务',
 '勛' => '勋',
 '勝' => '胜',
 '勞' => '劳',
 '勢' => '势',
+'勦' => '剿',
 '勩' => '勚',
 '勱' => '劢',
 '勳' => '勋',
 '勵' => '励',
 '勸' => '劝',
 '勻' => '匀',
+'匟' => '炕',
 '匭' => '匦',
 '匯' => '汇',
 '匱' => '匮',
+'匲' => '奁',
+'匳' => '奁',
 '區' => '区',
 '協' => '协',
+'卹' => '恤',
 '卻' => '却',
 '卽' => '即',
+'厀' => '膝',
 '厙' => '厍',
+'厠' => '厕',
 '厤' => '历',
 '厭' => '厌',
+'厰' => '厂',
 '厲' => '厉',
 '厴' => '厣',
 '參' => '参',
 '叄' => '叁',
 '叢' => '丛',
-'å\90\92' => 'å\92¤',
+'å\90\9a' => 'å\92¿',
 '吳' => '吴',
 '吶' => '呐',
 '呂' => '吕',
+'呌' => '叫',
+'呪' => '咒',
+'咊' => '和',
 '咼' => '呙',
 '員' => '员',
 '哯' => '𠯟',
+'哶' => '咩',
 '唄' => '呗',
+'唕' => '唣',
+'唘' => '启',
 '唚' => '吣',
+'唸' => '念',
+'啎' => '忤',
 '問' => '问',
+'啑' => '喋',
+'啓' => '启',
+'啗' => '啖',
 '啞' => '哑',
 '啟' => '启',
 '啢' => '唡',
+'啣' => '衔',
 '喎' => '㖞',
 '喚' => '唤',
 '喪' => '丧',
@@ -10261,6 +9684,7 @@ $zh2Hans = array(
 '喬' => '乔',
 '單' => '单',
 '喲' => '哟',
+'嗁' => '啼',
 '嗆' => '呛',
 '嗇' => '啬',
 '嗊' => '唝',
@@ -10269,22 +9693,26 @@ $zh2Hans = array(
 '嗩' => '唢',
 '嗶' => '哔',
 '嗹' => '𪡏',
+'嘅' => '慨',
 '嘆' => '叹',
 '嘍' => '喽',
+'嘑' => '呼',
 '嘓' => '啯',
 '嘔' => '呕',
 '嘖' => '啧',
 '嘗' => '尝',
 '嘜' => '唛',
+'嘠' => '嘎',
 '嘩' => '哗',
 '嘮' => '唠',
 '嘯' => '啸',
 '嘰' => '叽',
 '嘵' => '哓',
+'嘷' => '嗥',
 '嘸' => '呒',
 '嘽' => '啴',
-'噁' => '恶',
 '噅' => '𠯠',
+'噉' => '啖',
 '噓' => '嘘',
 '噚' => '㖊',
 '噝' => '咝',
@@ -10318,7 +9746,10 @@ $zh2Hans = array(
 '囉' => '啰',
 '囌' => '苏',
 '囑' => '嘱',
+'囓' => '啮',
+'囙' => '因',
 '囪' => '囱',
+'圅' => '函',
 '圇' => '囵',
 '國' => '国',
 '圍' => '围',
@@ -10327,6 +9758,8 @@ $zh2Hans = array(
 '圖' => '图',
 '團' => '团',
 '圞' => '𪢮',
+'坿' => '附',
+'垜' => '垛',
 '垵' => '埯',
 '埡' => '垭',
 '埰' => '采',
@@ -10344,19 +9777,24 @@ $zh2Hans = array(
 '塒' => '埘',
 '塗' => '涂',
 '塚' => '冢',
+'塟' => '葬',
 '塢' => '坞',
 '塤' => '埙',
+'塲' => '场',
 '塵' => '尘',
 '塹' => '堑',
 '墊' => '垫',
+'墖' => '塔',
 '墜' => '坠',
 '墮' => '堕',
 '墰' => '坛',
 '墳' => '坟',
+'墻' => '墙',
 '墾' => '垦',
 '壇' => '坛',
 '壈' => '𡒄',
 '壋' => '垱',
+'壎' => '埙',
 '壓' => '压',
 '壘' => '垒',
 '壙' => '圹',
@@ -10369,8 +9807,10 @@ $zh2Hans = array(
 '壩' => '坝',
 '壯' => '壮',
 '壺' => '壶',
+'壻' => '婿',
 '壼' => '壸',
 '壽' => '寿',
+'夘' => '卯',
 '夠' => '够',
 '夢' => '梦',
 '夥' => '伙',
@@ -10379,78 +9819,111 @@ $zh2Hans = array(
 '奧' => '奥',
 '奩' => '奁',
 '奪' => '夺',
+'奬' => '奖',
 '奮' => '奋',
 '奼' => '姹',
 '妝' => '妆',
+'妬' => '妒',
+'妳' => '你',
+'妷' => '侄',
+'姉' => '姊',
 '姍' => '姗',
+'姙' => '妊',
 '姦' => '奸',
+'姪' => '侄',
+'姸' => '妍',
 '娛' => '娱',
 '婁' => '娄',
+'婣' => '姻',
 '婦' => '妇',
+'婬' => '淫',
 '婭' => '娅',
+'媍' => '妇',
 '媧' => '娲',
 '媯' => '妫',
 '媰' => '㛀',
 '媼' => '媪',
 '媽' => '妈',
+'媿' => '愧',
+'嫋' => '袅',
 '嫗' => '妪',
+'嫰' => '嫩',
 '嫵' => '妩',
+'嫺' => '娴',
 '嫻' => '娴',
 '嫿' => '婳',
+'嬀' => '妫',
 '嬃' => '媭',
 '嬈' => '娆',
 '嬋' => '婵',
 '嬌' => '娇',
 '嬙' => '嫱',
+'嬝' => '袅',
 '嬡' => '嫒',
 '嬤' => '嬷',
 '嬪' => '嫔',
+'嬭' => '奶',
 '嬰' => '婴',
 '嬸' => '婶',
+'嬾' => '懒',
+'孃' => '娘',
 '孋' => '㛤',
 '孌' => '娈',
 '孫' => '孙',
 '學' => '学',
+'孼' => '孽',
 '孿' => '孪',
+'宂' => '冗',
 '宮' => '宫',
 '寀' => '采',
+'寃' => '冤',
+'寑' => '寝',
 '寢' => '寝',
 '實' => '实',
 '寧' => '宁',
 '審' => '审',
 '寫' => '写',
 '寬' => '宽',
+'寳' => '宝',
 '寵' => '宠',
 '寶' => '宝',
+'尅' => '克',
 '將' => '将',
 '專' => '专',
 '尋' => '寻',
 '對' => '对',
 '導' => '导',
+'尒' => '尔',
+'尙' => '尚',
+'尟' => '鲜',
+'尠' => '鲜',
 '尷' => '尴',
 '屆' => '届',
 '屍' => '尸',
 '屓' => '屃',
+'屛' => '屏',
 '屜' => '屉',
 '屢' => '屡',
 '層' => '层',
 '屨' => '屦',
 '屩' => '𪨗',
 '屬' => '属',
+'屭' => '屃',
+'岅' => '坂',
 '岡' => '冈',
+'峝' => '峒',
 '峴' => '岘',
 '島' => '岛',
 '峽' => '峡',
 '崍' => '崃',
-'崑' => '昆',
 '崗' => '岗',
-'崙' => '仑',
 '崢' => '峥',
 '崬' => '岽',
 '嵐' => '岚',
 '嵗' => '岁',
 '嵼' => '𡶴',
 '嶁' => '嵝',
+'嶃' => '崭',
 '嶄' => '崭',
 '嶇' => '岖',
 '嶔' => '嵚',
@@ -10458,6 +9931,7 @@ $zh2Hans = array(
 '嶠' => '峤',
 '嶢' => '峣',
 '嶧' => '峄',
+'嶨' => '峃',
 '嶮' => '崄',
 '嶴' => '岙',
 '嶸' => '嵘',
@@ -10468,28 +9942,40 @@ $zh2Hans = array(
 '巒' => '峦',
 '巔' => '巅',
 '巖' => '岩',
+'巗' => '岩',
 '巰' => '巯',
-'巹' => '卺',
+'巵' => '卮',
+'帀' => '匝',
+'帋' => '纸',
 '帥' => '帅',
 '師' => '师',
+'帬' => '裙',
 '帳' => '帐',
 '帶' => '带',
 '幀' => '帧',
 '幃' => '帏',
+'幇' => '帮',
+'幑' => '徽',
 '幗' => '帼',
 '幘' => '帻',
+'幙' => '幕',
+'幚' => '帮',
 '幟' => '帜',
 '幣' => '币',
 '幫' => '帮',
 '幬' => '帱',
 '幹' => '干',
-'幺' => '么',
 '幾' => '几',
 '庫' => '库',
+'庻' => '庶',
+'庽' => '寓',
 '廁' => '厕',
 '廂' => '厢',
 '廄' => '厩',
 '廈' => '厦',
+'廎' => '庼',
+'廐' => '厩',
+'廕' => '荫',
 '廚' => '厨',
 '廝' => '厮',
 '廟' => '庙',
@@ -10500,6 +9986,10 @@ $zh2Hans = array(
 '廩' => '廪',
 '廬' => '庐',
 '廳' => '厅',
+'廵' => '巡',
+'廹' => '迫',
+'廻' => '回',
+'廼' => '乃',
 '弒' => '弑',
 '弔' => '吊',
 '弳' => '弪',
@@ -10513,45 +10003,63 @@ $zh2Hans = array(
 '彞' => '彝',
 '彠' => '彟',
 '彥' => '彦',
+'彫' => '雕',
 '彲' => '彨',
+'徃' => '往',
 '後' => '后',
 '徑' => '径',
 '從' => '从',
 '徠' => '徕',
+'徧' => '遍',
 '復' => '复',
 '徵' => '征',
 '徹' => '彻',
+'怱' => '匆',
+'怳' => '恍',
 '恆' => '恒',
+'恠' => '怪',
+'恡' => '吝',
 '恥' => '耻',
 '悅' => '悦',
 '悞' => '悮',
+'悤' => '匆',
 '悵' => '怅',
 '悶' => '闷',
+'悽' => '凄',
+'惏' => '婪',
 '惡' => '恶',
+'惥' => '恿',
 '惱' => '恼',
 '惲' => '恽',
+'惷' => '蠢',
 '惻' => '恻',
 '愛' => '爱',
 '愜' => '惬',
 '愨' => '悫',
 '愴' => '怆',
 '愷' => '恺',
+'愽' => '博',
 '愾' => '忾',
 '慄' => '栗',
 '態' => '态',
 '慍' => '愠',
 '慘' => '惨',
+'慙' => '惭',
 '慚' => '惭',
 '慟' => '恸',
 '慣' => '惯',
+'慤' => '悫',
 '慪' => '怄',
 '慫' => '怂',
 '慮' => '虑',
 '慳' => '悭',
+'慴' => '慑',
 '慶' => '庆',
 '慼' => '戚',
+'慽' => '戚',
 '慾' => '欲',
 '憂' => '忧',
+'憇' => '憩',
 '憊' => '惫',
 '憐' => '怜',
 '憑' => '凭',
@@ -10581,20 +10089,26 @@ $zh2Hans = array(
 '戀' => '恋',
 '戇' => '戆',
 '戔' => '戋',
+'戞' => '戛',
 '戧' => '戗',
 '戩' => '戬',
+'戯' => '戏',
 '戰' => '战',
 '戱' => '戯',
 '戲' => '戏',
 '戶' => '户',
+'戹' => '厄',
+'扞' => '捍',
+'抝' => '拗',
 '拋' => '抛',
 '拚' => '拼',
 '挩' => '捝',
 '挱' => '挲',
+'挵' => '弄',
 '挾' => '挟',
+'捄' => '救',
 '捨' => '舍',
 '捫' => '扪',
-'捱' => '挨',
 '捲' => '卷',
 '掃' => '扫',
 '掄' => '抡',
@@ -10603,15 +10117,29 @@ $zh2Hans = array(
 '掙' => '挣',
 '掛' => '挂',
 '採' => '采',
+'掽' => '碰',
 '揀' => '拣',
+'揑' => '捏',
 '揚' => '扬',
 '換' => '换',
+'揫' => '揪',
 '揮' => '挥',
+'揷' => '插',
+'揹' => '背',
+'搆' => '构',
+'搇' => '揿',
+'搉' => '榷',
 '損' => '损',
 '搖' => '摇',
 '搗' => '捣',
+'搤' => '扼',
+'搥' => '捶',
+'搨' => '拓',
+'搯' => '掏',
 '搵' => '揾',
 '搶' => '抢',
+'搾' => '榨',
+'摃' => '扛',
 '摋' => '𢫬',
 '摑' => '掴',
 '摜' => '掼',
@@ -10627,8 +10155,10 @@ $zh2Hans = array(
 '撓' => '挠',
 '撝' => '㧑',
 '撟' => '挢',
+'撡' => '操',
 '撣' => '掸',
 '撥' => '拨',
+'撦' => '扯',
 '撫' => '抚',
 '撲' => '扑',
 '撳' => '揿',
@@ -10642,9 +10172,11 @@ $zh2Hans = array(
 '擋' => '挡',
 '擓' => '㧟',
 '擔' => '担',
+'擕' => '携',
 '據' => '据',
 '擠' => '挤',
 '擣' => '𢭏',
+'擧' => '举',
 '擬' => '拟',
 '擯' => '摈',
 '擰' => '拧',
@@ -10669,12 +10201,17 @@ $zh2Hans = array(
 '攢' => '攒',
 '攣' => '挛',
 '攤' => '摊',
+'攩' => '挡',
 '攪' => '搅',
 '攬' => '揽',
+'攷' => '考',
+'敂' => '叩',
+'敍' => '叙',
 '敗' => '败',
 '敘' => '叙',
 '敵' => '敌',
 '數' => '数',
+'敺' => '驱',
 '斂' => '敛',
 '斃' => '毙',
 '斅' => '𢽾',
@@ -10685,7 +10222,10 @@ $zh2Hans = array(
 '於' => '于',
 '旂' => '旗',
 '旣' => '既',
-'昇' => '升',
+'旤' => '祸',
+'旹' => '时',
+'旾' => '春',
+'昬' => '昏',
 '時' => '时',
 '晉' => '晋',
 '晝' => '昼',
@@ -10694,24 +10234,38 @@ $zh2Hans = array(
 '暘' => '旸',
 '暢' => '畅',
 '暫' => '暂',
+'暱' => '昵',
 '曄' => '晔',
 '曆' => '历',
 '曇' => '昙',
 '曉' => '晓',
-'曏' => '向',
 '曖' => '暧',
 '曠' => '旷',
+'曡' => '叠',
 '曥' => '𣆐',
 '曨' => '昽',
 '曬' => '晒',
 '書' => '书',
 '會' => '会',
+'朞' => '期',
+'朢' => '望',
 '朥' => '𦛨',
 '朧' => '胧',
 '朮' => '术',
+'朶' => '朵',
 '東' => '东',
 '杴' => '锨',
+'枱' => '台',
 '柵' => '栅',
+'柺' => '拐',
+'査' => '查',
+'栁' => '柳',
+'栞' => '刊',
+'栢' => '柏',
+'栰' => '筏',
+'桒' => '桑',
+'桮' => '杯',
+'桺' => '柳',
 '桿' => '杆',
 '梔' => '栀',
 '梘' => '枧',
@@ -10727,10 +10281,17 @@ $zh2Hans = array(
 '棧' => '栈',
 '棲' => '栖',
 '棶' => '梾',
+'椀' => '碗',
+'椉' => '乘',
 '椏' => '桠',
+'椗' => '碇',
 '椲' => '㭏',
+'椶' => '棕',
+'椷' => '缄',
+'椾' => '笺',
 '楊' => '杨',
 '楓' => '枫',
+'楥' => '楦',
 '楨' => '桢',
 '業' => '业',
 '極' => '极',
@@ -10742,9 +10303,11 @@ $zh2Hans = array(
 '構' => '构',
 '槍' => '枪',
 '槓' => '杠',
+'槕' => '桌',
 '槤' => '梿',
 '槧' => '椠',
 '槨' => '椁',
+'槮' => '椮',
 '槳' => '桨',
 '槶' => '椢',
 '槼' => '椝',
@@ -10765,6 +10328,7 @@ $zh2Hans = array(
 '樿' => '椫',
 '橈' => '桡',
 '橋' => '桥',
+'橜' => '橛',
 '機' => '机',
 '橢' => '椭',
 '橫' => '横',
@@ -10782,6 +10346,7 @@ $zh2Hans = array(
 '檸' => '柠',
 '檻' => '槛',
 '櫃' => '柜',
+'櫈' => '凳',
 '櫓' => '橹',
 '櫚' => '榈',
 '櫛' => '栉',
@@ -10806,16 +10371,21 @@ $zh2Hans = array(
 '欒' => '栾',
 '欓' => '𣗋',
 '欖' => '榄',
+'欝' => '郁',
 '欞' => '棂',
+'欵' => '款',
 '欽' => '钦',
 '歎' => '叹',
 '歐' => '欧',
+'歛' => '敛',
 '歟' => '欤',
 '歡' => '欢',
 '歲' => '岁',
+'歴' => '历',
 '歷' => '历',
 '歸' => '归',
 '歿' => '殁',
+'殀' => '夭',
 '殘' => '残',
 '殞' => '殒',
 '殤' => '殇',
@@ -10827,18 +10397,24 @@ $zh2Hans = array(
 '殰' => '㱩',
 '殲' => '歼',
 '殺' => '杀',
+'殻' => '壳',
 '殼' => '壳',
 '毀' => '毁',
 '毆' => '殴',
+'毧' => '绒',
+'毬' => '球',
 '毿' => '毵',
 '氂' => '牦',
 '氈' => '毡',
+'氊' => '毡',
 '氌' => '氇',
 '氣' => '气',
 '氫' => '氢',
 '氬' => '氩',
 '氳' => '氲',
+'氷' => '冰',
 '汙' => '污',
+'汚' => '污',
 '決' => '决',
 '沒' => '没',
 '沖' => '冲',
@@ -10848,9 +10424,11 @@ $zh2Hans = array(
 '洶' => '汹',
 '浹' => '浃',
 '涇' => '泾',
+'涖' => '莅',
 '涼' => '凉',
 '淒' => '凄',
 '淚' => '泪',
+'淛' => '浙',
 '淥' => '渌',
 '淨' => '净',
 '淩' => '凌',
@@ -10868,19 +10446,25 @@ $zh2Hans = array(
 '湞' => '浈',
 '湧' => '涌',
 '湯' => '汤',
+'湻' => '淳',
+'湼' => '涅',
 '溈' => '沩',
 '準' => '准',
 '溝' => '沟',
 '溫' => '温',
+'溮' => '浉',
 '溳' => '涢',
+'溼' => '湿',
 '滄' => '沧',
 '滅' => '灭',
 '滌' => '涤',
 '滎' => '荥',
 '滙' => '汇',
+'滛' => '淫',
 '滬' => '沪',
 '滯' => '滞',
 '滲' => '渗',
+'滷' => '卤',
 '滸' => '浒',
 '滻' => '浐',
 '滾' => '滚',
@@ -10896,8 +10480,10 @@ $zh2Hans = array(
 '漸' => '渐',
 '漿' => '浆',
 '潁' => '颍',
+'潄' => '漱',
 '潑' => '泼',
 '潔' => '洁',
+'潙' => '沩',
 '潛' => '潜',
 '潤' => '润',
 '潯' => '浔',
@@ -10905,6 +10491,7 @@ $zh2Hans = array(
 '潷' => '滗',
 '潿' => '涠',
 '澀' => '涩',
+'澁' => '涩',
 '澅' => '𣶩',
 '澆' => '浇',
 '澇' => '涝',
@@ -10921,6 +10508,7 @@ $zh2Hans = array(
 '濃' => '浓',
 '濄' => '㳡',
 '濆' => '𣸣',
+'濇' => '涩',
 '濕' => '湿',
 '濘' => '泞',
 '濜' => '浕',
@@ -10930,6 +10518,7 @@ $zh2Hans = array(
 '濫' => '滥',
 '濰' => '潍',
 '濱' => '滨',
+'濶' => '阔',
 '濺' => '溅',
 '濼' => '泺',
 '濾' => '滤',
@@ -10954,6 +10543,7 @@ $zh2Hans = array(
 '瀾' => '澜',
 '灃' => '沣',
 '灄' => '滠',
+'灋' => '法',
 '灑' => '洒',
 '灕' => '漓',
 '灘' => '滩',
@@ -10964,13 +10554,17 @@ $zh2Hans = array(
 '灣' => '湾',
 '灤' => '滦',
 '灧' => '滟',
+'灩' => '滟',
 '災' => '灾',
 '為' => '为',
 '烏' => '乌',
+'烖' => '灾',
 '烴' => '烃',
 '無' => '无',
 '煉' => '炼',
+'煑' => '煮',
 '煒' => '炜',
+'煗' => '暖',
 '煙' => '烟',
 '煢' => '茕',
 '煥' => '焕',
@@ -10978,6 +10572,7 @@ $zh2Hans = array(
 '煬' => '炀',
 '煱' => '㶽',
 '熅' => '煴',
+'熈' => '熙',
 '熉' => '𤈶',
 '熌' => '𤇄',
 '熒' => '荧',
@@ -10988,7 +10583,9 @@ $zh2Hans = array(
 '熲' => '颎',
 '熾' => '炽',
 '燁' => '烨',
+'燄' => '焰',
 '燈' => '灯',
+'燉' => '炖',
 '燒' => '烧',
 '燙' => '烫',
 '燜' => '焖',
@@ -10998,26 +10595,39 @@ $zh2Hans = array(
 '燭' => '烛',
 '燴' => '烩',
 '燶' => '㶶',
+'燻' => '熏',
 '燼' => '烬',
 '燾' => '焘',
 '爄' => '𤇃',
 '爍' => '烁',
 '爐' => '炉',
+'爗' => '烨',
 '爛' => '烂',
 '爭' => '争',
 '爲' => '为',
 '爺' => '爷',
 '爾' => '尔',
+'牀' => '床',
 '牆' => '墙',
+'牋' => '笺',
+'牎' => '窗',
+'牐' => '闸',
+'牓' => '榜',
+'牕' => '窗',
 '牘' => '牍',
+'牠' => '它',
+'牴' => '抵',
 '牽' => '牵',
 '犖' => '荦',
 '犢' => '犊',
 '犧' => '牺',
 '狀' => '状',
+'狥' => '徇',
 '狹' => '狭',
 '狽' => '狈',
+'猂' => '悍',
 '猙' => '狰',
+'猨' => '猿',
 '猶' => '犹',
 '猻' => '狲',
 '獁' => '犸',
@@ -11025,6 +10635,8 @@ $zh2Hans = array(
 '獄' => '狱',
 '獅' => '狮',
 '獎' => '奖',
+'獘' => '毙',
+'獧' => '狷',
 '獨' => '独',
 '獪' => '狯',
 '獫' => '猃',
@@ -11040,23 +10652,32 @@ $zh2Hans = array(
 '獼' => '猕',
 '玀' => '猡',
 '玁' => '𤞤',
+'玅' => '妙',
 '現' => '现',
+'琖' => '盏',
+'琱' => '雕',
 '琺' => '珐',
 '琿' => '珲',
+'瑇' => '玳',
 '瑋' => '玮',
 '瑒' => '玚',
 '瑣' => '琐',
 '瑤' => '瑶',
 '瑩' => '莹',
 '瑪' => '玛',
+'瑯' => '琅',
 '瑲' => '玱',
 '瑽' => '𪻐',
 '璉' => '琏',
+'璡' => '琎',
+'璢' => '瑠',
 '璣' => '玑',
 '璦' => '瑷',
 '璫' => '珰',
 '璯' => '㻅',
 '環' => '环',
+'璵' => '玙',
+'璸' => '瑸',
 '璽' => '玺',
 '瓊' => '琼',
 '瓏' => '珑',
@@ -11064,34 +10685,52 @@ $zh2Hans = array(
 '瓕' => '𤦀',
 '瓚' => '瓒',
 '甌' => '瓯',
+'甎' => '砖',
 '甕' => '瓮',
+'甖' => '罂',
+'甞' => '尝',
 '產' => '产',
-'甦' => '苏',
-'甯' => '宁',
+'産' => '产',
+'畂' => '亩',
+'畆' => '亩',
 '畝' => '亩',
 '畢' => '毕',
+'畧' => '略',
 '畫' => '画',
+'畮' => '亩',
 '異' => '异',
+'畱' => '留',
 '畵' => '画',
 '當' => '当',
 '疇' => '畴',
 '疊' => '叠',
+'疎' => '疏',
+'疘' => '肛',
+'疿' => '痱',
+'痐' => '蛔',
 '痙' => '痉',
 '痠' => '酸',
-'痾' => '疴',
+'痲' => '痳',
+'痺' => '痹',
 '瘂' => '痖',
+'瘉' => '愈',
 '瘋' => '疯',
 '瘍' => '疡',
 '瘓' => '痪',
+'瘖' => '喑',
 '瘞' => '瘗',
 '瘡' => '疮',
 '瘧' => '疟',
 '瘮' => '瘆',
 '瘲' => '疭',
 '瘺' => '瘘',
+'瘻' => '瘘',
 '療' => '疗',
+'癄' => '憔',
+'癅' => '瘤',
 '癆' => '痨',
 '癇' => '痫',
+'癈' => '废',
 '癉' => '瘅',
 '癒' => '愈',
 '癘' => '疠',
@@ -11109,12 +10748,18 @@ $zh2Hans = array(
 '癱' => '瘫',
 '癲' => '癫',
 '發' => '发',
+'皁' => '皂',
+'皐' => '皋',
 '皚' => '皑',
+'皜' => '皓',
 '皟' => '𤾀',
 '皰' => '疱',
+'皷' => '鼓',
 '皸' => '皲',
 '皺' => '皱',
 '盃' => '杯',
+'盇' => '盍',
+'盌' => '碗',
 '盜' => '盗',
 '盞' => '盏',
 '盡' => '尽',
@@ -11122,13 +10767,19 @@ $zh2Hans = array(
 '盤' => '盘',
 '盧' => '卢',
 '盪' => '荡',
+'眎' => '视',
 '眞' => '真',
+'眡' => '视',
 '眥' => '眦',
 '眾' => '众',
 '睍' => '𪾢',
 '睏' => '困',
 '睜' => '睁',
 '睞' => '睐',
+'睠' => '眷',
+'睪' => '睾',
+'瞇' => '眯',
+'瞖' => '翳',
 '瞘' => '眍',
 '瞜' => '䁖',
 '瞞' => '瞒',
@@ -11136,18 +10787,21 @@ $zh2Hans = array(
 '瞭' => '了',
 '瞶' => '瞆',
 '瞼' => '睑',
+'矁' => '瞅',
 '矇' => '蒙',
 '矓' => '眬',
+'矙' => '瞰',
 '矚' => '瞩',
 '矯' => '矫',
+'砲' => '炮',
 '硃' => '朱',
 '硜' => '硁',
 '硤' => '硖',
 '硨' => '砗',
 '硯' => '砚',
-'碕' => '埼',
 '碙' => '𥐻',
 '碩' => '硕',
+'碪' => '砧',
 '碭' => '砀',
 '碸' => '砜',
 '確' => '确',
@@ -11155,13 +10809,14 @@ $zh2Hans = array(
 '碽' => '䂵',
 '磑' => '硙',
 '磚' => '砖',
+'磟' => '碌',
 '磠' => '硵',
 '磣' => '碜',
 '磧' => '碛',
 '磯' => '矶',
 '磽' => '硗',
 '礄' => '硚',
-'ç¤\86' => 'ç¡·',
+'ç¤\86' => '碱',
 '礎' => '础',
 '礒' => '𥐟',
 '礙' => '碍',
@@ -11169,7 +10824,9 @@ $zh2Hans = array(
 '礪' => '砺',
 '礫' => '砾',
 '礬' => '矾',
+'礮' => '炮',
 '礱' => '砻',
+'祕' => '秘',
 '祘' => '算',
 '祿' => '禄',
 '禍' => '祸',
@@ -11183,13 +10840,20 @@ $zh2Hans = array(
 '禱' => '祷',
 '禿' => '秃',
 '秈' => '籼',
+'秊' => '年',
+'秌' => '秋',
+'秖' => '只',
 '稅' => '税',
 '稈' => '秆',
+'稉' => '粳',
 '稏' => '䅉',
 '稜' => '棱',
 '稟' => '禀',
+'稬' => '糯',
+'稭' => '秸',
 '種' => '种',
 '稱' => '称',
+'稾' => '稿',
 '穀' => '谷',
 '穌' => '稣',
 '積' => '积',
@@ -11197,50 +10861,71 @@ $zh2Hans = array(
 '穠' => '秾',
 '穡' => '穑',
 '穢' => '秽',
+'穤' => '糯',
+'穨' => '颓',
 '穩' => '稳',
 '穫' => '获',
 '穭' => '稆',
+'穽' => '阱',
+'窓' => '窗',
 '窩' => '窝',
 '窪' => '洼',
 '窮' => '穷',
 '窯' => '窑',
+'窰' => '窑',
 '窵' => '窎',
 '窶' => '窭',
 '窺' => '窥',
+'窻' => '窗',
 '竄' => '窜',
 '竅' => '窍',
 '竇' => '窦',
+'竈' => '灶',
 '竊' => '窃',
+'竚' => '伫',
+'竝' => '并',
+'竢' => '俟',
+'竪' => '竖',
 '競' => '竞',
 '筆' => '笔',
 '筍' => '笋',
+'筞' => '策',
 '筧' => '笕',
+'筩' => '筒',
+'筯' => '箸',
 '筴' => '䇲',
 '箇' => '个',
 '箋' => '笺',
 '箏' => '筝',
+'箒' => '帚',
+'箠' => '棰',
 '節' => '节',
 '範' => '范',
 '築' => '筑',
 '篋' => '箧',
 '篔' => '筼',
 '篘' => '𥬠',
+'篛' => '箬',
 '篤' => '笃',
 '篩' => '筛',
 '篳' => '筚',
 '簀' => '箦',
 '簍' => '篓',
 '簑' => '蓑',
+'簒' => '篡',
 '簞' => '箪',
 '簡' => '简',
 '簣' => '篑',
 '簫' => '箫',
+'簮' => '簪',
+'簷' => '檐',
 '簹' => '筜',
 '簽' => '签',
 '簾' => '帘',
 '籃' => '篮',
 '籋' => '𥬞',
 '籌' => '筹',
+'籐' => '藤',
 '籔' => '䉤',
 '籙' => '箓',
 '籛' => '篯',
@@ -11253,7 +10938,10 @@ $zh2Hans = array(
 '籬' => '篱',
 '籮' => '箩',
 '籲' => '吁',
+'粃' => '秕',
+'粧' => '妆',
 '粵' => '粤',
+'糉' => '粽',
 '糝' => '糁',
 '糞' => '粪',
 '糧' => '粮',
@@ -11286,6 +10974,7 @@ $zh2Hans = array(
 '紜' => '纭',
 '紝' => '纴',
 '紡' => '纺',
+'紥' => '扎',
 '紬' => '䌷',
 '紮' => '扎',
 '細' => '细',
@@ -11299,10 +10988,12 @@ $zh2Hans = array(
 '紿' => '绐',
 '絀' => '绌',
 '終' => '终',
+'絃' => '弦',
 '組' => '组',
 '絅' => '䌹',
 '絆' => '绊',
 '絎' => '绗',
+'絏' => '绁',
 '結' => '结',
 '絕' => '绝',
 '絛' => '绦',
@@ -11324,9 +11015,11 @@ $zh2Hans = array(
 '綆' => '绠',
 '綇' => '𦈋',
 '綈' => '绨',
+'綉' => '绣',
 '綌' => '绤',
 '綏' => '绥',
 '綐' => '䌼',
+'綑' => '捆',
 '經' => '经',
 '綜' => '综',
 '綞' => '缍',
@@ -11354,17 +11047,22 @@ $zh2Hans = array(
 '緊' => '紧',
 '緋' => '绯',
 '緍' => '𦈏',
+'緐' => '繁',
+'緑' => '绿',
 '緒' => '绪',
 '緓' => '绬',
+'緔' => '绱',
 '緗' => '缃',
 '緘' => '缄',
 '緙' => '缂',
 '線' => '线',
+'緜' => '绵',
 '緝' => '缉',
 '緞' => '缎',
 '締' => '缔',
 '緡' => '缗',
 '緣' => '缘',
+'緥' => '褓',
 '緦' => '缌',
 '編' => '编',
 '緩' => '缓',
@@ -11379,6 +11077,7 @@ $zh2Hans = array(
 '緸' => '𦈑',
 '緹' => '缇',
 '緻' => '致',
+'緼' => '缊',
 '縈' => '萦',
 '縉' => '缙',
 '縊' => '缢',
@@ -11393,6 +11092,7 @@ $zh2Hans = array(
 '縞' => '缟',
 '縟' => '缛',
 '縣' => '县',
+'縧' => '绦',
 '縫' => '缝',
 '縬' => '𦈚',
 '縭' => '缡',
@@ -11417,15 +11117,19 @@ $zh2Hans = array(
 '繓' => '𦈛',
 '織' => '织',
 '繕' => '缮',
+'繖' => '伞',
+'繙' => '翻',
 '繚' => '缭',
 '繞' => '绕',
 '繟' => '𦈎',
 '繡' => '绣',
 '繢' => '缋',
+'繦' => '襁',
 '繩' => '绳',
 '繪' => '绘',
 '繫' => '系',
 '繭' => '茧',
+'繮' => '缰',
 '繯' => '缳',
 '繰' => '缲',
 '繳' => '缴',
@@ -11449,23 +11153,34 @@ $zh2Hans = array(
 '纘' => '缵',
 '纜' => '缆',
 '缽' => '钵',
+'罇' => '樽',
 '罈' => '坛',
+'罋' => '瓮',
 '罌' => '罂',
 '罎' => '坛',
 '罰' => '罚',
 '罵' => '骂',
 '罷' => '罢',
+'罸' => '罚',
 '羅' => '罗',
 '羆' => '罴',
 '羈' => '羁',
 '羋' => '芈',
+'羗' => '羌',
+'羢' => '绒',
+'羣' => '群',
 '羥' => '羟',
 '羨' => '羡',
 '義' => '义',
+'羶' => '膻',
+'翄' => '翅',
 '習' => '习',
+'翫' => '玩',
 '翬' => '翚',
+'翶' => '翱',
 '翹' => '翘',
 '翽' => '翙',
+'耡' => '锄',
 '耬' => '耧',
 '耮' => '耢',
 '聖' => '圣',
@@ -11481,13 +11196,21 @@ $zh2Hans = array(
 '聽' => '听',
 '聾' => '聋',
 '肅' => '肃',
+'肎' => '肯',
+'肐' => '胳',
+'肧' => '胚',
+'胷' => '胸',
+'脃' => '脆',
 '脅' => '胁',
+'脇' => '胁',
 '脈' => '脉',
+'脗' => '吻',
 '脛' => '胫',
 '脣' => '唇',
 '脥' => '𣍰',
 '脫' => '脱',
 '脹' => '胀',
+'腁' => '胼',
 '腎' => '肾',
 '腖' => '胨',
 '腡' => '脶',
@@ -11497,66 +11220,90 @@ $zh2Hans = array(
 '腳' => '脚',
 '腸' => '肠',
 '膃' => '腽',
+'膓' => '肠',
 '膕' => '腘',
 '膚' => '肤',
+'膞' => '䏝',
 '膠' => '胶',
 '膢' => '𦝼',
 '膩' => '腻',
 '膽' => '胆',
 '膾' => '脍',
 '膿' => '脓',
+'臈' => '腊',
 '臉' => '脸',
+'臋' => '臀',
 '臍' => '脐',
 '臏' => '膑',
+'臕' => '膘',
 '臗' => '𣎑',
 '臘' => '腊',
+'臙' => '胭',
 '臚' => '胪',
+'臝' => '裸',
 '臟' => '脏',
 '臠' => '脔',
 '臢' => '臜',
 '臥' => '卧',
 '臨' => '临',
+'臯' => '皋',
 '臺' => '台',
 '與' => '与',
 '興' => '兴',
 '舉' => '举',
 '舊' => '旧',
+'舖' => '铺',
 '舘' => '馆',
+'舩' => '船',
 '艙' => '舱',
+'艢' => '樯',
+'艣' => '橹',
 '艤' => '舣',
 '艦' => '舰',
+'艪' => '橹',
 '艫' => '舻',
 '艱' => '艰',
 '艷' => '艳',
+'芲' => '花',
 '芻' => '刍',
 '苧' => '苎',
+'茘' => '荔',
 '茲' => '兹',
 '荊' => '荆',
+'荳' => '豆',
 '莊' => '庄',
 '莖' => '茎',
 '莢' => '荚',
 '莧' => '苋',
 '華' => '华',
-'è\8f´' => '庵',
+'è\8f¸' => 'ç\83\9f',
 '萇' => '苌',
 '萊' => '莱',
 '萬' => '万',
+'萲' => '萱',
 '萴' => '荝',
 '萵' => '莴',
 '葉' => '叶',
 '葒' => '荭',
+'葠' => '参',
 '葤' => '荮',
 '葦' => '苇',
+'葯' => '药',
 '葷' => '荤',
+'蒓' => '莼',
 '蒔' => '莳',
 '蒞' => '莅',
 '蒼' => '苍',
 '蓀' => '荪',
+'蓆' => '席',
 '蓋' => '盖',
+'蓡' => '参',
 '蓮' => '莲',
 '蓯' => '苁',
 '蓴' => '莼',
 '蓽' => '荜',
+'蔔' => '卜',
+'蔕' => '蒂',
 '蔘' => '参',
 '蔞' => '蒌',
 '蔣' => '蒋',
@@ -11570,11 +11317,13 @@ $zh2Hans = array(
 '蕓' => '芸',
 '蕕' => '莸',
 '蕘' => '荛',
+'蕚' => '萼',
 '蕢' => '蒉',
 '蕩' => '荡',
 '蕪' => '芜',
 '蕭' => '萧',
 '蕷' => '蓣',
+'蕿' => '萱',
 '薀' => '蕰',
 '薈' => '荟',
 '薊' => '蓟',
@@ -11593,17 +11342,24 @@ $zh2Hans = array(
 '藝' => '艺',
 '藥' => '药',
 '藪' => '薮',
+'藭' => '䓖',
+'藴' => '蕴',
 '藶' => '苈',
+'藷' => '薯',
 '藹' => '蔼',
 '藺' => '蔺',
+'藼' => '萱',
+'蘀' => '萚',
 '蘄' => '蕲',
 '蘆' => '芦',
 '蘇' => '苏',
 '蘊' => '蕴',
-'蘋' => '苹',
+'蘐' => '萱',
+'蘓' => '苏',
 '蘚' => '藓',
 '蘞' => '蔹',
 '蘢' => '茏',
+'蘤' => '花',
 '蘭' => '兰',
 '蘺' => '蓠',
 '蘿' => '萝',
@@ -11614,20 +11370,32 @@ $zh2Hans = array(
 '號' => '号',
 '虧' => '亏',
 '虯' => '虬',
+'蚘' => '蛔',
+'蛕' => '蛔',
 '蛺' => '蛱',
 '蛻' => '蜕',
 '蜆' => '蚬',
+'蜋' => '螂',
+'蜖' => '蛔',
+'蜨' => '蝶',
 '蝕' => '蚀',
 '蝟' => '猬',
 '蝦' => '虾',
+'蝨' => '虱',
+'蝯' => '猿',
+'蝱' => '虻',
 '蝸' => '蜗',
 '螄' => '蛳',
+'螎' => '融',
 '螞' => '蚂',
+'螡' => '蚊',
 '螢' => '萤',
 '螮' => '䗖',
 '螻' => '蝼',
 '螿' => '螀',
+'蟁' => '蚊',
 '蟄' => '蛰',
+'蟇' => '蟆',
 '蟈' => '蝈',
 '蟎' => '螨',
 '蟣' => '虮',
@@ -11640,37 +11408,53 @@ $zh2Hans = array(
 '蠅' => '蝇',
 '蠆' => '虿',
 '蠍' => '蝎',
+'蠏' => '蟹',
 '蠐' => '蛴',
 '蠑' => '蝾',
+'蠒' => '茧',
+'蠔' => '蚝',
 '蠟' => '蜡',
 '蠣' => '蛎',
 '蠨' => '蟏',
+'蠭' => '蜂',
 '蠱' => '蛊',
 '蠶' => '蚕',
 '蠻' => '蛮',
+'衂' => '衄',
+'衆' => '众',
+'衇' => '脉',
 '衊' => '蔑',
 '術' => '术',
 '衕' => '同',
+'衖' => '弄',
 '衚' => '胡',
 '衛' => '卫',
 '衝' => '冲',
+'衞' => '卫',
+'衺' => '邪',
 '袞' => '衮',
+'袟' => '帙',
+'袵' => '衽',
 '裊' => '袅',
+'裌' => '袷',
 '裏' => '里',
 '補' => '补',
 '裝' => '装',
+'裠' => '裙',
 '裡' => '里',
 '製' => '制',
 '複' => '复',
 '褌' => '裈',
 '褘' => '袆',
+'褭' => '袅',
 '褲' => '裤',
 '褳' => '裢',
 '褸' => '褛',
 '褻' => '亵',
 '襀' => '𫌀',
-'è¥\86' => 'å¹\9e',
+'è¥\83' => 'è¤\92',
 '襉' => '裥',
+'襍' => '杂',
 '襏' => '袯',
 '襖' => '袄',
 '襝' => '裣',
@@ -11681,15 +11465,20 @@ $zh2Hans = array(
 '襯' => '衬',
 '襲' => '袭',
 '襴' => '襕',
+'覇' => '霸',
+'覈' => '核',
+'覊' => '羁',
 '見' => '见',
 '覎' => '觃',
 '規' => '规',
 '覓' => '觅',
+'覔' => '觅',
 '視' => '视',
 '覘' => '觇',
 '覡' => '觋',
 '覥' => '觍',
 '覦' => '觎',
+'覩' => '睹',
 '親' => '亲',
 '覬' => '觊',
 '覯' => '觏',
@@ -11700,6 +11489,8 @@ $zh2Hans = array(
 '覽' => '览',
 '覿' => '觌',
 '觀' => '观',
+'觔' => '斤',
+'觝' => '抵',
 '觴' => '觞',
 '觶' => '觯',
 '觸' => '触',
@@ -11732,12 +11523,12 @@ $zh2Hans = array(
 '訶' => '诃',
 '診' => '诊',
 '註' => '注',
+'証' => '证',
 '詀' => '𧮪',
 '詁' => '诂',
 '詆' => '诋',
 '詎' => '讵',
 '詐' => '诈',
-'詑' => '𫍟',
 '詒' => '诒',
 '詔' => '诏',
 '評' => '评',
@@ -11761,6 +11552,7 @@ $zh2Hans = array(
 '該' => '该',
 '詳' => '详',
 '詵' => '诜',
+'詶' => '酬',
 '詼' => '诙',
 '詿' => '诖',
 '誄' => '诔',
@@ -11772,6 +11564,7 @@ $zh2Hans = array(
 '誑' => '诳',
 '誒' => '诶',
 '誕' => '诞',
+'誖' => '悖',
 '誘' => '诱',
 '誚' => '诮',
 '語' => '语',
@@ -11783,6 +11576,7 @@ $zh2Hans = array(
 '誦' => '诵',
 '誨' => '诲',
 '說' => '说',
+'説' => '说',
 '誰' => '谁',
 '課' => '课',
 '誶' => '谇',
@@ -11805,13 +11599,14 @@ $zh2Hans = array(
 '諜' => '谍',
 '諝' => '谞',
 '諞' => '谝',
+'諡' => '谥',
 '諢' => '诨',
 '諤' => '谔',
 '諦' => '谛',
 '諧' => '谐',
 '諫' => '谏',
 '諭' => '谕',
-'諮' => '',
+'諮' => '',
 '諰' => '𫍰',
 '諱' => '讳',
 '諳' => '谙',
@@ -11827,6 +11622,7 @@ $zh2Hans = array(
 '謄' => '誊',
 '謅' => '诌',
 '謊' => '谎',
+'謌' => '歌',
 '謎' => '谜',
 '謏' => '𫍲',
 '謐' => '谧',
@@ -11838,21 +11634,28 @@ $zh2Hans = array(
 '講' => '讲',
 '謝' => '谢',
 '謠' => '谣',
+'謡' => '谣',
 '謨' => '谟',
 '謫' => '谪',
 '謬' => '谬',
+'謭' => '谫',
 '謳' => '讴',
 '謹' => '谨',
 '謾' => '谩',
+'譁' => '哗',
+'譆' => '嘻',
 '證' => '证',
 '譊' => '𫍢',
+'譌' => '讹',
 '譎' => '谲',
 '譏' => '讥',
+'譔' => '撰',
 '譖' => '谮',
 '識' => '识',
 '譙' => '谯',
 '譚' => '谭',
 '譜' => '谱',
+'譟' => '噪',
 '譫' => '谵',
 '譭' => '毁',
 '譯' => '译',
@@ -11863,10 +11666,12 @@ $zh2Hans = array(
 '譽' => '誉',
 '譾' => '谫',
 '讀' => '读',
+'讁' => '谪',
 '變' => '变',
 '讋' => '詟',
 '讌' => '䜩',
 '讎' => '仇',
+'讐' => '雠',
 '讒' => '谗',
 '讓' => '让',
 '讕' => '谰',
@@ -11877,11 +11682,14 @@ $zh2Hans = array(
 '豈' => '岂',
 '豎' => '竖',
 '豐' => '丰',
+'豓' => '艳',
 '豔' => '艳',
 '豬' => '猪',
 '豶' => '豮',
+'貍' => '狸',
 '貓' => '猫',
 '貙' => '䝙',
+'貛' => '獾',
 '貝' => '贝',
 '貞' => '贞',
 '貟' => '贠',
@@ -11915,6 +11723,7 @@ $zh2Hans = array(
 '賅' => '赅',
 '資' => '资',
 '賈' => '贾',
+'賉' => '恤',
 '賊' => '贼',
 '賑' => '赈',
 '賒' => '赊',
@@ -11922,6 +11731,7 @@ $zh2Hans = array(
 '賕' => '赇',
 '賙' => '赒',
 '賚' => '赉',
+'賛' => '赞',
 '賜' => '赐',
 '賞' => '赏',
 '賟' => '𧹖',
@@ -11933,11 +11743,13 @@ $zh2Hans = array(
 '賦' => '赋',
 '賧' => '赕',
 '質' => '质',
+'賫' => '赍',
 '賬' => '账',
 '賭' => '赌',
 '賰' => '䞐',
 '賴' => '赖',
 '賵' => '赗',
+'賷' => '赍',
 '賺' => '赚',
 '賻' => '赙',
 '購' => '购',
@@ -11949,26 +11761,41 @@ $zh2Hans = array(
 '贇' => '赟',
 '贈' => '赠',
 '贊' => '赞',
+'贋' => '赝',
 '贍' => '赡',
 '贏' => '赢',
 '贐' => '赆',
+'贑' => '赣',
 '贓' => '赃',
 '贔' => '赑',
 '贖' => '赎',
 '贗' => '赝',
 '贛' => '赣',
+'贜' => '赃',
 '赬' => '赪',
+'趂' => '趁',
 '趕' => '赶',
 '趙' => '赵',
 '趨' => '趋',
 '趲' => '趱',
 '跡' => '迹',
+'跥' => '跺',
+'跴' => '踩',
+'踁' => '胫',
 '踐' => '践',
+'踫' => '碰',
+'踰' => '逾',
 '踴' => '踊',
 '蹌' => '跄',
+'蹏' => '蹄',
+'蹔' => '暂',
 '蹕' => '跸',
+'蹟' => '迹',
+'蹠' => '跖',
 '蹣' => '蹒',
 '蹤' => '踪',
+'蹧' => '糟',
+'蹵' => '蹴',
 '蹺' => '跷',
 '蹻' => '𫏋',
 '躂' => '跶',
@@ -11987,6 +11814,9 @@ $zh2Hans = array(
 '躥' => '蹿',
 '躦' => '躜',
 '躪' => '躏',
+'躭' => '耽',
+'躳' => '躬',
+'躶' => '裸',
 '軀' => '躯',
 '軉' => '𨉗',
 '車' => '车',
@@ -12022,6 +11852,7 @@ $zh2Hans = array(
 '輔' => '辅',
 '輕' => '轻',
 '輗' => '𫐐',
+'輙' => '辄',
 '輛' => '辆',
 '輜' => '辎',
 '輝' => '辉',
@@ -12032,11 +11863,13 @@ $zh2Hans = array(
 '輩' => '辈',
 '輪' => '轮',
 '輬' => '辌',
+'輭' => '软',
 '輮' => '𫐓',
 '輯' => '辑',
 '輳' => '辏',
 '輸' => '输',
 '輻' => '辐',
+'輼' => '辒',
 '輾' => '辗',
 '輿' => '舆',
 '轀' => '辒',
@@ -12053,17 +11886,27 @@ $zh2Hans = array(
 '轢' => '轹',
 '轣' => '𫐆',
 '轤' => '轳',
+'辠' => '罪',
+'辢' => '辣',
+'辤' => '辞',
 '辦' => '办',
 '辭' => '辞',
 '辮' => '辫',
 '辯' => '辩',
 '農' => '农',
+'辳' => '农',
 '迴' => '回',
+'迻' => '移',
+'逈' => '迥',
 '逕' => '迳',
 '這' => '这',
 '連' => '连',
+'逥' => '回',
+'逩' => '奔',
+'逬' => '迸',
 '週' => '周',
 '進' => '进',
+'遉' => '侦',
 '遊' => '游',
 '運' => '运',
 '過' => '过',
@@ -12075,7 +11918,9 @@ $zh2Hans = array(
 '遠' => '远',
 '遡' => '溯',
 '適' => '适',
+'遯' => '遁',
 '遲' => '迟',
+'遶' => '绕',
 '遷' => '迁',
 '選' => '选',
 '遺' => '遗',
@@ -12102,6 +11947,11 @@ $zh2Hans = array(
 '鄺' => '邝',
 '酇' => '酂',
 '酈' => '郦',
+'酖' => '鸩',
+'酧' => '酬',
+'醃' => '腌',
+'醆' => '盏',
+'醕' => '醇',
 '醜' => '丑',
 '醞' => '酝',
 '醣' => '糖',
@@ -12109,12 +11959,13 @@ $zh2Hans = array(
 '醬' => '酱',
 '醯' => '酰',
 '醱' => '酦',
+'醻' => '酬',
+'醼' => '宴',
 '釀' => '酿',
 '釁' => '衅',
 '釃' => '酾',
 '釅' => '酽',
 '釋' => '释',
-'釐' => '厘',
 '釒' => '钅',
 '釓' => '钆',
 '釔' => '钇',
@@ -12125,8 +11976,10 @@ $zh2Hans = array(
 '針' => '针',
 '釣' => '钓',
 '釤' => '钐',
+'釦' => '扣',
 '釧' => '钏',
 '釩' => '钒',
+'釬' => '焊',
 '釳' => '𨰿',
 '釵' => '钗',
 '釷' => '钍',
@@ -12137,11 +11990,13 @@ $zh2Hans = array(
 '鈁' => '钫',
 '鈃' => '钘',
 '鈄' => '钭',
+'鈅' => '钥',
 '鈇' => '𫓧',
 '鈈' => '钚',
 '鈉' => '钠',
 '鈋' => '𨱂',
 '鈍' => '钝',
+'鈎' => '钩',
 '鈐' => '钤',
 '鈑' => '钣',
 '鈒' => '钑',
@@ -12169,6 +12024,7 @@ $zh2Hans = array(
 '鉀' => '钾',
 '鉁' => '𨱅',
 '鉅' => '钜',
+'鉆' => '钻',
 '鉈' => '铊',
 '鉉' => '铉',
 '鉋' => '铇',
@@ -12179,6 +12035,7 @@ $zh2Hans = array(
 '鉚' => '铆',
 '鉛' => '铅',
 '鉞' => '钺',
+'鉢' => '钵',
 '鉤' => '钩',
 '鉦' => '钲',
 '鉬' => '钼',
@@ -12209,6 +12066,7 @@ $zh2Hans = array(
 '銫' => '铯',
 '銬' => '铐',
 '銱' => '铞',
+'銲' => '焊',
 '銳' => '锐',
 '銶' => '𨱇',
 '銷' => '销',
@@ -12232,6 +12090,7 @@ $zh2Hans = array(
 '鋨' => '锇',
 '鋩' => '铓',
 '鋪' => '铺',
+'鋭' => '锐',
 '鋮' => '铖',
 '鋯' => '锆',
 '鋰' => '锂',
@@ -12263,10 +12122,12 @@ $zh2Hans = array(
 '錫' => '锡',
 '錮' => '锢',
 '錯' => '错',
+'録' => '录',
 '錳' => '锰',
 '錶' => '表',
 '錸' => '铼',
 '鍀' => '锝',
+'鍁' => '锨',
 '鍃' => '锪',
 '鍄' => '𨱉',
 '鍆' => '钔',
@@ -12283,13 +12144,15 @@ $zh2Hans = array(
 '鍤' => '锸',
 '鍥' => '锲',
 '鍩' => '锘',
+'鍫' => '锹',
 '鍬' => '锹',
 '鍮' => '𨱎',
 '鍰' => '锾',
+'鍳' => '鉴',
 '鍵' => '键',
 '鍶' => '锶',
 '鍺' => '锗',
-'é\8d¾' => 'é\92\9f',
+'é\8d¾' => 'é\94º',
 '鎂' => '镁',
 '鎄' => '锿',
 '鎇' => '镅',
@@ -12297,7 +12160,9 @@ $zh2Hans = array(
 '鎌' => '镰',
 '鎔' => '镕',
 '鎖' => '锁',
+'鎗' => '枪',
 '鎘' => '镉',
+'鎚' => '锤',
 '鎛' => '镈',
 '鎝' => '𨱏',
 '鎡' => '镃',
@@ -12308,7 +12173,7 @@ $zh2Hans = array(
 '鎩' => '铩',
 '鎪' => '锼',
 '鎬' => '镐',
-'é\8e­' => 'é\8e®',
+'é\8e­' => 'é\95\87',
 '鎮' => '镇',
 '鎯' => '𨱍',
 '鎰' => '镒',
@@ -12316,6 +12181,8 @@ $zh2Hans = array(
 '鎳' => '镍',
 '鎵' => '镓',
 '鎷' => '𨰾',
+'鎸' => '镌',
+'鎻' => '锁',
 '鎿' => '镎',
 '鏃' => '镞',
 '鏆' => '𨱌',
@@ -12356,6 +12223,7 @@ $zh2Hans = array(
 '鐔' => '镡',
 '鐘' => '钟',
 '鐙' => '镫',
+'鐝' => '镢',
 '鐠' => '镨',
 '鐥' => '䦅',
 '鐦' => '锎',
@@ -12378,14 +12246,18 @@ $zh2Hans = array(
 '鑒' => '鉴',
 '鑔' => '镲',
 '鑕' => '锧',
+'鑚' => '钻',
+'鑛' => '矿',
 '鑞' => '镴',
 '鑠' => '铄',
 '鑣' => '镳',
+'鑤' => '刨',
 '鑥' => '镥',
 '鑭' => '镧',
 '鑰' => '钥',
 '鑱' => '镵',
 '鑲' => '镶',
+'鑵' => '罐',
 '鑷' => '镊',
 '鑹' => '镩',
 '鑼' => '锣',
@@ -12393,7 +12265,7 @@ $zh2Hans = array(
 '鑾' => '銮',
 '鑿' => '凿',
 '钁' => '镢',
-'é\95\9f' => 'æ\97\8b',
+'é\92\82' => 'é\95\8b',
 '長' => '长',
 '門' => '门',
 '閂' => '闩',
@@ -12412,16 +12284,19 @@ $zh2Hans = array(
 '間' => '间',
 '閔' => '闵',
 '閘' => '闸',
+'閙' => '闹',
 '閡' => '阂',
 '閣' => '阁',
-'閤' => '',
+'閤' => '',
 '閥' => '阀',
+'閧' => '哄',
 '閨' => '闺',
 '閩' => '闽',
 '閫' => '阃',
 '閬' => '阆',
 '閭' => '闾',
 '閱' => '阅',
+'閲' => '阅',
 '閶' => '阊',
 '閹' => '阉',
 '閻' => '阎',
@@ -12431,6 +12306,7 @@ $zh2Hans = array(
 '閿' => '阌',
 '闃' => '阒',
 '闆' => '板',
+'闇' => '暗',
 '闈' => '闱',
 '闊' => '阔',
 '闋' => '阕',
@@ -12442,6 +12318,7 @@ $zh2Hans = array(
 '闔' => '阖',
 '闕' => '阙',
 '闖' => '闯',
+'闚' => '窥',
 '關' => '关',
 '闞' => '阚',
 '闠' => '阓',
@@ -12449,23 +12326,33 @@ $zh2Hans = array(
 '闢' => '辟',
 '闤' => '阛',
 '闥' => '闼',
+'阨' => '厄',
+'阬' => '坑',
+'陗' => '峭',
 '陘' => '陉',
+'陜' => '陕',
 '陝' => '陕',
-'陞' => '升',
 '陣' => '阵',
 '陰' => '阴',
 '陳' => '陈',
 '陸' => '陆',
+'陻' => '堙',
 '陽' => '阳',
+'陿' => '狭',
+'隂' => '阴',
+'隄' => '堤',
 '隉' => '陧',
 '隊' => '队',
 '階' => '阶',
 '隕' => '陨',
+'隖' => '坞',
 '際' => '际',
+'隣' => '邻',
 '隨' => '随',
 '險' => '险',
 '隱' => '隐',
 '隴' => '陇',
+'隷' => '隶',
 '隸' => '隶',
 '隻' => '只',
 '雋' => '隽',
@@ -12483,19 +12370,27 @@ $zh2Hans = array(
 '霽' => '霁',
 '靂' => '雳',
 '靄' => '霭',
+'靆' => '叇',
 '靈' => '灵',
+'靉' => '叆',
 '靚' => '靓',
 '靜' => '静',
 '靦' => '腼',
 '靨' => '靥',
+'靭' => '韧',
+'靱' => '韧',
 '鞀' => '鼗',
+'鞌' => '鞍',
 '鞏' => '巩',
 '鞝' => '绱',
 '鞦' => '秋',
+'鞵' => '鞋',
 '鞽' => '鞒',
+'鞾' => '靴',
 '韁' => '缰',
 '韃' => '鞑',
 '韆' => '千',
+'韈' => '袜',
 '韉' => '鞯',
 '韋' => '韦',
 '韌' => '韧',
@@ -12503,8 +12398,9 @@ $zh2Hans = array(
 '韓' => '韩',
 '韙' => '韪',
 '韜' => '韬',
-'韝' => '鞲',
 '韞' => '韫',
+'韤' => '袜',
+'韮' => '韭',
 '韻' => '韵',
 '響' => '响',
 '頁' => '页',
@@ -12525,6 +12421,7 @@ $zh2Hans = array(
 '頗' => '颇',
 '領' => '领',
 '頜' => '颌',
+'頟' => '额',
 '頡' => '颉',
 '頤' => '颐',
 '頦' => '颏',
@@ -12537,20 +12434,26 @@ $zh2Hans = array(
 '頸' => '颈',
 '頹' => '颓',
 '頻' => '频',
+'頼' => '赖',
+'頽' => '颓',
 '顃' => '𩖖',
 '顆' => '颗',
+'顇' => '悴',
+'顋' => '腮',
 '題' => '题',
 '額' => '额',
 '顎' => '颚',
 '顏' => '颜',
 '顒' => '颙',
 '顓' => '颛',
+'顔' => '颜',
 '願' => '愿',
 '顙' => '颡',
 '顛' => '颠',
 '類' => '类',
 '顢' => '颟',
 '顥' => '颢',
+'顦' => '憔',
 '顧' => '顾',
 '顫' => '颤',
 '顬' => '颥',
@@ -12574,13 +12477,16 @@ $zh2Hans = array(
 '颼' => '飕',
 '颾' => '𩙫',
 '飀' => '飗',
+'飃' => '飘',
 '飄' => '飘',
 '飆' => '飙',
 '飈' => '飚',
 '飛' => '飞',
+'飜' => '翻',
 '飠' => '饣',
 '飢' => '饥',
 '飣' => '饤',
+'飤' => '饲',
 '飥' => '饦',
 '飩' => '饨',
 '飪' => '饪',
@@ -12594,9 +12500,11 @@ $zh2Hans = array(
 '飽' => '饱',
 '飾' => '饰',
 '飿' => '饳',
+'餁' => '饪',
 '餃' => '饺',
 '餄' => '饸',
 '餅' => '饼',
+'餈' => '糍',
 '餉' => '饷',
 '養' => '养',
 '餌' => '饵',
@@ -12609,7 +12517,7 @@ $zh2Hans = array(
 '餕' => '馂',
 '餖' => '饾',
 '餗' => '𫗧',
-'餘' => '',
+'餘' => '',
 '餚' => '肴',
 '餛' => '馄',
 '餜' => '馃',
@@ -12620,12 +12528,14 @@ $zh2Hans = array(
 '餭' => '𫗮',
 '餱' => '糇',
 '餳' => '饧',
-'餵' => '喂',
 '餶' => '馉',
 '餷' => '馇',
 '餸' => '𩠌',
+'餹' => '糖',
 '餺' => '馎',
+'餻' => '糕',
 '餼' => '饩',
+'餽' => '馈',
 '餾' => '馏',
 '餿' => '馊',
 '饁' => '馌',
@@ -12636,10 +12546,13 @@ $zh2Hans = array(
 '饊' => '馓',
 '饋' => '馈',
 '饌' => '馔',
+'饍' => '膳',
+'饑' => '饥',
 '饒' => '饶',
 '饗' => '飨',
 '饘' => '𫗴',
 '饜' => '餍',
+'饝' => '馍',
 '饞' => '馋',
 '饢' => '馕',
 '馬' => '马',
@@ -12651,6 +12564,7 @@ $zh2Hans = array(
 '馹' => '驲',
 '駁' => '驳',
 '駃' => '𫘝',
+'駈' => '驱',
 '駎' => '𩧨',
 '駐' => '驻',
 '駑' => '驽',
@@ -12663,10 +12577,12 @@ $zh2Hans = array(
 '駛' => '驶',
 '駝' => '驼',
 '駟' => '驷',
+'駡' => '骂',
 '駢' => '骈',
 '駧' => '𩧲',
 '駩' => '𩧴',
 '駭' => '骇',
+'駮' => '驳',
 '駰' => '骃',
 '駱' => '骆',
 '駶' => '𩧺',
@@ -12681,6 +12597,7 @@ $zh2Hans = array(
 '騍' => '骒',
 '騎' => '骑',
 '騏' => '骐',
+'騐' => '验',
 '騔' => '𩨀',
 '騖' => '骛',
 '騙' => '骗',
@@ -12688,6 +12605,7 @@ $zh2Hans = array(
 '騝' => '𩨃',
 '騟' => '𩨈',
 '騠' => '𫘨',
+'騣' => '鬃',
 '騤' => '骙',
 '騧' => '䯄',
 '騪' => '𩨄',
@@ -12703,7 +12621,7 @@ $zh2Hans = array(
 '驁' => '骜',
 '驂' => '骖',
 '驃' => '骠',
-'驄' => '',
+'驄' => '𩨂',
 '驅' => '驱',
 '驊' => '骅',
 '驋' => '𩧯',
@@ -12712,6 +12630,7 @@ $zh2Hans = array(
 '驏' => '骣',
 '驕' => '骄',
 '驗' => '验',
+'驘' => '骡',
 '驚' => '惊',
 '驛' => '驿',
 '驟' => '骤',
@@ -12722,21 +12641,33 @@ $zh2Hans = array(
 '驪' => '骊',
 '驫' => '骉',
 '骯' => '肮',
+'骽' => '腿',
+'骾' => '鲠',
+'髈' => '膀',
 '髏' => '髅',
 '髒' => '脏',
 '體' => '体',
 '髕' => '髌',
 '髖' => '髋',
+'髣' => '仿',
+'髥' => '髯',
 '髮' => '发',
+'髴' => '佛',
+'鬀' => '剃',
 '鬆' => '松',
+'鬉' => '鬃',
 '鬍' => '胡',
 '鬚' => '须',
 '鬢' => '鬓',
 '鬥' => '斗',
+'鬦' => '斗',
 '鬧' => '闹',
 '鬨' => '哄',
 '鬩' => '阋',
+'鬪' => '斗',
+'鬭' => '斗',
 '鬮' => '阄',
+'鬰' => '郁',
 '鬱' => '郁',
 '鬹' => '鬶',
 '魎' => '魉',
@@ -12757,12 +12688,14 @@ $zh2Hans = array(
 '鮊' => '鲌',
 '鮋' => '鲉',
 '鮍' => '鲏',
+'鮎' => '鲇',
 '鮐' => '鲐',
 '鮑' => '鲍',
 '鮒' => '鲋',
 '鮓' => '鲊',
 '鮚' => '鲒',
 '鮜' => '鲘',
+'鮝' => '鲞',
 '鮞' => '鲕',
 '鮟' => '𩽾',
 '鮣' => '䲟',
@@ -12797,6 +12730,7 @@ $zh2Hans = array(
 '鯨' => '鲸',
 '鯪' => '鲮',
 '鯫' => '鲰',
+'鯰' => '鲶',
 '鯱' => '𩾇',
 '鯴' => '鲺',
 '鯶' => '𩽼',
@@ -12812,8 +12746,10 @@ $zh2Hans = array(
 '鰌' => '䲡',
 '鰍' => '鳅',
 '鰏' => '鲾',
+'鰐' => '鳄',
 '鰒' => '鳆',
 '鰓' => '鳃',
+'鰛' => '鳁',
 '鰜' => '鳒',
 '鰟' => '鳑',
 '鰠' => '鳋',
@@ -12861,6 +12797,7 @@ $zh2Hans = array(
 '鳥' => '鸟',
 '鳧' => '凫',
 '鳩' => '鸠',
+'鳬' => '凫',
 '鳲' => '鸤',
 '鳳' => '凤',
 '鳴' => '鸣',
@@ -12871,6 +12808,7 @@ $zh2Hans = array(
 '鴃' => '𫛞',
 '鴆' => '鸩',
 '鴇' => '鸨',
+'鴈' => '雁',
 '鴉' => '鸦',
 '鴒' => '鸰',
 '鴕' => '鸵',
@@ -12900,6 +12838,7 @@ $zh2Hans = array(
 '鵚' => '𪉍',
 '鵜' => '鹈',
 '鵝' => '鹅',
+'鵞' => '鹅',
 '鵠' => '鹄',
 '鵡' => '鹉',
 '鵪' => '鹌',
@@ -12908,6 +12847,7 @@ $zh2Hans = array(
 '鵯' => '鹎',
 '鵰' => '雕',
 '鵲' => '鹊',
+'鵶' => '鸦',
 '鵷' => '鹓',
 '鵾' => '鹍',
 '鶄' => '䴖',
@@ -12933,8 +12873,10 @@ $zh2Hans = array(
 '鶻' => '鹘',
 '鶼' => '鹣',
 '鶿' => '鹚',
+'鷀' => '鹚',
 '鷁' => '鹢',
 '鷂' => '鹞',
+'鷄' => '鸡',
 '鷈' => '䴘',
 '鷊' => '鹝',
 '鷓' => '鹧',
@@ -12948,8 +12890,10 @@ $zh2Hans = array(
 '鷨' => '𪉊',
 '鷫' => '鹔',
 '鷯' => '鹩',
+'鷰' => '燕',
 '鷲' => '鹫',
 '鷳' => '鹇',
+'鷴' => '鹇',
 '鷸' => '鹬',
 '鷹' => '鹰',
 '鷺' => '鹭',
@@ -12959,6 +12903,7 @@ $zh2Hans = array(
 '鸇' => '鹯',
 '鸋' => '𫛢',
 '鸌' => '鹱',
+'鸎' => '莺',
 '鸏' => '鹲',
 '鸕' => '鸬',
 '鸘' => '鹴',
@@ -12969,6 +12914,7 @@ $zh2Hans = array(
 '鹵' => '卤',
 '鹹' => '咸',
 '鹺' => '鹾',
+'鹻' => '碱',
 '鹼' => '碱',
 '鹽' => '盐',
 '麗' => '丽',
@@ -12979,7 +12925,8 @@ $zh2Hans = array(
 '麫' => '面',
 '麯' => '曲',
 '麲' => '𪎉',
-'麴' => '曲',
+'麳' => '𪎌',
+'麴' => '麹',
 '麵' => '面',
 '麼' => '么',
 '麽' => '么',
@@ -12993,10 +12940,12 @@ $zh2Hans = array(
 '黷' => '黩',
 '黽' => '黾',
 '黿' => '鼋',
+'鼃' => '蛙',
+'鼇' => '鳌',
+'鼈' => '鳖',
 '鼉' => '鼍',
 '鼕' => '冬',
 '鼴' => '鼹',
-'齇' => '齄',
 '齊' => '齐',
 '齋' => '斋',
 '齎' => '赍',
@@ -13012,6 +12961,8 @@ $zh2Hans = array(
 '齡' => '龄',
 '齣' => '出',
 '齦' => '龈',
+'齧' => '啮',
+'齩' => '咬',
 '齪' => '龊',
 '齬' => '龉',
 '齲' => '龋',
@@ -13026,28 +12977,47 @@ $zh2Hans = array(
 '龜' => '龟',
 '龭' => '𩨎',
 '龯' => '𨱆',
+'𠇮' => '命',
+'𠌂' => '伞',
 '𠌥' => '𠆿',
 '𠏢' => '𠉗',
+'𠕂' => '再',
+'𠕅' => '再',
+'𠖇' => '冥',
 '𠞆' => '𠛆',
+'𠞰' => '剿',
 '𠠎' => '𠚳',
+'𠪾' => '历',
+'𠴟' => '咩',
+'𠻳' => '嗽',
 '𡄔' => '𠴢',
 '𡄣' => '𠵸',
 '𡅏' => '𠲥',
+'𡐨' => '野',
 '𡑭' => '𡋗',
 '𡓾' => '𡋀',
+'𡚁' => '弊',
 '𡞵' => '㛟',
 '𡠹' => '㛿',
 '𡢃' => '㛠',
+'𡨘' => '冤',
+'𡨥' => '寇',
+'𡬶' => '寻',
 '𡮉' => '𡭜',
 '𡮣' => '𡭬',
 '𡻕' => '岁',
 '𡾱' => '㟜',
 '𢣚' => '𢘝',
 '𢣭' => '𢘞',
+'𢬸' => '括',
+'𢭏' => '捣',
+'𢮥' => '操',
 '𢶫' => '𢫞',
+'𢷬' => '捣',
 '𢷮' => '𢫊',
 '𢹿' => '𢬦',
 '𣙎' => '㭣',
+'𣙜' => '榷',
 '𣝕' => '𣘷',
 '𣞻' => '𣘓',
 '𣠲' => '𣑶',
@@ -13055,16 +13025,25 @@ $zh2Hans = array(
 '𣾷' => '㳢',
 '𣿉' => '𣶫',
 '𤁣' => '𣺽',
+'𤋮' => '熙',
 '𤒎' => '𤊀',
+'𤨏' => '琐',
 '𤪺' => '㻘',
 '𤫩' => '㻏',
+'𤰜' => '亩',
+'𤱈' => '亩',
+'𤱊' => '留',
 '𤳸' => '𤳄',
 '𤸫' => '𤶧',
+'𤺥' => '瘩',
+'𥄨' => '瞅',
 '𥌃' => '𥅘',
 '𥕥' => '𥐰',
 '𥖅' => '𥐯',
 '𥢢' => '䅪',
+'𥦗' => '窗',
 '𥨐' => '𥧂',
+'𥲻' => '纂',
 '𥵃' => '𥱔',
 '𥵊' => '𥭉',
 '𥸠' => '𥮋',
@@ -13072,10 +13051,18 @@ $zh2Hans = array(
 '𥽖' => '𥺇',
 '𥿊' => '𦈈',
 '𦂅' => '𦈒',
+'𦂳' => '紧',
+'𦃂' => '紧',
 '𦃄' => '𦈗',
+'𦉆' => '碴',
+'𦊱' => '挂',
+'𦍑' => '羌',
+'𦕈' => '眇',
 '𦢈' => '𣍨',
 '𦣎' => '𦟗',
+'𦪙' => '䑽',
 '𦪽' => '𦨩',
+'𦵏' => '葬',
 '𧔥' => '𧒭',
 '𧜗' => '䘞',
 '𧜵' => '䙊',
@@ -13117,10 +13104,14 @@ $zh2Hans = array(
 '𨶲' => '𨸋',
 '𨷲' => '𨸎',
 '𨽏' => '𨸘',
+'𨽻' => '隶',
 '𩎢' => '𩏾',
 '𩏪' => '𩏽',
+'𩓐' => '脖',
 '𩓣' => '𩖕',
 '𩗀' => '𩙦',
+'𩗗' => '飓',
+'𩗡' => '𩙧',
 '𩘀' => '𩙩',
 '𩘝' => '𩙭',
 '𩘹' => '𩙨',
@@ -13170,6 +13161,7 @@ $zh2Hans = array(
 '𩷰' => '𩾄',
 '𩸃' => '𩾅',
 '𩸦' => '𩾆',
+'𩽇' => '𩾎',
 '𩿪' => '𪉄',
 '𪀦' => '𪉅',
 '𪀾' => '𪉋',
@@ -13181,68 +13173,26 @@ $zh2Hans = array(
 '𪄆' => '𪉔',
 '𪄕' => '𪉒',
 '𪇳' => '𪉕',
+'𪈼' => '𪉓',
 '𪋿' => '𪎍',
 '𪔵' => '𪔭',
 '𪘀' => '𪚏',
 '𪘯' => '𪚐',
+'『' => '‘',
+'』' => '’',
+'「' => '“',
+'「' => '“',
+'」' => '”',
+'」' => '”',
+'。陞' => '。升',
 '《易乾' => '《易乾',
-'不著痕跡' => '不着痕迹',
-'不著邊際' => '不着边际',
-'與著' => '与着',
-'與著書' => '与著书',
-'與著作' => '与著作',
-'與著名' => '与著名',
-'與著錄' => '与著录',
-'與著稱' => '与著称',
-'與著者' => '与著者',
-'與著述' => '与著述',
-'丑著' => '丑着',
-'丑著书' => '丑著书',
-'丑著書' => '丑著书',
-'丑著作' => '丑著作',
-'丑著名' => '丑著名',
-'丑著录' => '丑著录',
-'丑著錄' => '丑著录',
-'丑著稱' => '丑著称',
-'丑著称' => '丑著称',
-'丑著者' => '丑著者',
-'丑著述' => '丑著述',
+'一釐' => '一厘',
+'一口鍾' => '一口钟',
+'一鍾' => '一钟',
+'上昇' => '上升',
 '專著' => '专著',
-'臨著' => '临着',
-'臨著書' => '临著书',
-'臨著作' => '临著作',
-'臨著名' => '临著名',
-'臨著錄' => '临著录',
-'臨著稱' => '临著称',
-'臨著者' => '临著者',
-'臨著述' => '临著述',
-'麗著' => '丽着',
-'麗著書' => '丽著书',
-'麗著作' => '丽著作',
-'麗著名' => '丽著名',
-'麗著錄' => '丽著录',
-'麗著稱' => '丽著称',
-'麗著者' => '丽著者',
-'麗著述' => '丽著述',
-'樂著' => '乐着',
-'樂著書' => '乐著书',
-'樂著作' => '乐著作',
-'樂著名' => '乐著名',
-'樂著錄' => '乐著录',
-'樂著稱' => '乐著称',
-'樂著者' => '乐著者',
-'樂著述' => '乐著述',
-'乘著' => '乘着',
-'乘著书' => '乘著书',
-'乘著書' => '乘著书',
-'乘著作' => '乘著作',
-'乘著名' => '乘著名',
-'乘著录' => '乘著录',
-'乘著錄' => '乘著录',
-'乘著稱' => '乘著称',
-'乘著称' => '乘著称',
-'乘著者' => '乘著者',
-'乘著述' => '乘著述',
+'世界鍾' => '世界钟',
+'喪鍾' => '丧钟',
 '乾一坛' => '乾一坛',
 '乾一壇' => '乾一坛',
 '乾一组' => '乾一组',
@@ -13253,8 +13203,8 @@ $zh2Hans = array(
 '乾九' => '乾九',
 '乾乾' => '乾乾',
 '乾亨' => '乾亨',
-'乾儀' => '乾仪',
 '乾仪' => '乾仪',
+'乾儀' => '乾仪',
 '乾位' => '乾位',
 '乾健' => '乾健',
 '乾健也' => '乾健也',
@@ -13262,12 +13212,12 @@ $zh2Hans = array(
 '乾光' => '乾光',
 '乾兴' => '乾兴',
 '乾興' => '乾兴',
-'乾冈' => '乾冈',
 '乾岡' => '乾冈',
-'ä¹¾å\8a\89' => 'ä¹¾å\88\98',
+'ä¹¾å\86\88' => 'ä¹¾å\86\88',
 '乾刘' => '乾刘',
-'ä¹¾å\89\9b' => 'ä¹¾å\88\9a',
+'ä¹¾å\8a\89' => 'ä¹¾å\88\98',
 '乾刚' => '乾刚',
+'乾剛' => '乾刚',
 '乾務' => '乾务',
 '乾务' => '乾务',
 '乾化' => '乾化',
@@ -13289,16 +13239,16 @@ $zh2Hans = array(
 '乾天也' => '乾天也',
 '乾始' => '乾始',
 '乾姓' => '乾姓',
-'乾寧' => '乾宁',
 '乾宁' => '乾宁',
+'乾寧' => '乾宁',
 '乾宅' => '乾宅',
 '乾宇' => '乾宇',
 '乾安' => '乾安',
 '乾定' => '乾定',
 '乾封' => '乾封',
 '乾居' => '乾居',
-'乾崗' => '乾岗',
 '乾岗' => '乾岗',
+'乾崗' => '乾岗',
 '乾巛' => '乾巛',
 '乾州' => '乾州',
 '乾式' => '乾式',
@@ -13309,46 +13259,47 @@ $zh2Hans = array(
 '乾心' => '乾心',
 '乾忠' => '乾忠',
 '乾文' => '乾文',
-'乾斷' => '乾断',
 '乾断' => '乾断',
+'乾斷' => '乾断',
 '乾方' => '乾方',
 '乾施' => '乾施',
 '乾旦' => '乾旦',
 '乾明' => '乾明',
 '乾昧' => '乾昧',
-'乾晖' => '乾晖',
 '乾暉' => '乾晖',
+'乾晖' => '乾晖',
 '乾景' => '乾景',
 '乾晷' => '乾晷',
 '乾曜' => '乾曜',
-'乾构' => '乾构',
 '乾構' => '乾构',
-'ä¹¾æ¨\9e' => 'ä¹¾æ\9e¢',
+'ä¹¾æ\9e\84' => 'ä¹¾æ\9e\84',
 '乾枢' => '乾枢',
-'ä¹¾æ \8b' => 'ä¹¾æ \8b',
+'ä¹¾æ¨\9e' => 'ä¹¾æ\9e¢',
 '乾棟' => '乾栋',
+'乾栋' => '乾栋',
 '乾步' => '乾步',
 '乾氏' => '乾氏',
 '乾沓和' => '乾沓和',
 '乾沓婆' => '乾沓婆',
 '乾泉' => '乾泉',
 '乾淳' => '乾淳',
-'乾清宮' => '乾清宫',
-'乾清宫' => '乾清宫',
+'乾清' => '乾清',
 '乾渥' => '乾渥',
-'乾靈' => '乾灵',
+'乾潭' => '乾潭',
 '乾灵' => '乾灵',
+'乾靈' => '乾灵',
 '乾男' => '乾男',
 '乾皋' => '乾皋',
 '乾盛世' => '乾盛世',
 '乾矢' => '乾矢',
 '乾祐' => '乾祐',
+'乾神' => '乾神',
 '乾穹' => '乾穹',
 '乾竇' => '乾窦',
 '乾窦' => '乾窦',
 '乾竺' => '乾竺',
-'乾篤' => '乾笃',
 '乾笃' => '乾笃',
+'乾篤' => '乾笃',
 '乾符' => '乾符',
 '乾策' => '乾策',
 '乾精' => '乾精',
@@ -13358,192 +13309,72 @@ $zh2Hans = array(
 '乾纲' => '乾纲',
 '乾纽' => '乾纽',
 '乾紐' => '乾纽',
-'乾絡' => '乾络',
 '乾络' => '乾络',
+'乾絡' => '乾络',
 '乾統' => '乾统',
 '乾统' => '乾统',
-'乾維' => '乾维',
 '乾维' => '乾维',
-'ä¹¾ç¾\85' => 'ä¹¾ç½\97',
+'乾維' => '乾维',
 '乾罗' => '乾罗',
+'乾羅' => '乾罗',
 '乾花' => '乾花',
-'乾蔭' => '乾荫',
 '乾荫' => '乾荫',
+'乾蔭' => '乾荫',
 '乾行' => '乾行',
 '乾衡' => '乾衡',
+'乾西' => '乾西',
 '乾覆' => '乾覆',
 '乾象' => '乾象',
 '乾象歷' => '乾象历',
 '乾象历' => '乾象历',
-'乾贞' => '乾贞',
 '乾貞' => '乾贞',
+'乾贞' => '乾贞',
+'乾贵士' => '乾贵士',
+'乾貴士' => '乾贵士',
 '乾貺' => '乾贶',
 '乾贶' => '乾贶',
-'乾车' => '乾车',
 '乾車' => '乾车',
-'乾軸' => '乾轴',
+'乾车' => '乾车',
 '乾轴' => '乾轴',
+'乾軸' => '乾轴',
 '乾通' => '乾通',
 '乾造' => '乾造',
 '乾道' => '乾道',
-'乾鑒' => '乾鉴',
 '乾鉴' => '乾鉴',
-'ä¹¾é\92§' => 'ä¹¾é\92§',
+'ä¹¾é\91\92' => 'ä¹¾é\89´',
 '乾鈞' => '乾钧',
-'ä¹¾é\97¼' => 'ä¹¾é\97¼',
+'ä¹¾é\92§' => 'ä¹¾é\92§',
 '乾闥' => '乾闼',
+'乾闼' => '乾闼',
 '乾陀' => '乾陀',
 '乾陵' => '乾陵',
 '乾隆' => '乾隆',
 '乾音' => '乾音',
-'乾顾' => '乾顾',
 '乾顧' => '乾顾',
-'ä¹¾é£\8e' => 'ä¹¾é£\8e',
+'乾顾' => '乾顾',
 '乾風' => '乾风',
+'乾风' => '乾风',
 '乾首' => '乾首',
-'乾馬' => '乾马',
 '乾马' => '乾马',
+'乾馬' => '乾马',
 '乾鵠' => '乾鹄',
 '乾鹄' => '乾鹄',
 '乾鵲' => '乾鹊',
 '乾鹊' => '乾鹊',
-'乾龍' => '乾龙',
 '乾龙' => '乾龙',
+'乾龍' => '乾龙',
 '乾,健也' => '乾,健也',
 '乾,天也' => '乾,天也',
-'爭著' => '争着',
-'爭著書' => '争著书',
-'爭著作' => '争著作',
-'爭著名' => '争著名',
-'爭著錄' => '争著录',
-'爭著稱' => '争著称',
-'爭著者' => '争著者',
-'爭著述' => '争著述',
 '五箇山' => '五箇山',
-'亮著' => '亮着',
-'亮著书' => '亮著书',
-'亮著書' => '亮著书',
-'亮著作' => '亮著作',
-'亮著名' => '亮著名',
-'亮著錄' => '亮著录',
-'亮著录' => '亮著录',
-'亮著称' => '亮著称',
-'亮著稱' => '亮著称',
-'亮著者' => '亮著者',
-'亮著述' => '亮著述',
-'仗著' => '仗着',
-'仗著书' => '仗著书',
-'仗著書' => '仗著书',
-'仗著作' => '仗著作',
-'仗著名' => '仗著名',
-'仗著录' => '仗著录',
-'仗著錄' => '仗著录',
-'仗著稱' => '仗著称',
-'仗著称' => '仗著称',
-'仗著者' => '仗著者',
-'仗著述' => '仗著述',
-'代表著' => '代表着',
-'代表著書' => '代表著书',
-'代表著书' => '代表著书',
-'代表著作' => '代表著作',
-'代表著名' => '代表著名',
-'代表著錄' => '代表著录',
-'代表著录' => '代表著录',
-'代表著称' => '代表著称',
-'代表著稱' => '代表著称',
-'代表著者' => '代表著者',
-'代表著述' => '代表著述',
+'仇讎' => '仇雠',
 '以微知著' => '以微知著',
+'以莛叩鍾' => '以莛叩钟',
 '仰屋著書' => '仰屋著书',
 '彷彿' => '仿佛',
 '夥計' => '伙计',
-'傳著' => '传着',
-'傳著書' => '传著书',
-'傳著作' => '传著作',
-'傳著名' => '传著名',
-'傳著錄' => '传著录',
-'傳著稱' => '传著称',
-'傳著者' => '传著者',
-'傳著述' => '传著述',
-'伴著' => '伴着',
-'伴著书' => '伴著书',
-'伴著書' => '伴著书',
-'伴著作' => '伴著作',
-'伴著名' => '伴著名',
-'伴著录' => '伴著录',
-'伴著錄' => '伴著录',
-'伴著稱' => '伴著称',
-'伴著称' => '伴著称',
-'伴著者' => '伴著者',
-'伴著述' => '伴著述',
-'低著' => '低着',
-'低著書' => '低著书',
-'低著书' => '低著书',
-'低著作' => '低著作',
-'低著名' => '低著名',
-'低著录' => '低著录',
-'低著錄' => '低著录',
-'低著稱' => '低著称',
-'低著称' => '低著称',
-'低著者' => '低著者',
-'低著述' => '低著述',
-'住著' => '住着',
-'住著書' => '住著书',
-'住著书' => '住著书',
-'住著作' => '住著作',
-'住著名' => '住著名',
-'住著錄' => '住著录',
-'住著录' => '住著录',
-'住著称' => '住著称',
-'住著稱' => '住著称',
-'住著者' => '住著者',
-'住著述' => '住著述',
 '佛頭著糞' => '佛头著粪',
-'侏儸紀' => '侏罗纪',
-'側著' => '侧着',
-'側著書' => '侧著书',
-'側著作' => '侧著作',
-'側著名' => '侧著名',
-'側著錄' => '侧著录',
-'側著稱' => '侧著称',
-'側著者' => '侧著者',
-'側著述' => '侧著述',
-'保護著' => '保护着',
-'保障著' => '保障着',
-'保障著书' => '保障著书',
-'保障著書' => '保障著书',
-'保障著作' => '保障著作',
-'保障著名' => '保障著名',
-'保障著錄' => '保障著录',
-'保障著录' => '保障著录',
-'保障著稱' => '保障著称',
-'保障著称' => '保障著称',
-'保障著者' => '保障著者',
-'保障著述' => '保障著述',
-'信著' => '信着',
-'信著书' => '信著书',
-'信著書' => '信著书',
-'信著作' => '信著作',
-'信著名' => '信著名',
-'信著录' => '信著录',
-'信著錄' => '信著录',
-'信著称' => '信著称',
-'信著稱' => '信著称',
-'信著者' => '信著者',
-'信著述' => '信著述',
-'修鍊' => '修炼',
+'偵蒐' => '侦搜',
 '候覆' => '候复',
-'候著' => '候着',
-'候著書' => '候著书',
-'候著书' => '候著书',
-'候著作' => '候著作',
-'候著名' => '候著名',
-'候著录' => '候著录',
-'候著錄' => '候著录',
-'候著稱' => '候著称',
-'候著称' => '候著称',
-'候著者' => '候著者',
-'候著述' => '候著述',
 '藉助' => '借助',
 '藉口' => '借口',
 '藉手' => '借手',
@@ -13551,1082 +13382,183 @@ $zh2Hans = array(
 '藉機' => '借机',
 '藉此' => '借此',
 '藉由' => '借由',
-'借著' => '借着',
-'藉着' => '借着',
-'藉著' => '借着',
 '藉端' => '借端',
-'借著書' => '借著书',
-'借著书' => '借著书',
-'借著作' => '借著作',
-'借著名' => '借著名',
-'借著录' => '借著录',
-'借著錄' => '借著录',
-'借著称' => '借著称',
-'借著稱' => '借著称',
-'借著者' => '借著者',
-'借著述' => '借著述',
 '藉詞' => '借词',
-'做著' => '做着',
-'做著書' => '做著书',
-'做著书' => '做著书',
-'做著作' => '做著作',
-'做著名' => '做著名',
-'做著錄' => '做著录',
-'做著录' => '做著录',
-'做著稱' => '做著称',
-'做著称' => '做著称',
-'做著者' => '做著者',
-'做著述' => '做著述',
-'偷著' => '偷着',
-'偷著書' => '偷著书',
-'偷著书' => '偷著书',
-'偷著作' => '偷著作',
-'偷著名' => '偷著名',
-'偷著錄' => '偷著录',
-'偷著录' => '偷著录',
-'偷著稱' => '偷著称',
-'偷著称' => '偷著称',
-'偷著者' => '偷著者',
-'偷著述' => '偷著述',
-'傢俬' => '傢俬',
-'僧伽吒' => '僧伽吒',
-'光著' => '光着',
-'光著書' => '光著书',
-'光著书' => '光著书',
-'光著作' => '光著作',
-'光著名' => '光著名',
-'光著錄' => '光著录',
-'光著录' => '光著录',
-'光著稱' => '光著称',
-'光著称' => '光著称',
-'光著者' => '光著者',
-'光著述' => '光著述',
-'關著' => '关着',
-'關著書' => '关著书',
-'關著作' => '关著作',
-'關著名' => '关著名',
-'關著錄' => '关著录',
-'關著稱' => '关著称',
-'關著者' => '关著者',
-'關著述' => '关著述',
-'冀著' => '冀着',
-'冀著書' => '冀著书',
-'冀著书' => '冀著书',
-'冀著作' => '冀著作',
-'冀著名' => '冀著名',
-'冀著錄' => '冀著录',
-'冀著录' => '冀著录',
-'冀著稱' => '冀著称',
-'冀著称' => '冀著称',
-'冀著者' => '冀著者',
-'冀著述' => '冀著述',
-'冒著' => '冒着',
-'冒著书' => '冒著书',
-'冒著書' => '冒著书',
-'冒著作' => '冒著作',
-'冒著名' => '冒著名',
-'冒著录' => '冒著录',
-'冒著錄' => '冒著录',
-'冒著稱' => '冒著称',
-'冒著称' => '冒著称',
-'冒著者' => '冒著者',
-'冒著述' => '冒著述',
-'寫著' => '写着',
-'寫著書' => '写著书',
-'寫著作' => '写著作',
-'寫著名' => '写著名',
-'寫著錄' => '写著录',
-'寫著稱' => '写著称',
-'寫著者' => '写著者',
-'寫著述' => '写著述',
-'涼著' => '凉着',
-'涼著書' => '凉著书',
-'涼著作' => '凉著作',
-'涼著名' => '凉著名',
-'涼著錄' => '凉著录',
-'涼著稱' => '凉著称',
-'涼著者' => '凉著者',
-'涼著述' => '凉著述',
+'先名後姓' => '先名后姓',
+'六么' => '六幺',
+'蘭質薰心' => '兰质薰心',
+'內聯陞' => '内联升',
 '憑藉' => '凭借',
-'制著' => '制着',
-'制著书' => '制著书',
-'制著書' => '制著书',
-'制著作' => '制著作',
-'制著名' => '制著名',
-'制著錄' => '制著录',
-'制著录' => '制著录',
-'制著称' => '制著称',
-'制著稱' => '制著称',
-'制著者' => '制著者',
-'制著述' => '制著述',
-'刻著' => '刻着',
-'刻著書' => '刻著书',
-'刻著书' => '刻著书',
-'刻著作' => '刻著作',
-'刻著名' => '刻著名',
-'刻著录' => '刻著录',
-'刻著錄' => '刻著录',
-'刻著稱' => '刻著称',
-'刻著称' => '刻著称',
-'刻著者' => '刻著者',
-'刻著述' => '刻著述',
-'辦著' => '办着',
-'辦著書' => '办著书',
-'辦著作' => '办著作',
-'辦著名' => '办著名',
-'辦著錄' => '办著录',
-'辦著稱' => '办著称',
-'辦著者' => '办著者',
-'辦著述' => '办著述',
-'動著' => '动着',
-'動著書' => '动著书',
-'動著作' => '动著作',
-'動著名' => '动著名',
-'動著錄' => '动著录',
-'動著稱' => '动著称',
-'動著者' => '动著者',
-'動著述' => '动著述',
-'努力著' => '努力着',
-'努力著書' => '努力著书',
-'努力著书' => '努力著书',
-'努力著作' => '努力著作',
-'努力著名' => '努力著名',
-'努力著錄' => '努力著录',
-'努力著录' => '努力著录',
-'努力著称' => '努力著称',
-'努力著稱' => '努力著称',
-'努力著者' => '努力著者',
-'努力著述' => '努力著述',
-'努著' => '努着',
-'努著書' => '努著书',
-'努著书' => '努著书',
-'努著作' => '努著作',
-'努著名' => '努著名',
-'努著錄' => '努著录',
-'努著录' => '努著录',
-'努著称' => '努著称',
-'努著稱' => '努著称',
-'努著者' => '努著者',
-'努著述' => '努著述',
+'分鍾' => '分钟',
+'初昇' => '初升',
+'利欲薰心' => '利欲薰心',
+'刻鍾' => '刻钟',
+'剋了' => '剋了',
+'剋架' => '剋架',
+'剖釐' => '剖厘',
+'千鍾' => '千钟',
+'陞為' => '升为',
+'陞了' => '升了',
+'昇仙' => '升仙',
+'陞任' => '升任',
+'昇華' => '升华',
+'昇天' => '升天',
+'陞官' => '升官',
+'昇平' => '升平',
+'昇汞' => '升汞',
+'陞用' => '升用',
+'陞補' => '升补',
+'陞遷' => '升迁',
+'昇降' => '升降',
 '卓著' => '卓著',
-'印著' => '印着',
-'印著书' => '印著书',
-'印著書' => '印著书',
-'印著作' => '印著作',
-'印著名' => '印著名',
-'印著录' => '印著录',
-'印著錄' => '印著录',
-'印著称' => '印著称',
-'印著稱' => '印著称',
-'印著者' => '印著者',
-'印著述' => '印著述',
+'博和託' => '博和讬',
 '卷舌' => '卷舌',
-'壓著' => '压着',
-'壓著書' => '压著书',
-'壓著作' => '压著作',
-'壓著名' => '压著名',
-'壓著錄' => '压著录',
-'壓著稱' => '压著称',
-'壓著者' => '压著者',
-'壓著述' => '压著述',
+'歷陞' => '历升',
+'釐改' => '厘改',
+'釐整' => '厘整',
+'釐正' => '厘正',
+'釐毫' => '厘毫',
+'釐清' => '厘清',
+'釐訂' => '厘订',
+'釐革' => '厘革',
+'原子鍾' => '原子钟',
 '原著' => '原著',
-'去著' => '去着',
-'去著书' => '去著书',
-'去著書' => '去著书',
-'去著作' => '去著作',
-'去著名' => '去著名',
-'去著录' => '去著录',
-'去著錄' => '去著录',
-'去著稱' => '去著称',
-'去著称' => '去著称',
-'去著者' => '去著者',
-'去著述' => '去著述',
+'又陞' => '又升',
 '反反覆覆' => '反反复复',
 '反覆' => '反复',
-'受著' => '受着',
-'受著書' => '受著书',
-'受著书' => '受著书',
-'受著作' => '受著作',
-'受著名' => '受著名',
-'受著錄' => '受著录',
-'受著录' => '受著录',
-'受著稱' => '受著称',
-'受著称' => '受著称',
-'受著者' => '受著者',
-'受著述' => '受著述',
-'變著' => '变着',
-'變著書' => '变著书',
-'變著作' => '变著作',
-'變著名' => '变著名',
-'變著錄' => '变著录',
-'變著稱' => '变著称',
-'變著者' => '变著者',
-'變著述' => '变著述',
-'叫著' => '叫着',
-'叫著书' => '叫著书',
-'叫著書' => '叫著书',
-'叫著作' => '叫著作',
-'叫著名' => '叫著名',
-'叫著录' => '叫著录',
-'叫著錄' => '叫著录',
-'叫著称' => '叫著称',
-'叫著稱' => '叫著称',
-'叫著者' => '叫著者',
-'叫著述' => '叫著述',
+'古鍾' => '古钟',
 '可穿著' => '可穿著',
-'叱吒' => '叱吒',
-'吃不著' => '吃不着',
-'吃得著' => '吃得着',
-'吃著' => '吃着',
+'台鍾' => '台钟',
 '吃衣著飯' => '吃衣著饭',
 '合著' => '合著',
+'同陞和' => '同升和',
 '名著' => '名著',
-'向著' => '向着',
-'向著書' => '向著书',
-'向著书' => '向著书',
-'向著作' => '向著作',
-'向著名' => '向著名',
-'向著錄' => '向著录',
-'向著录' => '向著录',
-'向著称' => '向著称',
-'向著稱' => '向著称',
-'向著者' => '向著者',
-'向著述' => '向著述',
-'含著' => '含着',
-'含著書' => '含著书',
-'含著书' => '含著书',
-'含著作' => '含著作',
-'含著名' => '含著名',
-'含著錄' => '含著录',
-'含著录' => '含著录',
-'含著称' => '含著称',
-'含著稱' => '含著称',
-'含著者' => '含著者',
-'含著述' => '含著述',
-'聽不著' => '听不着',
-'聽得著' => '听得着',
-'聽著' => '听着',
-'聽著書' => '听著书',
-'聽著作' => '听著作',
-'聽著名' => '听著名',
-'聽著錄' => '听著录',
-'聽著稱' => '听著称',
-'聽著者' => '听著者',
-'聽著述' => '听著述',
-'吴其濬' => '吴其濬',
-'吳其濬' => '吴其濬',
-'吹著' => '吹着',
-'吹著書' => '吹著书',
-'吹著书' => '吹著书',
-'吹著作' => '吹著作',
-'吹著名' => '吹著名',
-'吹著录' => '吹著录',
-'吹著錄' => '吹著录',
-'吹著稱' => '吹著称',
-'吹著称' => '吹著称',
-'吹著者' => '吹著者',
-'吹著述' => '吹著述',
+'吳克羣' => '吴克羣',
 '周易乾' => '周易乾',
-'味著' => '味着',
-'味著书' => '味著书',
-'味著書' => '味著书',
-'味著作' => '味著作',
-'味著名' => '味著名',
-'味著录' => '味著录',
-'味著錄' => '味著录',
-'味著称' => '味著称',
-'味著稱' => '味著称',
-'味著者' => '味著者',
-'味著述' => '味著述',
-'呼幺喝六' => '呼幺喝六',
-'響著' => '响着',
-'響著書' => '响著书',
-'響著作' => '响著作',
-'響著名' => '响著名',
-'響著錄' => '响著录',
-'響著稱' => '响著称',
-'響著者' => '响著者',
-'響著述' => '响著述',
-'哪吒' => '哪吒',
-'哭著' => '哭着',
-'哭著書' => '哭著书',
-'哭著书' => '哭著书',
-'哭著作' => '哭著作',
-'哭著名' => '哭著名',
-'哭著錄' => '哭著录',
-'哭著录' => '哭著录',
-'哭著稱' => '哭著称',
-'哭著称' => '哭著称',
-'哭著者' => '哭著者',
-'哭著述' => '哭著述',
-'唱著' => '唱着',
-'唱著书' => '唱著书',
-'唱著書' => '唱著书',
-'唱著作' => '唱著作',
-'唱著名' => '唱著名',
-'唱著录' => '唱著录',
-'唱著錄' => '唱著录',
-'唱著称' => '唱著称',
-'唱著稱' => '唱著称',
-'唱著者' => '唱著者',
-'唱著述' => '唱著述',
-'喝著' => '喝着',
-'喝著书' => '喝著书',
-'喝著書' => '喝著书',
-'喝著作' => '喝著作',
-'喝著名' => '喝著名',
-'喝著录' => '喝著录',
-'喝著錄' => '喝著录',
-'喝著稱' => '喝著称',
-'喝著称' => '喝著称',
-'喝著者' => '喝著者',
-'喝著述' => '喝著述',
-'嗅不著' => '嗅不着',
-'嗅得著' => '嗅得着',
-'嗅著' => '嗅着',
-'嚷著' => '嚷着',
-'嚷著書' => '嚷著书',
-'嚷著书' => '嚷著书',
-'嚷著作' => '嚷著作',
-'嚷著名' => '嚷著名',
-'嚷著錄' => '嚷著录',
-'嚷著录' => '嚷著录',
-'嚷著称' => '嚷著称',
-'嚷著稱' => '嚷著称',
-'嚷著者' => '嚷著者',
-'嚷著述' => '嚷著述',
+'諠譁' => '喧哗',
 '回覆' => '回复',
-'因著' => '因着',
-'因著〈' => '因著〈',
-'因著《' => '因著《',
-'因著書' => '因著书',
-'因著书' => '因著书',
-'因著作' => '因著作',
-'因著名' => '因著名',
-'因著錄' => '因著录',
-'因著录' => '因著录',
-'因著稱' => '因著称',
-'因著称' => '因著称',
-'因著者' => '因著者',
-'因著述' => '因著述',
-'困著' => '困着',
-'困著書' => '困著书',
-'困著书' => '困著书',
-'困著作' => '困著作',
-'困著名' => '困著名',
-'困著錄' => '困著录',
-'困著录' => '困著录',
-'困著称' => '困著称',
-'困著稱' => '困著称',
-'困著者' => '困著者',
-'困著述' => '困著述',
-'圍著' => '围着',
-'圍著書' => '围著书',
-'圍著作' => '围著作',
-'圍著名' => '围著名',
-'圍著錄' => '围著录',
-'圍著稱' => '围著称',
-'圍著者' => '围著者',
-'圍著述' => '围著述',
 '土著' => '土著',
-'在著' => '在着',
-'在著書' => '在著书',
-'在著书' => '在著书',
-'在著作' => '在著作',
-'在著名' => '在著名',
-'在著錄' => '在著录',
-'在著录' => '在著录',
-'在著稱' => '在著称',
-'在著称' => '在著称',
-'在著者' => '在著者',
-'在著述' => '在著述',
-'坐著' => '坐着',
-'坐著书' => '坐著书',
-'坐著書' => '坐著书',
-'坐著作' => '坐著作',
-'坐著名' => '坐著名',
-'坐著录' => '坐著录',
-'坐著錄' => '坐著录',
-'坐著称' => '坐著称',
-'坐著稱' => '坐著称',
-'坐著者' => '坐著者',
-'坐著述' => '坐著述',
 '坤乾' => '坤乾',
-'備著' => '备着',
-'備著書' => '备著书',
-'備著作' => '备著作',
-'備著名' => '备著名',
-'備著錄' => '备著录',
-'備著稱' => '备著称',
-'備著者' => '备著者',
-'備著述' => '备著述',
+'塔鍾' => '塔钟',
+'墨瀋' => '墨渖',
+'壁鍾' => '壁钟',
 '覆查' => '复查',
 '覆核' => '复核',
-'天道为乾' => '天道为乾',
+'覆检' => '复检',
+'復甦' => '复苏',
+'多鍾' => '多钟',
+'大麴' => '大曲',
+'大鍾' => '大钟',
 '天道為乾' => '天道为乾',
-'太閤' => '太阁',
-'夾著' => '夹着',
-'夾著書' => '夹著书',
-'夾著作' => '夹著作',
-'夾著名' => '夹著名',
-'夾著錄' => '夹著录',
-'夾著稱' => '夹著称',
-'夾著者' => '夹著者',
-'夾著述' => '夹著述',
+'天道为乾' => '天道为乾',
 '奧區' => '奧区',
-'姓幺' => '姓幺',
+'如瀋' => '如渖',
+'姓么' => '姓幺',
+'子餘' => '子馀',
 '字乾生' => '字乾生',
-'存摺' => '存摺',
-'孤著' => '孤着',
-'孤著书' => '孤著书',
-'孤著書' => '孤著书',
-'孤著作' => '孤著作',
-'孤著名' => '孤著名',
-'孤著錄' => '孤著录',
-'孤著录' => '孤著录',
-'孤著称' => '孤著称',
-'孤著稱' => '孤著称',
-'孤著者' => '孤著者',
-'孤著述' => '孤著述',
-'學著' => '学着',
-'學著書' => '学著书',
-'學著作' => '学著作',
-'學著名' => '学著名',
-'學著錄' => '学著录',
-'學著稱' => '学著称',
-'學著者' => '学著者',
-'學著述' => '学著述',
-'守著' => '守着',
-'守著書' => '守著书',
-'守著书' => '守著书',
-'守著作' => '守著作',
-'守著名' => '守著名',
-'守著录' => '守著录',
-'守著錄' => '守著录',
-'守著称' => '守著称',
-'守著稱' => '守著称',
-'守著者' => '守著者',
-'守著述' => '守著述',
-'定著' => '定着',
-'定著書' => '定著书',
-'定著书' => '定著书',
-'定著作' => '定著作',
-'定著名' => '定著名',
-'定著錄' => '定著录',
-'定著录' => '定著录',
-'定著称' => '定著称',
-'定著稱' => '定著称',
-'定著者' => '定著者',
-'定著述' => '定著述',
-'對著' => '对着',
-'對著書' => '对著书',
-'對著作' => '对著作',
-'對著名' => '对著名',
-'對著錄' => '对著录',
-'對著稱' => '对著称',
-'對著者' => '对著者',
-'對著述' => '对著述',
-'尋著' => '寻着',
-'尋著書' => '寻著书',
-'尋著作' => '寻著作',
-'尋著名' => '寻著名',
-'尋著錄' => '寻著录',
-'尋著稱' => '寻著称',
-'尋著者' => '寻著者',
-'尋著述' => '寻著述',
+'孫乾' => '孙乾',
+'孙乾' => '孙乾',
+'宋鍾國' => '宋钟国',
+'宏碁' => '宏碁',
+'官陞' => '官升',
 '將軍抽俥' => '将军抽俥',
 '將軍抽車' => '将军抽車',
+'爾冬陞' => '尔冬升',
 '尼乾陀' => '尼乾陀',
-'展著' => '展着',
-'展著書' => '展著书',
-'展著书' => '展著书',
-'展著作' => '展著作',
-'展著名' => '展著名',
-'展著錄' => '展著录',
-'展著录' => '展著录',
-'展著稱' => '展著称',
-'展著称' => '展著称',
-'展著者' => '展著者',
-'展著述' => '展著述',
-'峯岸南' => '峯岸南',
+'跼促' => '局促',
+'跼限' => '局限',
+'山崩鍾應' => '山崩钟应',
+'崔秀鍾' => '崔秀钟',
 '巨著' => '巨著',
-'帶著' => '带着',
-'帶著書' => '带著书',
-'帶著作' => '带著作',
-'帶著名' => '带著名',
-'帶著錄' => '带著录',
-'帶著稱' => '带著称',
-'帶著者' => '带著者',
-'帶著述' => '带著述',
-'幫著' => '帮着',
-'幫著書' => '帮著书',
-'幫著作' => '帮著作',
-'幫著名' => '帮著名',
-'幫著錄' => '帮著录',
-'幫著稱' => '帮著称',
-'幫著者' => '帮著者',
-'幫著述' => '帮著述',
 '乾乾淨淨' => '干干净净',
 '乾乾脆脆' => '干干脆脆',
 '乾泉水' => '干泉水',
-'å¹¹è\91\97' => 'å¹²ç\9d\80',
+'å¹´é\99\9e' => 'å¹´å\8d\87',
 '么二三' => '幺二三',
-'幺二三' => '幺二三',
 '么元' => '幺元',
-'幺元' => '幺元',
-'幺鳳' => '幺凤',
 '么鳳' => '幺凤',
+'么半' => '幺半',
 '么半群' => '幺半群',
-'幺半群' => '幺半群',
-'幺廝' => '幺厮',
+'么廝' => '幺厮',
 '幺厮' => '幺厮',
-'幺叔' => '幺叔',
 '么叔' => '幺叔',
 '么媽' => '幺妈',
-'幺媽' => '幺妈',
 '么妹' => '幺妹',
-'幺妹' => '幺妹',
 '么姓' => '幺姓',
-'幺姓' => '幺姓',
 '么姨' => '幺姨',
-'幺姨' => '幺姨',
 '么娘' => '幺娘',
-'么孃' => '幺娘',
-'幺娘' => '幺娘',
 '幺孃' => '幺娘',
-'幺小' => '幺小',
+'么孃' => '幺娘',
 '么小' => '幺小',
-'幺氏' => '幺氏',
+'么弟' => '幺弟',
 '么氏' => '幺氏',
 '么爸' => '幺爸',
-'幺爸' => '幺爸',
-'幺爹' => '幺爹',
 '么爹' => '幺爹',
 '么篇' => '幺篇',
-'幺篇' => '幺篇',
 '么舅' => '幺舅',
-'幺舅' => '幺舅',
 '么蛾子' => '幺蛾子',
-'幺蛾子' => '幺蛾子',
 '么謙' => '幺谦',
-'幺謙' => '幺谦',
-'幺麽' => '幺麽',
+'么麽' => '幺麽',
 '么麼' => '幺麽',
-'幺麽小丑' => '幺麽小丑',
-'么麼小丑' => '幺麽小丑',
-'庇護著' => '庇护着',
-'應著' => '应着',
-'應著書' => '应著书',
-'應著作' => '应著作',
-'應著名' => '应著名',
-'應著錄' => '应著录',
-'應著稱' => '应著称',
-'應著者' => '应著者',
-'應著述' => '应著述',
+'么麽小丑' => '幺麽小丑',
+'慶餘' => '庆馀',
+'座鍾' => '座钟',
 '康乾' => '康乾',
-'康著' => '康着',
-'康著书' => '康著书',
-'康著書' => '康著书',
-'康著作' => '康著作',
-'康著名' => '康著名',
-'康著录' => '康著录',
-'康著錄' => '康著录',
-'康著称' => '康著称',
-'康著稱' => '康著称',
-'康著者' => '康著者',
-'康著述' => '康著述',
-'開著' => '开着',
-'開著書' => '开著书',
-'開著作' => '开著作',
-'開著名' => '开著名',
-'開著錄' => '开著录',
-'開著稱' => '开著称',
-'開著者' => '开著者',
-'開著述' => '开著述',
 '張法乾' => '张法乾',
 '张法乾' => '张法乾',
-'當著' => '当着',
-'當著書' => '当著书',
-'當著作' => '当著作',
-'當著名' => '当著名',
-'當著錄' => '当著录',
-'當著稱' => '当著称',
-'當著者' => '当著者',
-'當著述' => '当著述',
+'張鍾英' => '张钟英',
 '彰明較著' => '彰明较著',
 '待覆' => '待复',
-'待著' => '待着',
-'待著书' => '待著书',
-'待著書' => '待著书',
-'待著作' => '待著作',
-'待著名' => '待著名',
-'待著录' => '待著录',
-'待著錄' => '待著录',
-'待著稱' => '待著称',
-'待著称' => '待著称',
-'待著者' => '待著者',
-'待著述' => '待著述',
 '後姓' => '後姓',
-'得著' => '得着',
-'得著書' => '得著书',
-'得著书' => '得著书',
-'得著作' => '得著作',
-'得著名' => '得著名',
-'得著錄' => '得著录',
-'得著录' => '得著录',
-'得著稱' => '得著称',
-'得著称' => '得著称',
-'得著者' => '得著者',
-'得著述' => '得著述',
-'循著' => '循着',
-'循著书' => '循著书',
-'循著書' => '循著书',
-'循著作' => '循著作',
-'循著名' => '循著名',
-'循著录' => '循著录',
-'循著錄' => '循著录',
-'循著称' => '循著称',
-'循著稱' => '循著称',
-'循著者' => '循著者',
-'循著述' => '循著述',
-'心著' => '心着',
-'心著书' => '心著书',
-'心著書' => '心著书',
-'心著作' => '心著作',
-'心著名' => '心著名',
-'心著录' => '心著录',
-'心著錄' => '心著录',
-'心著稱' => '心著称',
-'心著称' => '心著称',
-'心著者' => '心著者',
-'心著述' => '心著述',
-'忍著' => '忍着',
-'忍著书' => '忍著书',
-'忍著書' => '忍著书',
-'忍著作' => '忍著作',
-'忍著名' => '忍著名',
-'忍著录' => '忍著录',
-'忍著錄' => '忍著录',
-'忍著稱' => '忍著称',
-'忍著称' => '忍著称',
-'忍著者' => '忍著者',
-'忍著述' => '忍著述',
-'志著' => '志着',
-'志著書' => '志著书',
-'志著书' => '志著书',
-'志著作' => '志著作',
-'志著名' => '志著名',
-'志著錄' => '志著录',
-'志著录' => '志著录',
-'志著称' => '志著称',
-'志著稱' => '志著称',
-'志著者' => '志著者',
-'志著述' => '志著述',
-'忙著' => '忙着',
-'忙著书' => '忙著书',
-'忙著書' => '忙著书',
-'忙著作' => '忙著作',
-'忙著名' => '忙著名',
-'忙著录' => '忙著录',
-'忙著錄' => '忙著录',
-'忙著称' => '忙著称',
-'忙著稱' => '忙著称',
-'忙著者' => '忙著者',
-'忙著述' => '忙著述',
-'懷著' => '怀着',
-'懷著書' => '怀著书',
-'懷著作' => '怀著作',
-'懷著名' => '怀著名',
-'懷著錄' => '怀著录',
-'懷著稱' => '怀著称',
-'懷著者' => '怀著者',
-'懷著述' => '怀著述',
-'急著' => '急着',
-'急著书' => '急著书',
-'急著書' => '急著书',
-'急著作' => '急著作',
-'急著名' => '急著名',
-'急著录' => '急著录',
-'急著錄' => '急著录',
-'急著称' => '急著称',
-'急著稱' => '急著称',
-'急著者' => '急著者',
-'急著述' => '急著述',
-'性著' => '性着',
-'性著书' => '性著书',
-'性著書' => '性著书',
-'性著作' => '性著作',
-'性著名' => '性著名',
-'性著录' => '性著录',
-'性著錄' => '性著录',
-'性著称' => '性著称',
-'性著稱' => '性著称',
-'性著者' => '性著者',
-'性著述' => '性著述',
-'戀著' => '恋着',
-'戀著書' => '恋著书',
-'戀著作' => '恋著作',
-'戀著名' => '恋著名',
-'戀著錄' => '恋著录',
-'戀著稱' => '恋著称',
-'戀著者' => '恋著者',
-'戀著述' => '恋著述',
+'慫慂' => '怂恿',
 '恩威並著' => '恩威并著',
-'悠著' => '悠着',
-'悠著書' => '悠著书',
-'悠著书' => '悠著书',
-'悠著作' => '悠著作',
-'悠著名' => '悠著名',
-'悠著錄' => '悠著录',
-'悠著录' => '悠著录',
-'悠著称' => '悠著称',
-'悠著稱' => '悠著称',
-'悠著者' => '悠著者',
-'悠著述' => '悠著述',
-'慣著' => '惯着',
-'慣著書' => '惯著书',
-'慣著作' => '惯著作',
-'慣著名' => '惯著名',
-'慣著錄' => '惯著录',
-'慣著稱' => '惯著称',
-'慣著者' => '惯著者',
-'慣著述' => '惯著述',
-'想著' => '想着',
-'想著書' => '想著书',
-'想著书' => '想著书',
-'想著作' => '想著作',
-'想著名' => '想著名',
-'想著錄' => '想著录',
-'想著录' => '想著录',
-'想著称' => '想著称',
-'想著稱' => '想著称',
-'想著者' => '想著者',
-'想著述' => '想著述',
-'戰著' => '战着',
-'戰著書' => '战著书',
-'戰著作' => '战著作',
-'戰著名' => '战著名',
-'戰著錄' => '战著录',
-'戰著稱' => '战著称',
-'戰著者' => '战著者',
-'戰著述' => '战著述',
-'戴著' => '戴着',
-'戴著書' => '戴著书',
-'戴著书' => '戴著书',
-'戴著作' => '戴著作',
-'戴著名' => '戴著名',
-'戴著錄' => '戴著录',
-'戴著录' => '戴著录',
-'戴著稱' => '戴著称',
-'戴著称' => '戴著称',
-'戴著者' => '戴著者',
-'戴著述' => '戴著述',
-'扎著' => '扎着',
-'扎著書' => '扎著书',
-'扎著书' => '扎著书',
-'扎著作' => '扎著作',
-'扎著名' => '扎著名',
-'扎著錄' => '扎著录',
-'扎著录' => '扎著录',
-'扎著称' => '扎著称',
-'扎著稱' => '扎著称',
-'扎著者' => '扎著者',
-'扎著述' => '扎著述',
-'打著' => '打着',
-'打著書' => '打著书',
-'打著书' => '打著书',
-'打著作' => '打著作',
-'打著名' => '打著名',
-'打著錄' => '打著录',
-'打著录' => '打著录',
-'打著称' => '打著称',
-'打著稱' => '打著称',
-'打著者' => '打著者',
-'打著述' => '打著述',
-'扛著' => '扛着',
-'扛著书' => '扛著书',
-'扛著書' => '扛著书',
-'扛著作' => '扛著作',
-'扛著名' => '扛著名',
-'扛著录' => '扛著录',
-'扛著錄' => '扛著录',
-'扛著称' => '扛著称',
-'扛著稱' => '扛著称',
-'扛著者' => '扛著者',
-'扛著述' => '扛著述',
+'噁心' => '恶心',
+'懸鍾' => '悬钟',
+'情蒐' => '情搜',
+'情鍾' => '情钟',
+'惏悷' => '惏悷',
+'惏慄' => '惏慄',
+'慘澹' => '惨淡',
+'成效顯著' => '成效显著',
+'成績顯著' => '成绩显著',
+'所鍾' => '所钟',
+'手鍊' => '手链',
+'扞格' => '扞格',
 '執著' => '执著',
 '批覆' => '批复',
-'找不著' => '找不着',
-'找得著' => '找得着',
-'抓著' => '抓着',
-'抓著作' => '抓著作',
-'抓著名' => '抓著名',
-'抓著录' => '抓著录',
-'抓著錄' => '抓著录',
-'抓著称' => '抓著称',
-'抓著稱' => '抓著称',
-'抓著者' => '抓著者',
-'抓著述' => '抓著述',
-'護著' => '护着',
-'護著書' => '护著书',
-'護著作' => '护著作',
-'護著名' => '护著名',
-'護著錄' => '护著录',
-'護著稱' => '护著称',
-'護著者' => '护著者',
-'護著述' => '护著述',
-'披著' => '披着',
-'披著书' => '披著书',
-'披著書' => '披著书',
-'披著作' => '披著作',
-'披著名' => '披著名',
-'披著录' => '披著录',
-'披著錄' => '披著录',
-'披著稱' => '披著称',
-'披著称' => '披著称',
-'披著者' => '披著者',
-'披著述' => '披著述',
-'抬著' => '抬着',
-'抬著作' => '抬著作',
-'抬著名' => '抬著名',
-'抬著录' => '抬著录',
-'抬著錄' => '抬著录',
-'抬著稱' => '抬著称',
-'抬著称' => '抬著称',
-'抬著者' => '抬著者',
-'抬著述' => '抬著述',
-'抱著' => '抱着',
-'抱著作' => '抱著作',
-'抱著名' => '抱著名',
-'抱著录' => '抱著录',
-'抱著錄' => '抱著录',
-'抱著稱' => '抱著称',
-'抱著称' => '抱著称',
-'抱著者' => '抱著者',
-'抱著述' => '抱著述',
-'拉著' => '拉着',
-'拉著书' => '拉著书',
-'拉著書' => '拉著书',
-'拉著作' => '拉著作',
-'拉著名' => '拉著名',
-'拉著录' => '拉著录',
-'拉著錄' => '拉著录',
-'拉著称' => '拉著称',
-'拉著稱' => '拉著称',
-'拉著者' => '拉著者',
-'拉著述' => '拉著述',
 '拉鍊' => '拉链',
-'拎著' => '拎着',
-'拎著作' => '拎著作',
-'拎著名' => '拎著名',
-'拎著錄' => '拎著录',
-'拎著录' => '拎著录',
-'拎著称' => '拎著称',
-'拎著稱' => '拎著称',
-'拎著者' => '拎著者',
-'拎著述' => '拎著述',
-'拖著' => '拖着',
-'拖著作' => '拖著作',
-'拖著名' => '拖著名',
-'拖著錄' => '拖著录',
-'拖著录' => '拖著录',
-'拖著稱' => '拖著称',
-'拖著称' => '拖著称',
-'拖著者' => '拖著者',
-'拖著述' => '拖著述',
 '拙著' => '拙著',
 '拚命' => '拚命',
 '拚搏' => '拚搏',
 '拚死' => '拚死',
-'拼著' => '拼着',
-'拼著作' => '拼著作',
-'拼著名' => '拼著名',
-'拼著录' => '拼著录',
-'拼著錄' => '拼著录',
-'拼著稱' => '拼著称',
-'拼著称' => '拼著称',
-'拼著者' => '拼著者',
-'拼著述' => '拼著述',
-'拿著' => '拿着',
-'拿著作' => '拿著作',
-'拿著名' => '拿著名',
-'拿著录' => '拿著录',
-'拿著錄' => '拿著录',
-'拿著称' => '拿著称',
-'拿著稱' => '拿著称',
-'拿著者' => '拿著者',
-'拿著述' => '拿著述',
-'持著' => '持着',
-'持著作' => '持著作',
-'持著名' => '持著名',
-'持著錄' => '持著录',
-'持著录' => '持著录',
-'持著称' => '持著称',
-'持著稱' => '持著称',
-'持著者' => '持著者',
-'持著述' => '持著述',
-'挑著' => '挑着',
-'挑著作' => '挑著作',
-'挑著名' => '挑著名',
-'挑著錄' => '挑著录',
-'挑著录' => '挑著录',
-'挑著称' => '挑著称',
-'挑著稱' => '挑著称',
-'挑著者' => '挑著者',
-'挑著述' => '挑著述',
-'擋著' => '挡着',
-'擋著作' => '挡著作',
-'擋著名' => '挡著名',
-'擋著錄' => '挡著录',
-'擋著稱' => '挡著称',
-'擋著者' => '挡著者',
-'擋著述' => '挡著述',
-'掙著' => '挣着',
-'掙著書' => '挣著书',
-'掙著作' => '挣著作',
-'掙著名' => '挣著名',
-'掙著錄' => '挣著录',
-'掙著稱' => '挣著称',
-'掙著者' => '挣著者',
-'掙著述' => '挣著述',
-'揮著' => '挥着',
-'揮著作' => '挥著作',
-'揮著名' => '挥著名',
-'揮著錄' => '挥著录',
-'揮著稱' => '挥著称',
-'揮著者' => '挥著者',
-'揮著述' => '挥著述',
-'挨著' => '挨着',
-'挨著作' => '挨著作',
-'挨著名' => '挨著名',
-'挨著錄' => '挨著录',
-'挨著录' => '挨著录',
-'挨著稱' => '挨著称',
-'挨著称' => '挨著称',
-'挨著者' => '挨著者',
-'挨著述' => '挨著述',
-'捆著' => '捆着',
-'捆著作' => '捆著作',
-'捆著名' => '捆著名',
-'捆著錄' => '捆著录',
-'捆著录' => '捆著录',
-'捆著称' => '捆著称',
-'捆著稱' => '捆著称',
-'捆著者' => '捆著者',
-'捆著述' => '捆著述',
-'據著' => '据着',
-'據著書' => '据著书',
-'據著作' => '据著作',
-'據著名' => '据著名',
-'據著錄' => '据著录',
-'據著稱' => '据著称',
-'據著者' => '据著者',
-'據著述' => '据著述',
-'掖著' => '掖着',
-'掖著作' => '掖著作',
-'掖著名' => '掖著名',
-'掖著錄' => '掖著录',
-'掖著录' => '掖著录',
-'掖著稱' => '掖著称',
-'掖著称' => '掖著称',
-'掖著者' => '掖著者',
-'掖著述' => '掖著述',
-'接著' => '接着',
-'接著作' => '接著作',
-'接著名' => '接著名',
-'接著錄' => '接著录',
-'接著录' => '接著录',
-'接著稱' => '接著称',
-'接著称' => '接著称',
-'接著者' => '接著者',
-'接著述' => '接著述',
-'揉著' => '揉着',
-'揉著书' => '揉著书',
-'揉著書' => '揉著书',
-'揉著作' => '揉著作',
-'揉著名' => '揉著名',
-'揉著录' => '揉著录',
-'揉著錄' => '揉著录',
-'揉著称' => '揉著称',
-'揉著稱' => '揉著称',
-'揉著者' => '揉著者',
-'揉著述' => '揉著述',
-'提著' => '提着',
-'提著作' => '提著作',
-'提著名' => '提著名',
-'提著錄' => '提著录',
-'提著录' => '提著录',
-'提著稱' => '提著称',
-'提著称' => '提著称',
-'提著者' => '提著者',
-'提著述' => '提著述',
-'摟著' => '搂着',
-'摟著作' => '搂著作',
-'摟著名' => '搂著名',
-'摟著錄' => '搂著录',
-'摟著稱' => '搂著称',
-'摟著者' => '搂著者',
-'摟著述' => '搂著述',
-'擺著' => '摆着',
-'擺著作' => '摆著作',
-'擺著名' => '摆著名',
-'擺著錄' => '摆著录',
-'擺著稱' => '摆著称',
-'擺著者' => '摆著者',
-'擺著述' => '摆著述',
+'拾瀋' => '拾渖',
+'拿破崙' => '拿破仑',
+'掛鍾' => '挂钟',
+'挨剋' => '挨剋',
+'掩耳盜鍾' => '掩耳盗钟',
+'提昇' => '提升',
+'蒐錄' => '搜录',
+'蒐索' => '搜索',
+'蒐羅' => '搜罗',
+'蒐藏' => '搜藏',
+'蒐證' => '搜证',
+'蒐購' => '搜购',
+'蒐輯' => '搜辑',
+'蒐采' => '搜采',
+'蒐採' => '搜采',
+'蒐集' => '搜集',
+'搥打' => '搥打',
+'搥胸頓足' => '搥胸顿足',
+'擺鍾' => '摆钟',
+'撞鍾' => '撞钟',
 '撰著' => '撰著',
-'撼著' => '撼着',
-'撼著書' => '撼著书',
-'撼著书' => '撼著书',
-'撼著作' => '撼著作',
-'撼著名' => '撼著名',
-'撼著錄' => '撼著录',
-'撼著录' => '撼著录',
-'撼著称' => '撼著称',
-'撼著稱' => '撼著称',
-'撼著者' => '撼著者',
-'撼著述' => '撼著述',
-'敞著' => '敞着',
-'敞著作' => '敞著作',
-'敞著名' => '敞著名',
-'敞著錄' => '敞著录',
-'敞著录' => '敞著录',
-'敞著稱' => '敞著称',
-'敞著称' => '敞著称',
-'敞著者' => '敞著者',
-'敞著述' => '敞著述',
-'數著' => '数着',
-'數著作' => '数著作',
-'數著名' => '数著名',
-'數著錄' => '数著录',
-'數著稱' => '数著称',
-'數著者' => '数著者',
-'數著述' => '数著述',
-'斗著' => '斗着',
-'斗著書' => '斗著书',
-'斗著书' => '斗著书',
-'斗著作' => '斗著作',
-'斗著名' => '斗著名',
-'斗著錄' => '斗著录',
-'斗著录' => '斗著录',
-'斗著称' => '斗著称',
-'斗著稱' => '斗著称',
-'斗著者' => '斗著者',
-'斗著述' => '斗著述',
-'斥著' => '斥着',
-'斥著書' => '斥著书',
-'斥著书' => '斥著书',
-'斥著作' => '斥著作',
-'斥著名' => '斥著名',
-'斥著錄' => '斥著录',
-'斥著录' => '斥著录',
-'斥著稱' => '斥著称',
-'斥著称' => '斥著称',
-'斥著者' => '斥著者',
-'斥著述' => '斥著述',
+'效果顯著' => '效果显著',
+'敲鍾' => '敲钟',
+'文徵明' => '文徵明',
 '新著' => '新著',
-'新著龍虎門' => '新著龙虎门',
 '於世成' => '於世成',
+'於之瑩' => '於之莹',
+'於之莹' => '於之莹',
 '於乎' => '於乎',
 '於乙于同' => '於乙于同',
 '於乙宇同' => '於乙宇同',
@@ -14643,838 +13575,147 @@ $zh2Hans = array(
 '於梨華' => '於梨华',
 '於梨华' => '於梨华',
 '於氏' => '於氏',
-'於潛縣' => '於潜县',
 '於潜县' => '於潜县',
+'於潛縣' => '於潜县',
 '於祥玉' => '於祥玉',
 '於菟' => '於菟',
 '於賢德' => '於贤德',
 '於除鞬' => '於除鞬',
-'旋乾转坤' => '旋乾转坤',
 '旋乾轉坤' => '旋乾转坤',
+'旋乾转坤' => '旋乾转坤',
+'時鍾' => '时钟',
 '曠若發矇' => '旷若发矇',
-'昂著' => '昂着',
-'昂著书' => '昂著书',
-'昂著書' => '昂著书',
-'昂著作' => '昂著作',
-'昂著名' => '昂著名',
-'昂著錄' => '昂著录',
-'昂著录' => '昂著录',
-'昂著稱' => '昂著称',
-'昂著称' => '昂著称',
-'昂著者' => '昂著者',
-'昂著述' => '昂著述',
+'崑崙' => '昆仑',
+'崑劇' => '昆剧',
+'崑山' => '昆山',
+'崑曲' => '昆曲',
+'崑腔' => '昆腔',
+'崑蘇' => '昆苏',
+'崑調' => '昆调',
 '易·乾' => '易·乾',
-'易經·乾' => '易经·乾',
 '易经·乾' => '易经·乾',
-'易經乾' => '易经乾',
+'易經·乾' => '易经·乾',
 '易经乾' => '易经乾',
-'映著' => '映着',
-'映著書' => '映著书',
-'映著书' => '映著书',
-'映著作' => '映著作',
-'映著名' => '映著名',
-'映著錄' => '映著录',
-'映著录' => '映著录',
-'映著稱' => '映著称',
-'映著称' => '映著称',
-'映著者' => '映著者',
-'映著述' => '映著述',
+'易經乾' => '易经乾',
 '昭著' => '昭著',
 '顯著' => '显著',
-'显著' => '显著',
-'晃著' => '晃着',
-'晃著作' => '晃著作',
-'晃著名' => '晃著名',
-'晃著錄' => '晃著录',
-'晃著录' => '晃著录',
-'晃著称' => '晃著称',
-'晃著稱' => '晃著称',
-'晃著者' => '晃著者',
-'晃著述' => '晃著述',
-'暗著' => '暗着',
-'暗著书' => '暗著书',
-'暗著書' => '暗著书',
-'暗著作' => '暗著作',
-'暗著名' => '暗著名',
-'暗著錄' => '暗著录',
-'暗著录' => '暗著录',
-'暗著称' => '暗著称',
-'暗著稱' => '暗著称',
-'暗著者' => '暗著者',
-'暗著述' => '暗著述',
-'有著' => '有着',
-'有著書' => '有著书',
-'有著书' => '有著书',
-'有著作' => '有著作',
-'有著名' => '有著名',
-'有著錄' => '有著录',
-'有著录' => '有著录',
-'有著称' => '有著称',
-'有著稱' => '有著称',
-'有著者' => '有著者',
-'有著述' => '有著述',
-'望著' => '望着',
-'望著作' => '望著作',
-'望著名' => '望著名',
-'望著录' => '望著录',
-'望著錄' => '望著录',
-'望著稱' => '望著称',
-'望著称' => '望著称',
-'望著者' => '望著者',
-'望著述' => '望著述',
+'顯著地' => '显著地',
+'顯著地位' => '显著地位',
+'顯著性' => '显著性',
+'顯著成績' => '显著成绩',
+'顯著效果' => '显著效果',
+'顯著特點' => '显著特点',
+'晉陞' => '晋升',
+'晚鍾' => '晚钟',
+'晨鍾' => '晨钟',
+'暗闇' => '暗闇',
+'麴黴' => '曲霉',
+'曾運乾' => '曾运乾',
+'曾运乾' => '曾运乾',
+'月陞' => '月升',
 '朝乾夕惕' => '朝乾夕惕',
-'朝著' => '朝着',
-'朝著作' => '朝著作',
-'朝著名' => '朝著名',
-'朝著录' => '朝著录',
-'朝著錄' => '朝著录',
-'朝著稱' => '朝著称',
-'朝著称' => '朝著称',
-'朝著者' => '朝著者',
-'朝著述' => '朝著述',
-'本著' => '本着',
-'本著书' => '本著书',
-'本著書' => '本著书',
-'本著作' => '本著作',
-'本著名' => '本著名',
-'本著录' => '本著录',
-'本著錄' => '本著录',
-'本著稱' => '本著称',
-'本著称' => '本著称',
-'本著者' => '本著者',
-'本著述' => '本著述',
+'朝鍾暮鼓' => '朝钟暮鼓',
+'朱有燉' => '朱有燉',
+'朱淛' => '朱淛',
 '朴於宇同' => '朴於宇同',
-'殺著' => '杀着',
-'殺著書' => '杀著书',
-'殺著作' => '杀著作',
-'殺著名' => '杀著名',
-'殺著錄' => '杀著录',
-'殺著稱' => '杀著称',
-'殺著者' => '杀著者',
-'殺著述' => '杀著述',
-'雜著' => '杂着',
-'雜著書' => '杂著书',
-'雜著作' => '杂著作',
-'雜著名' => '杂著名',
-'雜著錄' => '杂著录',
-'雜著稱' => '杂著称',
-'雜著者' => '杂著者',
-'雜著述' => '杂著述',
 '李乾德' => '李乾德',
 '李乾順' => '李乾顺',
 '李乾顺' => '李乾顺',
 '李澤鉅' => '李泽钜',
-'來著' => '来着',
-'來著書' => '来著书',
-'來著作' => '来著作',
-'來著名' => '来著名',
-'來著錄' => '来著录',
-'來著稱' => '来著称',
-'來著者' => '来著者',
-'來著述' => '来著述',
-'楊幺' => '杨幺',
-'枕著' => '枕着',
-'枕著作' => '枕著作',
-'枕著名' => '枕著名',
-'枕著錄' => '枕著录',
-'枕著录' => '枕著录',
-'枕著稱' => '枕著称',
-'枕著称' => '枕著称',
-'枕著者' => '枕著者',
-'枕著述' => '枕著述',
-'柳詒徵' => '柳诒徵',
+'李祕' => '李祕',
+'李譔' => '李譔',
+'李鍾原' => '李钟原',
+'林鍾' => '林钟',
 '柳诒徵' => '柳诒徵',
-'標志著' => '标志着',
-'標誌著' => '标志着',
-'夢著' => '梦着',
-'夢著書' => '梦著书',
-'夢著作' => '梦著作',
-'夢著名' => '梦著名',
-'夢著錄' => '梦著录',
-'夢著稱' => '梦著称',
-'夢著者' => '梦著者',
-'夢著述' => '梦著述',
-'梳著' => '梳着',
-'梳著作' => '梳著作',
-'梳著名' => '梳著名',
-'梳著錄' => '梳著录',
-'梳著录' => '梳著录',
-'梳著稱' => '梳著称',
-'梳著称' => '梳著称',
-'梳著者' => '梳著者',
-'梳著述' => '梳著述',
+'柳詒徵' => '柳诒徵',
+'校讎' => '校雠',
+'楈枒' => '楈枒',
 '樊於期' => '樊於期',
+'橡椀' => '橡椀',
+'此鍾' => '此钟',
+'殘瀋' => '残渖',
+'慇懃' => '殷勤',
+'慇勤' => '殷勤',
+'比較顯著' => '比较显著',
+'毫釐' => '毫厘',
 '氆氌' => '氆氌',
-'求著' => '求着',
-'求著书' => '求著书',
-'求著書' => '求著书',
-'求著作' => '求著作',
-'求著名' => '求著名',
-'求著录' => '求著录',
-'求著錄' => '求著录',
-'求著称' => '求著称',
-'求著稱' => '求著称',
-'求著者' => '求著者',
-'求著述' => '求著述',
 '沈沒' => '沉没',
-'æ²\89è\91\97' => 'æ²\89ç\9d\80',
+'æ²\88æ¾±' => 'æ²\89æ·\80',
 '沈積' => '沉积',
 '沈船' => '沉船',
-'沉著書' => '沉著书',
-'沉著书' => '沉著书',
-'沉著作' => '沉著作',
-'沉著名' => '沉著名',
-'沉著錄' => '沉著录',
-'沉著录' => '沉著录',
-'沉著称' => '沉著称',
-'沉著稱' => '沉著称',
-'沉著者' => '沉著者',
-'沉著述' => '沉著述',
+'沈重' => '沉重',
 '沈默' => '沉默',
-'沿著' => '沿着',
-'沿著书' => '沿著书',
-'沿著書' => '沿著书',
-'沿著作' => '沿著作',
-'沿著名' => '沿著名',
-'沿著录' => '沿著录',
-'沿著錄' => '沿著录',
-'沿著稱' => '沿著称',
-'沿著称' => '沿著称',
-'沿著者' => '沿著者',
-'沿著述' => '沿著述',
 '氾濫' => '泛滥',
 '洗鍊' => '洗练',
-'活著' => '活着',
-'活著书' => '活著书',
-'活著書' => '活著书',
-'活著作' => '活著作',
-'活著名' => '活著名',
-'活著录' => '活著录',
-'活著錄' => '活著录',
-'活著稱' => '活著称',
-'活著称' => '活著称',
-'活著者' => '活著者',
-'活著述' => '活著述',
-'流著' => '流着',
-'流著书' => '流著书',
-'流著書' => '流著书',
-'流著作' => '流著作',
-'流著名' => '流著名',
-'流著录' => '流著录',
-'流著錄' => '流著录',
-'流著稱' => '流著称',
-'流著称' => '流著称',
-'流著者' => '流著者',
-'流著述' => '流著述',
-'流露著' => '流露着',
-'浮著' => '浮着',
-'浮著书' => '浮著书',
-'浮著書' => '浮著书',
-'浮著作' => '浮著作',
-'浮著名' => '浮著名',
-'浮著录' => '浮著录',
-'浮著錄' => '浮著录',
-'浮著稱' => '浮著称',
-'浮著称' => '浮著称',
-'浮著者' => '浮著者',
-'浮著述' => '浮著述',
-'潤著' => '润着',
-'潤著書' => '润著书',
-'潤著作' => '润著作',
-'潤著名' => '润著名',
-'潤著錄' => '润著录',
-'潤著稱' => '润著称',
-'潤著者' => '润著者',
-'潤著述' => '润著述',
-'涵著' => '涵着',
-'涵著书' => '涵著书',
-'涵著書' => '涵著书',
-'涵著作' => '涵著作',
-'涵著名' => '涵著名',
-'涵著录' => '涵著录',
-'涵著錄' => '涵著录',
-'涵著稱' => '涵著称',
-'涵著称' => '涵著称',
-'涵著者' => '涵著者',
-'涵著述' => '涵著述',
-'渴著' => '渴着',
-'渴著书' => '渴著书',
-'渴著書' => '渴著书',
-'渴著作' => '渴著作',
-'渴著名' => '渴著名',
-'渴著录' => '渴著录',
-'渴著錄' => '渴著录',
-'渴著称' => '渴著称',
-'渴著稱' => '渴著称',
-'渴著者' => '渴著者',
-'渴著述' => '渴著述',
-'溢著' => '溢着',
-'溢著書' => '溢著书',
-'溢著书' => '溢著书',
-'溢著作' => '溢著作',
-'溢著名' => '溢著名',
-'溢著錄' => '溢著录',
-'溢著录' => '溢著录',
-'溢著称' => '溢著称',
-'溢著稱' => '溢著称',
-'溢著者' => '溢著者',
-'溢著述' => '溢著述',
-'演著' => '演着',
-'演著书' => '演著书',
-'演著書' => '演著书',
-'演著作' => '演著作',
-'演著名' => '演著名',
-'演著录' => '演著录',
-'演著錄' => '演著录',
-'演著稱' => '演著称',
-'演著称' => '演著称',
-'演著者' => '演著者',
-'演著述' => '演著述',
-'漫著' => '漫着',
-'漫著書' => '漫著书',
-'漫著书' => '漫著书',
-'漫著作' => '漫著作',
-'漫著名' => '漫著名',
-'漫著录' => '漫著录',
-'漫著錄' => '漫著录',
-'漫著称' => '漫著称',
-'漫著稱' => '漫著称',
-'漫著者' => '漫著者',
-'漫著述' => '漫著述',
-'點著' => '点着',
-'點著作' => '点著作',
-'點著名' => '点著名',
-'點著錄' => '点著录',
-'點著稱' => '点著称',
-'點著者' => '点著者',
-'點著述' => '点著述',
-'燒著' => '烧着',
-'燒著作' => '烧著作',
-'燒著名' => '烧著名',
-'燒著錄' => '烧著录',
-'燒著稱' => '烧著称',
-'燒著者' => '烧著者',
-'燒著述' => '烧著述',
-'照著' => '照着',
-'照著书' => '照著书',
-'照著書' => '照著书',
-'照著作' => '照著作',
-'照著名' => '照著名',
-'照著录' => '照著录',
-'照著錄' => '照著录',
-'照著称' => '照著称',
-'照著稱' => '照著称',
-'照著者' => '照著者',
-'照著述' => '照著述',
-'愛護著' => '爱护着',
-'愛著' => '爱着',
-'愛著書' => '爱著书',
-'愛著作' => '爱著作',
-'愛著名' => '爱著名',
-'愛著錄' => '爱著录',
-'愛著稱' => '爱著称',
-'愛著者' => '爱著者',
-'愛著述' => '爱著述',
-'牽著' => '牵着',
-'牽著書' => '牵著书',
-'牽著作' => '牵著作',
-'牽著名' => '牵著名',
-'牽著錄' => '牵著录',
-'牽著稱' => '牵著称',
-'牽著者' => '牵著者',
-'牽著述' => '牵著述',
-'犯不著' => '犯不着',
-'犯得著' => '犯得着',
-'獨著' => '独着',
-'獨著書' => '独著书',
-'獨著作' => '独著作',
-'獨著名' => '独著名',
-'獨著錄' => '独著录',
-'獨著稱' => '独著称',
-'獨著者' => '独著者',
-'獨著述' => '独著述',
-'猜著' => '猜着',
-'猜著書' => '猜着书',
-'猜著作' => '猜著作',
-'猜著名' => '猜著名',
-'猜著錄' => '猜著录',
-'猜著录' => '猜著录',
-'猜著称' => '猜著称',
-'猜著稱' => '猜著称',
-'猜著者' => '猜著者',
-'猜著述' => '猜著述',
+'洪鍾' => '洪钟',
+'瀋液' => '渖液',
+'點鍾' => '点钟',
+'薰習' => '熏习',
+'薰心' => '熏心',
+'薰沐' => '熏沐',
+'薰陶' => '熏陶',
+'薰香' => '熏香',
+'爨翫' => '爨翫',
+'獨鍾' => '独钟',
 '王道乾' => '王道乾',
-'玩著' => '玩着',
-'甜著' => '甜着',
-'甜著書' => '甜著书',
-'甜著书' => '甜著书',
-'甜著作' => '甜著作',
-'甜著名' => '甜著名',
-'甜著录' => '甜著录',
-'甜著錄' => '甜著录',
-'甜著稱' => '甜著称',
-'甜著称' => '甜著称',
-'甜著者' => '甜著者',
-'甜著述' => '甜著述',
-'用不著' => '用不着',
-'用得著' => '用得着',
-'用著' => '用着',
-'用著书' => '用著书',
-'用著書' => '用著书',
-'用著作' => '用著作',
-'用著名' => '用著名',
-'用著录' => '用著录',
-'用著錄' => '用著录',
-'用著称' => '用著称',
-'用著稱' => '用著称',
-'用著者' => '用著者',
-'用著述' => '用著述',
+'王餘魚' => '王馀鱼',
+'甚夥' => '甚夥',
+'生物鍾' => '生物钟',
+'電鍾' => '电钟',
+'男為乾' => '男为乾',
 '男为乾' => '男为乾',
 '男爲乾' => '男为乾',
-'男為乾' => '男为乾',
-'男性為乾' => '男性为乾',
 '男性爲乾' => '男性为乾',
+'男性為乾' => '男性为乾',
 '男性为乾' => '男性为乾',
-'留著' => '留着',
-'留著書' => '留着书',
-'留著作' => '留著作',
-'留著名' => '留著名',
-'留著錄' => '留著录',
-'留著录' => '留著录',
-'留著稱' => '留著称',
-'留著称' => '留著称',
-'留著者' => '留著者',
-'留著述' => '留著述',
-'疑著' => '疑着',
-'疑著书' => '疑著书',
-'疑著書' => '疑著书',
-'疑著作' => '疑著作',
-'疑著名' => '疑著名',
-'疑著录' => '疑著录',
-'疑著錄' => '疑著录',
-'疑著称' => '疑著称',
-'疑著稱' => '疑著称',
-'疑著者' => '疑著者',
-'疑著述' => '疑著述',
-'癥瘕' => '癥瘕',
-'皺著' => '皱着',
-'皺著書' => '皱著书',
-'皺著作' => '皱著作',
-'皺著名' => '皱著名',
-'皺著錄' => '皱著录',
-'皺著稱' => '皱著称',
-'皺著者' => '皱著者',
-'皺著述' => '皱著述',
-'盛著' => '盛着',
-'盛著书' => '盛著书',
-'盛著書' => '盛著书',
-'盛著作' => '盛著作',
-'盛著名' => '盛著名',
-'盛著錄' => '盛著录',
-'盛著录' => '盛著录',
-'盛著稱' => '盛著称',
-'盛著称' => '盛著称',
-'盛著者' => '盛著者',
-'盛著述' => '盛著述',
-'盯著' => '盯着',
-'盯著書' => '盯着书',
-'盯著作' => '盯著作',
-'盯著名' => '盯著名',
-'盯著錄' => '盯著录',
-'盯著录' => '盯著录',
-'盯著稱' => '盯著称',
-'盯著称' => '盯著称',
-'盯著者' => '盯著者',
-'盯著述' => '盯著述',
-'盾著' => '盾着',
-'盾著書' => '盾著书',
-'盾著书' => '盾著书',
-'盾著作' => '盾著作',
-'盾著名' => '盾著名',
-'盾著錄' => '盾著录',
-'盾著录' => '盾著录',
-'盾著稱' => '盾著称',
-'盾著称' => '盾著称',
-'盾著者' => '盾著者',
-'盾著述' => '盾著述',
-'看不著' => '看不着',
-'看得著' => '看得着',
-'看著' => '看着',
-'看著書' => '看着书',
-'看著作' => '看著作',
-'看著名' => '看著名',
-'看著录' => '看著录',
-'看著錄' => '看著录',
-'看著稱' => '看著称',
-'看著称' => '看著称',
-'看著者' => '看著者',
-'看著述' => '看著述',
-'著業' => '着业',
-'著絲' => '着丝',
-'著么' => '着么',
-'著人' => '着人',
-'著什么急' => '着什么急',
-'著他' => '着他',
-'著令' => '着令',
-'著位' => '着位',
-'著體' => '着体',
-'著你' => '着你',
-'著便' => '着便',
-'著涼' => '着凉',
-'著力' => '着力',
-'著勁' => '着劲',
-'著號' => '着号',
-'著呢' => '着呢',
-'著哩' => '着哩',
-'著地' => '着地',
-'著墨' => '着墨',
-'著聲' => '着声',
-'著處' => '着处',
-'著她' => '着她',
-'著妳' => '着妳',
-'著姓' => '着姓',
-'著它' => '着它',
-'著定' => '着定',
-'著實' => '着实',
-'著己' => '着己',
-'著帳' => '着帐',
-'著床' => '着床',
-'著庸' => '着庸',
-'著式' => '着式',
-'著錄' => '着录',
-'著心' => '着心',
-'著志' => '着志',
-'著忙' => '着忙',
-'著急' => '着急',
-'著惱' => '着恼',
-'著驚' => '着惊',
-'著想' => '着想',
-'著意' => '着意',
-'著慌' => '着慌',
-'著我' => '着我',
-'著手' => '着手',
-'著抹' => '着抹',
-'著摸' => '着摸',
-'著撰' => '着撰',
-'著數' => '着数',
-'著明' => '着明',
-'著末' => '着末',
-'著極' => '着极',
-'著格' => '着格',
-'著棋' => '着棋',
-'著槁' => '着槁',
-'著氣' => '着气',
-'著法' => '着法',
-'著淺' => '着浅',
-'著火' => '着火',
-'著然' => '着然',
-'著甚' => '着甚',
-'著生' => '着生',
-'著疑' => '着疑',
-'著白' => '着白',
-'著相' => '着相',
-'著眼' => '着眼',
-'著著' => '着着',
-'著祂' => '着祂',
-'著積' => '着积',
-'著稿' => '着稿',
-'著筆' => '着笔',
-'著籍' => '着籍',
-'著緊' => '着紧',
-'著緑' => '着緑',
-'著絆' => '着绊',
-'著績' => '着绩',
-'著緋' => '着绯',
-'著綠' => '着绿',
-'著肉' => '着肉',
-'著腳' => '着脚',
-'著艦' => '着舰',
-'著色' => '着色',
-'著節' => '着节',
-'著花' => '着花',
-'著莫' => '着莫',
-'著落' => '着落',
-'著藁' => '着藁',
-'著衣' => '着衣',
-'著裝' => '着装',
-'著要' => '着要',
-'著警' => '着警',
-'著趣' => '着趣',
-'著邊' => '着边',
-'著迷' => '着迷',
-'著跡' => '着迹',
-'著重' => '着重',
-'著録' => '着録',
-'著聞' => '着闻',
-'著陸' => '着陆',
-'著雝' => '着雝',
-'著鞭' => '着鞭',
-'著題' => '着题',
-'著魔' => '着魔',
-'睡不著' => '睡不着',
-'睡得著' => '睡得着',
-'睡著' => '睡着',
-'睡著書' => '睡著书',
-'睡著书' => '睡著书',
-'睡著作' => '睡著作',
-'睡著名' => '睡著名',
-'睡著錄' => '睡著录',
-'睡著录' => '睡著录',
-'睡著称' => '睡著称',
-'睡著稱' => '睡著称',
-'睡著者' => '睡著者',
-'睡著述' => '睡著述',
+'療效顯著' => '疗效显著',
+'白瀋' => '白渖',
+'皁保' => '皁保',
+'目劄' => '目劄',
+'直昇' => '直升',
 '睹微知著' => '睹微知著',
-'睪丸' => '睾丸',
-'瞞著' => '瞒着',
-'瞞著書' => '瞒著书',
-'瞞著作' => '瞒著作',
-'瞞著名' => '瞒著名',
-'瞞著錄' => '瞒著录',
-'瞞著稱' => '瞒著称',
-'瞞著者' => '瞒著者',
-'瞞著述' => '瞒著述',
-'瞧著' => '瞧着',
-'瞧著書' => '瞧着书',
-'瞧著作' => '瞧著作',
-'瞧著名' => '瞧著名',
-'瞧著录' => '瞧著录',
-'瞧著錄' => '瞧著录',
-'瞧著称' => '瞧著称',
-'瞧著稱' => '瞧著称',
-'瞧著者' => '瞧著者',
-'瞧著述' => '瞧著述',
-'瞪著' => '瞪着',
-'瞪著書' => '瞪著书',
-'瞪著书' => '瞪著书',
-'瞪著作' => '瞪著作',
-'瞪著名' => '瞪著名',
-'瞪著錄' => '瞪著录',
-'瞪著录' => '瞪著录',
-'瞪著称' => '瞪著称',
-'瞪著稱' => '瞪著称',
-'瞪著者' => '瞪著者',
-'瞪著述' => '瞪著述',
+'瞭臺' => '瞭台',
+'瞭台' => '瞭台',
 '瞭望' => '瞭望',
-'石碁镇' => '石碁镇',
+'矇眬' => '矇眬',
+'矇矓' => '矇眬',
+'石碁' => '石碁',
 '石碁鎮' => '石碁镇',
-'福著' => '福着',
-'福著书' => '福著书',
-'福著書' => '福著书',
-'福著作' => '福著作',
-'福著名' => '福著名',
-'福著錄' => '福著录',
-'福著录' => '福著录',
-'福著稱' => '福著称',
-'福著称' => '福著称',
-'福著者' => '福著者',
-'福著述' => '福著述',
+'石英鍾' => '石英钟',
+'石鍾乳' => '石钟乳',
+'鹼菜' => '硷菜',
+'碁聖' => '碁圣',
+'碁圣' => '碁圣',
+'碁所' => '碁所',
+'祕宜' => '祕宜',
+'秒鍾' => '秒钟',
 '穀梁' => '穀梁',
-'空著' => '空着',
-'空著书' => '空著书',
-'空著書' => '空著书',
-'空著作' => '空著作',
-'空著名' => '空著名',
-'空著录' => '空著录',
-'空著錄' => '空著录',
-'空著称' => '空著称',
-'空著稱' => '空著称',
-'空著者' => '空著者',
-'空著述' => '空著述',
-'穿著' => '穿着',
-'穿著书' => '穿著书',
-'穿著書' => '穿著书',
-'穿著作' => '穿著作',
-'穿著名' => '穿著名',
-'穿著录' => '穿著录',
-'穿著錄' => '穿著录',
-'穿著称' => '穿著称',
-'穿著稱' => '穿著称',
-'穿著者' => '穿著者',
-'穿著述' => '穿著述',
-'豎著' => '竖着',
-'豎著書' => '竖著书',
-'豎著作' => '竖著作',
-'豎著名' => '竖著名',
-'豎著錄' => '竖著录',
-'豎著稱' => '竖著称',
-'豎著者' => '竖著者',
-'豎著述' => '竖著述',
-'站著' => '站着',
-'站著书' => '站著书',
-'站著書' => '站著书',
-'站著作' => '站著作',
-'站著名' => '站著名',
-'站著錄' => '站著录',
-'站著录' => '站著录',
-'站著称' => '站著称',
-'站著稱' => '站著称',
-'站著者' => '站著者',
-'站著述' => '站著述',
-'笑著' => '笑着',
-'笑著书' => '笑著书',
-'笑著書' => '笑著书',
-'笑著作' => '笑著作',
-'笑著名' => '笑著名',
-'笑著录' => '笑著录',
-'笑著錄' => '笑著录',
-'笑著称' => '笑著称',
-'笑著稱' => '笑著称',
-'笑著者' => '笑著者',
-'笑著述' => '笑著述',
+'穿著者' => '穿着者',
+'竹昇' => '竹升',
 '答覆' => '答复',
-'管著' => '管着',
-'管著书' => '管著书',
-'管著書' => '管著书',
-'管著作' => '管著作',
-'管著名' => '管著名',
-'管著录' => '管著录',
-'管著錄' => '管著录',
-'管著稱' => '管著称',
-'管著称' => '管著称',
-'管著者' => '管著者',
-'管著述' => '管著述',
-'米澤瑠美' => '米泽瑠美',
 '米泽瑠美' => '米泽瑠美',
-'綁著' => '绑着',
-'綁著書' => '绑著书',
-'綁著作' => '绑著作',
-'綁著名' => '绑著名',
-'綁著錄' => '绑著录',
-'綁著稱' => '绑著称',
-'綁著者' => '绑著者',
-'綁著述' => '绑著述',
-'繞著' => '绕着',
-'繞著書' => '绕著书',
-'繞著作' => '绕著作',
-'繞著名' => '绕著名',
-'繞著錄' => '绕著录',
-'繞著稱' => '绕著称',
-'繞著者' => '绕著者',
-'繞著述' => '绕著述',
-'綳著勁' => '绷着劲',
-'綳著臉' => '绷着脸',
+'米瀋' => '米渖',
+'餬口' => '糊口',
+'繙㠾' => '繙㠾',
+'線國安' => '缐国安',
+'線姓' => '缐姓',
 '編著' => '编著',
-'纏著' => '缠着',
-'纏著書' => '缠著书',
-'纏著作' => '缠著作',
-'纏著名' => '缠著名',
-'纏著錄' => '缠著录',
-'纏著稱' => '缠著称',
-'纏著者' => '缠著者',
-'纏著述' => '缠著述',
-'罩著' => '罩着',
-'罩著书' => '罩著书',
-'罩著書' => '罩著书',
-'罩著作' => '罩著作',
-'罩著名' => '罩著名',
-'罩著錄' => '罩著录',
-'罩著录' => '罩著录',
-'罩著称' => '罩著称',
-'罩著稱' => '罩著称',
-'罩著者' => '罩著者',
-'罩著述' => '罩著述',
-'美著' => '美着',
-'美著书' => '美著书',
-'美著書' => '美著书',
-'美著作' => '美著作',
-'美著名' => '美著名',
-'美著录' => '美著录',
-'美著錄' => '美著录',
-'美著稱' => '美著称',
-'美著称' => '美著称',
-'美著者' => '美著者',
-'美著述' => '美著述',
-'耀著' => '耀着',
-'耀著書' => '耀著书',
-'耀著书' => '耀著书',
-'耀著作' => '耀著作',
-'耀著名' => '耀著名',
-'耀著錄' => '耀著录',
-'耀著录' => '耀著录',
-'耀著称' => '耀著称',
-'耀著稱' => '耀著称',
-'耀著者' => '耀著者',
-'耀著述' => '耀著述',
-'老幺' => '老幺',
-'考著' => '考着',
-'考著書' => '考著书',
-'考著书' => '考著书',
-'考著作' => '考著作',
-'考著名' => '考著名',
-'考著錄' => '考著录',
-'考著录' => '考著录',
-'考著稱' => '考著称',
-'考著称' => '考著称',
-'考著者' => '考著者',
-'考著述' => '考著述',
+'編鍾' => '编钟',
 '肉乾乾' => '肉干干',
 '肘手鍊足' => '肘手链足',
-'背著' => '背着',
-'背著书' => '背著书',
-'背著書' => '背著书',
-'背著作' => '背著作',
-'背著名' => '背著名',
-'背著录' => '背著录',
-'背著錄' => '背著录',
-'背著称' => '背著称',
-'背著稱' => '背著称',
-'背著者' => '背著者',
-'背著述' => '背著述',
-'膠著' => '胶着',
-'膠著書' => '胶著书',
-'膠著作' => '胶著作',
-'膠著名' => '胶著名',
-'膠著錄' => '胶著录',
-'膠著稱' => '胶著称',
-'膠著者' => '胶著者',
-'膠著述' => '胶著述',
-'藝著' => '艺着',
-'藝著書' => '艺著书',
-'藝著作' => '艺著作',
-'藝著名' => '艺著名',
-'藝著錄' => '艺著录',
-'藝著稱' => '艺著称',
-'藝著者' => '艺著者',
-'藝著述' => '艺著述',
-'苦著' => '苦着',
-'苦著书' => '苦著书',
-'苦著書' => '苦著书',
-'苦著作' => '苦著作',
-'苦著名' => '苦著名',
-'苦著录' => '苦著录',
-'苦著錄' => '苦著录',
-'苦著稱' => '苦著称',
-'苦著称' => '苦著称',
-'苦著者' => '苦著者',
-'苦著述' => '苦著述',
+'甦醒' => '苏醒',
 '苧烯' => '苧烯',
 '薴烯' => '苧烯',
-'獲著' => '获着',
-'獲著書' => '获著书',
-'獲著作' => '获著作',
-'獲著名' => '获著名',
-'獲著錄' => '获著录',
-'獲著稱' => '获著称',
-'獲著者' => '获著者',
-'獲著述' => '获著述',
-'蕭乾' => '萧乾',
+'蘋果' => '苹果',
+'荠苧' => '荠苧',
+'榮陞' => '荣升',
 '萧乾' => '萧乾',
-'落著' => '落着',
-'落著书' => '落著书',
-'落著書' => '落著书',
-'落著作' => '落著作',
-'落著名' => '落著名',
-'落著录' => '落著录',
-'落著錄' => '落著录',
-'落著稱' => '落著称',
-'落著称' => '落著称',
-'落著者' => '落著者',
-'落著述' => '落著述',
+'蕭乾' => '萧乾',
 '著書' => '著书',
 '著書立說' => '著书立说',
 '著作' => '著作',
 '著名' => '著名',
+'著錄' => '著录',
 '著錄規則' => '著录规则',
 '著文' => '著文',
 '著有' => '著有',
@@ -15482,3604 +13723,6591 @@ $zh2Hans = array(
 '著者' => '著者',
 '著身' => '著身',
 '著述' => '著述',
-'蒙汗葯' => '蒙汗药',
-'蒙著' => '蒙着',
-'蒙葯' => '蒙药',
-'蒙著書' => '蒙著书',
-'蒙著书' => '蒙著书',
-'蒙著作' => '蒙著作',
-'蒙著名' => '蒙著名',
-'蒙著录' => '蒙著录',
-'蒙著錄' => '蒙著录',
-'蒙著稱' => '蒙著称',
-'蒙著称' => '蒙著称',
-'蒙著者' => '蒙著者',
-'蒙著述' => '蒙著述',
-'藏著' => '藏着',
-'藏著書' => '藏著书',
-'藏著书' => '藏著书',
-'藏著作' => '藏著作',
-'藏著名' => '藏著名',
-'藏著錄' => '藏著录',
-'藏著录' => '藏著录',
-'藏著称' => '藏著称',
-'藏著稱' => '藏著称',
-'藏著者' => '藏著者',
-'藏著述' => '藏著述',
-'蘸著' => '蘸着',
-'蘸著書' => '蘸著书',
-'蘸著书' => '蘸著书',
-'蘸著作' => '蘸著作',
-'蘸著名' => '蘸著名',
-'蘸著录' => '蘸著录',
-'蘸著錄' => '蘸著录',
-'蘸著稱' => '蘸著称',
-'蘸著称' => '蘸著称',
-'蘸著者' => '蘸著者',
-'蘸著述' => '蘸著述',
-'行著' => '行着',
-'行著书' => '行著书',
-'行著書' => '行著书',
-'行著作' => '行著作',
-'行著名' => '行著名',
-'行著录' => '行著录',
-'行著錄' => '行著录',
-'行著稱' => '行著称',
-'行著称' => '行著称',
-'行著者' => '行著者',
-'行著述' => '行著述',
-'衣著' => '衣着',
-'衣著书' => '衣著书',
-'衣著書' => '衣著书',
-'衣著作' => '衣著作',
-'衣著名' => '衣著名',
-'衣著录' => '衣著录',
-'衣著錄' => '衣著录',
-'衣著稱' => '衣著称',
-'衣著称' => '衣著称',
-'衣著者' => '衣著者',
-'衣著述' => '衣著述',
-'裝著' => '装着',
-'裝著書' => '装著书',
-'裝著作' => '装著作',
-'裝著名' => '装著名',
-'裝著錄' => '装著录',
-'裝著稱' => '装著称',
-'裝著者' => '装著者',
-'裝著述' => '装著述',
-'裹著' => '裹着',
-'裹著書' => '裹著书',
-'裹著书' => '裹著书',
-'裹著作' => '裹著作',
-'裹著名' => '裹著名',
-'裹著录' => '裹著录',
-'裹著錄' => '裹著录',
-'裹著称' => '裹著称',
-'裹著稱' => '裹著称',
-'裹著者' => '裹著者',
-'裹著述' => '裹著述',
 '覆蓋' => '覆蓋',
 '見微知著' => '见微知著',
-'見著' => '见着',
-'見著書' => '见著书',
-'見著作' => '见著作',
-'見著名' => '见著名',
-'見著錄' => '见著录',
-'見著稱' => '见著称',
-'見著者' => '见著者',
-'見著述' => '见著述',
+'見著' => '见著',
 '視微知著' => '视微知著',
 '言幾析理' => '言幾析理',
-'警戒著' => '警戒着',
-'記著' => '记着',
-'記著書' => '记著书',
-'記著作' => '记著作',
-'記著名' => '记著名',
-'記著錄' => '记著录',
-'記著稱' => '记著称',
-'記著者' => '记著者',
-'記著述' => '记著述',
+'諲譔' => '諲譔',
+'警鍾' => '警钟',
+'譩譆' => '譩譆',
 '論著' => '论著',
 '譯著' => '译著',
-'試著' => '试着',
-'試著書' => '试著书',
-'試著作' => '试著作',
-'試著名' => '试著名',
-'試著錄' => '试著录',
-'試著稱' => '试著称',
-'試著者' => '试著者',
-'試著述' => '试著述',
-'語著' => '语着',
-'語著書' => '语著书',
-'語著作' => '语著作',
-'語著名' => '语著名',
-'語著錄' => '语著录',
-'語著稱' => '语著称',
-'語著者' => '语著者',
-'語著述' => '语著述',
-'豫著' => '豫着',
-'豫著书' => '豫著书',
-'豫著書' => '豫著书',
-'豫著作' => '豫著作',
-'豫著名' => '豫著名',
-'豫著录' => '豫著录',
-'豫著錄' => '豫著录',
-'豫著称' => '豫著称',
-'豫著稱' => '豫著称',
-'豫著者' => '豫著者',
-'豫著述' => '豫著述',
-'貞著' => '贞着',
-'貞著書' => '贞著书',
-'貞著作' => '贞著作',
-'貞著名' => '贞著名',
-'貞著錄' => '贞著录',
-'貞著稱' => '贞著称',
-'貞著者' => '贞著者',
-'貞著述' => '贞著述',
-'走著' => '走着',
-'走著書' => '走著书',
-'走著书' => '走著书',
-'走著作' => '走著作',
-'走著名' => '走著名',
-'走著錄' => '走著录',
-'走著录' => '走著录',
-'走著稱' => '走著称',
-'走著称' => '走著称',
-'走著者' => '走著者',
-'走著述' => '走著述',
-'趕著' => '赶着',
-'趕著書' => '赶著书',
-'趕著作' => '赶著作',
-'趕著名' => '赶著名',
-'趕著錄' => '赶著录',
-'趕著稱' => '赶著称',
-'趕著者' => '赶著者',
-'趕著述' => '赶著述',
-'趴著' => '趴着',
-'趴著書' => '趴著书',
-'趴著书' => '趴著书',
-'趴著作' => '趴著作',
-'趴著名' => '趴著名',
-'趴著录' => '趴著录',
-'趴著錄' => '趴著录',
-'趴著称' => '趴著称',
-'趴著稱' => '趴著称',
-'趴著者' => '趴著者',
-'趴著述' => '趴著述',
-'躍著' => '跃着',
-'躍著書' => '跃著书',
-'躍著作' => '跃著作',
-'躍著名' => '跃著名',
-'躍著錄' => '跃著录',
-'躍著稱' => '跃著称',
-'躍著者' => '跃著者',
-'躍著述' => '跃著述',
-'跑著' => '跑着',
-'跑著書' => '跑著书',
-'跑著书' => '跑著书',
-'跑著作' => '跑著作',
-'跑著名' => '跑著名',
-'跑著录' => '跑著录',
-'跑著錄' => '跑著录',
-'跑著稱' => '跑著称',
-'跑著称' => '跑著称',
-'跑著者' => '跑著者',
-'跑著述' => '跑著述',
-'跟著' => '跟着',
-'跟著书' => '跟著书',
-'跟著書' => '跟著书',
-'跟著作' => '跟著作',
-'跟著名' => '跟著名',
-'跟著录' => '跟著录',
-'跟著錄' => '跟著录',
-'跟著称' => '跟著称',
-'跟著稱' => '跟著称',
-'跟著者' => '跟著者',
-'跟著述' => '跟著述',
-'跪著' => '跪着',
-'跪著書' => '跪著书',
-'跪著书' => '跪著书',
-'跪著作' => '跪著作',
-'跪著名' => '跪著名',
-'跪著錄' => '跪著录',
-'跪著录' => '跪著录',
-'跪著稱' => '跪著称',
-'跪著称' => '跪著称',
-'跪著者' => '跪著者',
-'跪著述' => '跪著述',
-'跳著' => '跳着',
-'跳著书' => '跳著书',
-'跳著書' => '跳著书',
-'跳著作' => '跳著作',
-'跳著名' => '跳著名',
-'跳著录' => '跳著录',
-'跳著錄' => '跳著录',
-'跳著称' => '跳著称',
-'跳著稱' => '跳著称',
-'跳著者' => '跳著者',
-'跳著述' => '跳著述',
+'謝肇淛' => '谢肇淛',
+'象乾' => '象乾',
 '躊躇滿志' => '踌躇滿志',
-'踏著' => '踏着',
-'踏著書' => '踏著书',
-'踏著书' => '踏著书',
-'踏著作' => '踏著作',
-'踏著名' => '踏著名',
-'踏著錄' => '踏著录',
-'踏著录' => '踏著录',
-'踏著称' => '踏著称',
-'踏著稱' => '踏著称',
-'踏著者' => '踏著者',
-'踏著述' => '踏著述',
-'踩著' => '踩着',
-'踩著书' => '踩著书',
-'踩著書' => '踩著书',
-'踩著作' => '踩著作',
-'踩著名' => '踩著名',
-'踩著录' => '踩著录',
-'踩著錄' => '踩著录',
-'踩著稱' => '踩著称',
-'踩著称' => '踩著称',
-'踩著者' => '踩著者',
-'踩著述' => '踩著述',
-'身著' => '身着',
-'身著书' => '身著书',
-'身著書' => '身著书',
-'身著作' => '身著作',
-'身著名' => '身著名',
-'身著录' => '身著录',
-'身著錄' => '身著录',
-'身著稱' => '身著称',
-'身著称' => '身著称',
-'身著者' => '身著者',
-'身著述' => '身著述',
-'躺著' => '躺着',
-'躺著書' => '躺著书',
-'躺著书' => '躺著书',
-'躺著作' => '躺著作',
-'躺著名' => '躺著名',
-'躺著錄' => '躺著录',
-'躺著录' => '躺著录',
-'躺著称' => '躺著称',
-'躺著稱' => '躺著称',
-'躺著者' => '躺著者',
-'躺著述' => '躺著述',
-'轉著' => '转着',
-'轉著書' => '转著书',
-'轉著作' => '转著作',
-'轉著名' => '转著名',
-'轉著錄' => '转著录',
-'轉著稱' => '转著称',
-'轉著者' => '转著者',
-'轉著述' => '转著述',
-'載著' => '载着',
-'載著書' => '载著书',
-'載著作' => '载著作',
-'載著名' => '载著名',
-'載著錄' => '载著录',
-'載著稱' => '载著称',
-'載著者' => '载著者',
-'載著述' => '载著述',
 '較著' => '较著',
-'達著' => '达着',
-'達著書' => '达著书',
-'達著作' => '达著作',
-'達著名' => '达著名',
-'達著錄' => '达著录',
-'達著稱' => '达著称',
-'達著者' => '达著者',
-'達著述' => '达著述',
 '近角聪信' => '近角聪信',
-'近角聰信' => '近角聪信',
 '这么' => '这么',
-'遠著' => '远着',
-'遠著書' => '远著书',
-'遠著作' => '远著作',
-'遠著名' => '远著名',
-'遠著錄' => '远著录',
-'遠著稱' => '远著称',
-'遠著者' => '远著者',
-'遠著述' => '远著述',
-'連著' => '连着',
-'連著書' => '连著书',
-'連著作' => '连著作',
-'連著名' => '连著名',
-'連著錄' => '连著录',
-'連著稱' => '连著称',
-'連著者' => '连著者',
-'連著述' => '连著述',
-'迫著' => '迫着',
-'追著' => '追着',
-'追著書' => '追著书',
-'追著书' => '追著书',
-'追著作' => '追著作',
-'追著名' => '追著名',
-'追著錄' => '追著录',
-'追著录' => '追著录',
-'追著称' => '追著称',
-'追著稱' => '追著称',
-'追著者' => '追著者',
-'追著述' => '追著述',
-'逆著' => '逆着',
-'逆著書' => '逆著书',
-'逆著书' => '逆著书',
-'逆著作' => '逆著作',
-'逆著名' => '逆著名',
-'逆著錄' => '逆著录',
-'逆著录' => '逆著录',
-'逆著称' => '逆著称',
-'逆著稱' => '逆著称',
-'逆著者' => '逆著者',
-'逆著述' => '逆著述',
-'逼著' => '逼着',
-'逼著書' => '逼著书',
-'逼著书' => '逼著书',
-'逼著作' => '逼著作',
-'逼著名' => '逼著名',
-'逼著錄' => '逼著录',
-'逼著录' => '逼著录',
-'逼著称' => '逼著称',
-'逼著稱' => '逼著称',
-'逼著者' => '逼著者',
-'逼著述' => '逼著述',
-'遇著' => '遇着',
-'遇著書' => '遇著书',
-'遇著书' => '遇著书',
-'遇著作' => '遇著作',
-'遇著名' => '遇著名',
-'遇著錄' => '遇著录',
-'遇著录' => '遇著录',
-'遇著稱' => '遇著称',
-'遇著称' => '遇著称',
-'遇著者' => '遇著者',
-'遇著述' => '遇著述',
+'進化鍾' => '进化钟',
+'造麴' => '造曲',
 '遺著' => '遗著',
 '那麽' => '那麽',
 '郭子乾' => '郭子乾',
-'配著' => '配着',
-'配著書' => '配著书',
-'配著书' => '配著书',
-'配著作' => '配著作',
-'配著名' => '配著名',
-'配著錄' => '配著录',
-'配著录' => '配著录',
-'配著稱' => '配著称',
-'配著称' => '配著称',
-'配著者' => '配著者',
-'配著述' => '配著述',
-'釀著' => '酿着',
-'釀著書' => '酿著书',
-'釀著作' => '酿著作',
-'釀著名' => '酿著名',
-'釀著錄' => '酿著录',
-'釀著稱' => '酿著称',
-'釀著者' => '酿著者',
-'釀著述' => '酿著述',
-'醯壺' => '醯壶',
+'郭行餘' => '郭行馀',
+'酒麴' => '酒曲',
+'醉瀋' => '醉渖',
 '醯壶' => '醯壶',
-'醯醬' => '醯酱',
+'醯壺' => '醯壶',
 '醯酱' => '醯酱',
+'醯醬' => '醯酱',
 '醯醋' => '醯醋',
 '醯醢' => '醯醢',
 '醯鸡' => '醯鸡',
 '醯雞' => '醯鸡',
 '重覆' => '重复',
+'金尚鍾' => '金尚钟',
+'金民鍾' => '金民钟',
+'金鍾' => '金钟',
 '金鍊' => '金链',
+'鍾麗緹' => '钟丽缇',
+'鍾乳石' => '钟乳石',
+'鍾儀奏楚' => '钟仪奏楚',
+'鍾關' => '钟关',
+'鍾聲' => '钟声',
+'鍾頭' => '钟头',
+'鍾山' => '钟山',
+'鍾差' => '钟差',
+'鍾座' => '钟座',
+'鍾情' => '钟情',
+'鍾意' => '钟意',
+'鍾慧冰' => '钟慧冰',
+'鍾擺' => '钟摆',
+'鍾架' => '钟架',
+'鍾楚紅' => '钟楚红',
+'鍾樓' => '钟楼',
+'鍾漢良' => '钟汉良',
+'鍾汶' => '钟汶',
+'鍾淑慧' => '钟淑慧',
+'鍾靈' => '钟灵',
+'鍾點' => '钟点',
+'鍾愛' => '钟爱',
+'鍾琴' => '钟琴',
+'鍾相' => '钟相',
+'鍾祥' => '钟祥',
+'鍾離' => '钟离',
+'鍾表' => '钟表',
+'鍾鎮濤' => '钟镇涛',
+'鍾面' => '钟面',
+'鍾馗' => '钟馗',
+'鍾鳴漏盡' => '钟鸣漏尽',
+'鍾鳴鼎食' => '钟鸣鼎食',
+'鍾鼓' => '钟鼓',
 '鐵鍊' => '铁链',
 '鉸鍊' => '铰链',
 '銀鍊' => '银链',
-'鋪著' => '铺着',
-'鋪著書' => '铺著书',
-'鋪著作' => '铺著作',
-'鋪著名' => '铺著名',
-'鋪著錄' => '铺著录',
-'鋪著稱' => '铺著称',
-'鋪著者' => '铺著者',
-'鋪著述' => '铺著述',
 '鍊子' => '链子',
 '鍊條' => '链条',
+'鍊表' => '链表',
 '鍊鎖' => '链锁',
 '鍊錘' => '链锤',
 '鎖鍊' => '锁链',
-'鍾鍛' => '锺锻',
-'鍛鍾' => '锻锺',
 '閻懷禮' => '闫怀礼',
-'閉著' => '闭着',
-'閉著書' => '闭著书',
-'閉著作' => '闭著作',
-'閉著名' => '闭著名',
-'閉著錄' => '闭著录',
-'閉著稱' => '闭著称',
-'閉著者' => '闭著者',
-'閉著述' => '闭著述',
-'閑著' => '闲着',
-'閑著書' => '闲著书',
-'閑著作' => '闲著作',
-'閑著名' => '闲著名',
-'閑著錄' => '闲著录',
-'閑著稱' => '闲著称',
-'閑著者' => '闲著者',
-'閑著述' => '闲著述',
-'聞不著' => '闻不着',
-'聞得著' => '闻得着',
-'聞著' => '闻着',
+'鬧鍾' => '闹钟',
+'陽為乾' => '阳为乾',
 '阳为乾' => '阳为乾',
 '陽爲乾' => '阳为乾',
-'陽為乾' => '阳为乾',
 '阿部正瞭' => '阿部正瞭',
-'附著' => '附着',
-'附睪' => '附睾',
-'附著书' => '附著书',
-'附著書' => '附著书',
-'附著作' => '附著作',
-'附著名' => '附著名',
-'附著錄' => '附著录',
-'附著录' => '附著录',
-'附著称' => '附著称',
-'附著稱' => '附著称',
-'附著者' => '附著者',
-'附著述' => '附著述',
+'陆徵祥' => '陆徵祥',
+'陸徵祥' => '陆徵祥',
 '陈乾生' => '陈乾生',
 '陳乾生' => '陈乾生',
+'陈元扞' => '陈元扞',
+'陳元扞' => '陈元扞',
 '陈公乾生' => '陈公乾生',
 '陳公乾生' => '陈公乾生',
-'陋著' => '陋着',
-'陋著書' => '陋著书',
-'陋著书' => '陋著书',
-'陋著作' => '陋著作',
-'陋著名' => '陋著名',
-'陋著錄' => '陋著录',
-'陋著录' => '陋著录',
-'陋著称' => '陋著称',
-'陋著稱' => '陋著称',
-'陋著者' => '陋著者',
-'陋著述' => '陋著述',
-'陪著' => '陪着',
-'陪著书' => '陪著书',
-'陪著書' => '陪著书',
-'陪著作' => '陪著作',
-'陪著名' => '陪著名',
-'陪著录' => '陪著录',
-'陪著錄' => '陪著录',
-'陪著称' => '陪著称',
-'陪著稱' => '陪著称',
-'陪著者' => '陪著者',
-'陪著述' => '陪著述',
+'陳遇乾' => '陈遇乾',
+'陈遇乾' => '陈遇乾',
 '陳堵' => '陳堵',
 '陳禕' => '陳禕',
-'隨著' => '随着',
-'隨著書' => '随著书',
-'隨著作' => '随著作',
-'隨著名' => '随著名',
-'隨著錄' => '随著录',
-'隨著稱' => '随著称',
-'隨著者' => '随著者',
-'隨著述' => '随著述',
-'隔著' => '隔着',
-'隔著书' => '隔著书',
-'隔著書' => '隔著书',
-'隔著作' => '隔著作',
-'隔著名' => '隔著名',
-'隔著录' => '隔著录',
-'隔著錄' => '隔著录',
-'隔著称' => '隔著称',
-'隔著稱' => '隔著称',
-'隔著者' => '隔著者',
-'隔著述' => '隔著述',
-'隱睪' => '隱睾',
-'雅著' => '雅着',
-'雅著书' => '雅著书',
-'雅著書' => '雅著书',
-'雅著作' => '雅著作',
-'雅著名' => '雅著名',
-'雅著录' => '雅著录',
-'雅著錄' => '雅著录',
-'雅著称' => '雅著称',
-'雅著稱' => '雅著称',
-'雅著者' => '雅著者',
-'雅著述' => '雅著述',
 '雍乾' => '雍乾',
-'靠著' => '靠着',
-'靠著作' => '靠著作',
-'靠著名' => '靠著名',
-'靠著錄' => '靠著录',
-'靠著录' => '靠著录',
-'靠著稱' => '靠著称',
-'靠著称' => '靠著称',
-'靠著者' => '靠著者',
-'靠著述' => '靠著述',
-'頂著' => '顶着',
-'頂著書' => '顶著书',
-'頂著作' => '顶著作',
-'頂著名' => '顶著名',
-'頂著錄' => '顶著录',
-'頂著稱' => '顶著称',
-'頂著者' => '顶著者',
-'頂著述' => '顶著述',
+'讎夷' => '雠夷',
+'讎定' => '雠定',
+'讎校' => '雠校',
+'讎問' => '雠问',
+'音聲如鍾' => '音声如钟',
 '項鍊' => '项链',
-'順著' => '顺着',
-'順著書' => '顺著书',
-'順著作' => '顺著作',
-'順著名' => '顺著名',
-'順著錄' => '顺著录',
-'順著稱' => '顺著称',
-'順著者' => '顺著者',
-'順著述' => '顺著述',
-'領著' => '领着',
-'領著書' => '领著书',
-'領著作' => '领著作',
-'領著名' => '领著名',
-'領著錄' => '领著录',
-'領著稱' => '领著称',
-'領著者' => '领著者',
-'領著述' => '领著述',
-'飄著' => '飘着',
-'飄著書' => '飘著书',
-'飄著作' => '飘著作',
-'飄著名' => '飘著名',
-'飄著錄' => '飘著录',
-'飄著稱' => '飘著称',
-'飄著者' => '飘著者',
-'飄著述' => '飘著述',
+'飛昇' => '飞升',
 '飭令' => '飭令',
-'駕著' => '驾着',
-'駕著書' => '驾著书',
-'駕著作' => '驾著作',
-'駕著名' => '驾著名',
-'駕著錄' => '驾著录',
-'駕著稱' => '驾著称',
-'駕著者' => '驾著者',
-'駕著述' => '驾著述',
-'罵著' => '骂着',
-'罵著書' => '骂著书',
-'罵著作' => '骂著作',
-'罵著名' => '骂著名',
-'罵著錄' => '骂著录',
-'罵著稱' => '骂著称',
-'罵著者' => '骂著者',
-'罵著述' => '骂著述',
-'騎著' => '骑着',
-'騎著書' => '骑著书',
-'騎著作' => '骑著作',
-'騎著名' => '骑著名',
-'騎著錄' => '骑著录',
-'騎著稱' => '骑著称',
-'騎著者' => '骑著者',
-'騎著述' => '骑著述',
-'騙著' => '骗着',
-'騙著書' => '骗著书',
-'騙著作' => '骗著作',
-'騙著名' => '骗著名',
-'騙著錄' => '骗著录',
-'騙著稱' => '骗著称',
-'騙著者' => '骗著者',
-'騙著述' => '骗著述',
-'高著' => '高着',
-'高著书' => '高著书',
-'高著書' => '高著书',
-'高著作' => '高著作',
-'高著名' => '高著名',
-'高著录' => '高著录',
-'高著錄' => '高著录',
-'高著稱' => '高著称',
-'高著称' => '高著称',
-'高著者' => '高著者',
-'高著述' => '高著述',
-'髭著' => '髭着',
-'髭著书' => '髭著书',
-'髭著書' => '髭著书',
-'髭著作' => '髭著作',
-'髭著名' => '髭著名',
-'髭著錄' => '髭著录',
-'髭著录' => '髭著录',
-'髭著称' => '髭著称',
-'髭著稱' => '髭著称',
-'髭著者' => '髭著者',
-'髭著述' => '髭著述',
+'餘年無多' => '馀年无多',
+'餘慶' => '馀庆',
+'餘瀋' => '馀渖',
+'馬德鍾' => '马德钟',
+'高昇' => '高升',
+'高陞' => '高升',
 '鬱姓' => '鬱姓',
 '鬱氏' => '鬱氏',
 '魏徵' => '魏徵',
 '魚乾乾' => '鱼干干',
-'麯崇裕' => '麯崇裕',
-'麴義' => '麴义',
-'麴义' => '麴义',
-'麴英' => '麴英',
+'鳴鍾' => '鸣钟',
 '麽氏' => '麽氏',
 '麽麽' => '麽麽',
 '麼麼' => '麽麽',
+'黃麴毒素' => '黄曲毒素',
 '黄润乾' => '黄润乾',
 '黃潤乾' => '黄润乾',
-'黏著' => '黏着',
-'黏著书' => '黏著书',
-'黏著書' => '黏著书',
-'黏著作' => '黏著作',
-'黏著名' => '黏著名',
-'黏著录' => '黏著录',
-'黏著錄' => '黏著录',
-'黏著称' => '黏著称',
-'黏著稱' => '黏著称',
-'黏著者' => '黏著者',
-'黏著述' => '黏著述',
+'黃鍾' => '黄钟',
+'龍鍾' => '龙钟',
+',陞' => ',升',
 );
 
 $zh2TW = array(
-'“' => '「',
-'”' => '」',
-'‘' => '『',
-'’' => '』',
-'三極管' => '三極體',
+'0杆' => '0桿',
+'1杆' => '1桿',
+'2杆' => '2桿',
+'3杆' => '3桿',
+'4杆' => '4桿',
+'5杆' => '5桿',
+'6杆' => '6桿',
+'7杆' => '7桿',
+'8杆' => '8桿',
+'9杆' => '9桿',
+'甲型肝炎' => 'A型肝炎',
+'甲肝' => 'A肝',
+'乙型肝炎' => 'B型肝炎',
+'乙肝' => 'B肝',
+'丙型肝炎' => 'C型肝炎',
+'丙肝' => 'C肝',
+'IP地址' => 'IP位址',
+'乔戈里峰' => 'K2',
+'·威爾士' => '·威爾士',
+'·威尔士' => '·威爾士',
+'一杆' => '一桿',
+'七杆' => '七桿',
+'三杆' => '三桿',
 '三极管' => '三極體',
-'世界裏' => '世界裡',
-'中文裏' => '中文裡',
-'串行' => '串列',
-'串列加速器' => '串列加速器',
+'三極管' => '三極體',
+'达累斯萨拉姆' => '三蘭港',
+'上落客' => '上下客',
+'落車' => '下車',
+'不來梅' => '不萊梅',
+'不来梅' => '不萊梅',
 '以太网' => '乙太網',
-'奶酪' => '乳酪',
-'二極管' => '二極體',
+'九杆' => '九桿',
+'了結他' => '了結他',
+'二手煙' => '二手菸',
+'二杆' => '二桿',
 '二极管' => '二極體',
-'交互式' => '互動式',
+'二極管' => '二極體',
+'交互设计' => '互動設計',
+'五杆' => '五桿',
 '阿塞拜疆' => '亞塞拜然',
+'阿斯旺' => '亞斯文',
 '人工智能' => '人工智慧',
-'接口' => '介面',
+'人机交互' => '人機互動',
+'石勒蘇益格' => '什勒斯維希',
+'石勒苏益格' => '什勒斯維希',
+'界面' => '介面',
+'伊利诺伊州' => '伊利諾州',
+'伊斯坦布爾' => '伊斯坦堡',
+'伊斯坦布尔' => '伊斯坦堡',
+'伊斯兰堡' => '伊斯蘭瑪巴德',
+'伊斯蘭堡' => '伊斯蘭瑪巴德',
+'埃博拉' => '伊波拉',
+'伊丽莎白' => '伊莉莎白',
+'掌上壓' => '伏地挺身',
+'俯卧撑' => '伏地挺身',
+'伯明翰' => '伯明罕',
 '服务器' => '伺服器',
-'字節' => '位元組',
 '字节' => '位元組',
-'作品裏' => '作品裡',
-'信道' => '信道',
-'优先级' => '優先順序',
-'元兇' => '元凶',
-'元凶' => '元凶',
+'字節' => '位元組',
+'佛罗伦萨' => '佛羅倫斯',
+'操作系统' => '作業系統',
+'系数' => '係數',
+'避孕套' => '保險套',
+'傅里叶' => '傅立葉',
 '光盘' => '光碟',
 '光驱' => '光碟機',
 '克羅地亞' => '克羅埃西亞',
 '克罗地亚' => '克羅埃西亞',
-'全角' => '全形',
-'冬天裏' => '冬天裡',
-'冬日裏' => '冬日裡',
-'凉菜' => '冷盤',
-'冷菜' => '冷盤',
-'凶器' => '凶器',
-'兇器' => '凶器',
-'凶徒' => '凶徒',
-'兇徒' => '凶徒',
-'兇手' => '凶手',
-'凶手' => '凶手',
-'兇案' => '凶案',
-'凶案' => '凶案',
-'凶殘' => '凶殘',
-'兇殘' => '凶殘',
-'凶残' => '凶殘',
-'兇殺' => '凶殺',
-'凶杀' => '凶殺',
-'凶殺' => '凶殺',
+'克里斯托弗' => '克里斯多福',
+'万维网' => '全球資訊網',
+'八杆' => '八桿',
+'公共交通' => '公共運輸',
+'六杆' => '六桿',
+'凯瑟琳' => '凱薩琳',
+'嘉芙蓮' => '凱薩琳',
 '打印' => '列印',
 '列支敦士登' => '列支敦斯登',
-'剪彩' => '剪綵',
+'前波美拉尼亚' => '前波莫瑞',
+'前波美拉尼亞' => '前波莫瑞',
 '加蓬' => '加彭',
-'总线' => '匯流排',
+'加沙地带' => '加薩走廊',
+'加沙地帶' => '加薩走廊',
+'包豪斯' => '包浩斯',
+'北朝鲜' => '北韓',
 '局域网' => '區域網',
+'十杆' => '十桿',
 '特立尼達和多巴哥' => '千里達托貝哥',
 '特立尼达和托巴哥' => '千里達托貝哥',
-'å\8d\8aè§\92' => 'å\8d\8aå½¢',
-'卡塔爾' => '卡達',
+'å\8d\97æ\9c\9dé²\9c' => 'å\8d\97é\9f\93',
+'卡斯特罗' => '卡斯楚',
 '卡塔尔' => '卡達',
-'打印機' => '印表機',
+'卡塔爾' => '卡達',
 '打印机' => '印表機',
-'厄立特里亚' => '厄利垂亞',
+'打印機' => '印表機',
 '厄立特里亞' => '厄利垂亞',
-'厄瓜多尔' => '厄瓜多',
+'厄立特里亚' => '厄利垂亞',
+'厄利垂亚' => '厄利垂亞',
 '厄瓜多爾' => '厄瓜多',
+'厄瓜多' => '厄瓜多',
+'厄瓜多尔' => '厄瓜多',
+'源代码' => '原始碼',
+'圆珠笔' => '原子筆',
+'反煙' => '反菸',
+'可卡因' => '古柯鹼',
+'便携式' => '可攜式',
+'叱咤' => '叱吒',
+'叱咤9' => '叱咤9',
+'叱咤M' => '叱咤M',
+'叱咤叱' => '叱咤叱',
+'叱咤咤' => '叱咤咤',
+'叱咤樂壇' => '叱咤樂壇',
+'斯坦福' => '史丹福',
+'斯皮尔伯格' => '史匹柏',
+'斯特劳斯' => '史特勞斯',
 '斯威士兰' => '史瓦濟蘭',
 '斯威士蘭' => '史瓦濟蘭',
-'吉布提' => '吉布地',
+'斯蒂芬' => '史蒂芬',
+'斯大林' => '史達林',
+'結他' => '吉他',
+'乞力馬札羅' => '吉力馬札羅',
+'乞力马扎罗' => '吉力馬札羅',
 '吉布堤' => '吉布地',
+'吉布提' => '吉布地',
+'吉尔吉斯斯坦' => '吉爾吉斯',
 '基里巴斯' => '吉里巴斯',
 '圖瓦盧' => '吐瓦魯',
 '图瓦卢' => '吐瓦魯',
+'吸煙' => '吸菸',
+'呂宋煙' => '呂宋菸',
 '哈萨克斯坦' => '哈薩克',
+'格丁根' => '哥廷根',
+'哥特式' => '哥德式',
 '哥斯達黎加' => '哥斯大黎加',
 '哥斯达黎加' => '哥斯大黎加',
-'格魯吉亞' => '喬治亞',
-'格鲁吉亚' => '喬治亞',
+'卡拉奇' => '喀拉蚩',
+'乔治·奥威尔' => '喬治·歐威爾',
 '佐治亚' => '喬治亞',
 '佐治亞' => '喬治亞',
-'嘴裏' => '嘴裡',
+'格魯吉亞' => '喬治亞',
+'格鲁吉亚' => '喬治亞',
+'单反相机' => '單眼相機',
+'單鏡反光機' => '單眼相機',
+'嘯咤' => '嘯吒',
+'四杆' => '四桿',
 '土库曼斯坦' => '土庫曼',
-'薯仔' => '土豆',
-'土豆網' => '土豆網',
-'土豆网' => '土豆網',
-'坦桑尼亚' => '坦尚尼亞',
+'圖盧茲' => '土魯斯',
+'图卢兹' => '土魯斯',
+'IP' => '地址',
+'戛纳' => '坎城',
+'堪培拉' => '坎培拉',
 '坦桑尼亞' => '坦尚尼亞',
+'坦桑尼亚' => '坦尚尼亞',
 '端口' => '埠',
+'首席执行官' => '執行長',
 '塔吉克斯坦' => '塔吉克',
-'塞舌尔' => '塞席爾',
 '塞舌爾' => '塞席爾',
-'塞浦路斯' => '塞普勒斯',
-'夏天裏' => '夏天裡',
-'夏日裏' => '夏日裡',
-'多明尼加共和國' => '多明尼加',
-'多米尼加共和国' => '多明尼加',
-'多米尼加共和國' => '多明尼加',
-'多米尼加国' => '多米尼克',
-'多明尼加國' => '多米尼克',
-'穿梭機' => '太空梭',
+'塞舌尔' => '塞席爾',
+'萨拉热窝' => '塞拉耶佛',
+'薩拉熱窩' => '塞拉耶佛',
+'塞爾維亞和黑山' => '塞爾維亞與蒙特內哥羅',
+'塞爾維亞與蒙特內哥羅' => '塞爾維亞與蒙特內哥羅',
+'塞尔维亚和黑山' => '塞爾維亞與蒙特內哥羅',
+'塞维利亚' => '塞維亞',
+'西維爾' => '塞維亞',
+'塞黑' => '塞蒙',
+'英联邦' => '大英國協',
+'共和联邦' => '大英國協',
+'英聯邦' => '大英國協',
+'宇航员' => '太空人',
+'太空飛行員' => '太空人',
 '航天飞机' => '太空梭',
-'尼日利亚' => '奈及利亞',
+'穿梭機' => '太空梭',
+'宇航服' => '太空衣',
+'航天器' => '太空飛行器',
 '尼日利亞' => '奈及利亞',
-'字符' => '字元',
-'字号' => '字型大小',
+'尼日利亚' => '奈及利亞',
+'忌廉' => '奶油',
+'荷里活' => '好萊塢',
+'威廉姆斯' => '威廉士',
+'威斯特法倫' => '威斯伐倫',
+'威斯特法伦' => '威斯伐倫',
+'威士顿康星' => '威斯康辛',
+'威爾士' => '威爾斯',
+'威尔士' => '威爾斯',
 '字库' => '字型檔',
-'字符集' => '字符集',
 '存盘' => '存檔',
-'學裏' => '學裡',
+'门德尔松' => '孟德爾頌',
+'孟德爾遜' => '孟德爾頌',
+'安哈爾特' => '安哈特',
+'安哈尔特' => '安哈特',
 '安提瓜和巴布達' => '安地卡及巴布達',
 '安提瓜和巴布达' => '安地卡及巴布達',
-'宋元' => '宋元',
 '洪都拉斯' => '宏都拉斯',
-'寻址' => '定址',
-'寒假裏' => '寒假裡',
+'密歇根' => '密西根',
 '宽带' => '寬頻',
-'老撾' => '寮國',
+'老撾人民民主共和國' => '寮人民民主共和國',
+'老挝人民民主共和国' => '寮人民民主共和國',
 '老挝' => '寮國',
-'打门' => '射門',
-'專輯裏' => '專輯裡',
+'老撾' => '寮國',
+'老挝语' => '寮語',
+'老撾語' => '寮語',
+'高峰时段' => '尖峰時段',
+'高峰时间' => '尖峰時間',
 '贊比亞' => '尚比亞',
 '赞比亚' => '尚比亞',
-'尼日爾' => '尼日',
+'尼克松' => '尼克森',
 '尼日尔' => '尼日',
-'山洞裏' => '山洞裡',
-'巴布亞新畿內亞' => '巴布亞紐幾內亞',
+'尼日爾' => '尼日',
+'雅马哈' => '山葉',
+'机床' => '工具機',
+'機床' => '工具機',
+'珍寶客機' => '巨無霸客機',
+'发达国家' => '已開發國家',
+'巴塞隆拿' => '巴塞隆納',
+'巴塞罗那' => '巴塞隆納',
 '巴布亚新几内亚' => '巴布亞紐幾內亞',
+'巴布亞新畿內亞' => '巴布亞紐幾內亞',
+'巴士拉' => '巴斯拉',
 '巴巴多斯' => '巴貝多',
-'布基纳法索' => '布吉納法索',
+'佈' => '布',
 '布基納法索' => '布吉納法索',
-'布什' => '布希',
+'布基纳法索' => '布吉納法索',
 '布殊' => '布希',
+'布什' => '布希',
+'勃兰登堡' => '布蘭登堡',
+'勃蘭登堡' => '布蘭登堡',
+'布里斯托尔' => '布里斯托',
+'布隆方丹' => '布隆泉',
+'希拉里' => '希拉蕊',
+'希特拉' => '希特勒',
+'巴尔米拉环礁' => '帕邁拉環礁',
 '帕劳' => '帛琉',
-'例程' => '常式',
-'平治之乱' => '平治之亂',
-'平治之亂' => '平治之亂',
-'年代裏' => '年代裡',
+'希拉克' => '席哈克',
+'账' => '帳',
+'干着急' => '干著急',
+'干着' => '幹著',
+'畿內亞' => '幾內亞',
 '几内亚比绍' => '幾內亞比索',
 '幾內亞比紹' => '幾內亞比索',
-'彩带' => '彩帶',
-'彩排' => '彩排',
-'彩楼' => '彩樓',
-'彩牌楼' => '彩牌樓',
-'復蘇' => '復甦',
-'复苏' => '復甦',
-'心裏' => '心裡',
+'比利牛斯' => '庇里牛斯',
+'康涅狄格' => '康乃狄克',
+'约翰斯顿岛' => '強斯頓環礁',
+'形而上学' => '形上學',
+'形而上學' => '形上學',
+'得克薩斯' => '德克薩斯',
+'得克萨斯' => '德克薩斯',
+'德累斯頓' => '德勒斯登',
+'德累斯顿' => '德勒斯登',
+'德里达' => '德希達',
+'特拉华' => '德拉瓦',
+'特拉華' => '德拉瓦',
 '快闪存储器' => '快閃記憶體',
 '闪存' => '快閃記憶體',
 '想象' => '想像',
-'传感' => '感測',
-'习用' => '慣用',
-'戏彩娱亲' => '戲綵娛親',
-'戲裏' => '戲裡',
-'手电筒' => '手電筒',
-'手电' => '手電筒',
-'括号' => '括弧',
-'拿破侖' => '拿破崙',
-'拿破仑' => '拿破崙',
+'愛德文' => '愛德溫',
+'艾滋' => '愛滋',
+'艾奧瓦' => '愛荷華',
+'爱德华州' => '愛達荷州',
+'应用程序' => '應用程式',
+'戈爾巴喬夫' => '戈巴契夫',
+'戈尔巴乔夫' => '戈巴契夫',
+'戒煙' => '戒菸',
+'戴克里先' => '戴克里先',
+'抽煙' => '抽菸',
+'拉普兰' => '拉布蘭',
+'拒煙' => '拒菸',
+'捲煙' => '捲菸',
 '積架' => '捷豹',
-'扫瞄仪' => '掃瞄器',
-'挂钩' => '掛鉤',
-'掛鈎' => '掛鉤',
 '控件' => '控制項',
+'推杆' => '推桿',
+'第比利斯' => '提比里西',
+'揮杆' => '揮桿',
+'挥杆' => '揮桿',
+'搜索引擎' => '搜尋引擎',
+'摩根士丹利' => '摩根史坦利',
 '台球' => '撞球',
-'桌球' => '撞球',
-'便携式' => '攜帶型',
-'故事裏' => '故事裡',
+'攻打印' => '攻打印',
+'数字技术' => '數位技術',
+'數碼技術' => '數位技術',
+'數碼相機' => '數位相機',
+'数码相机' => '數位相機',
+'数字信号' => '數位訊號',
+'數碼訊號' => '數位訊號',
+'数字电视' => '數位電視',
+'數碼電視' => '數位電視',
 '调制解调器' => '數據機',
 '調制解調器' => '數據機',
-'斯洛文尼亞' => '斯洛維尼亞',
 '斯洛文尼亚' => '斯洛維尼亞',
-'新纪元' => '新紀元',
-'新紀元' => '新紀元',
-'日子裏' => '日子裡',
-'春假裏' => '春假裡',
-'春天裏' => '春天裡',
-'春日裏' => '春日裡',
-'時間裏' => '時間裡',
-'芯片' => '晶元',
-'暑假裏' => '暑假裡',
-'村子裏' => '村子裡',
+'斯洛文尼亞' => '斯洛維尼亞',
+'新罕布什尔' => '新罕布夏',
+'施罗德' => '施洛德',
+'旱煙' => '旱菸',
+'普利策' => '普利茲',
+'芯片' => '晶片',
+'智能卡' => '智慧卡',
+'智能手機' => '智慧型手機',
+'智能手机' => '智慧型手機',
+'智能电话' => '智慧型電話',
+'智能電話' => '智慧型電話',
+'知识产权' => '智慧財產權',
+'知識產權' => '智慧財產權',
+'萌島' => '曼島',
+'马恩岛' => '曼島',
+'木杆' => '木桿',
+'列奥纳多' => '李奧納多',
+'杜塞爾多夫' => '杜塞道夫',
+'杜塞尔多夫' => '杜塞道夫',
+'迪拜' => '杜拜',
+'亚细安' => '東協',
+'东盟' => '東協',
+'东南亚国家联盟' => '東南亞國協',
+'柏林墙' => '柏林圍牆',
+'柏林牆' => '柏林圍牆',
 '乍得' => '查德',
-'克林頓' => '柯林頓',
+'查韦斯' => '查維茲',
 '克林顿' => '柯林頓',
-'格林納達' => '格瑞那達',
+'克林頓' => '柯林頓',
+'撒切尔' => '柴契爾',
+'戴卓爾' => '柴契爾',
 '格林纳达' => '格瑞那達',
-'凡高' => '梵谷',
-'森林裏' => '森林裡',
-'棺材裏' => '棺材裡',
-'榴蓮' => '榴槤',
+'格林納達' => '格瑞那達',
+'乒乓球' => '桌球',
+'乒乓' => '桌球',
+'杆弟' => '桿弟',
+'杆身' => '桿身',
+'杆頭' => '桿頭',
+'杆头' => '桿頭',
+'梅尔·吉布森' => '梅爾·吉勃遜',
+'梵高' => '梵谷',
+'桑巴舞' => '森巴舞',
 '榴莲' => '榴槤',
-'仿真' => '模擬',
-'毛里裘斯' => '模里西斯',
+'榴蓮' => '榴槤',
+'枪支' => '槍枝',
+'标准杆' => '標準桿',
+'標準杆' => '標準桿',
 '毛里求斯' => '模里西斯',
+'毛里裘斯' => '模里西斯',
 '機械人' => '機器人',
 '机器人' => '機器人',
+'概率' => '機率',
+'電單車' => '機車',
+'枱' => '檯',
 '字段' => '欄位',
-'歷史裏' => '歷史裡',
-'å\85\83é\9f³' => 'æ¯\8dé\9f³',
-'æ°¸å\8e\86' => 'æ°¸æ\9b\86',
+'奧巴馬' => '歐巴馬',
+'奥巴马' => 'æ­\90巴馬',
+'æ­£å\9c¨å\8f±å\92¤' => 'æ­£å\9c¨å\8f±å\92¤',
 '文莱' => '汶萊',
+'沙律' => '沙拉',
 '沙特阿拉伯' => '沙烏地阿拉伯',
 '沙地阿拉伯' => '沙烏地阿拉伯',
+'法属圭亚那' => '法屬蓋亞那',
+'波斯尼亚' => '波士尼亞',
+'波斯尼亞' => '波士尼亞',
 '波斯尼亞黑塞哥維那' => '波士尼亞赫塞哥維納',
 '波斯尼亚和黑塞哥维那' => '波士尼亞赫塞哥維納',
 '博茨瓦纳' => '波札那',
 '博茨瓦納' => '波札那',
-'流程控制' => '流程控制',
+'波黑' => '波赫',
+'洋煙' => '洋菸',
+'帕特里克' => '派屈克',
+'海洛英' => '海洛因',
 '侯赛因' => '海珊',
 '侯賽因' => '海珊',
-'深淵裏' => '深淵裡',
-'光标' => '游標',
 '鼠标' => '滑鼠',
-'算法' => '演算法',
+'漢诺威' => '漢諾瓦',
+'汉诺威' => '漢諾瓦',
 '乌兹别克斯坦' => '烏茲別克',
-'词组' => '片語',
-'獄裏' => '獄裡',
+'烤煙' => '烤菸',
+'無煙日' => '無菸日',
+'無煙環境' => '無菸環境',
+'烟熏' => '煙燻',
+'首席运营官' => '營運長',
+'熏烤' => '燻烤',
+'熏肉' => '燻肉',
+'熏黑' => '燻黑',
+'版权信息' => '版權資訊',
+'疯牛症' => '狂牛症',
+'鐵托' => '狄托',
+'铁托' => '狄托',
 '塞拉利昂' => '獅子山',
-'危地马拉' => '瓜地馬拉',
+'独联体' => '獨立國協',
+'独立国家联合体' => '獨立國家國協',
+'波利尼西亚' => '玻里尼西亞',
+'波利尼西亞' => '玻里尼西亞',
+'本杰明' => '班傑明',
+'本傑明' => '班傑明',
+'球杆' => '球桿',
+'理查德' => '理察',
+'卢塞恩' => '琉森',
 '危地馬拉' => '瓜地馬拉',
+'危地马拉' => '瓜地馬拉',
+'巴伦西亚' => '瓦倫西亞',
+'華倫西亞' => '瓦倫西亞',
 '冈比亚' => '甘比亞',
 '岡比亞' => '甘比亞',
-'疑兇' => '疑凶',
-'疑凶' => '疑凶',
-'百科裏' => '百科裡',
-'皮裏陽秋' => '皮裡陽秋',
+'肯尼迪' => '甘迺迪',
+'留尼汪' => '留尼旺',
+'毕加索' => '畢卡索',
+'迭代' => '疊代',
+'徵狀' => '症狀',
+'勃朗宁' => '白朗寧',
+'百慕大' => '百慕達',
 '盧旺達' => '盧安達',
 '卢旺达' => '盧安達',
-'真凶' => '真凶',
-'真兇' => '真凶',
-'眼睛裏' => '眼睛裡',
-'硅片' => '矽片',
-'硅谷' => '矽谷',
+'睾' => '睪',
+'知识产权局' => '知識產權局',
+'知識產權署' => '知識產權署',
+'知識產權局' => '知識產權署',
+'知识产权署' => '知識產權署',
+'硅' => '矽',
+'硅藻' => '硅藻',
 '硬盘' => '硬碟',
 '硬件' => '硬體',
 '盘片' => '碟片',
 '磁盘' => '磁碟',
 '磁道' => '磁軌',
-'秋假裏' => '秋假裡',
-'秋天裏' => '秋天裡',
-'秋日裏' => '秋日裡',
-'程控' => '程式控制',
+'禁煙' => '禁菸',
+'福尔马林' => '福馬林',
+'福爾馬林' => '福馬林',
+'私煙' => '私菸',
+'程序员' => '程式設計師',
+'编程语言' => '程式語言',
+'空氣質素' => '空氣品質',
+'空气质量' => '空氣品質',
 '突尼斯' => '突尼西亞',
-'尾注' => '章節附註',
 '蹦极跳' => '笨豬跳',
 '绑紧跳' => '笨豬跳',
-'等于' => '等於',
-'短訊' => '簡訊',
 '短信' => '簡訊',
-'系列裏' => '系列裡',
-'新西蘭' => '紐西蘭',
+'纽黑文' => '紐哈芬',
+'新奥尔良' => '紐奧良',
+'新奧爾良' => '紐奧良',
+'新几内亚' => '紐幾內亞',
 '新西兰' => '紐西蘭',
-'所罗门群岛' => '索羅門群島',
+'新西蘭' => '紐西蘭',
+'紙煙' => '紙菸',
+'索贊尼辛' => '索忍尼辛',
+'索尔仁尼琴' => '索忍尼辛',
 '所羅門群島' => '索羅門群島',
-'索馬里' => '索馬利亞',
+'所罗门群岛' => '索羅門群島',
 '索马里' => '索馬利亞',
-'结彩' => '結綵',
+'索馬里' => '索馬利亞',
+'索马里兰' => '索馬利蘭',
+'索馬里蘭' => '索馬利蘭',
+'維爾京群島' => '維京群島',
+'维尔京群岛' => '維京群島',
+'弗吉尼亚' => '維吉尼亞',
 '佛得角' => '維德角',
-'網絡' => '網路',
-'网络' => '網路',
-'互聯網' => '網際網路',
+'维特根斯坦' => '維根斯坦',
+'互联网络' => '網際網路',
 '因特网' => '網際網路',
-'彩球' => '綵球',
-'彩绸' => '綵綢',
-'彩线' => '綵線',
-'彩船' => '綵船',
-'彩衣' => '綵衣',
-'綫' => '線',
-'缉凶' => '緝凶',
-'緝兇' => '緝凶',
-'緝凶' => '緝凶',
+'互聯網' => '網際網路',
+'互联网' => '網際網路',
+'系着' => '繫著',
+'卢瓦尔' => '羅亞爾',
+'盧瓦爾' => '羅亞爾',
+'卢浮宫' => '羅浮宮',
+'樂行童軍' => '羅浮童軍',
 '意大利' => '義大利',
-'老字号' => '老字號',
+'昂山素姬' => '翁山蘇姬',
+'昂山素季' => '翁山蘇姬',
 '圣基茨和尼维斯' => '聖克里斯多福及尼維斯',
 '聖吉斯納域斯' => '聖克里斯多福及尼維斯',
 '聖文森特和格林納丁斯' => '聖文森及格瑞那丁',
 '圣文森特和格林纳丁斯' => '聖文森及格瑞那丁',
-'圣卢西亚' => '聖露西亞',
+'圣赫勒拿' => '聖赫倫那',
 '聖盧西亞' => '聖露西亞',
+'圣卢西亚' => '聖露西亞',
 '圣马力诺' => '聖馬利諾',
 '聖馬力諾' => '聖馬利諾',
-'肚裏' => '肚裡',
 '肯尼亚' => '肯亞',
-'肯雅' => '肯亞',
-'航天大学' => '航天大學',
-'苦裏' => '苦裡',
-'毛里塔尼亚' => '茅利塔尼亞',
+'氨基酸' => '胺基酸',
+'卧' => '臥',
+'自由泳' => '自由式',
+'三藩市' => '舊金山',
+'艾森豪威尔' => '艾森豪',
+'埃菲尔' => '艾菲爾',
+'阿里埃勒·沙龙' => '艾里爾·夏隆',
+'阿里埃勒·沙龍' => '艾里爾·夏隆',
+'帕塔亚' => '芭達亞',
+'黎克特制' => '芮氏',
+'里氏0' => '芮氏0',
+'里氏1' => '芮氏1',
+'里氏2' => '芮氏2',
+'里氏3' => '芮氏3',
+'里氏4' => '芮氏4',
+'里氏5' => '芮氏5',
+'里氏6' => '芮氏6',
+'里氏7' => '芮氏7',
+'里氏8' => '芮氏8',
+'里氏9' => '芮氏9',
+'里氏地震规模' => '芮氏地震規模',
+'里氏规模' => '芮氏規模',
+'里氏震级' => '芮氏規模',
+'当且仅当' => '若且唯若',
+'味美思' => '苦艾酒',
 '毛里塔尼亞' => '茅利塔尼亞',
+'毛里塔尼亚' => '茅利塔尼亞',
+'霍尔木兹' => '荷姆茲',
+'霍爾木茲' => '荷姆茲',
+'荷李活道' => '荷李活道',
 '莫桑比克' => '莫三比克',
-'万历' => '萬曆',
-'瓦努阿图' => '萬那杜',
+'瓦文萨' => '華勒沙',
+'華里沙' => '華勒沙',
+'瓦格纳' => '華格納',
+'煙具' => '菸具',
+'煙品' => '菸品',
+'煙嘴' => '菸嘴',
+'煙捲' => '菸捲',
+'煙斗' => '菸斗',
+'煙民' => '菸民',
+'煙灰' => '菸灰',
+'煙癮' => '菸癮',
+'煙絲' => '菸絲',
+'煙草' => '菸草',
+'煙葉' => '菸葉',
+'煙蒂' => '菸蒂',
+'煙袋' => '菸袋',
+'煙農' => '菸農',
+'煙酒' => '菸酒',
+'煙頭' => '菸頭',
+'煙鬼' => '菸鬼',
+'煙鹼' => '菸鹼',
+'万历朝鲜战争' => '萬曆朝鮮戰爭',
 '瓦努阿圖' => '萬那杜',
-'也门' => '葉門',
+'瓦努阿图' => '萬那杜',
+'叶利钦' => '葉爾欽',
+'葉利欽' => '葉爾欽',
+'埃里温' => '葉里溫',
+'埃里溫' => '葉里溫',
 '也門' => '葉門',
+'也门' => '葉門',
 '着' => '著',
-'科摩羅' => '葛摩',
 '科摩罗' => '葛摩',
+'科摩羅' => '葛摩',
+'黑山共和國' => '蒙特內哥羅共和國',
+'黑山共和国' => '蒙特內哥羅共和國',
+'蒙特利爾' => '蒙特婁',
+'滿地可' => '蒙特婁',
+'蒙特利尔' => '蒙特婁',
+'普密蓬' => '蒲美蓬',
 '布隆迪' => '蒲隆地',
-'圭亞那' => '蓋亞那',
 '圭亚那' => '蓋亞那',
-'火锅盖帽' => '蓋火鍋',
+'开曼群岛' => '蓋曼群島',
+'開曼群島' => '蓋曼群島',
+'蕭士達高維契' => '蕭士塔高維奇',
+'肖斯塔科维奇' => '蕭士塔高維奇',
+'肖邦' => '蕭邦',
+'薛定谔' => '薛丁格',
+'扎伊爾' => '薩伊',
+'扎伊尔' => '薩伊',
+'素檀' => '蘇丹',
 '苏里南' => '蘇利南',
-'行凶' => '行凶',
-'行兇' => '行凶',
-'行凶后' => '行凶後',
-'行兇後' => '行凶後',
-'行凶後' => '行凶後',
-'流動電話' => '行動電話',
+'浮罗交怡' => '蘭卡威',
+'浮羅交怡' => '蘭卡威',
+'劳拉' => '蘿拉',
+'荧光' => '螢光',
+'荧屏' => '螢屏',
+'屏幕' => '螢幕',
+'流動網絡' => '行動網路',
+'移动网络' => '行動網路',
 '移动电话' => '行動電話',
-'行程控制' => '行程控制',
-'衞' => '衛',
-'卫生' => '衛生',
-'衞生' => '衛生',
-'埃塞俄比亚' => '衣索比亞',
+'流動電話' => '行動電話',
+'冲着' => '衝著',
 '埃塞俄比亞' => '衣索比亞',
-'裏勾外連' => '裡勾外連',
-'裏面' => '裡面',
+'埃塞俄比亚' => '衣索比亞',
+'克隆人' => '複製人',
+'國際象棋' => '西洋棋',
+'囯际象棋' => '西洋棋',
+'国际象棋' => '西洋棋',
+'赫梯' => '西臺',
+'解像度' => '解析度',
 '分辨率' => '解析度',
 '译码' => '解碼',
 '出租车' => '計程車',
-'权限' => '許可權',
+'约翰逊' => '詹森',
+'诺曼底' => '諾曼第',
 '瑙鲁' => '諾魯',
 '瑙魯' => '諾魯',
-'变量' => '變數',
 '科特迪瓦' => '象牙海岸',
-'貝寧' => '貝南',
-'贝宁' => '貝南',
-'伯利茲' => '貝里斯',
+'贝尔格莱德' => '貝爾格勒',
+'貝爾格萊德' => '貝爾格勒',
 '伯利兹' => '貝里斯',
-'買兇' => '買凶',
-'买凶' => '買凶',
-'買凶' => '買凶',
+'伯利茲' => '貝里斯',
+'首席财务官' => '財務長',
+'集装箱' => '貨櫃',
+'數據庫' => '資料庫',
 '数据库' => '資料庫',
 '信息论' => '資訊理論',
-'奔驰' => '賓士',
-'平治' => '賓士',
-'利比里亚' => '賴比瑞亞',
+'宾西法尼亚' => '賓夕法尼亞',
 '利比里亞' => '賴比瑞亞',
-'萊索托' => '賴索托',
+'利比里亚' => '賴比瑞亞',
 '莱索托' => '賴索托',
+'萊索托' => '賴索托',
+'塞浦路斯' => '賽普勒斯',
+'碧咸' => '贝克漢',
+'赫丘勒·波洛' => '赫丘勒·白羅',
+'赫鲁晓夫' => '赫魯雪夫',
+'切尔诺贝利' => '車諾比',
 '软驱' => '軟碟機',
 '軟件' => '軟體',
 '软件' => '軟體',
-'加载' => '載入',
 '津巴布韦' => '辛巴威',
 '津巴布韋' => '辛巴威',
-'词汇' => '辭彙',
-'加纳' => '迦納',
-'加納' => '迦納',
-'追凶' => '追凶',
-'追兇' => '追凶',
-'這裏' => '這裡',
-'逞凶鬥狠' => '逞凶鬥狠',
-'逞兇鬥狠' => '逞凶鬥狠',
-'逞凶斗狠' => '逞凶鬥狠',
-'即食麵' => '速食麵',
-'方便面' => '速食麵',
-'快速面' => '速食麵',
-'连字号' => '連字號',
+'径入' => '逕入',
+'径到' => '逕到',
+'径取' => '逕取',
+'径启' => '逕啟',
+'径寄' => '逕寄',
+'径庭' => '逕庭',
+'径往' => '逕往',
+'径自' => '逕自',
+'径行' => '逕行',
+'径迎' => '逕迎',
+'链接' => '連結',
+'連結他' => '連結他',
 '进制' => '進位',
-'入球' => '進球',
 '算子' => '運算元',
-'遠程控制' => '遠程控制',
-'è¿\9cç¨\8bæ\8e§å\88¶' => 'é\81 ç¨\8bæ\8e§å\88',
+'达·芬奇' => '達·文西',
+'è¾¾è\8a¬å¥\87' => 'é\81\94æ\96\87西',
 '溫納圖萬' => '那杜',
-'醫院裏' => '醫院裡',
+'丘吉尔' => '邱吉爾',
+'多普勒' => '都卜勒',
+'奥斯曼' => '鄂圖曼',
 '酰' => '醯',
+'里士满' => '里奇蒙',
+'金沙薩' => '金夏沙',
+'金沙萨' => '金夏沙',
+'健力士世界纪录' => '金氏世界紀錄',
+'健力士世界紀錄' => '金氏世界紀錄',
+'吉尼斯世界纪录' => '金氏世界紀錄',
+'钚' => '鈽',
 '钩' => '鉤',
 '鈎' => '鉤',
-'钩心斗角' => '鉤心鬥角',
-'鈎心鬥角' => '鉤心鬥角',
 '锎' => '鉲',
+'锫' => '鉳',
+'镅' => '鋂',
+'镎' => '錼',
+'钫' => '鍅',
+'炼金' => '鍊金',
+'锻炼' => '鍛鍊',
+'锝' => '鎝',
+'鐵杆' => '鐵桿',
+'铁杆' => '鐵桿',
+'泰坦尼克号' => '鐵達尼號',
+'锿' => '鑀',
+'关系着' => '關係著',
 '写保护' => '防寫',
+'阿布扎比' => '阿布達比',
 '阿拉伯联合酋长国' => '阿拉伯聯合大公國',
 '阿拉伯聯合酋長國' => '阿拉伯聯合大公國',
-'噪声' => '雜訊',
-'脱机' => '離線',
-'雪裏紅' => '雪裡紅',
-'雪裏蕻' => '雪裡蕻',
-'雪铁龙' => '雪鐵龍',
-'青霉素' => '青黴素',
-'异步' => '非同步',
+'亚拉巴马' => '阿拉巴馬',
+'阿联酋' => '阿聯',
+'阿聯酋' => '阿聯',
+'罗纳德·里根' => '隆納·雷根',
+'私隱' => '隱私',
+'耶加達' => '雅加達',
+'雅尔塔' => '雅爾達',
+'雅爾塔' => '雅爾達',
+'雅穆苏克雷' => '雅穆索戈',
+'雅穆蘇克雷' => '雅穆索戈',
+'悉尼' => '雪梨',
+'雪茄煙' => '雪茄菸',
+'莱特湾' => '雷伊泰灣',
+'萊特灣' => '雷伊泰灣',
+'激光' => '雷射',
+'雷诺阿' => '雷諾瓦',
+'電子煙' => '電子菸',
+'晶體管' => '電晶體',
+'晶体管' => '電晶體',
+'电杆' => '電桿',
+'电线杆' => '電線桿',
+'计算机程序' => '電腦程式',
+'电脑程序' => '電腦程式',
+'荷尔斯泰因' => '霍爾斯坦',
+'荷爾斯泰因' => '霍爾斯坦',
+'朝鲜战争' => '韓戰',
 '声卡' => '音效卡',
 '缺省' => '預設',
-'颁布' => '頒布',
-'頒佈' => '頒布',
-'領域裏' => '領域裡',
-'头球' => '頭槌',
-'粒入球' => '顆進球',
-'館裏' => '館裡',
+'导弹' => '飛彈',
+'糊口' => '餬口',
+'香煙' => '香菸',
 '马里共和国' => '馬利共和國',
 '馬里共和國' => '馬利共和國',
+'马拉维' => '馬拉威',
+'馬斯特里赫特' => '馬斯垂克',
+'马斯特里赫特' => '馬斯垂克',
 '马耳他' => '馬爾他',
-'马尔代夫' => '馬爾地夫',
 '馬爾代夫' => '馬爾地夫',
-'萬事得' => '馬自達',
-'狄安娜' => '黛安娜',
+'马尔代夫' => '馬爾地夫',
+'馬利蘭' => '馬里蘭',
+'高清电视' => '高畫質電視',
+'斗着' => '鬥著',
+'魯賓斯·巴里切羅' => '魯本·巴瑞切羅',
+'咪高峰' => '麥克風',
+'迈克尔' => '麥可',
+'麦克尔' => '麥可',
+'邁凱輪' => '麥拿輪',
+'迈凯轮' => '麥拿輪',
+'马萨诸塞' => '麻薩諸塞',
 '戴安娜' => '黛安娜',
-'點裏' => '點裡',
-'位图' => '點陣圖',
+'狄安娜' => '黛安娜',
+'點煙' => '點菸',
+'霉素' => '黴素',
+);
+
+$zh2HK = array(
+'IP地址' => 'IP位址',
+'·威爾士' => '·威爾士',
+'·威尔士' => '·威爾士',
+'一地里' => '一地裏',
+'一年里' => '一年裏',
+'三十六著' => '三十六着',
+'三極體' => '三極管',
+'旧金山' => '三藩市',
+'舊金山' => '三藩市',
+'下著' => '下着',
+'下著作' => '下著作',
+'下著名' => '下著名',
+'下著有' => '下著有',
+'下著称' => '下著稱',
+'下著稱' => '下著稱',
+'下著者' => '下著者',
+'下著述' => '下著述',
+'下著录' => '下著錄',
+'下著錄' => '下著錄',
+'不占' => '不佔',
+'不萊梅' => '不來梅',
+'不著痕跡' => '不着痕跡',
+'不著邊際' => '不着邊際',
+'世纪里' => '世紀裏',
+'C型肝炎' => '丙型肝炎',
+'C肝' => '丙肝',
+'并发布' => '並發佈',
+'中文里' => '中文裏',
+'乘著' => '乘着',
+'乘著作' => '乘著作',
+'乘著名' => '乘著名',
+'乘著書' => '乘著書',
+'乘著稱' => '乘著稱',
+'乘著者' => '乘著者',
+'乘著述' => '乘著述',
+'乘著錄' => '乘著錄',
+'B型肝炎' => '乙型肝炎',
+'B肝' => '乙肝',
+'吉力馬札羅' => '乞力馬札羅',
+'葉門' => '也門',
+'事里' => '事裏',
+'二極體' => '二極管',
+'因特网' => '互聯網',
+'網際網路' => '互聯網',
+'井里' => '井裏',
+'亮著' => '亮着',
+'亮著作' => '亮著作',
+'亮著名' => '亮著名',
+'亮著書' => '亮著書',
+'亮著稱' => '亮著稱',
+'亮著者' => '亮著者',
+'亮著述' => '亮著述',
+'亮著錄' => '亮著錄',
+'人工智慧' => '人工智能',
+'人数里' => '人數裏',
+'仗著' => '仗着',
+'仗著作' => '仗著作',
+'仗著名' => '仗著名',
+'仗著書' => '仗著書',
+'仗著稱' => '仗著稱',
+'仗著者' => '仗著者',
+'仗著述' => '仗著述',
+'仗著錄' => '仗著錄',
+'代表著' => '代表着',
+'代表著作' => '代表著作',
+'代表著名' => '代表著名',
+'代表著書' => '代表著書',
+'代表著稱' => '代表著稱',
+'代表著者' => '代表著者',
+'代表著述' => '代表著述',
+'代表著錄' => '代表著錄',
+'伊斯坦堡' => '伊斯坦布爾',
+'伊斯蘭瑪巴德' => '伊斯蘭堡',
+'埃博拉' => '伊波拉',
+'貝里斯' => '伯利茲',
+'伯明罕' => '伯明翰',
+'伴著' => '伴着',
+'伴著作' => '伴著作',
+'伴著名' => '伴著名',
+'伴著書' => '伴著書',
+'伴著稱' => '伴著稱',
+'伴著者' => '伴著者',
+'伴著述' => '伴著述',
+'伴著錄' => '伴著錄',
+'布下了' => '佈下了',
+'布下的' => '佈下的',
+'布光' => '佈光',
+'布告' => '佈告',
+'布局' => '佈局',
+'布展' => '佈展',
+'布控' => '佈控',
+'布于' => '佈於',
+'布於' => '佈於',
+'布施' => '佈施',
+'布景' => '佈景',
+'布满' => '佈滿',
+'布滿' => '佈滿',
+'布置' => '佈置',
+'布设' => '佈設',
+'布設' => '佈設',
+'布警' => '佈警',
+'布道' => '佈道',
+'布防' => '佈防',
+'布阵' => '佈陣',
+'布陣' => '佈陣',
+'布雷、' => '佈雷、',
+'布雷。' => '佈雷。',
+'布雷封锁' => '佈雷封鎖',
+'布雷封鎖' => '佈雷封鎖',
+'布雷的' => '佈雷的',
+'布雷艇' => '佈雷艇',
+'布雷艦' => '佈雷艦',
+'布雷舰' => '佈雷艦',
+'布雷速度' => '佈雷速度',
+'布雷,' => '佈雷,',
+'布雷;' => '佈雷;',
+'布点' => '佈點',
+'布點' => '佈點',
+'字節' => '位元組',
+'字节' => '位元組',
+'低著' => '低着',
+'低著作' => '低著作',
+'低著名' => '低著名',
+'低著書' => '低著書',
+'低著稱' => '低著稱',
+'低著者' => '低著者',
+'低著述' => '低著述',
+'低著錄' => '低著錄',
+'住著' => '住着',
+'住著作' => '住著作',
+'住著名' => '住著名',
+'住著書' => '住著書',
+'住著稱' => '住著稱',
+'住著者' => '住著者',
+'住著述' => '住著述',
+'住著錄' => '住著錄',
+'占0' => '佔0',
+'占1' => '佔1',
+'占2' => '佔2',
+'占3' => '佔3',
+'占4' => '佔4',
+'占5' => '佔5',
+'占6' => '佔6',
+'占7' => '佔7',
+'占8' => '佔8',
+'占9' => '佔9',
+'占A' => '佔A',
+'占B' => '佔B',
+'占C' => '佔C',
+'占D' => '佔D',
+'占E' => '佔E',
+'占F' => '佔F',
+'占G' => '佔G',
+'占H' => '佔H',
+'占I' => '佔I',
+'占J' => '佔J',
+'占K' => '佔K',
+'占L' => '佔L',
+'占M' => '佔M',
+'占N' => '佔N',
+'占O' => '佔O',
+'占P' => '佔P',
+'占Q' => '佔Q',
+'占R' => '佔R',
+'占S' => '佔S',
+'占T' => '佔T',
+'占U' => '佔U',
+'占V' => '佔V',
+'占W' => '佔W',
+'占X' => '佔X',
+'占Y' => '佔Y',
+'占Z' => '佔Z',
+'占〇' => '佔〇',
+'占一' => '佔一',
+'占七' => '佔七',
+'占三' => '佔三',
+'占上風' => '佔上風',
+'占上风' => '佔上風',
+'占下' => '佔下',
+'占下风' => '佔下風',
+'占下風' => '佔下風',
+'占不占' => '佔不佔',
+'占不足' => '佔不足',
+'占世界' => '佔世界',
+'占中' => '佔中',
+'占主' => '佔主',
+'占主要' => '佔主要',
+'占九' => '佔九',
+'占了' => '佔了',
+'占二' => '佔二',
+'占五' => '佔五',
+'占人便宜' => '佔人便宜',
+'占位' => '佔位',
+'占住' => '佔住',
+'占占' => '佔佔',
+'占便宜' => '佔便宜',
+'占俄' => '佔俄',
+'占个' => '佔個',
+'占個' => '佔個',
+'占个位' => '佔個位',
+'占個位' => '佔個位',
+'占億' => '佔億',
+'占亿' => '佔億',
+'占優' => '佔優',
+'占优' => '佔優',
+'占先' => '佔先',
+'占光' => '佔光',
+'占全' => '佔全',
+'占两' => '佔兩',
+'占兩' => '佔兩',
+'占八' => '佔八',
+'占六' => '佔六',
+'占分' => '佔分',
+'占到' => '佔到',
+'占加' => '佔加',
+'占劣' => '佔劣',
+'占北' => '佔北',
+'占十' => '佔十',
+'占千' => '佔千',
+'占半' => '佔半',
+'占南' => '佔南',
+'占印' => '佔印',
+'占去' => '佔去',
+'占取' => '佔取',
+'占台' => '佔台',
+'占囁' => '佔囁',
+'占四' => '佔四',
+'占国' => '佔國',
+'占國' => '佔國',
+'占在' => '佔在',
+'占地' => '佔地',
+'占場' => '佔場',
+'占场' => '佔場',
+'占压' => '佔壓',
+'占壓' => '佔壓',
+'占多' => '佔多',
+'占大' => '佔大',
+'占好' => '佔好',
+'占小' => '佔小',
+'占少' => '佔少',
+'占局部' => '佔局部',
+'占屋' => '佔屋',
+'占山为' => '佔山為',
+'占山為' => '佔山為',
+'占市' => '佔市',
+'占平均' => '佔平均',
+'占床' => '佔床',
+'占座' => '佔座',
+'占後' => '佔後',
+'占得' => '佔得',
+'占德' => '佔德',
+'占所有' => '佔所有',
+'占掉' => '佔掉',
+'占據' => '佔據',
+'占据' => '佔據',
+'占整' => '佔整',
+'占新' => '佔新',
+'占有' => '佔有',
+'占东' => '佔東',
+'占東' => '佔東',
+'占查' => '佔查',
+'占次' => '佔次',
+'占比' => '佔比',
+'占法' => '佔法',
+'占满' => '佔滿',
+'占滿' => '佔滿',
+'占澳' => '佔澳',
+'占為' => '佔為',
+'占为' => '佔為',
+'占率' => '佔率',
+'占用' => '佔用',
+'占畢' => '佔畢',
+'占毕' => '佔畢',
+'占百' => '佔百',
+'占盡' => '佔盡',
+'占尽' => '佔盡',
+'占着' => '佔着',
+'占著' => '佔着',
+'占网' => '佔網',
+'占網' => '佔網',
+'占線' => '佔線',
+'占线' => '佔線',
+'占總' => '佔總',
+'占总' => '佔總',
+'占缺' => '佔缺',
+'占美' => '佔美',
+'占耕' => '佔耕',
+'占至多' => '佔至多',
+'占至少' => '佔至少',
+'占臺' => '佔臺',
+'占英' => '佔英',
+'占萬' => '佔萬',
+'占万' => '佔萬',
+'占著名' => '佔著名',
+'占著者' => '佔著者',
+'占葡' => '佔葡',
+'占蘇' => '佔蘇',
+'占苏' => '佔蘇',
+'占西' => '佔西',
+'占資' => '佔資',
+'占资' => '佔資',
+'占起' => '佔起',
+'占超过' => '佔超過',
+'占超過' => '佔超過',
+'占過' => '佔過',
+'占过' => '佔過',
+'占道' => '佔道',
+'占零' => '佔零',
+'占領' => '佔領',
+'占领' => '佔領',
+'占头' => '佔頭',
+'占頭' => '佔頭',
+'占头筹' => '佔頭籌',
+'占頭籌' => '佔頭籌',
+'占香' => '佔香',
+'占馬' => '佔馬',
+'占马' => '佔馬',
+'占高枝' => '佔高枝',
+'維德角' => '佛得角',
+'作品里' => '作品裏',
+'來著' => '來着',
+'來著作' => '來著作',
+'來著名' => '來著名',
+'來著書' => '來著書',
+'來著稱' => '來著稱',
+'來著者' => '來著者',
+'來著述' => '來著述',
+'來著錄' => '來著錄',
+'侵占' => '侵佔',
+'俄占' => '俄佔',
+'保障著' => '保障着',
+'保障著作' => '保障著作',
+'保障著名' => '保障著名',
+'保障著書' => '保障著書',
+'保障著稱' => '保障著稱',
+'保障著者' => '保障著者',
+'保障著述' => '保障著述',
+'保障著錄' => '保障著錄',
+'信著' => '信着',
+'信著作' => '信著作',
+'信著名' => '信著名',
+'信著書' => '信著書',
+'信著稱' => '信著稱',
+'信著者' => '信著者',
+'信著述' => '信著述',
+'信著錄' => '信著錄',
+'个里' => '個裏',
+'倒楣' => '倒霉',
+'候著' => '候着',
+'候著作' => '候著作',
+'候著名' => '候著名',
+'候著書' => '候著書',
+'候著稱' => '候著稱',
+'候著者' => '候著者',
+'候著述' => '候著述',
+'候著錄' => '候著錄',
+'借著' => '借着',
+'借著作' => '借著作',
+'借著名' => '借著名',
+'借著書' => '借著書',
+'借著稱' => '借著稱',
+'借著者' => '借著者',
+'借著述' => '借著述',
+'借著錄' => '借著錄',
+'假里' => '假裏',
+'做著' => '做着',
+'做著作' => '做著作',
+'做著名' => '做著名',
+'做著書' => '做著書',
+'做著稱' => '做著稱',
+'做著者' => '做著者',
+'做著述' => '做著述',
+'做著錄' => '做著錄',
+'金氏世界紀錄' => '健力士世界紀錄',
+'吉尼斯世界纪录' => '健力士世界紀錄',
+'側著' => '側着',
+'側著作' => '側著作',
+'側著名' => '側著名',
+'側著書' => '側著書',
+'側著稱' => '側著稱',
+'側著者' => '側著者',
+'側著述' => '側著述',
+'側著錄' => '側著錄',
+'偷著' => '偷着',
+'偷著作' => '偷著作',
+'偷著名' => '偷著名',
+'偷著書' => '偷著書',
+'偷著稱' => '偷著稱',
+'偷著者' => '偷著者',
+'偷著述' => '偷著述',
+'偷著錄' => '偷著錄',
+'備著' => '備着',
+'備著作' => '備著作',
+'備著名' => '備著名',
+'備著書' => '備著書',
+'備著稱' => '備著稱',
+'備著者' => '備著者',
+'備著述' => '備著述',
+'備著錄' => '備著錄',
+'傻里傻气' => '傻裏傻氣',
+'雇员' => '僱員',
+'雇用' => '僱用',
+'凶惡' => '兇惡',
+'凶殘' => '兇殘',
+'凶殺' => '兇殺',
+'先占' => '先佔',
+'雪鐵龍' => '先進',
+'雪铁龙' => '先進',
+'光著' => '光着',
+'光著作' => '光著作',
+'光著名' => '光著名',
+'光著書' => '光著書',
+'光著稱' => '光著稱',
+'光著者' => '光著者',
+'光著述' => '光著述',
+'光著錄' => '光著錄',
+'柯林頓' => '克林頓',
+'克羅埃西亞' => '克羅地亞',
+'公布' => '公佈',
+'冀著' => '冀着',
+'冀著作' => '冀著作',
+'冀著名' => '冀著名',
+'冀著書' => '冀著書',
+'冀著稱' => '冀著稱',
+'冀著者' => '冀著者',
+'冀著述' => '冀著述',
+'冀著錄' => '冀著錄',
+'冒著' => '冒着',
+'冒著作' => '冒著作',
+'冒著名' => '冒著名',
+'冒著書' => '冒著書',
+'冒著稱' => '冒著稱',
+'冒著者' => '冒著者',
+'冒著述' => '冒著述',
+'冒著錄' => '冒著錄',
+'冰山里' => '冰山裏',
+'恺撒' => '凱撒',
+'函数里' => '函數裏',
+'分布' => '分佈',
+'分占' => '分佔',
+'錢尼' => '切尼',
+'切尔诺贝利' => '切爾諾貝爾',
+'列支敦斯登' => '列支敦士登',
+'別著' => '別着',
+'賴比瑞亞' => '利比里亞',
+'刮著' => '刮着',
+'到山里' => '到山裏',
+'制著' => '制着',
+'制著作' => '制著作',
+'制著名' => '制著名',
+'制著書' => '制著書',
+'制著稱' => '制著稱',
+'制著者' => '制著者',
+'制著述' => '制著述',
+'制著錄' => '制著錄',
+'刻著' => '刻着',
+'刻著作' => '刻著作',
+'刻著名' => '刻著名',
+'刻著書' => '刻著書',
+'刻著稱' => '刻著稱',
+'刻著者' => '刻著者',
+'刻著述' => '刻著述',
+'刻著錄' => '刻著錄',
+'前波莫瑞' => '前波美拉尼亞',
+'剪彩' => '剪綵',
+'割占' => '割佔',
+'劃著' => '劃着',
+'擊劍' => '劍擊',
+'击剑' => '劍擊',
+'加薩走廊' => '加沙地帶',
+'迦納' => '加納',
+'加彭' => '加蓬',
+'努力著' => '努力着',
+'努力著作' => '努力著作',
+'努力著名' => '努力著名',
+'努力著書' => '努力著書',
+'努力著稱' => '努力著稱',
+'努力著者' => '努力著者',
+'努力著述' => '努力著述',
+'努力著錄' => '努力著錄',
+'努著' => '努着',
+'努著作' => '努著作',
+'努著名' => '努著名',
+'努著書' => '努著書',
+'努著稱' => '努著稱',
+'努著者' => '努著者',
+'努著述' => '努著述',
+'努著錄' => '努著錄',
+'布蘭登堡' => '勃蘭登堡',
+'動著' => '動着',
+'動著作' => '動著作',
+'動著名' => '動著名',
+'動著書' => '動著書',
+'動著稱' => '動著稱',
+'動著者' => '動著者',
+'動著述' => '動著述',
+'動著錄' => '動著錄',
+'包著' => '包着',
+'北朝鲜' => '北韓',
+'南朝鲜' => '南韓',
+'波札那' => '博茨瓦納',
+'占卜' => '占卜',
+'占國橋' => '占國橋',
+'占国桥' => '占國橋',
+'占有五不' => '占有五不',
+'占著作' => '占著作',
+'占著稱' => '占著稱',
+'占著述' => '占著述',
+'占著錄' => '占著錄',
+'卡普里亚蒂' => '卡佩雅蒂',
+'喀拉蚩' => '卡拉奇',
+'卡斯楚' => '卡斯特羅',
+'臥' => '卧',
+'印著' => '印着',
+'印著作' => '印著作',
+'印著名' => '印著名',
+'印著書' => '印著書',
+'印著稱' => '印著稱',
+'印著者' => '印著者',
+'印著述' => '印著述',
+'印著錄' => '印著錄',
+'瓜地馬拉' => '危地馬拉',
+'厄瓜多' => '厄瓜多爾',
+'厄瓜多爾' => '厄瓜多爾',
+'厄瓜多尔' => '厄瓜多爾',
+'厄利垂亚' => '厄立特里亞',
+'厄利垂亞' => '厄立特里亞',
+'源代码' => '原始碼',
+'去山里' => '去山裏',
+'去著' => '去着',
+'去著作' => '去著作',
+'去著名' => '去著名',
+'去著書' => '去著書',
+'去著稱' => '去著稱',
+'去著者' => '去著者',
+'去著述' => '去著述',
+'去著錄' => '去著錄',
+'参数里' => '參數裏',
+'受著' => '受着',
+'受著作' => '受著作',
+'受著名' => '受著名',
+'受著書' => '受著書',
+'受著稱' => '受著稱',
+'受著者' => '受著者',
+'受著述' => '受著述',
+'受著錄' => '受著錄',
+'丛林里' => '叢林裏',
+'口里' => '口裏',
+'只占' => '只佔',
+'叫著' => '叫着',
+'叫著作' => '叫著作',
+'叫著名' => '叫著名',
+'叫著書' => '叫著書',
+'叫著稱' => '叫著稱',
+'叫著者' => '叫著者',
+'叫著述' => '叫著述',
+'叫著錄' => '叫著錄',
+'古柯鹼' => '可卡因',
+'叱吒' => '叱咤',
+'斯皮尔伯格' => '史匹堡',
+'史匹柏' => '史匹堡',
+'史蒂芬·史匹柏' => '史提芬·史匹堡',
+'斯蒂芬·斯皮尔伯格' => '史提芬·史匹堡',
+'吃不著' => '吃不着',
+'吃得著' => '吃得着',
+'吃著' => '吃着',
+'吃里扒外' => '吃裏扒外',
+'吃里爬外' => '吃裏爬外',
+'吉布地' => '吉布堤',
+'吉尔吉斯斯坦' => '吉爾吉斯',
+'吊著' => '吊着',
+'向著' => '向着',
+'向著作' => '向著作',
+'向著名' => '向著名',
+'向著書' => '向著書',
+'向著稱' => '向著稱',
+'向著者' => '向著者',
+'向著述' => '向著述',
+'向著錄' => '向著錄',
+'吞占' => '吞佔',
+'吧台' => '吧枱',
+'含著' => '含着',
+'含著作' => '含著作',
+'含著名' => '含著名',
+'含著書' => '含著書',
+'含著稱' => '含著稱',
+'含著者' => '含著者',
+'含著述' => '含著述',
+'含著錄' => '含著錄',
+'吹著' => '吹着',
+'吹著作' => '吹著作',
+'吹著名' => '吹著名',
+'吹著書' => '吹著書',
+'吹著稱' => '吹著稱',
+'吹著者' => '吹著者',
+'吹著述' => '吹著述',
+'吹著錄' => '吹著錄',
+'呆著' => '呆着',
+'呆里呆气' => '呆裏呆氣',
+'味著' => '味着',
+'味著作' => '味著作',
+'味著名' => '味著名',
+'味著書' => '味著書',
+'味著稱' => '味著稱',
+'味著者' => '味著者',
+'味著述' => '味著述',
+'味著錄' => '味著錄',
+'咖哩' => '咖喱',
+'麦克风' => '咪高峰',
+'麥克風' => '咪高峰',
+'哥特式' => '哥德式',
+'哥斯大黎加' => '哥斯達黎加',
+'哪里' => '哪裏',
+'哭著' => '哭着',
+'哭著作' => '哭著作',
+'哭著名' => '哭著名',
+'哭著書' => '哭著書',
+'哭著稱' => '哭著稱',
+'哭著者' => '哭著者',
+'哭著述' => '哭著述',
+'哭著錄' => '哭著錄',
+'唱著' => '唱着',
+'唱著作' => '唱著作',
+'唱著名' => '唱著名',
+'唱著書' => '唱著書',
+'唱著稱' => '唱著稱',
+'唱著者' => '唱著者',
+'唱著述' => '唱著述',
+'唱著錄' => '唱著錄',
+'喝著' => '喝着',
+'喝著作' => '喝著作',
+'喝著名' => '喝著名',
+'喝著書' => '喝著書',
+'喝著稱' => '喝著稱',
+'喝著者' => '喝著者',
+'喝著述' => '喝著述',
+'喝著錄' => '喝著錄',
+'乔治·奥威尔' => '喬治·歐威爾',
+'單眼相機' => '單鏡反光機',
+'单反相机' => '單鏡反光機',
+'嗅不著' => '嗅不着',
+'嗅得著' => '嗅得着',
+'嗅著' => '嗅着',
+'凱薩琳' => '嘉芙蓮',
+'凯瑟琳' => '嘉芙蓮',
+'嘯吒' => '嘯咤',
+'嘴里' => '嘴裏',
+'嚷著' => '嚷着',
+'嚷著作' => '嚷著作',
+'嚷著名' => '嚷著名',
+'嚷著書' => '嚷著書',
+'嚷著稱' => '嚷著稱',
+'嚷著者' => '嚷著者',
+'嚷著述' => '嚷著述',
+'嚷著錄' => '嚷著錄',
+'回著' => '回着',
+'回著名' => '回著名',
+'因著' => '因着',
+'因著〈' => '因著〈',
+'因著《' => '因著《',
+'因著作' => '因著作',
+'因著名' => '因著名',
+'因著書' => '因著書',
+'因著稱' => '因著稱',
+'因著者' => '因著者',
+'因著述' => '因著述',
+'因著錄' => '因著錄',
+'困著' => '困着',
+'困著作' => '困著作',
+'困著名' => '困著名',
+'困著書' => '困著書',
+'困著稱' => '困著稱',
+'困著者' => '困著者',
+'困著述' => '困著述',
+'困著錄' => '困著錄',
+'圈占' => '圈佔',
+'圈里' => '圈裏',
+'西洋棋' => '國際象棋',
+'圍著' => '圍着',
+'圍著作' => '圍著作',
+'圍著名' => '圍著名',
+'圍著書' => '圍著書',
+'圍著稱' => '圍著稱',
+'圍著者' => '圍著者',
+'圍著述' => '圍著述',
+'圍著錄' => '圍著錄',
+'园里' => '園裏',
+'吐瓦魯' => '圖瓦盧',
+'土魯斯' => '圖盧茲',
+'图里的' => '圖裏的',
+'图里,' => '圖裏,',
+'土里' => '土裏',
+'在山里' => '在山裏',
+'在著' => '在着',
+'在著作' => '在著作',
+'在著名' => '在著名',
+'在著書' => '在著書',
+'在著稱' => '在著稱',
+'在著者' => '在著者',
+'在著述' => '在著述',
+'在著錄' => '在著錄',
+'蓋亞那' => '圭亞那',
+'地占' => '地佔',
+'地图里' => '地圖裏',
+'IP' => '地址',
+'堪培拉' => '坎培拉',
+'坐台' => '坐枱',
+'坐著' => '坐着',
+'坐著作' => '坐著作',
+'坐著名' => '坐著名',
+'坐著書' => '坐著書',
+'坐著稱' => '坐著稱',
+'坐著者' => '坐著者',
+'坐著述' => '坐著述',
+'坐著錄' => '坐著錄',
+'坑里' => '坑裏',
+'坦尚尼亞' => '坦桑尼亞',
+'衣索匹亞' => '埃塞俄比亚',
+'衣索比亞' => '埃塞俄比亞',
+'葉里溫' => '埃里溫',
+'城里' => '城裏',
+'域里' => '域裏',
+'吉里巴斯' => '基里巴斯',
+'场里' => '場裏',
+'塗著' => '塗着',
+'塞普勒斯' => '塞浦路斯',
+'賽普勒斯' => '塞浦路斯',
+'塞爾維亞與蒙特內哥羅' => '塞爾維亞和黑山',
+'塞席爾' => '塞舌爾',
+'壓著' => '壓着',
+'壓著作' => '壓著作',
+'壓著名' => '壓著名',
+'壓著書' => '壓著書',
+'壓著稱' => '壓著稱',
+'壓著者' => '壓著者',
+'壓著述' => '壓著述',
+'壓著錄' => '壓著錄',
+'壶里' => '壺裏',
+'多占' => '多佔',
+'夜晚里' => '夜晚裏',
+'夜里' => '夜裏',
+'夢有五不占' => '夢有五不占',
+'梦有五不占' => '夢有五不占',
+'夢著' => '夢着',
+'夢著作' => '夢著作',
+'夢著名' => '夢著名',
+'夢著書' => '夢著書',
+'夢著稱' => '夢著稱',
+'夢著者' => '夢著者',
+'夢著述' => '夢著述',
+'夢著錄' => '夢著錄',
+'梦里' => '夢裏',
+'天里' => '天裏',
+'宇航员' => '太空人',
+'夾著' => '夾着',
+'夾著作' => '夾著作',
+'夾著名' => '夾著名',
+'夾著書' => '夾著書',
+'夾著稱' => '夾著稱',
+'夾著者' => '夾著者',
+'夾著述' => '夾著述',
+'夾著錄' => '夾著錄',
+'奧占' => '奧佔',
+'奥占' => '奧佔',
+'歐巴馬' => '奧巴馬',
+'妆台' => '妝枱',
+'威斯伐倫' => '威斯特法倫',
+'威爾士' => '威爾斯',
+'威尔士' => '威爾斯',
+'子里' => '子裏',
+'字里行间' => '字裏行間',
+'存著' => '存着',
+'存著名' => '存著名',
+'孟德爾頌' => '孟德爾遜',
+'门德尔松' => '孟德爾遜',
+'孤著' => '孤着',
+'孤著作' => '孤著作',
+'孤著名' => '孤著名',
+'孤著書' => '孤著書',
+'孤著稱' => '孤著稱',
+'孤著者' => '孤著者',
+'孤著述' => '孤著述',
+'孤著錄' => '孤著錄',
+'學著' => '學着',
+'學著作' => '學著作',
+'學著名' => '學著名',
+'學著書' => '學著書',
+'學著稱' => '學著稱',
+'學著者' => '學著者',
+'學著述' => '學著述',
+'學著錄' => '學著錄',
+'学里' => '學裏',
+'守著' => '守着',
+'守著作' => '守著作',
+'守著名' => '守著名',
+'守著書' => '守著書',
+'守著稱' => '守著稱',
+'守著者' => '守著者',
+'守著述' => '守著述',
+'守著錄' => '守著錄',
+'安哈特' => '安哈爾特',
+'安地卡及巴布達' => '安提瓜和巴布達',
+'定著' => '定着',
+'定著作' => '定著作',
+'定著名' => '定著名',
+'定著書' => '定著書',
+'定著稱' => '定著稱',
+'定著者' => '定著者',
+'定著述' => '定著述',
+'定著錄' => '定著錄',
+'宣布' => '宣佈',
+'宫里' => '宮裏',
+'家里' => '家裏',
+'密布' => '密佈',
+'密西根' => '密歇根',
+'沃尓沃' => '富豪',
+'寡占' => '寡佔',
+'写字台' => '寫字枱',
+'寫著' => '寫着',
+'寫著作' => '寫著作',
+'寫著名' => '寫著名',
+'寫著書' => '寫著書',
+'寫著稱' => '寫著稱',
+'寫著者' => '寫著者',
+'寫著述' => '寫著述',
+'寫著錄' => '寫著錄',
+'宝里宝气' => '寶裏寶氣',
+'封面里' => '封面裏',
+'將占' => '將佔',
+'将占' => '將佔',
+'將占卜' => '將占卜',
+'将占卜' => '將占卜',
+'专辑里' => '專輯裏',
+'尋著' => '尋着',
+'尋著作' => '尋著作',
+'尋著名' => '尋著名',
+'尋著書' => '尋著書',
+'尋著稱' => '尋著稱',
+'尋著者' => '尋著者',
+'尋著述' => '尋著述',
+'尋著錄' => '尋著錄',
+'對著' => '對着',
+'對著作' => '對著作',
+'對著名' => '對著名',
+'對著書' => '對著書',
+'對著稱' => '對著稱',
+'對著者' => '對著者',
+'對著述' => '對著述',
+'對著錄' => '對著錄',
+'少占' => '少佔',
+'就里' => '就裏',
+'尼克松' => '尼克遜',
+'奈及利亞' => '尼日利亞',
+'局里' => '局裏',
+'屋里' => '屋裏',
+'展著' => '展着',
+'展著作' => '展著作',
+'展著名' => '展著名',
+'展著書' => '展著書',
+'展著稱' => '展著稱',
+'展著者' => '展著者',
+'展著述' => '展著述',
+'展著錄' => '展著錄',
+'屯里' => '屯裏',
+'山里有' => '山裏有',
+'山里的' => '山裏的',
+'甘比亞' => '岡比亞',
+'岸裡' => '岸裡',
+'工作台' => '工作枱',
+'已占' => '已佔',
+'巴塞罗那' => '巴塞隆拿',
+'巴塞隆納' => '巴塞隆拿',
+'巴貝多' => '巴巴多斯',
+'巴布亞紐幾內亞' => '巴布亞新畿內亞',
+'巴士拉' => '巴斯拉',
+'巷里' => '巷裏',
+'市占' => '市佔',
+'市里' => '市裏',
+'布吉納法索' => '布基納法索',
+'布什' => '布殊',
+'布里斯托尔' => '布里斯托',
+'蒲隆地' => '布隆迪',
+'席哈克' => '希拉克',
+'希拉蕊' => '希拉里',
+'希特勒' => '希特拉',
+'帛琉' => '帕勞',
+'巴尔米拉环礁' => '帕邁拉環礁',
+'帕劳' => '帛琉',
+'帶著' => '帶着',
+'帶著作' => '帶著作',
+'帶著名' => '帶著名',
+'帶著書' => '帶著書',
+'帶著稱' => '帶著稱',
+'帶著者' => '帶著者',
+'帶著述' => '帶著述',
+'帶著錄' => '帶著錄',
+'幅图里' => '幅圖裏',
+'幫著' => '幫着',
+'幫著作' => '幫著作',
+'幫著名' => '幫著名',
+'幫著書' => '幫著書',
+'幫著稱' => '幫著稱',
+'幫著者' => '幫著者',
+'幫著述' => '幫著述',
+'幫著錄' => '幫著錄',
+'干着急' => '干着急',
+'賓士' => '平治',
+'年代里' => '年代裏',
+'年里' => '年裏',
+'干着' => '幹着',
+'幹著' => '幹着',
+'幹著名' => '幹著名',
+'幹著稱' => '幹著稱',
+'幾內亞比索' => '幾內亞比紹',
+'店里' => '店裏',
+'坎城' => '康城',
+'戛纳' => '康城',
+'康著' => '康着',
+'康著作' => '康著作',
+'康著名' => '康著名',
+'康著書' => '康著書',
+'康著稱' => '康著稱',
+'康著者' => '康著者',
+'康著述' => '康著述',
+'康著錄' => '康著錄',
+'庙里' => '廟裏',
+'强占' => '強佔',
+'強占' => '強佔',
+'约翰斯顿岛' => '強斯頓環礁',
+'弹子台' => '彈子枱',
+'蹦床' => '彈床',
+'弹珠台' => '彈珠枱',
+'形上學' => '形而上學',
+'谢丽·布莱尔' => '彭雪玲',
+'往里' => '往裏',
+'待著' => '待着',
+'待著作' => '待著作',
+'待著名' => '待著名',
+'待著書' => '待著書',
+'待著稱' => '待著稱',
+'待著者' => '待著者',
+'待著述' => '待著述',
+'待著錄' => '待著錄',
+'得著' => '得着',
+'得著作' => '得著作',
+'得著名' => '得著名',
+'得著書' => '得著書',
+'得著稱' => '得著稱',
+'得著者' => '得著者',
+'得著述' => '得著述',
+'得著錄' => '得著錄',
+'从图里' => '從圖裏',
+'从山里' => '從山裏',
+'从里到外' => '從裏到外',
+'从里向外' => '從裏向外',
+'循著' => '循着',
+'循著作' => '循著作',
+'循著名' => '循著名',
+'循著書' => '循著書',
+'循著稱' => '循著稱',
+'循著者' => '循著者',
+'循著述' => '循著述',
+'循著錄' => '循著錄',
+'徵占' => '徵佔',
+'征占' => '徵佔',
+'德占' => '德佔',
+'得克萨斯' => '德克薩斯',
+'德勒斯登' => '德累斯頓',
+'澈底' => '徹底',
+'心著' => '心着',
+'心著作' => '心著作',
+'心著名' => '心著名',
+'心著書' => '心著書',
+'心著稱' => '心著稱',
+'心著者' => '心著者',
+'心著述' => '心著述',
+'心著錄' => '心著錄',
+'心里' => '心裏',
+'心里面' => '心裏面',
+'忍著' => '忍着',
+'忍著作' => '忍著作',
+'忍著名' => '忍著名',
+'忍著書' => '忍著書',
+'忍著稱' => '忍著稱',
+'忍著者' => '忍著者',
+'忍著述' => '忍著述',
+'忍著錄' => '忍著錄',
+'志著作' => '志著作',
+'志著名' => '志著名',
+'志著書' => '志著書',
+'志著稱' => '志著稱',
+'志著者' => '志著者',
+'志著述' => '志著述',
+'志著錄' => '志著錄',
+'忙著' => '忙着',
+'忙著作' => '忙著作',
+'忙著名' => '忙著名',
+'忙著書' => '忙著書',
+'忙著稱' => '忙著稱',
+'忙著者' => '忙著者',
+'忙著述' => '忙著述',
+'忙著錄' => '忙著錄',
+'忙里' => '忙裏',
+'急著' => '急着',
+'急著作' => '急著作',
+'急著名' => '急著名',
+'急著書' => '急著書',
+'急著稱' => '急著稱',
+'急著者' => '急著者',
+'急著述' => '急著述',
+'急著錄' => '急著錄',
+'性著' => '性着',
+'性著作' => '性著作',
+'性著名' => '性著名',
+'性著書' => '性著書',
+'性著稱' => '性著稱',
+'性著者' => '性著者',
+'性著述' => '性著述',
+'性著錄' => '性著錄',
+'怪里怪气' => '怪裏怪氣',
+'悠著' => '悠着',
+'悠著作' => '悠著作',
+'悠著名' => '悠著名',
+'悠著書' => '悠著書',
+'悠著稱' => '悠著稱',
+'悠著者' => '悠著者',
+'悠著述' => '悠著述',
+'悠著錄' => '悠著錄',
+'悶著' => '悶着',
+'想象' => '想像',
+'想著' => '想着',
+'想著作' => '想著作',
+'想著名' => '想著名',
+'想著書' => '想著書',
+'想著稱' => '想著稱',
+'想著者' => '想著者',
+'想著述' => '想著述',
+'想著錄' => '想著錄',
+'義占' => '意佔',
+'意占' => '意佔',
+'義大利' => '意大利',
+'艾滋' => '愛滋',
+'愛著' => '愛着',
+'愛著作' => '愛著作',
+'愛著名' => '愛著名',
+'愛著書' => '愛著書',
+'愛著稱' => '愛著稱',
+'愛著者' => '愛著者',
+'愛著述' => '愛著述',
+'愛著錄' => '愛著錄',
+'慌里慌张' => '慌裏慌張',
+'慣著' => '慣着',
+'慣著作' => '慣著作',
+'慣著名' => '慣著名',
+'慣著書' => '慣著書',
+'慣著稱' => '慣著稱',
+'慣著者' => '慣著者',
+'慣著述' => '慣著述',
+'慣著錄' => '慣著錄',
+'宪法里' => '憲法裏',
+'应用程序' => '應用程式',
+'應著' => '應着',
+'應著作' => '應著作',
+'應著名' => '應著名',
+'應著書' => '應著書',
+'應著稱' => '應著稱',
+'應著者' => '應著者',
+'應著述' => '應著述',
+'應著錄' => '應著錄',
+'懷著' => '懷着',
+'懷著作' => '懷著作',
+'懷著名' => '懷著名',
+'懷著書' => '懷著書',
+'懷著稱' => '懷著稱',
+'懷著者' => '懷著者',
+'懷著述' => '懷著述',
+'懷著錄' => '懷著錄',
+'怀里' => '懷裏',
+'戀著' => '戀着',
+'戀著作' => '戀著作',
+'戀著名' => '戀著名',
+'戀著書' => '戀著書',
+'戀著稱' => '戀著稱',
+'戀著者' => '戀著者',
+'戀著述' => '戀著述',
+'戀著錄' => '戀著錄',
+'戈巴契夫' => '戈爾巴喬夫',
+'戰著' => '戰着',
+'戰著作' => '戰著作',
+'戰著名' => '戰著名',
+'戰著書' => '戰著書',
+'戰著稱' => '戰著稱',
+'戰著者' => '戰著者',
+'戰著述' => '戰著述',
+'戰著錄' => '戰著錄',
+'戏彩娱亲' => '戲綵娛親',
+'戲彩娛親' => '戲綵娛親',
+'戏里' => '戲裏',
+'撒切尔' => '戴卓爾',
+'柴契爾' => '戴卓爾',
+'狄安娜' => '戴安娜',
+'黛安娜' => '戴安娜',
+'戴著' => '戴着',
+'戴著作' => '戴著作',
+'戴著名' => '戴著名',
+'戴著書' => '戴著書',
+'戴著稱' => '戴著稱',
+'戴著者' => '戴著者',
+'戴著述' => '戴著述',
+'戴著錄' => '戴著錄',
+'房里' => '房裏',
+'所占' => '所佔',
+'索羅門群島' => '所羅門群島',
+'手里' => '手裏',
+'手里剑' => '手裏劍',
+'列印' => '打印',
+'印表機' => '打印機',
+'打著' => '打着',
+'打著作' => '打著作',
+'打著名' => '打著名',
+'打著書' => '打著書',
+'打著稱' => '打著稱',
+'打著者' => '打著者',
+'打著述' => '打著述',
+'打著錄' => '打著錄',
+'扛著' => '扛着',
+'扛著作' => '扛著作',
+'扛著名' => '扛著名',
+'扛著書' => '扛著書',
+'扛著稱' => '扛著稱',
+'扛著者' => '扛著者',
+'扛著述' => '扛著述',
+'扛著錄' => '扛著錄',
+'找不著' => '找不着',
+'找得著' => '找得着',
+'抓著' => '抓着',
+'抓著作' => '抓著作',
+'抓著名' => '抓著名',
+'抓著稱' => '抓著稱',
+'抓著者' => '抓著者',
+'抓著述' => '抓著述',
+'抓著錄' => '抓著錄',
+'披著' => '披着',
+'披著作' => '披著作',
+'披著名' => '披著名',
+'披著書' => '披著書',
+'披著稱' => '披著稱',
+'披著者' => '披著者',
+'披著述' => '披著述',
+'披著錄' => '披著錄',
+'抬著' => '抬着',
+'抬著作' => '抬著作',
+'抬著名' => '抬著名',
+'抬著稱' => '抬著稱',
+'抬著者' => '抬著者',
+'抬著述' => '抬著述',
+'抬著錄' => '抬著錄',
+'抱著' => '抱着',
+'抱著作' => '抱著作',
+'抱著名' => '抱著名',
+'抱著稱' => '抱著稱',
+'抱著者' => '抱著者',
+'抱著述' => '抱著述',
+'抱著錄' => '抱著錄',
+'拉著' => '拉着',
+'拉著作' => '拉著作',
+'拉著名' => '拉著名',
+'拉著書' => '拉著書',
+'拉著稱' => '拉著稱',
+'拉著者' => '拉著者',
+'拉著述' => '拉著述',
+'拉著錄' => '拉著錄',
+'拎著' => '拎着',
+'拎著作' => '拎著作',
+'拎著名' => '拎著名',
+'拎著稱' => '拎著稱',
+'拎著者' => '拎著者',
+'拎著述' => '拎著述',
+'拎著錄' => '拎著錄',
+'拖著' => '拖着',
+'拖著作' => '拖著作',
+'拖著名' => '拖著名',
+'拖著稱' => '拖著稱',
+'拖著者' => '拖著者',
+'拖著述' => '拖著述',
+'拖著錄' => '拖著錄',
+'拼著' => '拼着',
+'拼著作' => '拼著作',
+'拼著名' => '拼著名',
+'拼著稱' => '拼著稱',
+'拼著者' => '拼著者',
+'拼著述' => '拼著述',
+'拼著錄' => '拼著錄',
+'拿著' => '拿着',
+'拿著作' => '拿著作',
+'拿著名' => '拿著名',
+'拿著稱' => '拿著稱',
+'拿著者' => '拿著者',
+'拿著述' => '拿著述',
+'拿著錄' => '拿著錄',
+'持著' => '持着',
+'持著作' => '持著作',
+'持著名' => '持著名',
+'持著稱' => '持著稱',
+'持著者' => '持著者',
+'持著述' => '持著述',
+'持著錄' => '持著錄',
+'挑著' => '挑着',
+'挑著作' => '挑著作',
+'挑著名' => '挑著名',
+'挑著稱' => '挑著稱',
+'挑著者' => '挑著者',
+'挑著述' => '挑著述',
+'挑著錄' => '挑著錄',
+'挨著' => '挨着',
+'挨著作' => '挨著作',
+'挨著名' => '挨著名',
+'挨著稱' => '挨著稱',
+'挨著者' => '挨著者',
+'挨著述' => '挨著述',
+'挨著錄' => '挨著錄',
+'捆著' => '捆着',
+'捆著作' => '捆著作',
+'捆著名' => '捆著名',
+'捆著稱' => '捆著稱',
+'捆著者' => '捆著者',
+'捆著述' => '捆著述',
+'捆著錄' => '捆著錄',
+'俯卧撑' => '掌上壓',
+'伏地挺身' => '掌上壓',
+'掖著' => '掖着',
+'掖著作' => '掖著作',
+'掖著名' => '掖著名',
+'掖著稱' => '掖著稱',
+'掖著者' => '掖著者',
+'掖著述' => '掖著述',
+'掖著錄' => '掖著錄',
+'掙著' => '掙着',
+'掙著作' => '掙著作',
+'掙著名' => '掙著名',
+'掙著書' => '掙著書',
+'掙著稱' => '掙著稱',
+'掙著者' => '掙著者',
+'掙著述' => '掙著述',
+'掙著錄' => '掙著錄',
+'掛著' => '掛着',
+'接著' => '接着',
+'接著作' => '接著作',
+'接著名' => '接著名',
+'接著稱' => '接著稱',
+'接著者' => '接著者',
+'接著述' => '接著述',
+'接著錄' => '接著錄',
+'揉著' => '揉着',
+'揉著作' => '揉著作',
+'揉著名' => '揉著名',
+'揉著書' => '揉著書',
+'揉著稱' => '揉著稱',
+'揉著者' => '揉著者',
+'揉著述' => '揉著述',
+'揉著錄' => '揉著錄',
+'提著' => '提着',
+'提著作' => '提著作',
+'提著名' => '提著名',
+'提著稱' => '提著稱',
+'提著者' => '提著者',
+'提著述' => '提著述',
+'提著錄' => '提著錄',
+'揮著' => '揮着',
+'揮著作' => '揮著作',
+'揮著名' => '揮著名',
+'揮著稱' => '揮著稱',
+'揮著者' => '揮著者',
+'揮著述' => '揮著述',
+'揮著錄' => '揮著錄',
+'搜索引擎' => '搜尋引擎',
+'抢占' => '搶佔',
+'搶占' => '搶佔',
+'摟著' => '摟着',
+'摟著作' => '摟著作',
+'摟著名' => '摟著名',
+'摟著稱' => '摟著稱',
+'摟著者' => '摟著者',
+'摟著述' => '摟著述',
+'摟著錄' => '摟著錄',
+'折台' => '摺枱',
+'撒马尔罕' => '撒馬爾罕',
+'撼著' => '撼着',
+'撼著作' => '撼著作',
+'撼著名' => '撼著名',
+'撼著書' => '撼著書',
+'撼著稱' => '撼著稱',
+'撼著者' => '撼著者',
+'撼著述' => '撼著述',
+'撼著錄' => '撼著錄',
+'擋著' => '擋着',
+'擋著作' => '擋著作',
+'擋著名' => '擋著名',
+'擋著稱' => '擋著稱',
+'擋著者' => '擋著者',
+'擋著述' => '擋著述',
+'擋著錄' => '擋著錄',
+'擔著' => '擔着',
+'據著' => '據着',
+'據著作' => '據著作',
+'據著名' => '據著名',
+'據著書' => '據著書',
+'據著稱' => '據著稱',
+'據著者' => '據著者',
+'據著述' => '據著述',
+'據著錄' => '據著錄',
+'擡著' => '擡着',
+'摆布' => '擺佈',
+'擺布' => '擺佈',
+'擺著' => '擺着',
+'擺著作' => '擺著作',
+'擺著名' => '擺著名',
+'擺著稱' => '擺著稱',
+'擺著者' => '擺著者',
+'擺著述' => '擺著述',
+'擺著錄' => '擺著錄',
+'攻占' => '攻佔',
+'放著' => '放着',
+'放著作' => '放著作',
+'放著名' => '放著名',
+'放著称' => '放著稱',
+'放著稱' => '放著稱',
+'敞著' => '敞着',
+'敞著作' => '敞著作',
+'敞著名' => '敞著名',
+'敞著稱' => '敞著稱',
+'敞著者' => '敞著者',
+'敞著述' => '敞著述',
+'敞著錄' => '敞著錄',
+'散布' => '散佈',
+'數著' => '數着',
+'数字技术' => '數碼技術',
+'數位技術' => '數碼技術',
+'數位相機' => '數碼相機',
+'數碼訊號' => '數碼訊號',
+'数字信号' => '數碼訊號',
+'數位電視' => '數碼電視',
+'数字电视' => '數碼電視',
+'數著作' => '數著作',
+'數著名' => '數著名',
+'數著稱' => '數著稱',
+'數著者' => '數著者',
+'數著述' => '數著述',
+'數著錄' => '數著錄',
+'斥著' => '斥着',
+'斥著作' => '斥著作',
+'斥著名' => '斥著名',
+'斥著書' => '斥著書',
+'斥著稱' => '斥著稱',
+'斥著者' => '斥著者',
+'斥著述' => '斥著述',
+'斥著錄' => '斥著錄',
+'史瓦濟蘭' => '斯威士蘭',
+'斯洛維尼亞' => '斯洛文尼亞',
+'紐澳良' => '新奧爾良',
+'紐西蘭' => '新西蘭',
+'方法里' => '方法裏',
+'族里' => '族裏',
+'日占' => '日佔',
+'日里' => '日裏',
+'昂山素季' => '昂山素姬',
+'翁山蘇姬' => '昂山素姬',
+'昂著' => '昂着',
+'昂著作' => '昂著作',
+'昂著名' => '昂著名',
+'昂著書' => '昂著書',
+'昂著稱' => '昂著稱',
+'昂著者' => '昂著者',
+'昂著述' => '昂著述',
+'昂著錄' => '昂著錄',
+'星羅棋布' => '星羅棋佈',
+'星罗棋布' => '星羅棋佈',
+'映著' => '映着',
+'映著作' => '映著作',
+'映著名' => '映著名',
+'映著書' => '映著書',
+'映著稱' => '映著稱',
+'映著者' => '映著者',
+'映著述' => '映著述',
+'映著錄' => '映著錄',
+'晃著' => '晃着',
+'晃著作' => '晃著作',
+'晃著名' => '晃著名',
+'晃著稱' => '晃著稱',
+'晃著者' => '晃著者',
+'晃著述' => '晃著述',
+'晃著錄' => '晃著錄',
+'芯片' => '晶片',
+'晶元' => '晶片',
+'智慧型' => '智能',
+'智慧卡' => '智能卡',
+'智慧手機' => '智能手機',
+'暗地里' => '暗地裏',
+'暗沟里' => '暗溝裏',
+'暗著' => '暗着',
+'暗著作' => '暗著作',
+'暗著名' => '暗著名',
+'暗著書' => '暗著書',
+'暗著稱' => '暗著稱',
+'暗著者' => '暗著者',
+'暗著述' => '暗著述',
+'暗著錄' => '暗著錄',
+'暗里' => '暗裏',
+'會占' => '會佔',
+'会占' => '會佔',
+'會占卜' => '會占卜',
+'会占卜' => '會占卜',
+'会里' => '會裏',
+'有著' => '有着',
+'有著作' => '有著作',
+'有著名' => '有著名',
+'有著書' => '有著書',
+'有著稱' => '有著稱',
+'有著者' => '有著者',
+'有著述' => '有著述',
+'有著錄' => '有著錄',
+'罗纳德·里根' => '朗奴·列根',
+'罗纳尔多' => '朗拿度',
+'罗纳尔迪尼奥' => '朗拿甸奴',
+'望著' => '望着',
+'望著作' => '望著作',
+'望著名' => '望著名',
+'望著書' => '望著書',
+'望著稱' => '望著稱',
+'望著者' => '望著者',
+'望著述' => '望著述',
+'望著錄' => '望著錄',
+'朝著' => '朝着',
+'朝著作' => '朝著作',
+'朝著名' => '朝著名',
+'朝著稱' => '朝著稱',
+'朝著者' => '朝著者',
+'朝著述' => '朝著述',
+'朝著錄' => '朝著錄',
+'板球' => '木球',
+'班傑明' => '本傑明',
+'本著' => '本着',
+'本著作' => '本著作',
+'本著名' => '本著名',
+'本著書' => '本著書',
+'本著稱' => '本著稱',
+'本著者' => '本著者',
+'本著述' => '本著述',
+'本著錄' => '本著錄',
+'里瓦尔多' => '李華度',
+'村里' => '村裏',
+'杜塞道夫' => '杜塞爾多夫',
+'迪拜' => '杜拜',
+'亚细安' => '東盟',
+'東協' => '東盟',
+'板著臉' => '板着臉',
+'枕著' => '枕着',
+'枕著作' => '枕著作',
+'枕著名' => '枕著名',
+'枕著稱' => '枕著稱',
+'枕著者' => '枕著者',
+'枕著述' => '枕著述',
+'枕著錄' => '枕著錄',
+'檯' => '枱',
+'台布' => '枱布',
+'台历' => '枱曆',
+'台灯' => '枱燈',
+'台面上' => '枱面上',
+'柏林墙' => '柏林圍牆',
+'奧黛莉·朵杜' => '柯德莉·塔圖',
+'奥黛丽·赫本' => '柯德莉·夏萍',
+'奧黛麗·赫本' => '柯德莉·夏萍',
+'哥廷根' => '格丁根',
+'格瑞那達' => '格林納達',
+'格鲁吉亚' => '格魯吉亞',
+'撞球' => '桌球',
+'台球' => '桌球',
+'梅鐸' => '梅鐸',
+'默多克' => '梅鐸',
+'梳著' => '梳着',
+'梳著作' => '梳著作',
+'梳著名' => '梳著名',
+'梳著稱' => '梳著稱',
+'梳著者' => '梳著者',
+'梳著述' => '梳著述',
+'梳著錄' => '梳著錄',
+'棉里' => '棉裏',
+'桑巴舞' => '森巴舞',
+'森林里' => '森林裏',
+'棺材里' => '棺材裏',
+'榴莲' => '榴槤',
+'榴蓮' => '榴槤',
+'樂著' => '樂着',
+'樂著作' => '樂著作',
+'樂著名' => '樂著名',
+'樂著書' => '樂著書',
+'樂著稱' => '樂著稱',
+'樂著者' => '樂著者',
+'樂著述' => '樂著述',
+'樂著錄' => '樂著錄',
+'標志著' => '標志着',
+'寶獅' => '標致',
+'標誌著' => '標誌着',
+'树林里' => '樹林裏',
+'工具機' => '機床',
+'機器人' => '機械人',
+'机器人' => '機械人',
+'柜台' => '櫃枱',
+'历史里' => '歷史裏',
+'死里求生' => '死裏求生',
+'死里逃生' => '死裏逃生',
+'殺著' => '殺着',
+'殺著作' => '殺著作',
+'殺著名' => '殺著名',
+'殺著書' => '殺著書',
+'殺著稱' => '殺著稱',
+'殺著者' => '殺著者',
+'殺著述' => '殺著述',
+'殺著錄' => '殺著錄',
+'壳里' => '殼裏',
+'茅利塔尼亞' => '毛里塔尼亞',
+'模里西斯' => '毛里裘斯',
+'毛里求斯' => '毛里裘斯',
+'公厘' => '毫米',
+'公釐' => '毫米',
+'水来汤里去' => '水來湯裏去',
+'水里' => '水裏',
+'求著' => '求着',
+'求著作' => '求著作',
+'求著名' => '求著名',
+'求著書' => '求著書',
+'求著稱' => '求著稱',
+'求著者' => '求著者',
+'求著述' => '求著述',
+'求著錄' => '求著錄',
+'池里' => '池裏',
+'汙' => '污',
+'文莱' => '汶萊',
+'沈著' => '沈着',
+'沉著' => '沉着',
+'沉著作' => '沉著作',
+'沉著名' => '沉著名',
+'沉著書' => '沉著書',
+'沉著稱' => '沉著稱',
+'沉著者' => '沉著者',
+'沉著述' => '沉著述',
+'沉著錄' => '沉著錄',
+'沖著' => '沖着',
+'沖著。' => '沖著。',
+'沖著《' => '沖著《',
+'沖著,' => '沖著,',
+'沙烏地阿拉伯' => '沙特阿拉伯',
+'沙地阿拉伯' => '沙特阿拉伯',
+'沙里淘金' => '沙裏淘金',
+'河里' => '河裏',
+'沿著' => '沿着',
+'沿著作' => '沿著作',
+'沿著名' => '沿著名',
+'沿著書' => '沿著書',
+'沿著稱' => '沿著稱',
+'沿著者' => '沿著者',
+'沿著述' => '沿著述',
+'沿著錄' => '沿著錄',
+'法占' => '法佔',
+'法里,' => '法裏,',
+'玻里尼西亞' => '波利尼西亞',
+'波士尼亞' => '波斯尼亞',
+'波士尼亞赫塞哥維納' => '波斯尼亞黑塞哥維那',
+'幫浦' => '泵',
+'洞里' => '洞裏',
+'辛巴威' => '津巴布韋',
+'宏都拉斯' => '洪都拉斯',
+'活著' => '活着',
+'活著作' => '活著作',
+'活著名' => '活著名',
+'活著書' => '活著書',
+'活著稱' => '活著稱',
+'活著者' => '活著者',
+'活著述' => '活著述',
+'活著錄' => '活著錄',
+'移动网络' => '流動網絡',
+'行動網路' => '流動網絡',
+'行動電話' => '流動電話',
+'移动电话' => '流動電話',
+'流著' => '流着',
+'流著作' => '流著作',
+'流著名' => '流著名',
+'流著書' => '流著書',
+'流著稱' => '流著稱',
+'流著者' => '流著者',
+'流著述' => '流著述',
+'流著錄' => '流著錄',
+'流露著' => '流露着',
+'浮著' => '浮着',
+'蘭卡威' => '浮羅交怡',
+'浮著作' => '浮著作',
+'浮著名' => '浮著名',
+'浮著書' => '浮著書',
+'浮著稱' => '浮著稱',
+'浮著者' => '浮著者',
+'浮著述' => '浮著述',
+'浮著錄' => '浮著錄',
+'海上布雷' => '海上佈雷',
+'海洛因' => '海洛英',
+'海灣布雷' => '海灣佈雷',
+'海湾布雷' => '海灣佈雷',
+'涵著' => '涵着',
+'涵著作' => '涵著作',
+'涵著名' => '涵著名',
+'涵著書' => '涵著書',
+'涵著稱' => '涵著稱',
+'涵著者' => '涵著者',
+'涵著述' => '涵著述',
+'涵著錄' => '涵著錄',
+'涼著' => '涼着',
+'涼著作' => '涼著作',
+'涼著名' => '涼著名',
+'涼著書' => '涼著書',
+'涼著稱' => '涼著稱',
+'涼著者' => '涼著者',
+'涼著述' => '涼著述',
+'涼著錄' => '涼著錄',
+'深山里' => '深山裏',
+'渊里' => '淵裏',
+'渴著' => '渴着',
+'渴著作' => '渴著作',
+'渴著名' => '渴著名',
+'渴著書' => '渴著書',
+'渴著稱' => '渴著稱',
+'渴著者' => '渴著者',
+'渴著述' => '渴著述',
+'渴著錄' => '渴著錄',
+'湊合著' => '湊合着',
+'湖里' => '湖裏',
+'准将' => '準將',
+'准將' => '準將',
+'准尉' => '準尉',
+'溢著' => '溢着',
+'溢著作' => '溢著作',
+'溢著名' => '溢著名',
+'溢著書' => '溢著書',
+'溢著稱' => '溢著稱',
+'溢著者' => '溢著者',
+'溢著述' => '溢著述',
+'溢著錄' => '溢著錄',
+'演著' => '演着',
+'演著作' => '演著作',
+'演著名' => '演著名',
+'演著書' => '演著書',
+'演著稱' => '演著稱',
+'演著者' => '演著者',
+'演著述' => '演著述',
+'演著錄' => '演著錄',
+'漠里' => '漠裏',
+'漢諾瓦' => '漢諾威',
+'漫著' => '漫着',
+'漫著作' => '漫著作',
+'漫著名' => '漫著名',
+'漫著書' => '漫著書',
+'漫著稱' => '漫著稱',
+'漫著者' => '漫著者',
+'漫著述' => '漫著述',
+'漫著錄' => '漫著錄',
+'潜意识里' => '潛意識裏',
+'潤著' => '潤着',
+'潤著作' => '潤著作',
+'潤著名' => '潤著名',
+'潤著書' => '潤著書',
+'潤著稱' => '潤著稱',
+'潤著者' => '潤著者',
+'潤著述' => '潤著述',
+'潤著錄' => '潤著錄',
+'潭里' => '潭裏',
+'溼' => '濕',
+'火山里' => '火山裏',
+'火箭布雷' => '火箭佈雷',
+'為著' => '為着',
+'為著《' => '為著《',
+'為著作' => '為著作',
+'為著名' => '為著名',
+'為著稱' => '為著稱',
+'為著者' => '為著者',
+'為著述' => '為著述',
+'為著錄' => '為著錄',
+'菸' => '煙',
+'照占' => '照佔',
+'照著' => '照着',
+'照著作' => '照著作',
+'照著名' => '照著名',
+'照著書' => '照著書',
+'照著稱' => '照著稱',
+'照著者' => '照著者',
+'照著述' => '照著述',
+'照著錄' => '照著錄',
+'燒著' => '燒着',
+'燒著作' => '燒著作',
+'燒著名' => '燒著名',
+'燒著書' => '燒著書',
+'燒著稱' => '燒著稱',
+'燒著者' => '燒著者',
+'燒著述' => '燒著述',
+'燒著錄' => '燒著錄',
+'爭著' => '爭着',
+'爭著作' => '爭著作',
+'爭著名' => '爭著名',
+'爭著書' => '爭著書',
+'爭著稱' => '爭著稱',
+'爭著者' => '爭著者',
+'爭著述' => '爭著述',
+'爭著錄' => '爭著錄',
+'墙里' => '牆裏',
+'版图里' => '版圖裏',
+'版权信息' => '版權資訊',
+'千里達托貝哥' => '特立尼達和多巴哥',
+'牽著' => '牽着',
+'牽著作' => '牽著作',
+'牽著名' => '牽著名',
+'牽著書' => '牽著書',
+'牽著稱' => '牽著稱',
+'牽著者' => '牽著者',
+'牽著述' => '牽著述',
+'牽著錄' => '牽著錄',
+'犯不著' => '犯不着',
+'犯不著作' => '犯不著作',
+'犯不著名' => '犯不著名',
+'犯不著書' => '犯不著書',
+'犯不著稱' => '犯不著稱',
+'犯不著者' => '犯不著者',
+'犯不著述' => '犯不著述',
+'犯不著錄' => '犯不著錄',
+'犯得著' => '犯得着',
+'狂占' => '狂佔',
+'猜著' => '猜着',
+'猜著作' => '猜著作',
+'猜著名' => '猜著名',
+'猜著書' => '猜著書',
+'猜著稱' => '猜著稱',
+'猜著者' => '猜著者',
+'猜著述' => '猜著述',
+'猜著錄' => '猜著錄',
+'狱里' => '獄裏',
+'獨占' => '獨佔',
+'独占' => '獨佔',
+'獨著' => '獨着',
+'獨著作' => '獨著作',
+'獨著名' => '獨著名',
+'獨著書' => '獨著書',
+'獨著稱' => '獨著稱',
+'獨著者' => '獨著者',
+'獨著述' => '獨著述',
+'獨著錄' => '獨著錄',
+'獲著' => '獲着',
+'獲著作' => '獲著作',
+'獲著名' => '獲著名',
+'獲著書' => '獲著書',
+'獲著稱' => '獲著稱',
+'獲著者' => '獲著者',
+'獲著述' => '獲著述',
+'獲著錄' => '獲著錄',
+'班里' => '班裏',
+'球台' => '球枱',
+'卢塞恩' => '琉森',
+'諾鲁' => '瑙魯',
+'萬那杜' => '瓦努阿圖',
+'肯尼迪' => '甘迺迪',
+'甜著' => '甜着',
+'甜著作' => '甜著作',
+'甜著名' => '甜著名',
+'甜著書' => '甜著書',
+'甜著稱' => '甜著稱',
+'甜著者' => '甜著者',
+'甜著述' => '甜著述',
+'甜著錄' => '甜著錄',
+'用不著' => '用不着',
+'用得著' => '用得着',
+'用法里' => '用法裏',
+'用著' => '用着',
+'用著作' => '用著作',
+'用著名' => '用著名',
+'用著書' => '用著書',
+'用著稱' => '用著稱',
+'用著者' => '用著者',
+'用著述' => '用著述',
+'用著錄' => '用著錄',
+'田里' => '田裏',
+'由表及里' => '由表及裏',
+'A型肝炎' => '甲型肝炎',
+'A肝' => '甲肝',
+'界里' => '界裏',
+'留著' => '留着',
+'留著作' => '留著作',
+'留著名' => '留著名',
+'留著書' => '留著書',
+'留著稱' => '留著稱',
+'留著者' => '留著者',
+'留著述' => '留著述',
+'留著錄' => '留著錄',
+'畫著' => '畫着',
+'畫著作' => '畫著作',
+'畫著名' => '畫著名',
+'畫著稱' => '畫著稱',
+'畫著者' => '畫著者',
+'當著' => '當着',
+'當著作' => '當著作',
+'過著作' => '當著作',
+'當著名' => '當著名',
+'過著名' => '當著名',
+'過著書' => '當著書',
+'當著書' => '當著書',
+'當著稱' => '當著稱',
+'過著稱' => '當著稱',
+'當著者' => '當著者',
+'過著者' => '當著者',
+'過著述' => '當著述',
+'當著述' => '當著述',
+'過著錄' => '當著錄',
+'當著錄' => '當著錄',
+'几内亚' => '畿內亞',
+'幾內亞' => '畿內亞',
+'迭代' => '疊代',
+'疑著' => '疑着',
+'疑著作' => '疑著作',
+'疑著名' => '疑著名',
+'疑著書' => '疑著書',
+'疑著稱' => '疑著稱',
+'疑著者' => '疑著者',
+'疑著述' => '疑著述',
+'疑著錄' => '疑著錄',
+'狂牛症' => '瘋牛症',
+'發布' => '發佈',
+'发布' => '發佈',
+'發著' => '發着',
+'發著《' => '發著《',
+'發著作' => '發著作',
+'發著名' => '發著名',
+'發著稱' => '發著稱',
+'發著者' => '發著者',
+'白里透红' => '白裏透紅',
+'戈登·布朗' => '白高敦',
+'百科里' => '百科裏',
+'的图里' => '的圖裏',
+'的山里' => '的山裏',
+'皮里春秋' => '皮裏春秋',
+'皮里阳秋' => '皮裏陽秋',
+'皺著' => '皺着',
+'皺著作' => '皺著作',
+'皺著名' => '皺著名',
+'皺著書' => '皺著書',
+'皺著稱' => '皺著稱',
+'皺著者' => '皺著者',
+'皺著述' => '皺著述',
+'皺著錄' => '皺著錄',
+'盒里' => '盒裏',
+'盛著' => '盛着',
+'盛著作' => '盛著作',
+'盛著名' => '盛著名',
+'盛著書' => '盛著書',
+'盛著稱' => '盛著稱',
+'盛著者' => '盛著者',
+'盛著述' => '盛著述',
+'盛著錄' => '盛著錄',
+'盘里' => '盤裏',
+'盧安達' => '盧旺達',
+'羅亞爾' => '盧瓦爾',
+'盯著' => '盯着',
+'盯著作' => '盯著作',
+'盯著名' => '盯著名',
+'盯著書' => '盯著書',
+'盯著稱' => '盯著稱',
+'盯著者' => '盯著者',
+'盯著述' => '盯著述',
+'盯著錄' => '盯著錄',
+'盾著' => '盾着',
+'盾著作' => '盾著作',
+'盾著名' => '盾著名',
+'盾著書' => '盾著書',
+'盾著稱' => '盾著稱',
+'盾著者' => '盾著者',
+'盾著述' => '盾著述',
+'盾著錄' => '盾著錄',
+'看不著' => '看不着',
+'看得著' => '看得着',
+'看法里' => '看法裏',
+'看著' => '看着',
+'看著作' => '看著作',
+'看著名' => '看著名',
+'看著書' => '看著書',
+'看著稱' => '看著稱',
+'看著者' => '看著者',
+'看著述' => '看著述',
+'看著錄' => '看著錄',
+'眼眶里' => '眼眶裏',
+'眼睛里' => '眼睛裏',
+'眼里' => '眼裏',
+'著什' => '着什',
+'著他' => '着他',
+'著你' => '着你',
+'著力' => '着力',
+'著地' => '着地',
+'著墨' => '着墨',
+'著她' => '着她',
+'著妳' => '着妳',
+'著它' => '着它',
+'著實' => '着實',
+'著忙' => '着忙',
+'著急' => '着急',
+'著想' => '着想',
+'著意' => '着意',
+'著我' => '着我',
+'著手' => '着手',
+'著數' => '着數',
+'著法' => '着法',
+'著涼' => '着涼',
+'著火' => '着火',
+'著甚麽' => '着甚麽',
+'著眼' => '着眼',
+'著祂' => '着祂',
+'著筆' => '着筆',
+'著絲' => '着絲',
+'著緊' => '着緊',
+'著腳' => '着腳',
+'著艦' => '着艦',
+'著色' => '着色',
+'著落' => '着落',
+'著衣' => '着衣',
+'著裝' => '着裝',
+'著迷' => '着迷',
+'著重' => '着重',
+'著錄' => '着錄',
+'著陸' => '着陸',
+'著鞭' => '着鞭',
+'睡不著' => '睡不着',
+'睡得著' => '睡得着',
+'睡著' => '睡着',
+'睡著作' => '睡著作',
+'睡著名' => '睡著名',
+'睡著書' => '睡著書',
+'睡著稱' => '睡著稱',
+'睡著者' => '睡著者',
+'睡著述' => '睡著述',
+'睡著錄' => '睡著錄',
+'瞞著' => '瞞着',
+'瞞著作' => '瞞著作',
+'瞞著名' => '瞞著名',
+'瞞著書' => '瞞著書',
+'瞞著稱' => '瞞著稱',
+'瞞著者' => '瞞著者',
+'瞞著述' => '瞞著述',
+'瞞著錄' => '瞞著錄',
+'瞪著' => '瞪着',
+'瞪著作' => '瞪著作',
+'瞪著名' => '瞪著名',
+'瞪著書' => '瞪著書',
+'瞪著稱' => '瞪著稱',
+'瞪著者' => '瞪著者',
+'瞪著述' => '瞪著述',
+'瞪著錄' => '瞪著錄',
+'智慧財產權' => '知識產權',
+'智財權' => '知識產權',
+'短信' => '短訊',
+'簡訊' => '短訊',
+'什勒斯維希' => '石勒蘇益格',
+'硅' => '矽',
+'硅藻' => '硅藻',
+'硬體' => '硬件',
+'硬件' => '硬件',
+'贝克汉姆' => '碧咸',
+'贝克漢' => '碧咸',
+'社里' => '社裏',
+'福馬林' => '福爾馬林',
+'福著' => '福着',
+'福著作' => '福著作',
+'福著名' => '福著名',
+'福著書' => '福著書',
+'福著稱' => '福著稱',
+'福著者' => '福著者',
+'福著述' => '福著述',
+'福著錄' => '福著錄',
+'秀发布' => '秀發佈',
+'私下里' => '私下裏',
+'隱私' => '私隱',
+'隐私' => '私隱',
+'葛摩' => '科摩羅',
+'程序员' => '程式設計師',
+'捷豹' => '積架',
+'穩占' => '穩佔',
+'稳占' => '穩佔',
+'穫著' => '穫着',
+'空中布雷' => '空中佈雷',
+'空投布雷' => '空投佈雷',
+'空氣品質' => '空氣質素',
+'空气质量' => '空氣質素',
+'空著' => '空着',
+'空著作' => '空著作',
+'空著名' => '空著名',
+'空著書' => '空著書',
+'空著稱' => '空著稱',
+'空著者' => '空著者',
+'空著述' => '空著述',
+'空著錄' => '空著錄',
+'航天飞机' => '穿梭機',
+'太空梭' => '穿梭機',
+'穿著' => '穿着',
+'穿著作' => '穿著作',
+'穿著名' => '穿著名',
+'穿著書' => '穿著書',
+'穿著稱' => '穿著稱',
+'穿著者' => '穿著者',
+'穿著述' => '穿著述',
+'穿著錄' => '穿著錄',
+'窝里' => '窩裏',
+'站著' => '站着',
+'站著作' => '站著作',
+'站著名' => '站著名',
+'站著書' => '站著書',
+'站著稱' => '站著稱',
+'站著者' => '站著者',
+'站著述' => '站著述',
+'站著錄' => '站著錄',
+'竪著' => '竪着',
+'笑著' => '笑着',
+'笑著作' => '笑著作',
+'笑著名' => '笑著名',
+'笑著書' => '笑著書',
+'笑著稱' => '笑著稱',
+'笑著者' => '笑著者',
+'笑著述' => '笑著述',
+'笑著錄' => '笑著錄',
+'笑里藏刀' => '笑裏藏刀',
+'提比里西' => '第比利斯',
+'管著' => '管着',
+'管著作' => '管著作',
+'管著名' => '管著名',
+'管著書' => '管著書',
+'管著稱' => '管著稱',
+'管著者' => '管著者',
+'管著述' => '管著述',
+'管著錄' => '管著錄',
+'箱里' => '箱裏',
+'节目里' => '節目裏',
+'簽著' => '簽着',
+'籃板球' => '籃板球',
+'麦克尔' => '米高',
+'迈克尔' => '米高',
+'迈克尔·欧文' => '米高·奧雲',
+'糊里糊涂' => '糊裏糊塗',
+'系列里' => '系列裏',
+'係數' => '系數',
+'系里' => '系裏',
+'約占' => '約佔',
+'约占' => '約佔',
+'紐賓士域' => '紐賓士域',
+'索忍尼辛' => '索贊尼辛',
+'索尔仁尼琴' => '索贊尼辛',
+'索馬利亞' => '索馬里',
+'索馬利里' => '索馬里',
+'紮著' => '紮着',
+'紮著作' => '紮著作',
+'紮著名' => '紮著名',
+'紮著書' => '紮著書',
+'紮著稱' => '紮著稱',
+'紮著者' => '紮著者',
+'紮著述' => '紮著述',
+'紮著錄' => '紮著錄',
+'组里' => '組裏',
+'吉他' => '結他',
+'结彩' => '結綵',
+'結彩' => '結綵',
+'綁著' => '綁着',
+'綁著作' => '綁著作',
+'綁著名' => '綁著名',
+'綁著書' => '綁著書',
+'綁著稱' => '綁著稱',
+'綁著者' => '綁著者',
+'綁著述' => '綁著述',
+'綁著錄' => '綁著錄',
+'網路' => '網絡',
+'网里' => '網裏',
+'彩带' => '綵帶',
+'彩帶' => '綵帶',
+'彩排' => '綵排',
+'彩楼' => '綵樓',
+'彩樓' => '綵樓',
+'彩牌楼' => '綵牌樓',
+'彩牌樓' => '綵牌樓',
+'彩球' => '綵球',
+'彩綢' => '綵綢',
+'彩绸' => '綵綢',
+'彩线' => '綵綫',
+'彩線' => '綵線',
+'彩船' => '綵船',
+'彩衣' => '綵衣',
+'线图里' => '線圖裏',
+'緝凶' => '緝兇',
+'县里' => '縣裏',
+'缝里' => '縫裏',
+'总数里' => '總數裏',
+'尖峰時段' => '繁忙時段',
+'尖峰時間' => '繁忙時間',
+'正體中文' => '繁體中文',
+'繃著' => '繃着',
+'繞著' => '繞着',
+'繞著作' => '繞著作',
+'繞著名' => '繞著名',
+'繞著書' => '繞著書',
+'繞著稱' => '繞著稱',
+'繞著者' => '繞著者',
+'繞著述' => '繞著述',
+'繞著錄' => '繞著錄',
+'繫著' => '繫着',
+'系着' => '繫着',
+'纏著' => '纏着',
+'纏著作' => '纏著作',
+'纏著名' => '纏著名',
+'纏著書' => '纏著書',
+'纏著稱' => '纏著稱',
+'纏著者' => '纏著者',
+'纏著述' => '纏著述',
+'纏著錄' => '纏著錄',
+'罩著' => '罩着',
+'罩著作' => '罩著作',
+'罩著名' => '罩著名',
+'罩著書' => '罩著書',
+'罩著稱' => '罩著稱',
+'罩著者' => '罩著者',
+'罩著述' => '罩著述',
+'罩著錄' => '罩著錄',
+'罵著' => '罵着',
+'罵著作' => '罵著作',
+'罵著名' => '罵著名',
+'罵著書' => '罵著書',
+'罵著稱' => '罵著稱',
+'罵著者' => '罵著者',
+'罵著述' => '罵著述',
+'罵著錄' => '罵著錄',
+'卢浮宫' => '羅浮宮',
+'美占' => '美佔',
+'美著' => '美着',
+'美著作' => '美著作',
+'美著名' => '美著名',
+'美著書' => '美著書',
+'美著稱' => '美著稱',
+'美著者' => '美著者',
+'美著述' => '美著述',
+'美著錄' => '美著錄',
+'耀著' => '耀着',
+'耀著作' => '耀著作',
+'耀著名' => '耀著名',
+'耀著書' => '耀著書',
+'耀著稱' => '耀著稱',
+'耀著者' => '耀著者',
+'耀著述' => '耀著述',
+'耀著錄' => '耀著錄',
+'寮國' => '老撾',
+'寮人民民主共和國' => '老撾人民民主共和國',
+'寮語' => '老撾語',
+'考著' => '考着',
+'考著作' => '考著作',
+'考著名' => '考著名',
+'考著書' => '考著書',
+'考著稱' => '考著稱',
+'考著者' => '考著者',
+'考著述' => '考著述',
+'考著錄' => '考著錄',
+'圣基茨和尼维斯' => '聖吉斯納域斯',
+'聖克里斯多福及尼維斯' => '聖吉斯納域斯',
+'聖文森及格瑞那丁' => '聖文森特和格林納丁斯',
+'聖露西亞' => '聖盧西亞',
+'聖馬利諾' => '聖馬力諾',
+'聽不著' => '聽不着',
+'聽得著' => '聽得着',
+'聽著' => '聽着',
+'聽著作' => '聽著作',
+'聽著名' => '聽著名',
+'聽著書' => '聽著書',
+'聽著稱' => '聽著稱',
+'聽著者' => '聽著者',
+'聽著述' => '聽著述',
+'聽著錄' => '聽著錄',
+'肚里' => '肚裏',
+'肯尼亚' => '肯雅',
+'胃里' => '胃裏',
+'背地里' => '背地裏',
+'背著' => '背着',
+'背著作' => '背著作',
+'背著名' => '背著名',
+'背著書' => '背著書',
+'背著稱' => '背著稱',
+'背著者' => '背著者',
+'背著述' => '背著述',
+'背著錄' => '背著錄',
+'胡里胡涂' => '胡裏胡塗',
+'腰里' => '腰裏',
+'膠著' => '膠着',
+'膠著作' => '膠著作',
+'膠著名' => '膠著名',
+'膠著書' => '膠著書',
+'膠著稱' => '膠著稱',
+'膠著者' => '膠著者',
+'膠著述' => '膠著述',
+'膠著錄' => '膠著錄',
+'臨著' => '臨着',
+'臨著作' => '臨著作',
+'臨著名' => '臨著名',
+'臨著書' => '臨著書',
+'臨著稱' => '臨著稱',
+'臨著者' => '臨著者',
+'臨著述' => '臨著述',
+'臨著錄' => '臨著錄',
+'自行火炮' => '自走炮',
+'與著' => '與着',
+'與著作' => '與著作',
+'與著名' => '與著名',
+'與著書' => '與著書',
+'與著稱' => '與著稱',
+'與著者' => '與著者',
+'與著述' => '與著述',
+'與著錄' => '與著錄',
+'舒马赫' => '舒麥加',
+'爱荷华' => '艾奧瓦',
+'愛荷華' => '艾奧瓦',
+'埃菲尔' => '艾菲爾',
+'帕塔亚' => '芭達亞',
+'花盆里' => '花盆裏',
+'苑里' => '苑裏',
+'苑裡' => '苑裡',
+'苦著' => '苦着',
+'苦著作' => '苦著作',
+'苦著名' => '苦著名',
+'苦著書' => '苦著書',
+'苦著稱' => '苦著稱',
+'苦著者' => '苦著者',
+'苦著述' => '苦著述',
+'苦著錄' => '苦著錄',
+'苦里' => '苦裏',
+'英占' => '英佔',
+'大英國協' => '英聯邦',
+'共和联邦' => '英聯邦',
+'草丛里' => '草叢裏',
+'霍爾斯坦' => '荷爾斯泰因',
+'好萊塢' => '荷里活',
+'好莱坞' => '荷里活',
+'庄里' => '莊裏',
+'莫三比克' => '莫桑比克',
+'瓦倫西亞' => '華倫西亞',
+'巴伦西亚' => '華倫西亞',
+'巴倫西亞' => '華倫西亞',
+'瓦文萨' => '華里沙',
+'華勒沙' => '華里沙',
+'菲利普亲王' => '菲臘親王',
+'菲利普親王' => '菲臘親王',
+'賴索托' => '萊索托',
+'马恩岛' => '萌島',
+'马自达' => '萬事得',
+'馬自達' => '萬事得',
+'万历朝鲜战争' => '萬曆朝鮮戰爭',
+'落著' => '落着',
+'落著作' => '落著作',
+'落著名' => '落著名',
+'落著書' => '落著書',
+'落著稱' => '落著稱',
+'落著者' => '落著者',
+'落著述' => '落著述',
+'落著錄' => '落著錄',
+'葉爾欽' => '葉利欽',
+'葡占' => '葡佔',
+'葫芦里卖甚么药' => '葫蘆裏賣甚麼藥',
+'蒙特婁' => '蒙特利爾',
+'滿地可' => '蒙特利爾',
+'蒙著' => '蒙着',
+'蒙著作' => '蒙著作',
+'蒙著名' => '蒙著名',
+'蒙著書' => '蒙著書',
+'蒙著稱' => '蒙著稱',
+'蒙著者' => '蒙著者',
+'蒙著述' => '蒙著述',
+'蒙著錄' => '蒙著錄',
+'蓋著' => '蓋着',
+'肖斯塔科维奇' => '蕭士達高維契',
+'蕭士塔高維奇' => '蕭士達高維契',
+'肖邦' => '蕭邦',
+'薛丁格' => '薛定諤',
+'塞拉耶佛' => '薩拉熱窩',
+'萨达姆' => '薩達姆',
+'藉著' => '藉着',
+'藏著' => '藏着',
+'藏著作' => '藏著作',
+'藏著名' => '藏著名',
+'藏著書' => '藏著書',
+'藏著稱' => '藏著稱',
+'藏著者' => '藏著者',
+'藏著述' => '藏著述',
+'藏著錄' => '藏著錄',
+'藝著' => '藝着',
+'藝著作' => '藝著作',
+'藝著名' => '藝著名',
+'藝著書' => '藝著書',
+'藝著稱' => '藝著稱',
+'藝著者' => '藝著者',
+'藝著述' => '藝著述',
+'藝著錄' => '藝著錄',
+'蘸著' => '蘸着',
+'蘸著作' => '蘸著作',
+'蘸著名' => '蘸著名',
+'蘸著書' => '蘸著書',
+'蘸著稱' => '蘸著稱',
+'蘸著者' => '蘸著者',
+'蘸著述' => '蘸著述',
+'蘸著錄' => '蘸著錄',
+'蜜里调油' => '蜜裏調油',
+'荧屏' => '螢屏',
+'屏幕' => '螢幕',
+'首席执行官' => '行政總裁',
+'行著' => '行着',
+'行著作' => '行著作',
+'行著名' => '行著名',
+'行著書' => '行著書',
+'行著稱' => '行著稱',
+'行著者' => '行著者',
+'行著述' => '行著述',
+'行著錄' => '行著錄',
+'衝著' => '衝着',
+'衣著' => '衣着',
+'衣著作' => '衣著作',
+'衣著名' => '衣著名',
+'衣著書' => '衣著書',
+'衣著稱' => '衣著稱',
+'衣著者' => '衣著者',
+'衣著述' => '衣著述',
+'衣著錄' => '衣著錄',
+'表里' => '表裏',
+'表里一致' => '表裏一致',
+'表里不一' => '表裏不一',
+'表里如一' => '表裏如一',
+'表里山河' => '表裏山河',
+'袋里' => '袋裏',
+'袖里' => '袖裏',
+'被里' => '被裏',
+'裡' => '裏',
+'里勾外连' => '裏勾外連',
+'里屋' => '裏屋',
+'里层' => '裏層',
+'里带' => '裏帶',
+'里弦' => '裏弦',
+'里应外合' => '裏應外合',
+'里手' => '裏手',
+'里海' => '裏海',
+'里脊' => '裏脊',
+'里衣' => '裏衣',
+'里通外国' => '裏通外國',
+'里通外敌' => '裏通外敵',
+'里边' => '裏邊',
+'里间' => '裏間',
+'里面' => '裏面',
+'里面包' => '裏面包',
+'里头' => '裏頭',
+'裝著' => '裝着',
+'裝著作' => '裝著作',
+'裝著名' => '裝著名',
+'裝著書' => '裝著書',
+'裝著稱' => '裝著稱',
+'裝著者' => '裝著者',
+'裝著述' => '裝著述',
+'裝著錄' => '裝著錄',
+'裡冷' => '裡冷',
+'裹著' => '裹着',
+'裹著作' => '裹著作',
+'裹著名' => '裹著名',
+'裹著書' => '裹著書',
+'裹著稱' => '裹著稱',
+'裹著者' => '裹著者',
+'裹著述' => '裹著述',
+'裹著錄' => '裹著錄',
+'衬里' => '襯裏',
+'西占' => '西佔',
+'塞维利亚' => '西維爾',
+'塞維亞' => '西維爾',
+'要占' => '要佔',
+'要占卜' => '要占卜',
+'覆著' => '覆着',
+'見著' => '見着',
+'見著作' => '見著作',
+'見著名' => '見著名',
+'見著書' => '見著書',
+'見著稱' => '見著稱',
+'見著者' => '見著者',
+'見著述' => '見著述',
+'見著錄' => '見著錄',
+'角落里' => '角落裏',
+'分辨率' => '解像度',
+'解析度' => '解像度',
+'計畫' => '計劃',
+'記著' => '記着',
+'記著作' => '記著作',
+'記著名' => '記著名',
+'記著書' => '記著書',
+'記著稱' => '記著稱',
+'記著者' => '記著者',
+'記著述' => '記著述',
+'記著錄' => '記著錄',
+'試著' => '試着',
+'試著作' => '試著作',
+'試著名' => '試著名',
+'試著書' => '試著書',
+'試著稱' => '試著稱',
+'試著者' => '試著者',
+'試著述' => '試著述',
+'試著錄' => '試著錄',
+'话里有话' => '話裏有話',
+'语法里' => '語法裏',
+'語著' => '語着',
+'語著作' => '語著作',
+'語著名' => '語著名',
+'語著書' => '語著書',
+'語著稱' => '語著稱',
+'語著者' => '語著者',
+'語著述' => '語著述',
+'語著錄' => '語著錄',
+'语里' => '語裏',
+'說著' => '說着',
+'說著作' => '說著作',
+'說著稱' => '說著稱',
+'說著者' => '說著者',
+'說著述' => '說著述',
+'數據機' => '調制解調器',
+'诺曼底' => '諾曼第',
+'警戒著' => '警戒着',
+'變著' => '變着',
+'變著作' => '變著作',
+'變著名' => '變著名',
+'變著書' => '變著書',
+'變著稱' => '變著稱',
+'變著者' => '變著者',
+'變著述' => '變著述',
+'變著錄' => '變著錄',
+'豎著' => '豎着',
+'豎著作' => '豎著作',
+'豎著名' => '豎著名',
+'豎著書' => '豎著書',
+'豎著稱' => '豎著稱',
+'豎著者' => '豎著者',
+'豎著述' => '豎著述',
+'豎著錄' => '豎著錄',
+'象徵著名' => '象徵著名',
+'象徵著' => '象著着',
+'豫著' => '豫着',
+'豫著作' => '豫著作',
+'豫著名' => '豫著名',
+'豫著書' => '豫著書',
+'豫著稱' => '豫著稱',
+'豫著者' => '豫著者',
+'豫著述' => '豫著述',
+'豫著錄' => '豫著錄',
+'貝爾格勒' => '貝爾格萊德',
+'布莱尔' => '貝理雅',
+'貞著' => '貞着',
+'貞著作' => '貞著作',
+'貞著名' => '貞著名',
+'貞著書' => '貞著書',
+'貞著稱' => '貞著稱',
+'貞著者' => '貞著者',
+'貞著述' => '貞著述',
+'貞著錄' => '貞著錄',
+'負著' => '負着',
+'買凶' => '買兇',
+'費占' => '費佔',
+'费占' => '費佔',
+'赌台' => '賭枱',
+'尚比亞' => '贊比亞',
+'西臺人' => '赫梯人',
+'西臺國' => '赫梯國',
+'西臺帝' => '赫梯帝',
+'西臺文' => '赫梯文',
+'西臺族' => '赫梯族',
+'西臺王' => '赫梯王',
+'西臺語' => '赫梯語',
+'赫魯雪夫' => '赫魯曉夫',
+'走為上著' => '走為上着',
+'走著' => '走着',
+'走著作' => '走著作',
+'走著名' => '走著名',
+'走著書' => '走著書',
+'走著稱' => '走著稱',
+'走著者' => '走著者',
+'走著述' => '走著述',
+'走著錄' => '走著錄',
+'趕著' => '趕着',
+'趕著作' => '趕著作',
+'趕著名' => '趕著名',
+'趕著書' => '趕著書',
+'趕著稱' => '趕著稱',
+'趕著者' => '趕著者',
+'趕著述' => '趕著述',
+'趕著錄' => '趕著錄',
+'趴著' => '趴着',
+'趴著作' => '趴著作',
+'趴著名' => '趴著名',
+'趴著書' => '趴著書',
+'趴著稱' => '趴著稱',
+'趴著者' => '趴著者',
+'趴著述' => '趴著述',
+'趴著錄' => '趴著錄',
+'跑著' => '跑着',
+'跑著作' => '跑著作',
+'跑著名' => '跑著名',
+'跑著書' => '跑著書',
+'跑著稱' => '跑著稱',
+'跑著者' => '跑著者',
+'跑著述' => '跑著述',
+'跑著錄' => '跑著錄',
+'跟著' => '跟着',
+'跟著作' => '跟著作',
+'跟著名' => '跟著名',
+'跟著書' => '跟著書',
+'跟著稱' => '跟著稱',
+'跟著者' => '跟著者',
+'跟著述' => '跟著述',
+'跟著錄' => '跟著錄',
+'跪著' => '跪着',
+'跪著作' => '跪著作',
+'跪著名' => '跪著名',
+'跪著書' => '跪著書',
+'跪著稱' => '跪著稱',
+'跪著者' => '跪著者',
+'跪著述' => '跪著述',
+'跪著錄' => '跪著錄',
+'路图里' => '路圖裏',
+'跳著' => '跳着',
+'跳著作' => '跳著作',
+'跳著名' => '跳著名',
+'跳著書' => '跳著書',
+'跳著稱' => '跳著稱',
+'跳著者' => '跳著者',
+'跳著述' => '跳著述',
+'跳著錄' => '跳著錄',
+'踏著' => '踏着',
+'踏著作' => '踏著作',
+'踏著名' => '踏著名',
+'踏著稱' => '踏著稱',
+'踏著者' => '踏著者',
+'踏著述' => '踏著述',
+'踏著錄' => '踏著錄',
+'踩著' => '踩着',
+'踩著作' => '踩著作',
+'踩著名' => '踩著名',
+'踩著書' => '踩著書',
+'踩著稱' => '踩著稱',
+'踩著者' => '踩著者',
+'踩著述' => '踩著述',
+'踩著錄' => '踩著錄',
+'躍著' => '躍着',
+'躍著作' => '躍著作',
+'躍著名' => '躍著名',
+'躍著書' => '躍著書',
+'躍著稱' => '躍著稱',
+'躍著者' => '躍著者',
+'躍著述' => '躍著述',
+'躍著錄' => '躍著錄',
+'身著' => '身着',
+'身著作' => '身著作',
+'身著名' => '身著名',
+'身著書' => '身著書',
+'身著稱' => '身著稱',
+'身著者' => '身著者',
+'身著述' => '身著述',
+'身著錄' => '身著錄',
+'躺著' => '躺着',
+'躺著作' => '躺著作',
+'躺著名' => '躺著名',
+'躺著書' => '躺著書',
+'躺著稱' => '躺著稱',
+'躺著者' => '躺著者',
+'躺著述' => '躺著述',
+'躺著錄' => '躺著錄',
+'车库里' => '車庫裏',
+'车站里' => '車站裏',
+'车里' => '車裏',
+'车里雅宾斯克' => '車里雅賓斯克',
+'軟體' => '軟件',
+'軟體動物' => '軟體動物',
+'軟體家具' => '軟體家具',
+'載著' => '載着',
+'載著作' => '載著作',
+'載著名' => '載著名',
+'載著書' => '載著書',
+'載著稱' => '載著稱',
+'載著者' => '載著者',
+'載著述' => '載著述',
+'載著錄' => '載著錄',
+'轉著' => '轉着',
+'轉著作' => '轉著作',
+'轉著名' => '轉著名',
+'轉著書' => '轉著書',
+'轉著稱' => '轉著稱',
+'轉著者' => '轉著者',
+'轉著述' => '轉著述',
+'轉著錄' => '轉著錄',
+'办公台' => '辦公枱',
+'辦著' => '辦着',
+'辦著作' => '辦著作',
+'辦著名' => '辦著名',
+'辦著書' => '辦著書',
+'辦著稱' => '辦著稱',
+'辦著者' => '辦著者',
+'辦著述' => '辦著述',
+'辦著錄' => '辦著錄',
+'迫著' => '迫着',
+'追著' => '追着',
+'追著作' => '追著作',
+'追著名' => '追著名',
+'追著書' => '追著書',
+'追著稱' => '追著稱',
+'追著者' => '追著者',
+'追著述' => '追著述',
+'追著錄' => '追著錄',
+'逆著' => '逆着',
+'逆著作' => '逆著作',
+'逆著名' => '逆著名',
+'逆著書' => '逆著書',
+'逆著稱' => '逆著稱',
+'逆著者' => '逆著者',
+'逆著述' => '逆著述',
+'逆著錄' => '逆著錄',
+'径入' => '逕入',
+'径到' => '逕到',
+'径取' => '逕取',
+'径启' => '逕啟',
+'径寄' => '逕寄',
+'径庭' => '逕庭',
+'径往' => '逕往',
+'径自' => '逕自',
+'径行' => '逕行',
+'径迎' => '逕迎',
+'这里' => '這裏',
+'连占' => '連佔',
+'連占' => '連佔',
+'連著' => '連着',
+'链接' => '連結',
+'連著作' => '連著作',
+'連著名' => '連著名',
+'連著書' => '連著書',
+'連著稱' => '連著稱',
+'連著者' => '連著者',
+'連著述' => '連著述',
+'連著錄' => '連著錄',
+'进占' => '進佔',
+'進占' => '進佔',
+'演化論' => '進化論',
+'逼著' => '逼着',
+'逼著作' => '逼著作',
+'逼著名' => '逼著名',
+'逼著書' => '逼著書',
+'逼著稱' => '逼著稱',
+'逼著者' => '逼著者',
+'逼著述' => '逼著述',
+'逼著錄' => '逼著錄',
+'遇著' => '遇着',
+'遇著作' => '遇著作',
+'遇著名' => '遇著名',
+'遇著書' => '遇著書',
+'遇著稱' => '遇著稱',
+'遇著者' => '遇著者',
+'遇著述' => '遇著述',
+'遇著錄' => '遇著錄',
+'遍布' => '遍佈',
+'過著' => '過着',
+'达·芬奇' => '達·文西',
+'达芬奇' => '達文西',
+'達著' => '達着',
+'達著作' => '達著作',
+'達著名' => '達著名',
+'達著書' => '達著書',
+'達著稱' => '達著稱',
+'達著者' => '達著者',
+'達著述' => '達著述',
+'達著錄' => '達著錄',
+'遠著' => '遠着',
+'遠著作' => '遠著作',
+'遠著名' => '遠著名',
+'遠著書' => '遠著書',
+'遠著稱' => '遠著稱',
+'遠著者' => '遠著者',
+'遠著述' => '遠著述',
+'遠著錄' => '遠著錄',
+'還占' => '還佔',
+'还占' => '還佔',
+'邋里邋遢' => '邋裏邋遢',
+'那里' => '那裏',
+'奥斯曼' => '鄂圖曼',
+'配合著' => '配合着',
+'配合著名' => '配合著名',
+'配图里' => '配圖裏',
+'配著' => '配着',
+'配著作' => '配著作',
+'配著名' => '配著名',
+'配著書' => '配著書',
+'配著稱' => '配著稱',
+'配著者' => '配著者',
+'配著述' => '配著述',
+'配著錄' => '配著錄',
+'醯' => '酰',
+'醜著' => '醜着',
+'醜著作' => '醜著作',
+'醜著名' => '醜著名',
+'醜著書' => '醜著書',
+'醜著稱' => '醜著稱',
+'醜著者' => '醜著者',
+'醜著述' => '醜著述',
+'醜著錄' => '醜著錄',
+'醯壺' => '醯壺',
+'醯壶' => '醯壺',
+'醯醋' => '醯醋',
+'醯醢' => '醯醢',
+'醯酱' => '醯醬',
+'醯醬' => '醯醬',
+'醯鸡' => '醯雞',
+'醯雞' => '醯雞',
+'釀著' => '釀着',
+'釀著作' => '釀著作',
+'釀著名' => '釀著名',
+'釀著書' => '釀著書',
+'釀著稱' => '釀著稱',
+'釀著者' => '釀著者',
+'釀著述' => '釀著述',
+'釀著錄' => '釀著錄',
+'金装玉里' => '金裝玉裏',
+'鉤' => '鈎',
+'鋪著' => '鋪着',
+'鋪著作' => '鋪著作',
+'鋪著名' => '鋪著名',
+'鋪著書' => '鋪著書',
+'鋪著稱' => '鋪著稱',
+'鋪著者' => '鋪著者',
+'鋪著述' => '鋪著述',
+'鋪著錄' => '鋪著錄',
+'镜图里' => '鏡圖裏',
+'钟在寺里' => '鐘在寺裏',
+'狄托' => '鐵托',
+'泰坦尼克号' => '鐵達尼號',
+'门里' => '門裏',
+'閉著' => '閉着',
+'閉著作' => '閉著作',
+'閉著名' => '閉著名',
+'閉著書' => '閉著書',
+'閉著稱' => '閉著稱',
+'閉著者' => '閉著者',
+'閉著述' => '閉著述',
+'閉著錄' => '閉著錄',
+'蓋曼群島' => '開曼群島',
+'開著' => '開着',
+'開著作' => '開著作',
+'開著名' => '開著名',
+'開著書' => '開著書',
+'開著稱' => '開著稱',
+'開著者' => '開著者',
+'開著述' => '開著述',
+'開著錄' => '開著錄',
+'开诚布公' => '開誠佈公',
+'開誠布公' => '開誠佈公',
+'閑著' => '閑着',
+'閑著作' => '閑著作',
+'閑著名' => '閑著名',
+'閑著書' => '閑著書',
+'閑著稱' => '閑著稱',
+'閑著者' => '閑著者',
+'閑著述' => '閑著述',
+'閑著錄' => '閑著錄',
+'閒著' => '閒着',
+'间里' => '間裏',
+'關係著' => '關係着',
+'關著' => '關着',
+'關著作' => '關著作',
+'關著名' => '關著名',
+'關著書' => '關著書',
+'關著稱' => '關著稱',
+'關著者' => '關著者',
+'關著述' => '關著述',
+'關著錄' => '關著錄',
+'聞不著' => '闻不着',
+'聞得著' => '闻得着',
+'聞著' => '闻着',
+'亞塞拜然' => '阿塞拜疆',
+'阿布達比' => '阿布扎比',
+'阿拉伯聯合大公國' => '阿拉伯聯合酋長國',
+'亞斯文' => '阿斯旺',
+'阿联酋' => '阿聯酋',
+'艾里爾·夏隆' => '阿里埃勒·沙龍',
+'附著' => '附着',
+'附著作' => '附著作',
+'附著名' => '附著名',
+'附著書' => '附著書',
+'附著稱' => '附著稱',
+'附著者' => '附著者',
+'附著述' => '附著述',
+'附著錄' => '附著錄',
+'陋著' => '陋着',
+'陋著作' => '陋著作',
+'陋著名' => '陋著名',
+'陋著書' => '陋著書',
+'陋著稱' => '陋著稱',
+'陋著者' => '陋著者',
+'陋著述' => '陋著述',
+'陋著錄' => '陋著錄',
+'院里' => '院裏',
+'陪著' => '陪着',
+'陪著作' => '陪著作',
+'陪著名' => '陪著名',
+'陪著書' => '陪著書',
+'陪著稱' => '陪著稱',
+'陪著者' => '陪著者',
+'陪著述' => '陪著述',
+'陪著錄' => '陪著錄',
+'阴沟里翻船' => '陰溝裏翻船',
+'隔著' => '隔着',
+'隔著作' => '隔著作',
+'隔著名' => '隔著名',
+'隔著書' => '隔著書',
+'隔著稱' => '隔著稱',
+'隔著者' => '隔著者',
+'隔著述' => '隔著述',
+'隔著錄' => '隔著錄',
+'隨著' => '隨着',
+'隨著作' => '隨著作',
+'隨著名' => '隨著名',
+'隨著書' => '隨著書',
+'隨著稱' => '隨著稱',
+'隨著者' => '隨著者',
+'隨著述' => '隨著述',
+'隨著錄' => '隨著錄',
+'隱占' => '隱佔',
+'隐占' => '隱佔',
+'雅爾達' => '雅爾塔',
+'雅著' => '雅着',
+'雅穆索戈' => '雅穆蘇克雷',
+'雅著作' => '雅著作',
+'雅著名' => '雅著名',
+'雅著書' => '雅著書',
+'雅著稱' => '雅著稱',
+'雅著者' => '雅著者',
+'雅著述' => '雅著述',
+'雅著錄' => '雅著錄',
+'集数里' => '集數裏',
+'集里' => '集裏',
+'雜著' => '雜着',
+'雜著作' => '雜著作',
+'雜著名' => '雜著名',
+'雜著書' => '雜著書',
+'雜著稱' => '雜著稱',
+'雜著者' => '雜著者',
+'雜著述' => '雜著述',
+'雜著錄' => '雜著錄',
+'鸡蛋里挑骨头' => '雞蛋裏挑骨頭',
+'冰淇淋' => '雪糕',
+'冰激凌' => '雪糕',
+'雪里' => '雪裏',
+'萊特灣' => '雷伊泰灣',
+'莱特湾' => '雷伊泰灣',
+'晶體管' => '電晶體',
+'晶体管' => '電晶體',
+'电脑程序' => '電腦程式',
+'计算机程序' => '電腦程式',
+'霄裡' => '霄裡',
+'荷姆茲' => '霍爾木茲',
+'雾里' => '霧裏',
+'霸占' => '霸佔',
+'非占不可' => '非佔不可',
+'靠著' => '靠着',
+'靠著作' => '靠著作',
+'靠著名' => '靠著名',
+'靠著稱' => '靠著稱',
+'靠著称' => '靠著稱',
+'靠著者' => '靠著者',
+'靠著述' => '靠著述',
+'靠著錄' => '靠著錄',
+'靠著录' => '靠著錄',
+'鞋里' => '鞋裏',
+'鞭辟入里' => '鞭辟入裏',
+'朝鲜战争' => '韓戰',
+'響著' => '響着',
+'響著作' => '響著作',
+'響著名' => '響著名',
+'響著書' => '響著書',
+'響著稱' => '響著稱',
+'響著者' => '響著者',
+'響著述' => '響著述',
+'響著錄' => '響著錄',
+'頂著' => '頂着',
+'頂著作' => '頂著作',
+'頂著名' => '頂著名',
+'頂著書' => '頂著書',
+'頂著稱' => '頂著稱',
+'頂著者' => '頂著者',
+'頂著述' => '頂著述',
+'頂著錄' => '頂著錄',
+'順著' => '順着',
+'順著作' => '順著作',
+'順著名' => '順著名',
+'順著書' => '順著書',
+'順著稱' => '順著稱',
+'順著者' => '順著者',
+'順著述' => '順著述',
+'順著錄' => '順著錄',
+'颁布' => '頒佈',
+'頒布' => '頒佈',
+'領著' => '領着',
+'領著作' => '領著作',
+'領著名' => '領著名',
+'領著書' => '領著書',
+'領著稱' => '領著稱',
+'領著者' => '領著者',
+'領著述' => '領著述',
+'領著錄' => '領著錄',
+'头里' => '頭裏',
+'风里' => '風裏',
+'颳著' => '颳着',
+'飃著' => '飃着',
+'飄著' => '飄着',
+'飄著作' => '飄著作',
+'飄著名' => '飄著名',
+'飄著書' => '飄著書',
+'飄著稱' => '飄著稱',
+'飄著者' => '飄著者',
+'飄著述' => '飄著述',
+'飄著錄' => '飄著錄',
+'餐台' => '餐枱',
+'馆里' => '館裏',
+'糊口' => '餬口',
+'马里兰' => '馬利蘭',
+'馬里蘭' => '馬利蘭',
+'马拉特·萨芬' => '馬拉特·沙芬',
+'馬斯垂克' => '馬斯特里赫特',
+'馬爾地夫' => '馬爾代夫',
+'馬利共和國' => '馬里共和國',
+'駕著' => '駕着',
+'駕著作' => '駕著作',
+'駕著名' => '駕著名',
+'駕著書' => '駕著書',
+'駕著稱' => '駕著稱',
+'駕著者' => '駕著者',
+'駕著述' => '駕著述',
+'駕著錄' => '駕著錄',
+'騎著' => '騎着',
+'騎著作' => '騎著作',
+'騎著名' => '騎著名',
+'騎著書' => '騎著書',
+'騎著稱' => '騎著稱',
+'騎著者' => '騎著者',
+'騎著述' => '騎著述',
+'騎著錄' => '騎著錄',
+'騙著' => '騙着',
+'騙著作' => '騙著作',
+'騙著名' => '騙著名',
+'騙著書' => '騙著書',
+'騙著稱' => '騙著稱',
+'騙著者' => '騙著者',
+'騙著述' => '騙著述',
+'騙著錄' => '騙著錄',
+'驶著' => '驶着',
+'高畫質' => '高清',
+'高著' => '高着',
+'高著作' => '高著作',
+'高著名' => '高著名',
+'高著書' => '高著書',
+'高著稱' => '高著稱',
+'高著者' => '高著者',
+'高著述' => '高著述',
+'高著錄' => '高著錄',
+'髭著' => '髭着',
+'髭著作' => '髭著作',
+'髭著名' => '髭著名',
+'髭著書' => '髭著書',
+'髭著稱' => '髭著稱',
+'髭著者' => '髭著者',
+'髭著述' => '髭著述',
+'髭著錄' => '髭著錄',
+'斗着' => '鬥着',
+'鬥著' => '鬥着',
+'鬥著作' => '鬥著作',
+'鬥著名' => '鬥著名',
+'鬥著書' => '鬥著書',
+'鬥著稱' => '鬥著稱',
+'鬥著者' => '鬥著者',
+'鬥著述' => '鬥著述',
+'鬥著錄' => '鬥著錄',
+'鬧著' => '鬧着',
+'牛軋' => '鳥結',
+'牛轧' => '鳥結',
+'鸠占' => '鳩佔',
+'鳩占' => '鳩佔',
+'麗著' => '麗着',
+'麗著作' => '麗著作',
+'麗著名' => '麗著名',
+'麗著書' => '麗著書',
+'麗著稱' => '麗著稱',
+'麗著者' => '麗著者',
+'麗著述' => '麗著述',
+'麗著錄' => '麗著錄',
+'麼著' => '麼着',
+'芮氏0' => '黎克特制0',
+'里氏0' => '黎克特制0',
+'芮氏1' => '黎克特制1',
+'里氏1' => '黎克特制1',
+'芮氏2' => '黎克特制2',
+'里氏2' => '黎克特制2',
+'芮氏3' => '黎克特制3',
+'里氏3' => '黎克特制3',
+'芮氏4' => '黎克特制4',
+'里氏4' => '黎克特制4',
+'里氏5' => '黎克特制5',
+'芮氏5' => '黎克特制5',
+'里氏6' => '黎克特制6',
+'芮氏6' => '黎克特制6',
+'里氏7' => '黎克特制7',
+'芮氏7' => '黎克特制7',
+'里氏8' => '黎克特制8',
+'芮氏8' => '黎克特制8',
+'芮氏9' => '黎克特制9',
+'里氏9' => '黎克特制9',
+'芮氏地震規模' => '黎克特制地震震級',
+'里氏地震规模' => '黎克特制地震震級',
+'里氏震级' => '黎克特制震級',
+'芮氏規模' => '黎克特制震級',
+'里氏规模' => '黎克特制震級',
+'黏著' => '黏着',
+'黏著作' => '黏著作',
+'黏著名' => '黏著名',
+'黏著書' => '黏著書',
+'黏著稱' => '黏著稱',
+'黏著者' => '黏著者',
+'黏著述' => '黏著述',
+'黏著錄' => '黏著錄',
+'蒙特內哥羅' => '黑山',
+'點著' => '點着',
+'點著作' => '點著作',
+'點著名' => '點著名',
+'點著書' => '點著書',
+'點著稱' => '點著稱',
+'點著者' => '點著者',
+'點著述' => '點著述',
+'點著錄' => '點著錄',
+'点里' => '點裏',
+'点里程' => '點里程',
+'鼓里' => '鼓裏',
 );
 
-$zh2HK = array(
-'505線' => '505綫',
-'505线' => '505綫',
-'507線' => '507綫',
-'507线' => '507綫',
-'610線' => '610綫',
-'610线' => '610綫',
-'614P線' => '614P綫',
-'614P线' => '614P綫',
-'614线' => '614綫',
-'614線' => '614綫',
-'615P線' => '615P綫',
-'615P线' => '615P綫',
-'615线' => '615綫',
-'615線' => '615綫',
-'705线' => '705綫',
-'705線' => '705綫',
-'706线' => '706綫',
-'706線' => '706綫',
-'751P線' => '751P綫',
-'751P线' => '751P綫',
-'751線' => '751綫',
-'751线' => '751綫',
-'761P线' => '761P綫',
-'761P線' => '761P綫',
-'“' => '「',
-'”' => '」',
-'‘' => '『',
-'’' => '』',
-'三極體' => '三極管',
-'不著痕跡' => '不着痕跡',
-'不著邊際' => '不着邊際',
-'世界裡' => '世界裏',
-'世界里' => '世界裏',
-'中文里' => '中文裏',
-'中文裡' => '中文裏',
-'民乐' => '中樂',
-'华乐' => '中樂',
-'查德' => '乍得',
+$zh2CN = array(
+'16進位制' => '16进位制',
+'16進位' => '16进制',
+'IP位址' => 'IP地址',
+'一份子' => '一分子',
+'全球資訊網' => '万维网',
+'三十六著' => '三十六着',
+'三極體' => '三极管',
+'下著' => '下着',
+'下著作' => '下著作',
+'下著名' => '下著名',
+'下著錄' => '下著录',
+'下著录' => '下著录',
+'下著有' => '下著有',
+'下著稱' => '下著称',
+'下著称' => '下著称',
+'下著者' => '下著者',
+'下著述' => '下著述',
+'不著' => '不着',
+'不著書' => '不著书',
+'不著名' => '不著名',
+'不著錄' => '不著录',
+'不著稱' => '不著称',
+'不著述' => '不著述',
+'與著' => '与着',
+'與著書' => '与著书',
+'與著作' => '与著作',
+'與著名' => '与著名',
+'與著錄' => '与著录',
+'與著稱' => '与著称',
+'與著者' => '与著者',
+'與著述' => '与著述',
+'醜著' => '丑着',
+'醜著書' => '丑著书',
+'醜著作' => '丑著作',
+'醜著名' => '丑著名',
+'醜著錄' => '丑著录',
+'醜著稱' => '丑著称',
+'醜著者' => '丑著者',
+'醜著述' => '丑著述',
+'邱吉爾' => '丘吉尔',
+'C型肝炎' => '丙型肝炎',
+'C肝' => '丙肝',
+'東協' => '东盟',
+'亚细安' => '东盟',
+'臨著' => '临着',
+'臨著書' => '临著书',
+'臨著作' => '临著作',
+'臨著名' => '临著名',
+'臨著錄' => '临著录',
+'臨著稱' => '临著称',
+'臨著者' => '临著者',
+'臨著述' => '临著述',
+'為著' => '为着',
+'為著《' => '为著《',
+'為著作' => '为著作',
+'為著名' => '为著名',
+'為著錄' => '为著录',
+'為著稱' => '为著称',
+'為著者' => '为著者',
+'為著述' => '为著述',
+'主機板' => '主板',
+'麗著' => '丽着',
+'麗著書' => '丽著书',
+'麗著作' => '丽著作',
+'麗著名' => '丽著名',
+'麗著錄' => '丽著录',
+'麗著稱' => '丽著称',
+'麗著者' => '丽著者',
+'麗著述' => '丽著述',
+'麼著' => '么着',
+'烏茲別克' => '乌兹别克斯坦',
+'樂著' => '乐着',
+'樂著書' => '乐著书',
+'樂著作' => '乐著作',
+'樂著名' => '乐著名',
+'樂著錄' => '乐著录',
+'樂著稱' => '乐著称',
+'樂著者' => '乐著者',
+'樂著述' => '乐著述',
+'喬治·歐威爾' => '乔治·奥威尔',
 '乘著' => '乘着',
+'乘著書' => '乘著书',
 '乘著作' => '乘著作',
 '乘著名' => '乘著名',
-'乘著書' => '乘著書',
-'ä¹\98è\91\97稱' => 'ä¹\98è\91\97稱',
+'乘著錄' => '乘著录',
+'ä¹\98è\91\97稱' => 'ä¹\98è\91\97称',
 '乘著者' => '乘著者',
 '乘著述' => '乘著述',
-'乘著錄' => '乘著錄',
-'葉門' => '也門',
-'二極體' => '二極管',
-'網際網路' => '互聯網',
-'因特网' => '互聯網',
+'B型肝炎' => '乙型肝炎',
+'B肝' => '乙肝',
+'吉力馬札羅' => '乞力马扎罗',
+'葉門' => '也门',
+'買帳' => '买账',
+'了結他' => '了结他',
+'爭著' => '争着',
+'爭著書' => '争著书',
+'爭著作' => '争著作',
+'爭著名' => '争著名',
+'爭著錄' => '争著录',
+'爭著稱' => '争著称',
+'爭著者' => '争著者',
+'爭著述' => '争著述',
+'二極體' => '二极管',
+'二進位制' => '二进位制',
+'二進位' => '二进制',
+'網際網路' => '互联网',
+'網際網絡' => '互联网',
+'亞歷山卓' => '亚历山大',
+'雅穆索戈' => '亚穆苏克罗',
+'互動式' => '交互式',
+'交帳' => '交账',
 '亮著' => '亮着',
+'亮著書' => '亮著书',
 '亮著作' => '亮著作',
 '亮著名' => '亮著名',
-'亮著書' => '亮著書',
-'亮è\91\97稱' => '亮è\91\97稱',
+'亮著錄' => '亮著录',
+'亮è\91\97稱' => '亮è\91\97称',
 '亮著者' => '亮著者',
 '亮著述' => '亮著述',
-'亮著錄' => '亮著錄',
 '人工智慧' => '人工智能',
+'甚麼' => '什么',
+'甚麽' => '什么',
 '仗著' => '仗着',
+'仗著書' => '仗著书',
 '仗著作' => '仗著作',
 '仗著名' => '仗著名',
-'仗著書' => '仗著書',
-'ä»\97è\91\97稱' => 'ä»\97è\91\97稱',
+'仗著錄' => '仗著录',
+'ä»\97è\91\97稱' => 'ä»\97è\91\97称',
 '仗著者' => '仗著者',
 '仗著述' => '仗著述',
-'ä»\97è\91\97é\8c\84' => 'ä»\97è\91\97é\8c\84',
+'ä»\98帳' => 'ä»\98è´¦',
 '代表著' => '代表着',
+'代表著書' => '代表著书',
 '代表著作' => '代表著作',
 '代表著名' => '代表著名',
-'代表著書' => '代表著書',
-'代表è\91\97稱' => '代表è\91\97稱',
+'代表著錄' => '代表著录',
+'代表è\91\97稱' => '代表è\91\97称',
 '代表著者' => '代表著者',
 '代表著述' => '代表著述',
-'代表著錄' => '代表著錄',
-'貝里斯' => '伯利茲',
+'乙太網' => '以太网',
+'伊莉莎白' => '伊丽莎白',
+'伊利諾' => '伊利诺伊',
+'伊利諾伊' => '伊利诺伊',
+'伊斯蘭瑪巴德' => '伊斯兰堡',
+'伊斯坦堡' => '伊斯坦布尔',
+'優先順序' => '优先级',
+'傳著' => '传着',
+'傳著書' => '传著书',
+'傳著作' => '传著作',
+'傳著名' => '传著名',
+'傳著錄' => '传著录',
+'傳著稱' => '传著称',
+'傳著者' => '传著者',
+'傳著述' => '传著述',
+'貝里斯' => '伯利兹',
+'伯明罕' => '伯明翰',
 '伴著' => '伴着',
+'伴著書' => '伴著书',
 '伴著作' => '伴著作',
 '伴著名' => '伴著名',
-'伴著書' => '伴著書',
-'伴著稱' => '伴著稱',
-'伴著者' => '伴著者',
-'伴著述' => '伴著述',
-'伴著錄' => '伴著錄',
-'字節' => '位元組',
-'字节' => '位元組',
+'伴著錄' => '伴著录',
+'伴著稱' => '伴著称',
+'伴著者' => '伴著者',
+'伴著述' => '伴著述',
+'點陣圖' => '位图',
+'IP' => '位址',
 '低著' => '低着',
+'低著書' => '低著书',
 '低著作' => '低著作',
 '低著名' => '低著名',
-'低著書' => '低著書',
-'ä½\8eè\91\97稱' => 'ä½\8eè\91\97稱',
+'低著錄' => '低著录',
+'ä½\8eè\91\97稱' => 'ä½\8eè\91\97称',
 '低著者' => '低著者',
 '低著述' => '低著述',
-'低著錄' => '低著錄',
 '住著' => '住着',
+'住著書' => '住著书',
 '住著作' => '住著作',
 '住著名' => '住著名',
-'住著書' => '住著書',
-'ä½\8fè\91\97稱' => 'ä½\8fè\91\97稱',
+'住著錄' => '住著录',
+'ä½\8fè\91\97稱' => 'ä½\8fè\91\97称',
 '住著者' => '住著者',
 '住著述' => '住著述',
-'住著錄' => '住著錄',
+'餘' => '余',
 '維德角' => '佛得角',
-'作品裡' => '作品裏',
-'作品里' => '作品裏',
-'來著' => '來着',
-'來著作' => '來著作',
-'來著名' => '來著名',
-'來著書' => '來著書',
-'來著稱' => '來著稱',
-'來著者' => '來著者',
-'來著述' => '來著述',
-'來著錄' => '來著錄',
-'海珊' => '侯賽因',
+'侏儸紀' => '侏罗纪',
+'側著' => '侧着',
+'側著書' => '侧著书',
+'側著作' => '侧著作',
+'側著名' => '侧著名',
+'側著錄' => '侧著录',
+'側著稱' => '侧著称',
+'側著者' => '侧著者',
+'側著述' => '侧著述',
+'可攜式' => '便携式',
+'攜帶型' => '便携式',
+'保護著' => '保护着',
 '保障著' => '保障着',
+'保障著書' => '保障著书',
 '保障著作' => '保障著作',
 '保障著名' => '保障著名',
-'保障著書' => '保障著書',
-'ä¿\9dé\9a\9cè\91\97稱' => 'ä¿\9dé\9a\9cè\91\97稱',
+'保障著錄' => '保障著录',
+'ä¿\9dé\9a\9cè\91\97稱' => 'ä¿\9dé\9a\9cè\91\97称',
 '保障著者' => '保障著者',
 '保障著述' => '保障著述',
-'保障著錄' => '保障著錄',
+'資訊理論' => '信息论',
 '信著' => '信着',
+'信著書' => '信著书',
 '信著作' => '信著作',
 '信著名' => '信著名',
-'信著書' => '信著書',
-'ä¿¡è\91\97稱' => 'ä¿¡è\91\97稱',
+'信著錄' => '信著录',
+'ä¿¡è\91\97稱' => 'ä¿¡è\91\97称',
 '信著者' => '信著者',
 '信著述' => '信著述',
-'信著錄' => '信著錄',
+'掌上壓' => '俯卧撑',
+'伏地挺身' => '俯卧撑',
+'倒帳' => '倒账',
 '候著' => '候着',
+'候著書' => '候著书',
 '候著作' => '候著作',
 '候著名' => '候著名',
-'候著書' => '候著書',
-'å\80\99è\91\97稱' => 'å\80\99è\91\97稱',
+'候著錄' => '候著录',
+'å\80\99è\91\97稱' => 'å\80\99è\91\97称',
 '候著者' => '候著者',
 '候著述' => '候著述',
-'候著錄' => '候著錄',
+'藉著' => '借着',
 '借著' => '借着',
+'借著書' => '借著书',
 '借著作' => '借著作',
 '借著名' => '借著名',
-'借著書' => '借著書',
-'å\80\9fè\91\97稱' => 'å\80\9fè\91\97稱',
+'借著錄' => '借著录',
+'å\80\9fè\91\97稱' => 'å\80\9fè\91\97称',
 '借著者' => '借著者',
 '借著述' => '借著述',
-'å\80\9fè\91\97é\8c\84' => 'å\80\9fè\91\97é\8c\84',
+'å\81\87帳' => 'å\81\87è´¦',
 '做著' => '做着',
+'做著書' => '做著书',
 '做著作' => '做著作',
 '做著名' => '做著名',
-'做著書' => '做著書',
-'å\81\9aè\91\97稱' => 'å\81\9aè\91\97稱',
+'做著錄' => '做著录',
+'å\81\9aè\91\97稱' => 'å\81\9aè\91\97称',
 '做著者' => '做著者',
 '做著述' => '做著述',
-'做著錄' => '做著錄',
-'側著' => '側着',
-'側著作' => '側著作',
-'側著名' => '側著名',
-'側著書' => '側著書',
-'側著稱' => '側著稱',
-'側著者' => '側著者',
-'側著述' => '側著述',
-'側著錄' => '側著錄',
 '偷著' => '偷着',
+'偷著書' => '偷著书',
 '偷著作' => '偷著作',
 '偷著名' => '偷著名',
-'偷著書' => '偷著書',
-'å\81·è\91\97稱' => 'å\81·è\91\97稱',
+'偷著錄' => '偷著录',
+'å\81·è\91\97稱' => 'å\81·è\91\97称',
 '偷著者' => '偷著者',
 '偷著述' => '偷著述',
-'偷著錄' => '偷著錄',
-'備著' => '備着',
-'備著作' => '備著作',
-'備著名' => '備著名',
-'備著書' => '備著書',
-'備著稱' => '備著稱',
-'備著者' => '備著者',
-'備著述' => '備著述',
-'備著錄' => '備著錄',
-'凶殘' => '兇殘',
-'凶殺' => '兇殺',
-'雪铁龙' => '先進',
-'雪鐵龍' => '先進',
+'傅利葉' => '傅里叶',
+'母音' => '元音',
 '光著' => '光着',
+'光著書' => '光著书',
 '光著作' => '光著作',
 '光著名' => '光著名',
-'光著書' => '光著書',
-'å\85\89è\91\97稱' => 'å\85\89è\91\97稱',
+'光著錄' => '光著录',
+'å\85\89è\91\97稱' => 'å\85\89è\91\97称',
 '光著者' => '光著者',
 '光著述' => '光著述',
-'光著錄' => '光著錄',
-'柯林頓' => '克林頓',
-'克羅埃西亞' => '克羅地亞',
-'公車上書' => '公車上書',
+'光碟機' => '光驱',
+'柯林頓' => '克林顿',
+'克羅埃西亞' => '克罗地亚',
+'轉殖' => '克隆',
+'複製人' => '克隆人',
+'入帳' => '入账',
+'八進位制' => '八进位制',
+'八進位' => '八进制',
+'西元1' => '公元1',
+'西元2' => '公元2',
+'西元3' => '公元3',
+'西元4' => '公元4',
+'西元5' => '公元5',
+'西元6' => '公元6',
+'西元7' => '公元7',
+'西元8' => '公元8',
+'西元9' => '公元9',
+'西元前' => '公元前',
+'公帳' => '公账',
+'六進位制' => '六进位制',
+'六進位' => '六进制',
+'關著' => '关着',
+'關係著' => '关系着',
+'關著書' => '关著书',
+'關著作' => '关著作',
+'關著名' => '关著名',
+'關著錄' => '关著录',
+'關著稱' => '关著称',
+'關著者' => '关著者',
+'關著述' => '关著述',
+'關帳' => '关账',
+'氧份' => '养分',
 '冀著' => '冀着',
+'冀著書' => '冀著书',
 '冀著作' => '冀著作',
 '冀著名' => '冀著名',
-'冀著書' => '冀著書',
-'å\86\80è\91\97稱' => 'å\86\80è\91\97稱',
+'冀著錄' => '冀著录',
+'å\86\80è\91\97稱' => 'å\86\80è\91\97称',
 '冀著者' => '冀著者',
 '冀著述' => '冀著述',
-'冀著錄' => '冀著錄',
+'記憶體' => '内存',
+'甘比亞' => '冈比亚',
 '冒著' => '冒着',
+'冒著書' => '冒著书',
 '冒著作' => '冒著作',
 '冒著名' => '冒著名',
-'冒著書' => '冒著書',
-'å\86\92è\91\97稱' => 'å\86\92è\91\97稱',
+'冒著錄' => '冒著录',
+'å\86\92è\91\97稱' => 'å\86\92è\91\97称',
 '冒著者' => '冒著者',
 '冒著述' => '冒著述',
-'冒著錄' => '冒著錄',
-'冬天里' => '冬天裏',
-'冬天裡' => '冬天裏',
-'冬日裡' => '冬日裏',
-'冬日里' => '冬日裏',
-'分布' => '分佈',
-'分布於' => '分佈於',
-'分布于' => '分佈於',
+'寫著' => '写着',
+'寫著書' => '写著书',
+'寫著作' => '写著作',
+'寫著名' => '写著名',
+'寫著錄' => '写著录',
+'寫著稱' => '写著称',
+'寫著者' => '写著者',
+'寫著述' => '写著述',
+'沖著' => '冲着',
+'衝著' => '冲着',
+'沖著。' => '冲著。',
+'沖著《' => '冲著《',
+'沖著,' => '冲著,',
+'沖帳' => '冲账',
+'涼著' => '凉着',
+'涼著書' => '凉著书',
+'涼著作' => '凉著作',
+'涼著名' => '凉著名',
+'涼著錄' => '凉著录',
+'涼著稱' => '凉著称',
+'涼著者' => '凉著者',
+'涼著述' => '凉著述',
+'湊合著' => '凑合着',
+'畿內亞' => '几内亚',
+'幾內亞比索' => '几内亚比绍',
+'凱薩琳' => '凯瑟琳',
+'嘉芙蓮' => '凯瑟琳',
+'份內' => '分内',
+'份外' => '分外',
+'解析度' => '分辨率',
+'解像度' => '分辨率',
+'份量' => '分量',
+'車諾比' => '切尔诺贝利',
+'劃著' => '划着',
+'李奧納多' => '列奥那多',
 '列支敦斯登' => '列支敦士登',
-'賴比瑞亞' => '利比里亞',
+'賴比瑞亞' => '利比里亚',
+'別著' => '别着',
+'刮著' => '刮着',
+'颳著' => '刮着',
+'到帳' => '到账',
 '制著' => '制着',
+'制著書' => '制著书',
 '制著作' => '制著作',
 '制著名' => '制著名',
-'制著書' => '制著書',
-'å\88¶è\91\97稱' => 'å\88¶è\91\97稱',
+'制著錄' => '制著录',
+'å\88¶è\91\97稱' => 'å\88¶è\91\97称',
 '制著者' => '制著者',
 '制著述' => '制著述',
-'制著錄' => '制著錄',
+'煞車' => '刹车',
 '刻著' => '刻着',
+'刻著書' => '刻著书',
 '刻著作' => '刻著作',
 '刻著名' => '刻著名',
-'刻著書' => '刻著書',
-'å\88»è\91\97稱' => 'å\88»è\91\97稱',
+'刻著錄' => '刻著录',
+'å\88»è\91\97稱' => 'å\88»è\91\97称',
 '刻著者' => '刻著者',
 '刻著述' => '刻著述',
-'刻著錄' => '刻著錄',
-'迦納' => '加納',
+'前波莫瑞' => '前波美拉尼亚',
+'辦著' => '办着',
+'辦著書' => '办著书',
+'辦著作' => '办著作',
+'辦著名' => '办著名',
+'辦著錄' => '办著录',
+'辦著稱' => '办著称',
+'辦著者' => '办著者',
+'辦著述' => '办著述',
+'加薩走廊' => '加沙地带',
+'迦納' => '加纳',
 '加彭' => '加蓬',
+'動著' => '动着',
+'動著書' => '动著书',
+'動著作' => '动著作',
+'動著名' => '动著名',
+'動著錄' => '动著录',
+'動著稱' => '动著称',
+'動著者' => '动著者',
+'動著述' => '动著述',
 '努力著' => '努力着',
+'努力著書' => '努力著书',
 '努力著作' => '努力著作',
 '努力著名' => '努力著名',
-'努力著書' => '努力著書',
-'å\8aªå\8a\9bè\91\97稱' => 'å\8aªå\8a\9bè\91\97稱',
+'努力著錄' => '努力著录',
+'å\8aªå\8a\9bè\91\97稱' => 'å\8aªå\8a\9bè\91\97称',
 '努力著者' => '努力著者',
 '努力著述' => '努力著述',
-'努力著錄' => '努力著錄',
 '努著' => '努着',
+'努著書' => '努著书',
 '努著作' => '努著作',
 '努著名' => '努著名',
-'努著書' => '努著書',
-'å\8aªè\91\97稱' => 'å\8aªè\91\97稱',
+'努著錄' => '努著录',
+'å\8aªè\91\97稱' => 'å\8aªè\91\97称',
 '努著者' => '努著者',
 '努著述' => '努著述',
-'努著錄' => '努著錄',
-'動著' => '動着',
-'動著作' => '動著作',
-'動著名' => '動著名',
-'動著書' => '動著書',
-'動著稱' => '動著稱',
-'動著者' => '動著者',
-'動著述' => '動著述',
-'動著錄' => '動著錄',
-'北环线' => '北環綫',
-'北環線' => '北環綫',
-'医院里' => '医院裏',
-'波札那' => '博茨瓦納',
-'珍妮弗·卡普里亚蒂' => '卡佩雅蒂',
+'蘿拉' => '劳拉',
+'布蘭登堡' => '勃兰登堡',
+'白朗寧' => '勃朗宁',
+'包著' => '包着',
+'北韓' => '北朝鲜',
+'十進位制' => '十进位制',
+'十進位' => '十进制',
+'公升' => '升',
+'單鏡反光機' => '单反相机',
+'單眼相機' => '单反相机',
+'波札那' => '博茨瓦纳',
+'占著' => '占着',
+'占著作' => '占著作',
+'占著名' => '占著名',
+'占著者' => '占著者',
+'喀拉蚩' => '卡拉奇',
+'卡斯楚' => '卡斯特罗',
+'卡佩雅蒂' => '卡普里亚蒂',
+'盧安達' => '卢旺达',
+'羅浮宮' => '卢浮宫',
+'羅亞爾' => '卢瓦尔',
 '印著' => '印着',
+'印著書' => '印著书',
 '印著作' => '印著作',
 '印著名' => '印著名',
-'印著書' => '印著書',
-'å\8d°è\91\97稱' => 'å\8d°è\91\97稱',
+'印著錄' => '印著录',
+'å\8d°è\91\97稱' => 'å\8d°è\91\97称',
 '印著者' => '印著者',
 '印著述' => '印著述',
-'印著錄' => '印著錄',
-'瓜地馬拉' => '危地馬拉',
-'泡麵' => '即食麵',
-'方便面' => '即食麵',
-'快速面' => '即食麵',
-'速食麵' => '即食麵',
-'厄瓜多' => '厄瓜多爾',
-'厄瓜多爾' => '厄瓜多爾',
-'厄瓜多尔' => '厄瓜多爾',
-'厄利垂亞' => '厄立特里亞',
+'瓜地馬拉' => '危地马拉',
+'厄瓜多尔' => '厄瓜多尔',
+'厄瓜多爾' => '厄瓜多尔',
+'厄瓜多' => '厄瓜多尔',
+'厄立特里亞' => '厄立特里亚',
+'厄利垂亚' => '厄立特里亚',
+'厄利垂亞' => '厄立特里亚',
+'壓著' => '压着',
+'壓著書' => '压著书',
+'壓著作' => '压著作',
+'壓著名' => '压著名',
+'壓著錄' => '压著录',
+'壓著稱' => '压著称',
+'壓著者' => '压著者',
+'壓著述' => '压著述',
 '去著' => '去着',
+'去著書' => '去著书',
 '去著作' => '去著作',
 '去著名' => '去著名',
-'去著書' => '去著書',
-'å\8e»è\91\97稱' => 'å\8e»è\91\97稱',
+'去著錄' => '去著录',
+'å\8e»è\91\97稱' => 'å\8e»è\91\97称',
 '去著者' => '去著者',
 '去著述' => '去著述',
-'去著錄' => '去著錄',
+'發著' => '发着',
+'發著《' => '发著《',
+'發著作' => '发著作',
+'發著名' => '发著名',
+'發著稱' => '发著称',
+'發著者' => '发著者',
+'已開發國家' => '发达国家',
 '受著' => '受着',
+'受著書' => '受著书',
 '受著作' => '受著作',
 '受著名' => '受著名',
-'受著書' => '受著書',
-'å\8f\97è\91\97稱' => 'å\8f\97è\91\97稱',
+'受著錄' => '受著录',
+'å\8f\97è\91\97稱' => 'å\8f\97è\91\97称',
 '受著者' => '受著者',
 '受著述' => '受著述',
-'受著錄' => '受著錄',
+'變著' => '变着',
+'變著書' => '变著书',
+'變著作' => '变著作',
+'變著名' => '变著名',
+'變著錄' => '变著录',
+'變著稱' => '变著称',
+'變著者' => '变著者',
+'變著述' => '变著述',
+'唯讀' => '只读',
 '叫著' => '叫着',
+'叫著書' => '叫著书',
 '叫著作' => '叫著作',
-'叫著名' => '叫著名',
-'叫著書' => '叫著書',
-'å\8f«è\91\97稱' => 'å\8f«è\91\97稱',
+'叫著名' => '叫著名',
+'叫著錄' => '叫著录',
+'å\8f«è\91\97稱' => 'å\8f«è\91\97称',
 '叫著者' => '叫著者',
 '叫著述' => '叫著述',
-'叫著錄' => '叫著錄',
+'撞球' => '台球',
+'台帳' => '台账',
 '叱吒' => '叱咤',
-'叱咤' => '叱咤',
-'吃不著' => '吃不着',
-'吃得著' => '吃得着',
 '吃著' => '吃着',
-'吉布地' => '吉布堤',
+'結他' => '吉他',
+'健力士世界紀錄' => '吉尼斯世界纪录',
+'金氏世界紀錄' => '吉尼斯世界纪录',
+'吉布地' => '吉布提',
+'吊著' => '吊着',
+'名份' => '名分',
 '向著' => '向着',
+'向著書' => '向著书',
 '向著作' => '向著作',
 '向著名' => '向著名',
-'向著書' => '向著書',
-'å\90\91è\91\97稱' => 'å\90\91è\91\97稱',
+'向著錄' => '向著录',
+'å\90\91è\91\97稱' => 'å\90\91è\91\97称',
 '向著者' => '向著者',
 '向著述' => '向著述',
-'向著錄' => '向著錄',
 '含著' => '含着',
+'含著書' => '含著书',
 '含著作' => '含著作',
 '含著名' => '含著名',
-'含著書' => '含著書',
-'å\90«è\91\97稱' => 'å\90«è\91\97稱',
+'含著錄' => '含著录',
+'å\90«è\91\97稱' => 'å\90«è\91\97称',
 '含著者' => '含著者',
 '含著述' => '含著述',
-'含著錄' => '含著錄',
+'聽著' => '听着',
+'聽著書' => '听著书',
+'聽著作' => '听著作',
+'聽著名' => '听著名',
+'聽著錄' => '听著录',
+'聽著稱' => '听著称',
+'聽著者' => '听著者',
+'聽著述' => '听著述',
 '吹著' => '吹着',
+'吹著書' => '吹著书',
 '吹著作' => '吹著作',
 '吹著名' => '吹著名',
-'吹著書' => '吹著書',
-'å\90¹è\91\97稱' => 'å\90¹è\91\97稱',
+'吹著錄' => '吹著录',
+'å\90¹è\91\97稱' => 'å\90¹è\91\97称',
 '吹著者' => '吹著者',
 '吹著述' => '吹著述',
-'吹著錄' => '吹著錄',
+'呆著' => '呆着',
+'呆帳' => '呆账',
 '味著' => '味着',
+'味著書' => '味著书',
 '味著作' => '味著作',
 '味著名' => '味著名',
-'味著書' => '味著書',
-'å\91³è\91\97稱' => 'å\91³è\91\97稱',
+'味著錄' => '味著录',
+'å\91³è\91\97稱' => 'å\91³è\91\97称',
 '味著者' => '味著者',
 '味著述' => '味著述',
-'味著錄' => '味著錄',
-'咤' => '咤',
-'哥斯大黎加' => '哥斯達黎加',
+'咖哩' => '咖喱',
+'諮' => '咨',
+'哈薩克' => '哈萨克斯坦',
+'響著' => '响着',
+'響著書' => '响著书',
+'響著作' => '响著作',
+'響著名' => '响著名',
+'響著錄' => '响著录',
+'響著稱' => '响著称',
+'響著者' => '响著者',
+'響著述' => '响著述',
+'哥斯大黎加' => '哥斯达黎加',
+'哥德式' => '哥特式',
 '哭著' => '哭着',
+'哭著書' => '哭著书',
 '哭著作' => '哭著作',
 '哭著名' => '哭著名',
-'哭著書' => '哭著書',
-'å\93­è\91\97稱' => 'å\93­è\91\97稱',
+'哭著錄' => '哭著录',
+'å\93­è\91\97稱' => 'å\93­è\91\97称',
 '哭著者' => '哭著者',
 '哭著述' => '哭著述',
-'哭著錄' => '哭著錄',
 '唱著' => '唱着',
+'唱著書' => '唱著书',
 '唱著作' => '唱著作',
 '唱著名' => '唱著名',
-'唱著書' => '唱著書',
-'å\94±è\91\97稱' => 'å\94±è\91\97稱',
+'唱著錄' => '唱著录',
+'å\94±è\91\97稱' => 'å\94±è\91\97称',
 '唱著者' => '唱著者',
 '唱著述' => '唱著述',
-'å\94±è\91\97é\8c\84' => 'å\94±è\91\97é\8c\84',
+'å\95¸å\90\92' => 'å\95¸å\92¤',
 '喝著' => '喝着',
+'喝著書' => '喝著书',
 '喝著作' => '喝著作',
 '喝著名' => '喝著名',
-'喝著書' => '喝著書',
-'å\96\9dè\91\97稱' => 'å\96\9dè\91\97稱',
+'喝著錄' => '喝著录',
+'å\96\9dè\91\97稱' => 'å\96\9dè\91\97称',
 '喝著者' => '喝著者',
 '喝著述' => '喝著述',
-'喝著錄' => '喝著錄',
-'自行车' => '單車',
-'嗅不著' => '嗅不着',
-'嗅得著' => '嗅得着',
 '嗅著' => '嗅着',
-'嘴里' => '嘴裏',
-'嘴裡' => '嘴裏',
+'雜訊' => '噪声',
 '嚷著' => '嚷着',
+'嚷著書' => '嚷著书',
 '嚷著作' => '嚷著作',
 '嚷著名' => '嚷著名',
-'嚷著書' => '嚷著書',
-'å\9a·è\91\97稱' => 'å\9a·è\91\97稱',
+'嚷著錄' => '嚷著录',
+'å\9a·è\91\97稱' => 'å\9a·è\91\97称',
 '嚷著者' => '嚷著者',
 '嚷著述' => '嚷著述',
-'嚷著錄' => '嚷著錄',
+'回著' => '回着',
+'回著名' => '回著名',
 '因著' => '因着',
+'因著〈' => '因著〈',
+'因著《' => '因著《',
+'因著書' => '因著书',
 '因著作' => '因著作',
 '因著名' => '因著名',
-'因著書' => '因著書',
-'因著稱' => '因著稱',
+'因著录' => '因著录',
+'因著錄' => '因著录',
+'因著稱' => '因著称',
 '因著者' => '因著者',
 '因著述' => '因著述',
-'因著錄' => '因著錄',
+'西洋棋' => '囯际象棋',
 '困著' => '困着',
+'困著書' => '困著书',
 '困著作' => '困著作',
 '困著名' => '困著名',
-'困著書' => '困著書',
-'å\9b°è\91\97稱' => 'å\9b°è\91\97稱',
+'困著錄' => '困著录',
+'å\9b°è\91\97稱' => 'å\9b°è\91\97称',
 '困著者' => '困著者',
 '困著述' => '困著述',
-'困著錄' => '困著錄',
-'圍著' => '圍着',
-'圍著作' => '圍著作',
-'圍著名' => '圍著名',
-'圍著書' => '圍著書',
-'圍著稱' => '圍著稱',
-'圍著者' => '圍著者',
-'圍著述' => '圍著述',
-'圍著錄' => '圍著錄',
-'吐瓦魯' => '圖瓦盧',
-'土豆網' => '土豆網',
-'土豆网' => '土豆網',
+'圍著' => '围着',
+'圍著書' => '围著书',
+'圍著作' => '围著作',
+'圍著名' => '围著名',
+'圍著錄' => '围著录',
+'圍著稱' => '围著称',
+'圍著者' => '围著者',
+'圍著述' => '围著述',
+'韌體' => '固件',
+'土魯斯' => '图卢兹',
+'吐瓦魯' => '图瓦卢',
+'原子筆' => '圆珠笔',
+'土庫曼' => '土库曼斯坦',
+'聖露西亞' => '圣卢西亚',
+'聖吉斯納域斯' => '圣基茨和尼维斯',
+'聖克里斯多福及尼維斯' => '圣基茨和尼维斯',
+'聖文森及格瑞那丁' => '圣文森特和格林纳丁斯',
+'聖馬利諾' => '圣马力诺',
 '在著' => '在着',
+'在著書' => '在著书',
 '在著作' => '在著作',
 '在著名' => '在著名',
-'在著書' => '在著書',
-'å\9c¨è\91\97稱' => 'å\9c¨è\91\97稱',
+'在著錄' => '在著录',
+'å\9c¨è\91\97稱' => 'å\9c¨è\91\97称',
 '在著者' => '在著者',
 '在著述' => '在著述',
-'在著錄' => '在著錄',
-'蓋亞那' => '圭亞那',
+'蓋亞那' => '圭亚那',
 '坐著' => '坐着',
+'坐著書' => '坐著书',
 '坐著作' => '坐著作',
 '坐著名' => '坐著名',
-'坐著書' => '坐著書',
-'å\9d\90è\91\97稱' => 'å\9d\90è\91\97稱',
+'坐著錄' => '坐著录',
+'å\9d\90è\91\97稱' => 'å\9d\90è\91\97称',
 '坐著者' => '坐著者',
 '坐著述' => '坐著述',
-'坐著錄' => '坐著錄',
-'坦尚尼亞' => '坦桑尼亞',
-'衣索匹亞' => '埃塞俄比亞',
-'衣索比亞' => '埃塞俄比亞',
+'坦尚尼亞' => '坦桑尼亚',
+'伊波拉' => '埃博拉',
+'衣索匹亞' => '埃塞俄比亚',
+'衣索比亞' => '埃塞俄比亚',
+'艾菲爾' => '埃菲尔',
+'葉里溫' => '埃里温',
+'功能變數名稱' => '域名',
 '吉里巴斯' => '基里巴斯',
+'堂姊' => '堂姐',
+'坎培拉' => '堪培拉',
+'塔吉克' => '塔吉克斯坦',
+'塔吉克斯坦' => '塔吉克斯坦',
+'塞爾維亞與蒙特內哥羅' => '塞尔维亚和黑山',
+'塞拉利昂' => '塞拉利昂',
 '塞普勒斯' => '塞浦路斯',
-'塞席爾' => '塞舌爾',
-'壓著' => '壓着',
-'壓著作' => '壓著作',
-'壓著名' => '壓著名',
-'壓著書' => '壓著書',
-'壓著稱' => '壓著稱',
-'壓著者' => '壓著者',
-'壓著述' => '壓著述',
-'壓著錄' => '壓著錄',
-'夏天里' => '夏天裏',
-'夏天裡' => '夏天裏',
-'夏日里' => '夏日裏',
-'夏日裡' => '夏日裏',
-'夢著' => '夢着',
-'夢著作' => '夢著作',
-'夢著名' => '夢著名',
-'夢著書' => '夢著書',
-'夢著稱' => '夢著稱',
-'夢著者' => '夢著者',
-'夢著述' => '夢著述',
-'夢著錄' => '夢著錄',
-'大卫·贝克汉姆' => '大衛碧咸',
-'夾著' => '夾着',
-'夾著作' => '夾著作',
-'夾著名' => '夾著名',
-'夾著書' => '夾著書',
-'夾著稱' => '夾著稱',
-'夾著者' => '夾著者',
-'夾著述' => '夾著述',
-'夾著錄' => '夾著錄',
+'賽普勒斯' => '塞浦路斯',
+'西維爾' => '塞维利亚',
+'塞維亞' => '塞维利亚',
+'塞席爾' => '塞舌尔',
+'音效卡' => '声卡',
+'備著' => '备着',
+'備著書' => '备著书',
+'備著作' => '备著作',
+'備著名' => '备著名',
+'備著錄' => '备著录',
+'備著稱' => '备著称',
+'備著者' => '备著者',
+'備著述' => '备著述',
+'外部連結' => '外部链接',
+'托巴哥' => '多巴哥',
+'都卜勒' => '多普勒',
+'多明尼加' => '多米尼加',
+'大姊' => '大姐',
+'天份' => '天分',
+'夾著' => '夹着',
+'夾著書' => '夹著书',
+'夾著作' => '夹著作',
+'夾著名' => '夹著名',
+'夾著錄' => '夹著录',
+'夾著稱' => '夹著称',
+'夾著者' => '夹著者',
+'夾著述' => '夹著述',
+'賓士' => '奔驰',
+'歐巴馬' => '奥巴马',
+'柯德莉·夏萍' => '奥黛丽·赫本',
+'忌廉' => '奶油',
+'荷里活' => '好莱坞',
+'姊夫' => '姐夫',
+'姊姊' => '姐姐',
+'姊弟' => '姐弟',
+'威爾斯' => '威尔士',
+'威斯伐倫' => '威斯特法伦',
+'字型大小' => '字号',
+'字型檔' => '字库',
+'欄位' => '字段',
+'位元組' => '字节',
+'存著' => '存着',
+'存著名' => '存著名',
 '孤著' => '孤着',
+'孤著書' => '孤著书',
 '孤著作' => '孤著作',
 '孤著名' => '孤著名',
-'孤著書' => '孤著書',
-'å­¤è\91\97稱' => 'å­¤è\91\97稱',
+'孤著錄' => '孤著录',
+'å­¤è\91\97稱' => 'å­¤è\91\97称',
 '孤著者' => '孤著者',
 '孤著述' => '孤著述',
-'å­¤è\91\97é\8c\84' => 'å­¤è\91\97é\8c\84',
-'å­¸è\91\97' => 'å­¸着',
-'學著作' => '學著作',
-'學著名' => '學著名',
-'學著書' => '學著書',
-'學著稱' => '學著稱',
-'學著者' => '學著者',
-'å­¸è\91\97è¿°' => 'å­¸è\91\97è¿°',
-'學著錄' => '學著錄',
-'學裡' => 'å­¸è£\8f',
-'å­¦é\87\8c' => 'å­¸è£\8f',
+'å­¸å§\8a' => 'å­¦å§\90',
+'å­¸è\91\97' => 'å­¦着',
+'學著書' => '学著书',
+'學著作' => '学著作',
+'學著名' => '学著名',
+'學著錄' => '学著录',
+'學著稱' => '学著称',
+'å­¸è\91\97è\80\85' => 'å­¦è\91\97è\80\85',
+'學著述' => '学著述',
+'太空é£\9bè¡\8cå\93¡' => 'å®\87è\88ªå\91\98',
+'太空衣' => 'å®\87è\88ªæ\9c\8d',
 '守著' => '守着',
+'守著書' => '守著书',
 '守著作' => '守著作',
 '守著名' => '守著名',
-'守著書' => '守著書',
-'å®\88è\91\97稱' => 'å®\88è\91\97稱',
+'守著錄' => '守著录',
+'å®\88è\91\97稱' => 'å®\88è\91\97称',
 '守著者' => '守著者',
 '守著述' => '守著述',
-'守著錄' => '守著錄',
-'安地卡及巴布達' => '安提瓜和巴布達',
+'安哈特' => '安哈尔特',
+'安地卡及巴布達' => '安提瓜和巴布达',
+'巨集' => '宏',
 '定著' => '定着',
+'定著書' => '定著书',
 '定著作' => '定著作',
 '定著名' => '定著名',
-'定著書' => '定著書',
-'å®\9aè\91\97稱' => 'å®\9aè\91\97稱',
+'定著錄' => '定著录',
+'å®\9aè\91\97稱' => 'å®\9aè\91\97称',
 '定著者' => '定著者',
 '定著述' => '定著述',
-'定著錄' => '定著錄',
-'沃尓沃' => '富豪',
-'寒假裡' => '寒假裏',
-'寒假里' => '寒假裏',
-'寫著' => '寫着',
-'寫著作' => '寫著作',
-'寫著名' => '寫著名',
-'寫著書' => '寫著書',
-'寫著稱' => '寫著稱',
-'寫著者' => '寫著者',
-'寫著述' => '寫著述',
-'寫著錄' => '寫著錄',
-'将军澳线' => '將軍澳綫',
-'將軍澳線' => '將軍澳綫',
-'专辑里' => '專輯裏',
-'專輯裡' => '專輯裏',
-'尋著' => '尋着',
-'尋著作' => '尋著作',
-'尋著名' => '尋著名',
-'尋著書' => '尋著書',
-'尋著稱' => '尋著稱',
-'尋著者' => '尋著者',
-'尋著述' => '尋著述',
-'尋著錄' => '尋著錄',
-'對著' => '對着',
-'對著作' => '對著作',
-'對著名' => '對著名',
-'對著書' => '對著書',
-'對著稱' => '對著稱',
-'對著者' => '對著者',
-'對著述' => '對著述',
-'對著錄' => '對著錄',
-'奈及利亞' => '尼日利亞',
-'尼日利亚' => '尼日利亞',
-'尼日利亞' => '尼日利亞',
-'尼日尔' => '尼日爾',
-'尼日爾' => '尼日爾',
-'尼日' => '尼日爾',
+'寬頻' => '宽带',
+'密西根' => '密歇根',
+'密执安' => '密歇根',
+'對著' => '对着',
+'對著書' => '对著书',
+'對著作' => '对著作',
+'對著名' => '对著名',
+'對著錄' => '对著录',
+'對著稱' => '对著称',
+'對著者' => '对著者',
+'對著述' => '对著述',
+'對帳' => '对账',
+'尋著' => '寻着',
+'尋著書' => '寻著书',
+'尋著作' => '寻著作',
+'尋著名' => '寻著名',
+'尋著錄' => '寻著录',
+'尋著稱' => '寻著称',
+'尋著者' => '寻著者',
+'尋著述' => '寻著述',
+'飛彈' => '导弹',
+'祖雲達斯' => '尤文图斯',
+'奈及利亞' => '尼日利亚',
+'尼日爾' => '尼日尔',
+'區域網' => '局域网',
+'螢幕' => '屏幕',
 '展著' => '展着',
+'展著書' => '展著书',
 '展著作' => '展著作',
 '展著名' => '展著名',
-'展著書' => '展著書',
-'å±\95è\91\97稱' => 'å±\95è\91\97稱',
+'展著錄' => '展著录',
+'å±\95è\91\97稱' => 'å±\95è\91\97称',
 '展著者' => '展著者',
 '展著述' => '展著述',
-'展著錄' => '展著錄',
-'山洞裡' => '山洞裏',
-'山洞里' => '山洞裏',
-'甘比亞' => '岡比亞',
-'公車' => '巴士',
+'華倫西亞' => '巴伦西亚',
+'瓦倫西亞' => '巴伦西亚',
+'巴塞隆納' => '巴塞罗那',
+'巴塞隆拿' => '巴塞罗那',
+'巴斯拉' => '巴士拉',
+'帕邁拉環礁' => '巴尔米拉环礁',
 '巴貝多' => '巴巴多斯',
-'巴布亞紐幾內亞' => '巴布亞新畿內亞',
-'布吉納法索' => '布基納法索',
-'布希亞' => '布希亞',
-'布希亚' => '布希亞',
-'布希' => '布殊',
-'布什' => '布殊',
+'巴布亞紐幾內亞' => '巴布亚新几内亚',
+'布殊' => '布什',
+'布吉納法索' => '布基纳法索',
+'布隆泉' => '布隆方丹',
 '蒲隆地' => '布隆迪',
-'希特勒' => '希特拉',
-'帕劳' => '帛琉',
-'帶著' => '帶着',
-'帶著作' => '帶著作',
-'帶著名' => '帶著名',
-'帶著書' => '帶著書',
-'帶著稱' => '帶著稱',
-'帶著者' => '帶著者',
-'帶著述' => '帶著述',
-'帶著錄' => '帶著錄',
-'幫著' => '幫着',
-'幫著作' => '幫著作',
-'幫著名' => '幫著名',
-'幫著書' => '幫著書',
-'幫著稱' => '幫著稱',
-'幫著者' => '幫著者',
-'幫著述' => '幫著述',
-'幫著錄' => '幫著錄',
-'干着急' => '干着急',
-'賓士' => '平治',
-'年代里' => '年代裏',
-'年代裡' => '年代裏',
-'幹著' => '幹着',
-'干着' => '幹着',
-'幾內亞比索' => '幾內亞比紹',
+'席哈克' => '希拉克',
+'希特拉' => '希特勒',
+'帛琉' => '帕劳',
+'派屈克' => '帕特里克',
+'頻寬' => '带宽',
+'帶著' => '带着',
+'帶著書' => '带著书',
+'帶著作' => '带著作',
+'帶著名' => '带著名',
+'帶著錄' => '带著录',
+'帶著稱' => '带著称',
+'帶著者' => '带著者',
+'帶著述' => '带著述',
+'幫著' => '帮着',
+'幫著書' => '帮著书',
+'幫著作' => '帮著作',
+'幫著名' => '帮著名',
+'幫著錄' => '帮著录',
+'幫著稱' => '帮著称',
+'幫著者' => '帮著者',
+'幫著述' => '帮著述',
+'乾姊' => '干姐',
+'幹著' => '干着',
+'幹著名' => '幹著名',
+'幹著稱' => '幹著称',
+'庇護著' => '庇护着',
+'應用程式' => '应用程序',
+'應著' => '应着',
+'應著書' => '应著书',
+'應著作' => '应著作',
+'應著名' => '应著名',
+'應著錄' => '应著录',
+'應著稱' => '应著称',
+'應著者' => '应著者',
+'應著述' => '应著述',
 '康著' => '康着',
+'康著書' => '康著书',
 '康著作' => '康著作',
 '康著名' => '康著名',
-'康著書' => '康著書',
-'康è\91\97稱' => '康è\91\97稱',
+'康著錄' => '康著录',
+'康è\91\97稱' => '康è\91\97称',
 '康著者' => '康著者',
 '康著述' => '康著述',
-'康著錄' => '康著錄',
+'建帳' => '建账',
+'克卜勒' => '开普勒',
+'蓋曼群島' => '开曼群岛',
+'開著' => '开着',
+'開著書' => '开著书',
+'開著作' => '开著作',
+'開著名' => '开著名',
+'開著錄' => '开著录',
+'開著稱' => '开著称',
+'開著者' => '开著者',
+'開著述' => '开著述',
+'開帳' => '开账',
+'非同步' => '异步',
+'若且唯若' => '当且仅当',
+'當著' => '当着',
+'當著書' => '当著书',
+'當著作' => '当著作',
+'當著名' => '当著名',
+'當著錄' => '当著录',
+'當著稱' => '当著称',
+'當著者' => '当著者',
+'當著述' => '当著述',
+'錄影帶' => '录像带',
+'形上學' => '形而上学',
+'澈底' => '彻底',
+'逕入' => '径入',
+'逕到' => '径到',
+'逕取' => '径取',
+'逕啟' => '径启',
+'逕寄' => '径寄',
+'逕庭' => '径庭',
+'逕往' => '径往',
+'逕自' => '径自',
+'逕行' => '径行',
+'逕迎' => '径迎',
 '待著' => '待着',
+'待著書' => '待著书',
 '待著作' => '待著作',
 '待著名' => '待著名',
-'待著書' => '待著書',
-'å¾\85è\91\97稱' => 'å¾\85è\91\97稱',
+'待著錄' => '待著录',
+'å¾\85è\91\97稱' => 'å¾\85è\91\97称',
 '待著者' => '待著者',
 '待著述' => '待著述',
-'待著錄' => '待著錄',
 '得著' => '得着',
+'得著書' => '得著书',
 '得著作' => '得著作',
 '得著名' => '得著名',
-'得著書' => '得著書',
-'å¾\97è\91\97稱' => 'å¾\97è\91\97稱',
+'得著錄' => '得著录',
+'å¾\97è\91\97稱' => 'å¾\97è\91\97称',
 '得著者' => '得著者',
 '得著述' => '得著述',
-'得著錄' => '得著錄',
+'御姊' => '御姐',
+'迴圈' => '循环',
 '循著' => '循着',
+'循著書' => '循著书',
 '循著作' => '循著作',
 '循著名' => '循著名',
-'循著書' => '循著書',
-'循è\91\97稱' => '循è\91\97稱',
+'循著錄' => '循著录',
+'循è\91\97稱' => '循è\91\97称',
 '循著者' => '循著者',
 '循著述' => '循著述',
-'循著錄' => '循著錄',
+'德勒斯登' => '德累斯顿',
+'德希達' => '德里达',
 '心著' => '心着',
-'心繫著' => '心繫着',
+'心著書' => '心著书',
 '心著作' => '心著作',
 '心著名' => '心著名',
-'心著書' => '心著書',
-'å¿\83è\91\97稱' => 'å¿\83è\91\97稱',
+'心著錄' => '心著录',
+'å¿\83è\91\97稱' => 'å¿\83è\91\97称',
 '心著者' => '心著者',
 '心著述' => '心著述',
-'心著錄' => '心著錄',
-'心裡' => '心裏',
-'心里' => '心裏',
 '忍著' => '忍着',
+'忍著書' => '忍著书',
 '忍著作' => '忍著作',
 '忍著名' => '忍著名',
-'忍著書' => '忍著書',
-'å¿\8dè\91\97稱' => 'å¿\8dè\91\97稱',
+'忍著錄' => '忍著录',
+'å¿\8dè\91\97稱' => 'å¿\8dè\91\97称',
 '忍著者' => '忍著者',
 '忍著述' => '忍著述',
-'忍著錄' => '忍著錄',
 '志著' => '志着',
+'志著書' => '志著书',
 '志著作' => '志著作',
 '志著名' => '志著名',
-'志著書' => '志著書',
-'å¿\97è\91\97稱' => 'å¿\97è\91\97稱',
+'志著錄' => '志著录',
+'å¿\97è\91\97稱' => 'å¿\97è\91\97称',
 '志著者' => '志著者',
 '志著述' => '志著述',
-'志著錄' => '志著錄',
 '忙著' => '忙着',
+'忙著書' => '忙著书',
 '忙著作' => '忙著作',
 '忙著名' => '忙著名',
-'忙著書' => '忙著書',
-'å¿\99è\91\97稱' => 'å¿\99è\91\97稱',
+'忙著錄' => '忙著录',
+'å¿\99è\91\97稱' => 'å¿\99è\91\97称',
 '忙著者' => '忙著者',
 '忙著述' => '忙著述',
-'忙著錄' => '忙著錄',
+'懷著' => '怀着',
+'懷著書' => '怀著书',
+'懷著作' => '怀著作',
+'懷著名' => '怀著名',
+'懷著錄' => '怀著录',
+'懷著稱' => '怀著称',
+'懷著者' => '怀著者',
+'懷著述' => '怀著述',
 '急著' => '急着',
+'急著書' => '急著书',
 '急著作' => '急著作',
 '急著名' => '急著名',
-'急著書' => '急著書',
-'æ\80¥è\91\97稱' => 'æ\80¥è\91\97稱',
+'急著錄' => '急著录',
+'æ\80¥è\91\97稱' => 'æ\80¥è\91\97称',
 '急著者' => '急著者',
 '急著述' => '急著述',
-'急著錄' => '急著錄',
 '性著' => '性着',
+'性著書' => '性著书',
 '性著作' => '性著作',
 '性著名' => '性著名',
-'性著書' => '性著書',
-'æ\80§è\91\97稱' => 'æ\80§è\91\97稱',
+'性著錄' => '性著录',
+'æ\80§è\91\97稱' => 'æ\80§è\91\97称',
 '性著者' => '性著者',
 '性著述' => '性著述',
-'性著錄' => '性著錄',
+'匯流排' => '总线',
+'總帳' => '总账',
+'戀著' => '恋着',
+'戀著書' => '恋著书',
+'戀著作' => '恋著作',
+'戀著名' => '恋著名',
+'戀著錄' => '恋著录',
+'戀著稱' => '恋著称',
+'戀著者' => '恋著者',
+'戀著述' => '恋著述',
+'恰如其份' => '恰如其分',
 '悠著' => '悠着',
+'悠著書' => '悠著书',
 '悠著作' => '悠著作',
 '悠著名' => '悠著名',
-'悠著書' => '悠著書',
-'æ\82 è\91\97稱' => 'æ\82 è\91\97稱',
+'悠著錄' => '悠著录',
+'æ\82 è\91\97稱' => 'æ\82 è\91\97称',
 '悠著者' => '悠著者',
 '悠著述' => '悠著述',
-'悠著錄' => '悠著錄',
-'想象' => '想像',
+'慣著' => '惯着',
+'慣著書' => '惯著书',
+'慣著作' => '惯著作',
+'慣著名' => '惯著名',
+'慣著錄' => '惯著录',
+'慣著稱' => '惯著称',
+'慣著者' => '惯著者',
+'慣著述' => '惯著述',
 '想著' => '想着',
+'想著書' => '想著书',
 '想著作' => '想著作',
 '想著名' => '想著名',
-'想著書' => '想著書',
-'æ\83³è\91\97稱' => 'æ\83³è\91\97稱',
+'想著錄' => '想著录',
+'æ\83³è\91\97稱' => 'æ\83³è\91\97称',
 '想著者' => '想著者',
 '想著述' => '想著述',
-'想著錄' => '想著錄',
 '義大利' => '意大利',
-'愛著' => '愛着',
-'愛著作' => '愛著作',
-'愛著名' => '愛著名',
-'愛著書' => '愛著書',
-'愛著稱' => '愛著稱',
-'愛著者' => '愛著者',
-'愛著述' => '愛著述',
-'愛著錄' => '愛著錄',
-'慣著' => '慣着',
-'慣著作' => '慣著作',
-'慣著名' => '慣著名',
-'慣著書' => '慣著書',
-'慣著稱' => '慣著稱',
-'慣著者' => '慣著者',
-'慣著述' => '慣著述',
-'慣著錄' => '慣著錄',
-'應著' => '應着',
-'應著作' => '應著作',
-'應著名' => '應著名',
-'應著書' => '應著書',
-'應著稱' => '應著稱',
-'應著者' => '應著者',
-'應著述' => '應著述',
-'應著錄' => '應著錄',
-'懷著' => '懷着',
-'懷著作' => '懷著作',
-'懷著名' => '懷著名',
-'懷著書' => '懷著書',
-'懷著稱' => '懷著稱',
-'懷著者' => '懷著者',
-'懷著述' => '懷著述',
-'懷著錄' => '懷著錄',
-'戀著' => '戀着',
-'戀著作' => '戀著作',
-'戀著名' => '戀著名',
-'戀著書' => '戀著書',
-'戀著稱' => '戀著稱',
-'戀著者' => '戀著者',
-'戀著述' => '戀著述',
-'戀著錄' => '戀著錄',
-'戰著' => '戰着',
-'戰著作' => '戰著作',
-'戰著名' => '戰著名',
-'戰著書' => '戰著書',
-'戰著稱' => '戰著稱',
-'戰著者' => '戰著者',
-'戰著述' => '戰著述',
-'戰著錄' => '戰著錄',
-'戲裡' => '戲裏',
-'戏里' => '戲裏',
+'戈巴契夫' => '戈尔巴乔夫',
+'成份' => '成分',
+'戰著' => '战着',
+'戰著書' => '战著书',
+'戰著作' => '战著作',
+'戰著名' => '战著名',
+'戰著錄' => '战著录',
+'戰著稱' => '战著称',
+'戰著者' => '战著者',
+'戰著述' => '战著述',
+'坎城' => '戛纳',
 '黛安娜' => '戴安娜',
-'狄安娜' => '戴安娜',
 '戴著' => '戴着',
+'戴著書' => '戴著书',
 '戴著作' => '戴著作',
 '戴著名' => '戴著名',
-'戴著書' => '戴著書',
-'æ\88´è\91\97稱' => 'æ\88´è\91\97稱',
+'戴著錄' => '戴著录',
+'æ\88´è\91\97稱' => 'æ\88´è\91\97称',
 '戴著者' => '戴著者',
 '戴著述' => '戴著述',
-'戴著錄' => '戴著錄',
-'索羅門群島' => '所羅門群島',
+'索羅門群島' => '所罗门群岛',
+'紮著' => '扎着',
+'紮著書' => '扎著书',
+'紮著作' => '扎著作',
+'紮著名' => '扎著名',
+'紮著錄' => '扎著录',
+'紮著稱' => '扎著称',
+'紮著者' => '扎著者',
+'紮著述' => '扎著述',
 '列印' => '打印',
-'å\8d°è¡¨æ©\9f' => 'æ\89\93å\8d°æ©\9f',
+'å\8d°è¡¨æ©\9f' => 'æ\89\93å\8d°æ\9cº',
 '打著' => '打着',
+'打著書' => '打著书',
 '打著作' => '打著作',
 '打著名' => '打著名',
-'打著書' => '打著書',
-'æ\89\93è\91\97稱' => 'æ\89\93è\91\97稱',
+'打著錄' => '打著录',
+'æ\89\93è\91\97稱' => 'æ\89\93è\91\97称',
 '打著者' => '打著者',
 '打著述' => '打著述',
-'打著錄' => '打著錄',
 '扛著' => '扛着',
+'扛著書' => '扛著书',
 '扛著作' => '扛著作',
 '扛著名' => '扛著名',
-'扛著書' => '扛著書',
-'æ\89\9bè\91\97稱' => 'æ\89\9bè\91\97稱',
+'扛著錄' => '扛著录',
+'æ\89\9bè\91\97稱' => 'æ\89\9bè\91\97称',
 '扛著者' => '扛著者',
 '扛著述' => '扛著述',
-'扛著錄' => '扛著錄',
-'找不著' => '找不着',
-'找得著' => '找得着',
+'掃瞄' => '扫描',
+'掃瞄器' => '扫描仪',
 '抓著' => '抓着',
 '抓著作' => '抓著作',
 '抓著名' => '抓著名',
-'抓著稱' => '抓著稱',
+'抓著錄' => '抓著录',
+'抓著稱' => '抓著称',
 '抓著者' => '抓著者',
 '抓著述' => '抓著述',
-'抓著錄' => '抓著錄',
+'投機份子' => '投机分子',
+'護著' => '护着',
+'護著書' => '护著书',
+'護著作' => '护著作',
+'護著名' => '护著名',
+'護著錄' => '护著录',
+'護著稱' => '护著称',
+'護著者' => '护著者',
+'護著述' => '护著述',
+'報帳' => '报账',
 '披著' => '披着',
+'披著書' => '披著书',
 '披著作' => '披著作',
 '披著名' => '披著名',
-'披著書' => '披著書',
-'æ\8a«è\91\97稱' => 'æ\8a«è\91\97稱',
+'披著錄' => '披著录',
+'æ\8a«è\91\97稱' => 'æ\8a«è\91\97称',
 '披著者' => '披著者',
 '披著述' => '披著述',
-'æ\8a«è\91\97é\8c\84' => 'æ\8a«è\91\97é\8c\84',
+'æ\93¡è\91\97' => 'æ\8a¬ç\9d\80',
 '抬著' => '抬着',
 '抬著作' => '抬著作',
 '抬著名' => '抬著名',
-'抬著稱' => '抬著稱',
+'抬著錄' => '抬著录',
+'抬著稱' => '抬著称',
 '抬著者' => '抬著者',
 '抬著述' => '抬著述',
-'抬著錄' => '抬著錄',
 '抱著' => '抱着',
 '抱著作' => '抱著作',
 '抱著名' => '抱著名',
-'抱著稱' => '抱著稱',
+'抱著錄' => '抱著录',
+'抱著稱' => '抱著称',
 '抱著者' => '抱著者',
 '抱著述' => '抱著述',
-'æ\8a±è\91\97é\8c\84' => 'æ\8a±è\91\97é\8c\84',
+'æ\93\94è\91\97' => 'æ\8b\85ç\9d\80',
 '拉著' => '拉着',
+'拉著書' => '拉著书',
 '拉著作' => '拉著作',
 '拉著名' => '拉著名',
-'拉著書' => '拉著書',
-'æ\8b\89è\91\97稱' => 'æ\8b\89è\91\97稱',
+'拉著錄' => '拉著录',
+'æ\8b\89è\91\97稱' => 'æ\8b\89è\91\97称',
 '拉著者' => '拉著者',
 '拉著述' => '拉著述',
-'拉著錄' => '拉著錄',
 '拎著' => '拎着',
 '拎著作' => '拎著作',
 '拎著名' => '拎著名',
-'拎著稱' => '拎著稱',
+'拎著錄' => '拎著录',
+'拎著稱' => '拎著称',
 '拎著者' => '拎著者',
 '拎著述' => '拎著述',
-'拎著錄' => '拎著錄',
 '拖著' => '拖着',
 '拖著作' => '拖著作',
 '拖著名' => '拖著名',
-'拖著稱' => '拖著稱',
+'拖著錄' => '拖著录',
+'拖著稱' => '拖著称',
 '拖著者' => '拖著者',
 '拖著述' => '拖著述',
-'拖著錄' => '拖著錄',
 '拼著' => '拼着',
 '拼著作' => '拼著作',
 '拼著名' => '拼著名',
-'拼著稱' => '拼著稱',
+'拼著錄' => '拼著录',
+'拼著稱' => '拼著称',
 '拼著者' => '拼著者',
 '拼著述' => '拼著述',
-'拼著錄' => '拼著錄',
 '拿著' => '拿着',
 '拿著作' => '拿著作',
 '拿著名' => '拿著名',
-'拿著稱' => '拿著稱',
+'拿著錄' => '拿著录',
+'拿著稱' => '拿著称',
 '拿著者' => '拿著者',
 '拿著述' => '拿著述',
-'拿著錄' => '拿著錄',
 '持著' => '持着',
 '持著作' => '持著作',
 '持著名' => '持著名',
-'持著稱' => '持著稱',
+'持著錄' => '持著录',
+'持著稱' => '持著称',
 '持著者' => '持著者',
 '持著述' => '持著述',
-'æ\8c\81è\91\97é\8c\84' => 'æ\8c\81è\91\97é\8c\84',
+'æ\8e\9bè\91\97' => 'æ\8c\82ç\9d\80',
 '挑著' => '挑着',
 '挑著作' => '挑著作',
 '挑著名' => '挑著名',
-'挑著稱' => '挑著稱',
+'挑著錄' => '挑著录',
+'挑著稱' => '挑著称',
 '挑著者' => '挑著者',
 '挑著述' => '挑著述',
-'挑著錄' => '挑著錄',
+'擋著' => '挡着',
+'擋著作' => '挡著作',
+'擋著名' => '挡著名',
+'擋著錄' => '挡著录',
+'擋著稱' => '挡著称',
+'擋著者' => '挡著者',
+'擋著述' => '挡著述',
+'掙著' => '挣着',
+'掙著書' => '挣著书',
+'掙著作' => '挣著作',
+'掙著名' => '挣著名',
+'掙著錄' => '挣著录',
+'掙著稱' => '挣著称',
+'掙著者' => '挣著者',
+'掙著述' => '挣著述',
+'揮著' => '挥着',
+'揮著作' => '挥著作',
+'揮著名' => '挥著名',
+'揮著錄' => '挥著录',
+'揮著稱' => '挥著称',
+'揮著者' => '挥著者',
+'揮著述' => '挥著述',
 '挨著' => '挨着',
 '挨著作' => '挨著作',
 '挨著名' => '挨著名',
-'挨著稱' => '挨著稱',
+'挨著錄' => '挨著录',
+'挨著稱' => '挨著称',
 '挨著者' => '挨著者',
 '挨著述' => '挨著述',
-'挨著錄' => '挨著錄',
 '捆著' => '捆着',
 '捆著作' => '捆著作',
 '捆著名' => '捆著名',
-'捆著稱' => '捆著稱',
+'捆著錄' => '捆著录',
+'捆著稱' => '捆著称',
 '捆著者' => '捆著者',
 '捆著述' => '捆著述',
-'捆著錄' => '捆著錄',
+'據著' => '据着',
+'據著書' => '据著书',
+'據著作' => '据著作',
+'據著名' => '据著名',
+'據著錄' => '据著录',
+'據著稱' => '据著称',
+'據著者' => '据著者',
+'據著述' => '据著述',
+'積架' => '捷豹',
 '掖著' => '掖着',
 '掖著作' => '掖著作',
 '掖著名' => '掖著名',
-'掖著稱' => '掖著稱',
+'掖著錄' => '掖著录',
+'掖著稱' => '掖著称',
 '掖著者' => '掖著者',
 '掖著述' => '掖著述',
-'掖著錄' => '掖著錄',
-'掙著' => '掙着',
-'掙著作' => '掙著作',
-'掙著名' => '掙著名',
-'掙著書' => '掙著書',
-'掙著稱' => '掙著稱',
-'掙著者' => '掙著者',
-'掙著述' => '掙著述',
-'掙著錄' => '掙著錄',
-'掛鉤' => '掛鈎',
 '接著' => '接着',
 '接著作' => '接著作',
 '接著名' => '接著名',
-'接著稱' => '接著稱',
+'接著錄' => '接著录',
+'接著稱' => '接著称',
 '接著者' => '接著者',
 '接著述' => '接著述',
-'æ\8e¥è\91\97é\8c\84' => 'æ\8e¥è\91\97é\8c\84',
+'æ\8e§å\88¶é \85' => 'æ\8e§ä»¶',
 '揉著' => '揉着',
+'揉著書' => '揉著书',
 '揉著作' => '揉著作',
 '揉著名' => '揉著名',
-'揉著書' => '揉著書',
-'æ\8f\89è\91\97稱' => 'æ\8f\89è\91\97稱',
+'揉著錄' => '揉著录',
+'æ\8f\89è\91\97稱' => 'æ\8f\89è\91\97称',
 '揉著者' => '揉著者',
 '揉著述' => '揉著述',
-'揉著錄' => '揉著錄',
 '提著' => '提着',
 '提著作' => '提著作',
 '提著名' => '提著名',
-'提著稱' => '提著稱',
+'提著錄' => '提著录',
+'提著稱' => '提著称',
 '提著者' => '提著者',
 '提著述' => '提著述',
-'提著錄' => '提著錄',
-'揮著' => '揮着',
-'揮著作' => '揮著作',
-'揮著名' => '揮著名',
-'揮著稱' => '揮著稱',
-'揮著者' => '揮著者',
-'揮著述' => '揮著述',
-'揮著錄' => '揮著錄',
-'摟著' => '摟着',
-'摟著作' => '摟著作',
-'摟著名' => '摟著名',
-'摟著稱' => '摟著稱',
-'摟著者' => '摟著者',
-'摟著述' => '摟著述',
-'摟著錄' => '摟著錄',
+'外掛程式' => '插件',
+'摟著' => '搂着',
+'摟著作' => '搂著作',
+'摟著名' => '搂著名',
+'摟著錄' => '搂著录',
+'摟著稱' => '搂著称',
+'摟著者' => '搂著者',
+'摟著述' => '搂著述',
+'搜尋引擎' => '搜索引擎',
+'擺著' => '摆着',
+'擺著作' => '摆著作',
+'擺著名' => '摆著名',
+'擺著錄' => '摆著录',
+'擺著稱' => '摆著称',
+'擺著者' => '摆著者',
+'擺著述' => '摆著述',
+'電單車' => '摩托车',
+'戴卓爾' => '撒切尔',
+'柴契爾' => '撒切尔',
 '撼著' => '撼着',
+'撼著書' => '撼著书',
 '撼著作' => '撼著作',
 '撼著名' => '撼著名',
-'撼著書' => '撼著書',
-'æ\92¼è\91\97稱' => 'æ\92¼è\91\97稱',
+'撼著錄' => '撼著录',
+'æ\92¼è\91\97稱' => 'æ\92¼è\91\97称',
 '撼著者' => '撼著者',
 '撼著述' => '撼著述',
-'撼著錄' => '撼著錄',
-'擋著' => '擋着',
-'擋著作' => '擋著作',
-'擋著名' => '擋著名',
-'擋著稱' => '擋著稱',
-'擋著者' => '擋著者',
-'擋著述' => '擋著述',
-'擋著錄' => '擋著錄',
-'據著' => '據着',
-'據著作' => '據著作',
-'據著名' => '據著名',
-'據著書' => '據著書',
-'據著稱' => '據著稱',
-'據著者' => '據著者',
-'據著述' => '據著述',
-'據著錄' => '據著錄',
-'擺著' => '擺着',
-'擺著作' => '擺著作',
-'擺著名' => '擺著名',
-'擺著稱' => '擺著稱',
-'擺著者' => '擺著者',
-'擺著述' => '擺著述',
-'擺著錄' => '擺著錄',
-'故事里' => '故事裏',
-'故事裡' => '故事裏',
+'作業系統' => '操作系统',
+'收帳' => '收账',
+'放著' => '放着',
+'放著作' => '放著作',
+'放著名' => '放著名',
+'放著称' => '放著称',
+'放著稱' => '放著称',
+'放帳' => '放账',
 '敞著' => '敞着',
 '敞著作' => '敞著作',
 '敞著名' => '敞著名',
-'敞著稱' => '敞著稱',
+'敞著錄' => '敞著录',
+'敞著稱' => '敞著称',
 '敞著者' => '敞著者',
 '敞著述' => '敞著述',
-'敞著錄' => '敞著錄',
-'數著' => '數着',
-'數著作' => '數著作',
-'數著名' => '數著名',
-'數著稱' => '數著稱',
-'數著者' => '數著者',
-'數著述' => '數著述',
-'數著錄' => '數著錄',
+'數碼訊號' => '数字信号',
+'數位訊號' => '数字信号',
+'數位技術' => '数字技术',
+'數碼技術' => '数字技术',
+'數位電視' => '数字电视',
+'數碼電視' => '数字电视',
+'資料庫' => '数据库',
+'數著' => '数着',
+'數位相機' => '数码相机',
+'數著作' => '数著作',
+'數著名' => '数著名',
+'數著錄' => '数著录',
+'數著稱' => '数著称',
+'數著者' => '数著者',
+'數著述' => '数著述',
+'汶萊' => '文莱',
+'鬥著' => '斗着',
+'鬥著書' => '斗著书',
+'鬥著作' => '斗著作',
+'鬥著名' => '斗著名',
+'鬥著錄' => '斗著录',
+'鬥著稱' => '斗著称',
+'鬥著者' => '斗著者',
+'鬥著述' => '斗著述',
 '斥著' => '斥着',
+'斥著書' => '斥著书',
 '斥著作' => '斥著作',
 '斥著名' => '斥著名',
-'斥著書' => '斥著書',
-'æ\96¥è\91\97稱' => 'æ\96¥è\91\97稱',
+'斥著錄' => '斥著录',
+'æ\96¥è\91\97稱' => 'æ\96¥è\91\97称',
 '斥著者' => '斥著者',
 '斥著述' => '斥著述',
-'斥著錄' => '斥著錄',
-'史瓦濟蘭' => '斯威士蘭',
-'斯洛維尼亞' => '斯洛文尼亞',
-'新著龍虎門' => '新著龍虎門',
-'紐西蘭' => '新西蘭',
-'日子里' => '日子裏',
-'日子裡' => '日子裏',
+'史達林' => '斯大林',
+'史瓦濟蘭' => '斯威士兰',
+'斯洛維尼亞' => '斯洛文尼亚',
+'史特勞斯' => '斯特劳斯',
+'紐幾內亞' => '新几内亚',
+'紐澤西' => '新泽西',
+'紐西蘭' => '新西兰',
+'舊帳' => '旧账',
+'三藩市' => '旧金山',
+'昂山素姬' => '昂山素季',
+'翁山蘇姬' => '昂山素季',
 '昂著' => '昂着',
+'昂著書' => '昂著书',
 '昂著作' => '昂著作',
 '昂著名' => '昂著名',
-'昂著書' => '昂著書',
-'æ\98\82è\91\97稱' => 'æ\98\82è\91\97稱',
+'昂著錄' => '昂著录',
+'æ\98\82è\91\97稱' => 'æ\98\82è\91\97称',
 '昂著者' => '昂著者',
 '昂著述' => '昂著述',
-'æ\98\82è\91\97é\8c\84' => 'æ\98\82è\91\97é\8c\84',
+'æ\98\8eç\99½å¸³' => 'æ\98\8eç\99½è´¦',
 '映著' => '映着',
+'映著書' => '映著书',
 '映著作' => '映著作',
 '映著名' => '映著名',
-'映著書' => '映著書',
-'æ\98 è\91\97稱' => 'æ\98 è\91\97稱',
+'映著錄' => '映著录',
+'æ\98 è\91\97稱' => 'æ\98 è\91\97称',
 '映著者' => '映著者',
 '映著述' => '映著述',
-'映著錄' => '映著錄',
-'春假里' => '春假裏',
-'春假裡' => '春假裏',
-'春天裡' => '春天裏',
-'春天里' => '春天裏',
-'春日裡' => '春日裏',
-'春日里' => '春日裏',
-'时间里' => '時間裏',
-'時間裡' => '時間裏',
+'顯示卡' => '显卡',
+'显著' => '显著',
+'顯著' => '显著',
 '晃著' => '晃着',
 '晃著作' => '晃著作',
 '晃著名' => '晃著名',
-'晃著稱' => '晃著稱',
+'晃著錄' => '晃著录',
+'晃著稱' => '晃著称',
 '晃著者' => '晃著者',
 '晃著述' => '晃著述',
-'晃著錄' => '晃著錄',
-'暑假里' => '暑假裏',
-'暑假裡' => '暑假裏',
+'普利茲' => '普利策',
+'蒲美蓬' => '普密蓬',
+'蒲朗克' => '普朗克',
+'電晶體' => '晶体管',
+'智慧型' => '智能',
+'智慧卡' => '智能卡',
+'智慧手機' => '智能手机',
 '暗著' => '暗着',
+'暗著書' => '暗著书',
 '暗著作' => '暗著作',
 '暗著名' => '暗著名',
-'暗著書' => '暗著書',
-'æ\9a\97è\91\97稱' => 'æ\9a\97è\91\97稱',
+'暗著錄' => '暗著录',
+'æ\9a\97è\91\97稱' => 'æ\9a\97è\91\97称',
 '暗著者' => '暗著者',
 '暗著述' => '暗著述',
-'暗著錄' => '暗著錄',
 '有著' => '有着',
+'有著書' => '有著书',
 '有著作' => '有著作',
 '有著名' => '有著名',
-'有著書' => '有著書',
-'æ\9c\89è\91\97稱' => 'æ\9c\89è\91\97稱',
+'有著錄' => '有著录',
+'æ\9c\89è\91\97稱' => 'æ\9c\89è\91\97称',
 '有著者' => '有著者',
 '有著述' => '有著述',
-'有著錄' => '有著錄',
+'伺服器' => '服务器',
 '望著' => '望着',
 '望著作' => '望著作',
 '望著名' => '望著名',
-'望著書' => '望著書',
-'æ\9c\9bè\91\97稱' => 'æ\9c\9bè\91\97稱',
+'望著錄' => '望著录',
+'æ\9c\9bè\91\97稱' => 'æ\9c\9bè\91\97称',
 '望著者' => '望著者',
 '望著述' => '望著述',
-'望著錄' => '望著錄',
 '朝著' => '朝着',
 '朝著作' => '朝著作',
 '朝著名' => '朝著名',
-'朝著稱' => '朝著稱',
+'朝著錄' => '朝著录',
+'朝著稱' => '朝著称',
 '朝著者' => '朝著者',
 '朝著述' => '朝著述',
-'朝著錄' => '朝著錄',
+'本份' => '本分',
+'本本份份' => '本本分分',
+'班傑明' => '本杰明',
 '本著' => '本着',
+'本著書' => '本著书',
 '本著作' => '本著作',
 '本著名' => '本著名',
-'本著書' => '本著書',
-'æ\9c¬è\91\97稱' => 'æ\9c¬è\91\97稱',
+'本著錄' => '本著录',
+'æ\9c¬è\91\97稱' => 'æ\9c¬è\91\97称',
 '本著者' => '本著者',
 '本著述' => '本著述',
-'本著錄' => '本著錄',
-'村子里' => '村子裏',
-'村子裡' => '村子裏',
-'东涌线' => '東涌綫',
-'東涌線' => '東涌綫',
-'東鐵線' => '東鐵綫',
-'东铁线' => '東鐵綫',
+'本帳' => '本账',
+'機械人' => '机器人',
+'工具機' => '机床',
+'殺著' => '杀着',
+'殺著書' => '杀著书',
+'殺著作' => '杀著作',
+'殺著名' => '杀著名',
+'殺著錄' => '杀著录',
+'殺著稱' => '杀著称',
+'殺著者' => '杀著者',
+'殺著述' => '杀著述',
+'雜著' => '杂着',
+'雜著書' => '杂著书',
+'雜著作' => '杂著作',
+'雜著名' => '杂著名',
+'雜著錄' => '杂著录',
+'雜著稱' => '杂著称',
+'雜著者' => '杂著者',
+'雜著述' => '杂著述',
+'杜塞道夫' => '杜塞尔多夫',
+'來著' => '来着',
+'來著書' => '来著书',
+'來著作' => '来著作',
+'來著名' => '来著名',
+'來著錄' => '来著录',
+'來著稱' => '来著称',
+'來著者' => '来著者',
+'來著述' => '来著述',
+'板著臉' => '板着脸',
 '枕著' => '枕着',
 '枕著作' => '枕著作',
 '枕著名' => '枕著名',
-'枕著稱' => '枕著稱',
+'枕著錄' => '枕著录',
+'枕著稱' => '枕著称',
 '枕著者' => '枕著者',
 '枕著述' => '枕著述',
-'枕著錄' => '枕著錄',
-'格瑞那達' => '格林納達',
-'撞球' => '桌球',
-'台球' => '桌球',
+'槍枝' => '枪支',
+'柏林圍牆' => '柏林墙',
+'查帳' => '查账',
+'查維茲' => '查韦斯',
+'標誌著' => '标志着',
+'格瑞那達' => '格林纳达',
+'森巴舞' => '桑巴舞',
+'梅赫西迪' => '梅赛德斯',
+'夢著' => '梦着',
+'夢著書' => '梦著书',
+'夢著作' => '梦著作',
+'夢著名' => '梦著名',
+'夢著錄' => '梦著录',
+'夢著稱' => '梦著称',
+'夢著者' => '梦著者',
+'夢著述' => '梦著述',
 '梳著' => '梳着',
 '梳著作' => '梳著作',
 '梳著名' => '梳著名',
-'梳著稱' => '梳著稱',
+'梳著錄' => '梳著录',
+'梳著稱' => '梳著称',
 '梳著者' => '梳著者',
 '梳著述' => '梳著述',
-'梳著錄' => '梳著錄',
-'森林裡' => '森林裏',
-'森林里' => '森林裏',
-'棺材裡' => '棺材裏',
-'棺材里' => '棺材裏',
-'榴蓮' => '榴槤',
-'榴莲' => '榴槤',
-'樂著' => '樂着',
-'樂著作' => '樂著作',
-'樂著名' => '樂著名',
-'樂著書' => '樂著書',
-'樂著稱' => '樂著稱',
-'樂著者' => '樂著者',
-'樂著述' => '樂著述',
-'樂著錄' => '樂著錄',
-'寶獅' => '標致',
-'標誌著' => '標誌着',
-'機場快線' => '機場快綫',
-'机场快线' => '機場快綫',
-'機器人' => '機械人',
-'机器人' => '機械人',
-'历史里' => '歷史裏',
-'歷史裡' => '歷史裏',
-'殺著' => '殺着',
-'殺著作' => '殺著作',
-'殺著名' => '殺著名',
-'殺著書' => '殺著書',
-'殺著稱' => '殺著稱',
-'殺著者' => '殺著者',
-'殺著述' => '殺著述',
-'殺著錄' => '殺著錄',
-'茅利塔尼亞' => '毛里塔尼亞',
-'毛里求斯' => '毛里裘斯',
-'模里西斯' => '毛里裘斯',
+'梵谷' => '梵高',
+'機率' => '概率',
+'欠帳' => '欠账',
+'死帳' => '死账',
+'庇里牛斯' => '比利牛斯',
+'畢卡索' => '毕加索',
+'茅利塔尼亞' => '毛里塔尼亚',
+'毛里裘斯' => '毛里求斯',
+'模里西斯' => '毛里求斯',
+'公厘' => '毫米',
+'公釐' => '毫米',
+'胺基酸' => '氨基酸',
+'水份' => '水分',
+'水氣' => '水汽',
 '求著' => '求着',
+'求著書' => '求著书',
 '求著作' => '求著作',
 '求著名' => '求著名',
-'求著書' => '求著書',
-'æ±\82è\91\97稱' => 'æ±\82è\91\97稱',
+'求著錄' => '求著录',
+'æ±\82è\91\97稱' => 'æ±\82è\91\97称',
 '求著者' => '求著者',
 '求著述' => '求著述',
-'æ±\82è\91\97é\8c\84' => 'æ±\82è\91\97é\8c\84',
-'æ\96\87è\8e±' => '汶è\90\8a',
+'漢諾ç\93¦' => 'æ±\89诺å¨\81',
+'æ²\88è\91\97' => 'æ²\89ç\9d\80',
 '沉著' => '沉着',
+'沉著書' => '沉著书',
 '沉著作' => '沉著作',
 '沉著名' => '沉著名',
-'沉著書' => '沉著書',
-'æ²\89è\91\97稱' => 'æ²\89è\91\97稱',
+'沉著錄' => '沉著录',
+'æ²\89è\91\97稱' => 'æ²\89è\91\97称',
 '沉著者' => '沉著者',
 '沉著述' => '沉著述',
-'沉著錄' => '沉著錄',
-'沙中线' => '沙中綫',
-'沙中線' => '沙中綫',
-'沙地阿拉伯' => '沙特阿拉伯',
 '沙烏地阿拉伯' => '沙特阿拉伯',
-'沙田至中環線' => '沙田至中環綫',
-'沙田至中环线' => '沙田至中環綫',
-'马拉特·萨芬' => '沙芬',
+'沙地阿拉伯' => '沙特阿拉伯',
 '沿著' => '沿着',
+'沿著書' => '沿著书',
 '沿著作' => '沿著作',
 '沿著名' => '沿著名',
-'沿著書' => '沿著書',
-'沿è\91\97稱' => '沿è\91\97稱',
+'沿著錄' => '沿著录',
+'沿è\91\97稱' => '沿è\91\97称',
 '沿著者' => '沿著者',
 '沿著述' => '沿著述',
-'沿著錄' => '沿著錄',
-'波士尼亞赫塞哥維納' => '波斯尼亞黑塞哥維那',
-'辛巴威' => '津巴布韋',
+'玻里尼西亞' => '波利尼西亚',
+'波士尼亞' => '波斯尼亚',
+'波士尼亞赫塞哥維納' => '波斯尼亚和黑塞哥维那',
+'鐵達尼號' => '泰坦尼克号',
+'幫浦' => '泵',
+'辛巴威' => '津巴布韦',
 '宏都拉斯' => '洪都拉斯',
 '活著' => '活着',
+'活著書' => '活著书',
 '活著作' => '活著作',
 '活著名' => '活著名',
-'活著書' => '活著書',
-'æ´»è\91\97稱' => 'æ´»è\91\97稱',
+'活著錄' => '活著录',
+'æ´»è\91\97稱' => 'æ´»è\91\97称',
 '活著者' => '活著者',
 '活著述' => '活著述',
-'活著錄' => '活著錄',
-'行動電話' => '流動電話',
-'移动电话' => '流動電話',
+'流水帳' => '流水账',
 '流著' => '流着',
+'流著書' => '流著书',
 '流著作' => '流著作',
 '流著名' => '流著名',
-'流著書' => '流著書',
-'æµ\81è\91\97稱' => 'æµ\81è\91\97稱',
+'流著錄' => '流著录',
+'æµ\81è\91\97稱' => 'æµ\81è\91\97称',
 '流著者' => '流著者',
 '流著述' => '流著述',
-'流著錄' => '流著錄',
 '流露著' => '流露着',
 '浮著' => '浮着',
+'蘭卡威' => '浮罗交怡',
+'浮著書' => '浮著书',
 '浮著作' => '浮著作',
 '浮著名' => '浮著名',
-'浮著書' => '浮著書',
-'æµ®è\91\97稱' => 'æµ®è\91\97稱',
+'浮著錄' => '浮著录',
+'æµ®è\91\97稱' => 'æµ®è\91\97称',
 '浮著者' => '浮著者',
 '浮著述' => '浮著述',
-'浮著錄' => '浮著錄',
+'海洛英' => '海洛因',
+'海浬' => '海里',
+'塗著' => '涂着',
+'潤著' => '润着',
+'潤著書' => '润著书',
+'潤著作' => '润著作',
+'潤著名' => '润著名',
+'潤著錄' => '润著录',
+'潤著稱' => '润著称',
+'潤著者' => '润著者',
+'潤著述' => '润著述',
 '涵著' => '涵着',
+'涵著書' => '涵著书',
 '涵著作' => '涵著作',
 '涵著名' => '涵著名',
-'涵著書' => '涵著書',
-'涵è\91\97稱' => '涵è\91\97稱',
+'涵著錄' => '涵著录',
+'涵è\91\97稱' => '涵è\91\97称',
 '涵著者' => '涵著者',
 '涵著述' => '涵著述',
-'涵著錄' => '涵著錄',
-'涼著' => '涼着',
-'涼著作' => '涼著作',
-'涼著名' => '涼著名',
-'涼著書' => '涼著書',
-'涼著稱' => '涼著稱',
-'涼著者' => '涼著者',
-'涼著述' => '涼著述',
-'涼著錄' => '涼著錄',
-'深淵裡' => '深淵裏',
-'深渊里' => '深渊裏',
-'港岛线' => '港島綫',
-'港島線' => '港島綫',
+'混帳' => '混账',
+'清帳' => '清账',
 '渴著' => '渴着',
+'渴著書' => '渴著书',
 '渴著作' => '渴著作',
 '渴著名' => '渴著名',
-'渴著書' => '渴著書',
-'渴è\91\97稱' => '渴è\91\97稱',
+'渴著錄' => '渴著录',
+'渴è\91\97稱' => '渴è\91\97称',
 '渴著者' => '渴著者',
 '渴著述' => '渴著述',
-'渴著錄' => '渴著錄',
+'原始碼' => '源代码',
 '溢著' => '溢着',
+'溢著書' => '溢著书',
 '溢著作' => '溢著作',
 '溢著名' => '溢著名',
-'溢著書' => '溢著書',
-'溢è\91\97稱' => '溢è\91\97稱',
+'溢著錄' => '溢著录',
+'溢è\91\97稱' => '溢è\91\97称',
 '溢著者' => '溢著者',
 '溢著述' => '溢著述',
-'溢著錄' => '溢著錄',
+'滑鼠蛇' => '滑鼠蛇',
+'滿16進位' => '满16进位',
+'滿二進位' => '满二进位',
+'滿八進位' => '满八进位',
+'滿六進位' => '满六进位',
+'滿十六進位' => '满十六进位',
+'滿十進位' => '满十进位',
+'滿著' => '满着',
+'滿著作' => '满著作',
+'滿著名' => '满著名',
+'滿著者' => '满著者',
 '演著' => '演着',
+'演著書' => '演著书',
 '演著作' => '演著作',
 '演著名' => '演著名',
-'演著書' => '演著書',
-'演著稱' => '演著稱',
-'演著者' => '演著者',
-'演著述' => '演著述',
-'演著錄' => '演著錄',
-'漫著' => '漫着',
-'漫著作' => '漫著作',
-'漫著名' => '漫著名',
-'漫著書' => '漫著書',
-'漫著稱' => '漫著稱',
-'漫著者' => '漫著者',
-'漫著述' => '漫著述',
-'漫著錄' => '漫著錄',
-'潤著' => '潤着',
-'潤著作' => '潤著作',
-'潤著名' => '潤著名',
-'潤著書' => '潤著書',
-'潤著稱' => '潤著稱',
-'潤著者' => '潤著者',
-'潤著述' => '潤著述',
-'潤著錄' => '潤著錄',
-'無線劇集' => '無綫劇集',
-'无线剧集' => '無綫劇集',
-'無線收費' => '無綫收費',
-'无线收费' => '無綫收費',
-'无线节目' => '無綫節目',
-'無線節目' => '無綫節目',
-'无线电视' => '無綫電視',
-'無線電視' => '無綫電視',
-'菸' => '煙',
-'照著' => '照着',
-'照著作' => '照著作',
-'照著名' => '照著名',
-'照著書' => '照著書',
-'照著稱' => '照著稱',
-'照著者' => '照著者',
-'照著述' => '照著述',
-'照著錄' => '照著錄',
-'燒著' => '燒着',
-'燒著作' => '燒著作',
-'燒著名' => '燒著名',
-'燒著書' => '燒著書',
-'燒著稱' => '燒著稱',
-'燒著者' => '燒著者',
-'燒著述' => '燒著述',
-'燒著錄' => '燒著錄',
-'爭著' => '爭着',
-'爭著作' => '爭著作',
-'爭著名' => '爭著名',
-'爭著書' => '爭著書',
-'爭著稱' => '爭著稱',
-'爭著者' => '爭著者',
-'爭著述' => '爭著述',
-'爭著錄' => '爭著錄',
-'千里達托貝哥' => '特立尼達和多巴哥',
-'牽著' => '牽着',
-'牽著作' => '牽著作',
-'牽著名' => '牽著名',
-'牽著書' => '牽著書',
-'牽著稱' => '牽著稱',
-'牽著者' => '牽著者',
-'牽著述' => '牽著述',
-'牽著錄' => '牽著錄',
-'犯不著' => '犯不着',
-'犯不著作' => '犯不著作',
-'犯不著名' => '犯不著名',
-'犯不著書' => '犯不著書',
-'犯不著稱' => '犯不著稱',
-'犯不著者' => '犯不著者',
-'犯不著述' => '犯不著述',
-'犯不著錄' => '犯不著錄',
-'犯得著' => '犯得着',
-'犬只' => '狗隻',
+'演著錄' => '演著录',
+'演著稱' => '演著称',
+'演著者' => '演著者',
+'演著述' => '演著述',
+'漫著' => '漫着',
+'漫著書' => '漫著书',
+'漫著作' => '漫著作',
+'漫著名' => '漫著名',
+'漫著錄' => '漫著录',
+'漫著稱' => '漫著称',
+'漫著者' => '漫著者',
+'漫著述' => '漫著述',
+'雷射' => '激光',
+'點著' => '点着',
+'點著作' => '点著作',
+'點著名' => '点著名',
+'點著錄' => '点著录',
+'點著稱' => '点著称',
+'點著者' => '点著者',
+'點著述' => '点著述',
+'爛帳' => '烂账',
+'燒著' => '烧着',
+'燒著作' => '烧著作',
+'燒著名' => '烧著名',
+'燒著錄' => '烧著录',
+'燒著稱' => '烧著称',
+'燒著者' => '烧著者',
+'燒著述' => '烧著述',
+'照著' => '照着',
+'照著書' => '照著书',
+'照著作' => '照著作',
+'照著名' => '照著名',
+'照著錄' => '照著录',
+'照著稱' => '照著称',
+'照著者' => '照著者',
+'照著述' => '照著述',
+'愛護著' => '爱护着',
+'愛著' => '爱着',
+'愛著書' => '爱著书',
+'愛著作' => '爱著作',
+'愛著名' => '爱著名',
+'愛著錄' => '爱著录',
+'愛著稱' => '爱著称',
+'愛著者' => '爱著者',
+'愛著述' => '爱著述',
+'牽著' => '牵着',
+'牽著書' => '牵著书',
+'牽著作' => '牵著作',
+'牽著名' => '牵著名',
+'牽著錄' => '牵著录',
+'牽著稱' => '牵著称',
+'牽著者' => '牵著者',
+'牽著述' => '牵著述',
+'千里達' => '特立尼达',
+'千里達及托巴哥' => '特立尼达和多巴哥',
+'千里達托貝哥' => '特立尼达和托巴哥',
+'狗隻' => '犬只',
+'獨著' => '独着',
+'獨著書' => '独著书',
+'獨著作' => '独著作',
+'獨著名' => '独著名',
+'獨著錄' => '独著录',
+'獨著稱' => '独著称',
+'獨著者' => '独著者',
+'獨著述' => '独著述',
 '猜著' => '猜着',
+'猜著書' => '猜着书',
 '猜著作' => '猜著作',
 '猜著名' => '猜著名',
-'猜著書' => '猜著書',
-'ç\8c\9cè\91\97稱' => 'ç\8c\9cè\91\97稱',
+'猜著錄' => '猜著录',
+'ç\8c\9cè\91\97稱' => 'ç\8c\9cè\91\97称',
 '猜著者' => '猜著者',
 '猜著述' => '猜著述',
-'猜著錄' => '猜著錄',
-'狱里' => '獄裏',
-'獄裡' => '獄裏',
-'獨著' => '獨着',
-'獨著作' => '獨著作',
-'獨著名' => '獨著名',
-'獨著書' => '獨著書',
-'獨著稱' => '獨著稱',
-'獨著者' => '獨著者',
-'獨著述' => '獨著述',
-'獨著錄' => '獨著錄',
-'獲著' => '獲着',
-'獲著作' => '獲著作',
-'獲著名' => '獲著名',
-'獲著書' => '獲著書',
-'獲著稱' => '獲著稱',
-'獲著者' => '獲著者',
-'獲著述' => '獲著述',
-'獲著錄' => '獲著錄',
-'諾魯' => '瑙魯',
-'萬那杜' => '瓦努阿圖',
+'玩著' => '玩着',
+'萬那杜' => '瓦努阿图',
+'溫納圖' => '瓦努阿图',
+'華勒沙' => '瓦文萨',
+'華里沙' => '瓦文萨',
 '甜著' => '甜着',
+'甜著書' => '甜著书',
 '甜著作' => '甜著作',
 '甜著名' => '甜著名',
-'甜著書' => '甜著書',
-'ç\94\9cè\91\97稱' => 'ç\94\9cè\91\97稱',
+'甜著錄' => '甜著录',
+'ç\94\9cè\91\97稱' => 'ç\94\9cè\91\97称',
 '甜著者' => '甜著者',
 '甜著述' => '甜著述',
-'甜著錄' => '甜著錄',
-'用不著' => '用不着',
-'用得著' => '用得着',
 '用著' => '用着',
+'用著書' => '用著书',
 '用著作' => '用著作',
 '用著名' => '用著名',
-'用著書' => '用著書',
-'ç\94¨è\91\97稱' => 'ç\94¨è\91\97稱',
+'用著錄' => '用著录',
+'ç\94¨è\91\97稱' => 'ç\94¨è\91\97称',
 '用著者' => '用著者',
 '用著述' => '用著述',
-'用著錄' => '用著錄',
+'A型肝炎' => '甲型肝炎',
+'A肝' => '甲肝',
+'電視劇集' => '电视剧',
+'電視影集' => '电视系列剧',
+'畫著' => '画着',
+'畫著作' => '画著作',
+'畫著名' => '画著名',
+'畫著稱' => '画著称',
+'畫著者' => '画著者',
+'介面' => '界面',
 '留著' => '留着',
+'留著書' => '留着书',
 '留著作' => '留著作',
 '留著名' => '留著名',
-'留著書' => '留著書',
-'ç\95\99è\91\97稱' => 'ç\95\99è\91\97稱',
+'留著錄' => '留著录',
+'ç\95\99è\91\97稱' => 'ç\95\99è\91\97称',
 '留著者' => '留著者',
 '留著述' => '留著述',
-'留著錄' => '留著錄',
-'當著' => '當着',
-'當著作' => '當著作',
-'當著名' => '當著名',
-'當著書' => '當著書',
-'當著稱' => '當著稱',
-'當著者' => '當著者',
-'當著述' => '當著述',
-'當著錄' => '當著錄',
 '疑著' => '疑着',
+'疑著書' => '疑著书',
 '疑著作' => '疑著作',
 '疑著名' => '疑著名',
-'疑著書' => '疑著書',
-'ç\96\91è\91\97稱' => 'ç\96\91è\91\97稱',
+'疑著錄' => '疑著录',
+'ç\96\91è\91\97稱' => 'ç\96\91è\91\97称',
 '疑著者' => '疑著者',
 '疑著述' => '疑著述',
-'疑著錄' => '疑著錄',
-'发布' => '發佈',
-'發布' => '發佈',
-'百科裡' => '百科裏',
-'百科里' => '百科裏',
-'計程車' => '的士',
-'出租车' => '的士',
-'皮里阳秋' => '皮裏陽秋',
-'皮裡陽秋' => '皮裏陽秋',
-'皺著' => '皺着',
-'皺著作' => '皺著作',
-'皺著名' => '皺著名',
-'皺著書' => '皺著書',
-'皺著稱' => '皺著稱',
-'皺著者' => '皺著者',
-'皺著述' => '皺著述',
-'皺著錄' => '皺著錄',
+'狂牛症' => '疯牛病',
+'徵狀' => '症状',
+'百慕達' => '百慕大',
+'皮雅斯·布士南' => '皮尔斯·布鲁斯南',
+'皺著' => '皱着',
+'皺著書' => '皱著书',
+'皺著作' => '皱著作',
+'皺著名' => '皱著名',
+'皺著錄' => '皱著录',
+'皺著稱' => '皱著称',
+'皺著者' => '皱著者',
+'皺著述' => '皱著述',
+'鹽份' => '盐分',
 '盛著' => '盛着',
+'盛著書' => '盛著书',
 '盛著作' => '盛著作',
 '盛著名' => '盛著名',
-'盛著書' => '盛著書',
-'ç\9b\9bè\91\97稱' => 'ç\9b\9bè\91\97稱',
+'盛著錄' => '盛著录',
+'ç\9b\9bè\91\97稱' => 'ç\9b\9bè\91\97称',
 '盛著者' => '盛著者',
 '盛著述' => '盛著述',
-'盛著錄' => '盛著錄',
-'盧安達' => '盧旺達',
 '盯著' => '盯着',
+'盯著書' => '盯着书',
 '盯著作' => '盯著作',
 '盯著名' => '盯著名',
-'盯著書' => '盯著書',
-'ç\9b¯è\91\97稱' => 'ç\9b¯è\91\97稱',
+'盯著錄' => '盯著录',
+'ç\9b¯è\91\97稱' => 'ç\9b¯è\91\97称',
 '盯著者' => '盯著者',
 '盯著述' => '盯著述',
-'盯著錄' => '盯著錄',
 '盾著' => '盾着',
+'盾著書' => '盾著书',
 '盾著作' => '盾著作',
 '盾著名' => '盾著名',
-'盾著書' => '盾著書',
-'ç\9b¾è\91\97稱' => 'ç\9b¾è\91\97稱',
+'盾著錄' => '盾著录',
+'ç\9b¾è\91\97稱' => 'ç\9b¾è\91\97称',
 '盾著者' => '盾著者',
 '盾著述' => '盾著述',
-'盾著錄' => '盾著錄',
-'看不著' => '看不着',
-'看得著' => '看得着',
 '看著' => '看着',
+'看著書' => '看着书',
 '看著作' => '看著作',
 '看著名' => '看著名',
-'看著書' => '看著書',
-'ç\9c\8bè\91\97稱' => 'ç\9c\8bè\91\97稱',
+'看著錄' => '看著录',
+'ç\9c\8bè\91\97稱' => 'ç\9c\8bè\91\97称',
 '看著者' => '看著者',
 '看著述' => '看著述',
-'看著錄' => '看著錄',
-'眼睛裡' => '眼睛裏',
-'眼睛里' => '眼睛裏',
-'著什麼急' => '着什麼急',
+'著業' => '着业',
+'著絲' => '着丝',
+'著麼' => '着么',
+'著人' => '着人',
+'著甚麽' => '着什么',
+'著什麼' => '着什么',
 '著他' => '着他',
+'著令' => '着令',
+'著位' => '着位',
+'著體' => '着体',
 '著你' => '着你',
+'著便' => '着便',
+'著涼' => '着凉',
 '著力' => '着力',
+'著勁' => '着劲',
+'著號' => '着号',
+'著呢' => '着呢',
+'著哩' => '着哩',
 '著地' => '着地',
 '著墨' => '着墨',
+'著聲' => '着声',
+'著處' => '着处',
 '著她' => '着她',
 '著妳' => '着妳',
+'著姓' => '着姓',
 '著它' => '着它',
-'著實' => '着實',
+'著定' => '着定',
+'著實' => '着实',
+'著己' => '着己',
+'著帳' => '着帐',
+'著床' => '着床',
+'著庸' => '着庸',
+'著式' => '着式',
+'著錄' => '着录',
+'著心' => '着心',
+'著志' => '着志',
 '著忙' => '着忙',
 '著急' => '着急',
+'著惱' => '着恼',
+'著驚' => '着惊',
 '著想' => '着想',
 '著意' => '着意',
+'著慌' => '着慌',
 '著我' => '着我',
 '著手' => '着手',
-'著數' => '着數',
+'著抹' => '着抹',
+'著摸' => '着摸',
+'著撰' => '着撰',
+'著數' => '着数',
+'著明' => '着明',
+'著末' => '着末',
+'著極' => '着极',
+'著格' => '着格',
+'著棋' => '着棋',
+'著氣' => '着气',
 '著法' => '着法',
-'è\91\97涼' => 'ç\9d\80涼',
+'è\91\97æ·º' => 'ç\9d\80æµ\85',
 '著火' => '着火',
+'著然' => '着然',
+'著甚' => '着甚',
+'著生' => '着生',
+'著疑' => '着疑',
+'著白' => '着白',
+'著相' => '着相',
 '著眼' => '着眼',
+'著著' => '着着',
 '著祂' => '着祂',
-'著筆' => '着筆',
-'著絲' => '着絲',
-'著緊' => '着緊',
-'著腳' => '着腳',
-'著艦' => '着艦',
+'著積' => '着积',
+'著稿' => '着稿',
+'著筆' => '着笔',
+'著籍' => '着籍',
+'著緊' => '着紧',
+'著緑' => '着緑',
+'著絆' => '着绊',
+'著績' => '着绩',
+'著緋' => '着绯',
+'著綠' => '着绿',
+'著肉' => '着肉',
+'著腳' => '着脚',
+'著艦' => '着舰',
 '著色' => '着色',
+'著節' => '着节',
+'著花' => '着花',
+'著莫' => '着莫',
 '著落' => '着落',
+'著槁' => '着藁',
 '著衣' => '着衣',
-'著裝' => '着裝',
+'著裝' => '着装',
+'著要' => '着要',
+'著警' => '着警',
+'著趣' => '着趣',
+'著邊' => '着边',
 '著迷' => '着迷',
+'著跡' => '着迹',
 '著重' => '着重',
-'著錄' => '着錄',
-'著陸' => '着陸',
-'著鞭' => '着鞭',
-'睡不著' => '睡不着',
-'睡得著' => '睡得着',
+'著録' => '着録',
+'著聞' => '着闻',
+'著陸' => '着陆',
+'著雝' => '着雝',
+'著鞭' => '着鞭',
+'著題' => '着题',
+'著魔' => '着魔',
 '睡著' => '睡着',
+'睡著書' => '睡著书',
 '睡著作' => '睡著作',
 '睡著名' => '睡著名',
-'睡著書' => '睡著書',
-'ç\9d¡è\91\97稱' => 'ç\9d¡è\91\97稱',
+'睡著錄' => '睡著录',
+'ç\9d¡è\91\97稱' => 'ç\9d¡è\91\97称',
 '睡著者' => '睡著者',
 '睡著述' => '睡著述',
-'睡著錄' => '睡著錄',
-'瞞著' => '瞞着',
-'瞞著作' => '瞞著作',
-'瞞著名' => '瞞著名',
-'瞞著書' => '瞞著書',
-'瞞著稱' => '瞞著稱',
-'瞞著者' => '瞞著者',
-'瞞著述' => '瞞著述',
-'瞞著錄' => '瞞著錄',
+'瞞著' => '瞒着',
+'瞞著書' => '瞒著书',
+'瞞著作' => '瞒著作',
+'瞞著名' => '瞒著名',
+'瞞著錄' => '瞒著录',
+'瞞著稱' => '瞒著称',
+'瞞著者' => '瞒著者',
+'瞞著述' => '瞒著述',
+'瞧著' => '瞧着',
+'瞧著書' => '瞧着书',
+'瞧著作' => '瞧著作',
+'瞧著名' => '瞧著名',
+'瞧著錄' => '瞧著录',
+'瞧著稱' => '瞧著称',
+'瞧著者' => '瞧著者',
+'瞧著述' => '瞧著述',
 '瞪著' => '瞪着',
+'瞪著書' => '瞪著书',
 '瞪著作' => '瞪著作',
 '瞪著名' => '瞪著名',
-'瞪著書' => '瞪著書',
-'ç\9eªè\91\97稱' => 'ç\9eªè\91\97稱',
+'瞪著錄' => '瞪著录',
+'ç\9eªè\91\97稱' => 'ç\9eªè\91\97称',
 '瞪著者' => '瞪著者',
 '瞪著述' => '瞪著述',
-'瞪著錄' => '瞪著錄',
-'簡訊' => '短訊',
-'短信' => '短訊',
-'硬件' => '硬件',
+'智財權' => '知识产权',
+'智慧財產權' => '知识产权',
+'知識份子' => '知识分子',
+'什勒斯維希' => '石勒苏益格',
+'矽塵' => '矽尘',
+'矽尘' => '矽尘',
+'矽肺' => '矽肺',
+'矽鋼' => '矽钢',
+'矽钢' => '矽钢',
+'矽' => '硅',
+'矽片' => '硅片',
+'矽谷' => '硅谷',
 '硬體' => '硬件',
-'福斯' => '福士',
+'硬碟' => '硬盘',
+'磁碟' => '磁盘',
+'磁軌' => '磁道',
+'福馬林' => '福尔马林',
 '福著' => '福着',
+'福著書' => '福著书',
 '福著作' => '福著作',
 '福著名' => '福著名',
-'福著書' => '福著書',
-'ç¦\8fè\91\97稱' => 'ç¦\8fè\91\97稱',
+'福著錄' => '福著录',
+'ç¦\8fè\91\97稱' => 'ç¦\8fè\91\97称',
 '福著者' => '福著者',
 '福著述' => '福著述',
-'福著錄' => '福著錄',
-'秋假裡' => '秋假裏',
-'秋假里' => '秋假裏',
-'秋天裡' => '秋天裏',
-'秋天里' => '秋天裏',
-'秋日里' => '秋日裏',
-'秋日裡' => '秋日裏',
-'葛摩' => '科摩羅',
-'捷豹' => '積架',
+'私帳' => '私账',
+'葛摩' => '科摩罗',
+'象牙海岸' => '科特迪瓦',
+'積極份子' => '积极分子',
+'行動電話' => '移动电话',
+'流動電話' => '移动电话',
+'行動網路' => '移动网络',
+'流動網絡' => '移动网络',
+'程式設計師' => '程序员',
+'程式控制' => '程控',
+'空中巴士' => '空中客车',
+'空氣質素' => '空气质量',
+'空氣品質' => '空气质量',
 '空著' => '空着',
+'空著書' => '空著书',
 '空著作' => '空著作',
 '空著名' => '空著名',
-'空著書' => '空著書',
-'空è\91\97稱' => '空è\91\97稱',
+'空著錄' => '空著录',
+'空è\91\97稱' => '空è\91\97称',
 '空著者' => '空著者',
 '空著述' => '空著述',
-'空著錄' => '空著錄',
-'太空梭' => '穿梭機',
-'航天飞机' => '穿梭機',
 '穿著' => '穿着',
+'穿著書' => '穿著书',
 '穿著作' => '穿著作',
 '穿著名' => '穿著名',
-'穿著書' => '穿著書',
-'ç©¿è\91\97稱' => 'ç©¿è\91\97稱',
+'穿著錄' => '穿著录',
+'ç©¿è\91\97稱' => 'ç©¿è\91\97称',
 '穿著者' => '穿著者',
 '穿著述' => '穿著述',
-'穿著錄' => '穿著錄',
+'突尼西亞' => '突尼斯',
+'豎著' => '竖着',
+'豎著書' => '竖著书',
+'豎著作' => '竖著作',
+'豎著名' => '竖著名',
+'豎著錄' => '竖著录',
+'豎著稱' => '竖著称',
+'豎著者' => '竖著者',
+'豎著述' => '竖著述',
 '站著' => '站着',
+'站著書' => '站著书',
 '站著作' => '站著作',
 '站著名' => '站著名',
-'站著書' => '站著書',
-'ç«\99è\91\97稱' => 'ç«\99è\91\97稱',
+'站著錄' => '站著录',
+'ç«\99è\91\97稱' => 'ç«\99è\91\97称',
 '站著者' => '站著者',
 '站著述' => '站著述',
-'站著錄' => '站著錄',
 '笑著' => '笑着',
+'笑著書' => '笑著书',
 '笑著作' => '笑著作',
 '笑著名' => '笑著名',
-'笑著書' => '笑著書',
-'ç¬\91è\91\97稱' => 'ç¬\91è\91\97稱',
+'笑著錄' => '笑著录',
+'ç¬\91è\91\97稱' => 'ç¬\91è\91\97称',
 '笑著者' => '笑著者',
 '笑著述' => '笑著述',
-'笑著錄' => '笑著錄',
+'筆帳' => '笔账',
+'提比里西' => '第比利斯',
+'簽著' => '签着',
+'簽帳' => '签账',
+'運算元' => '算子',
+'演算法' => '算法',
+'算帳' => '算账',
 '管著' => '管着',
+'管著書' => '管著书',
 '管著作' => '管著作',
 '管著名' => '管著名',
-'管著書' => '管著書',
-'管è\91\97稱' => '管è\91\97稱',
+'管著錄' => '管著录',
+'管è\91\97稱' => '管è\91\97称',
 '管著者' => '管著者',
 '管著述' => '管著述',
-'管著錄' => '管著錄',
-'迈克尔·欧文' => '米高奧雲',
-'系列裡' => '系列裏',
-'系列里' => '系列裏',
-'索馬利亞' => '索馬里',
-'紮著' => '紮着',
-'紮著作' => '紮著作',
-'紮著名' => '紮著名',
-'紮著書' => '紮著書',
-'紮著稱' => '紮著稱',
-'紮著者' => '紮著者',
-'紮著述' => '紮著述',
-'紮著錄' => '紮著錄',
-'綁著' => '綁着',
-'綁著作' => '綁著作',
-'綁著名' => '綁著名',
-'綁著書' => '綁著書',
-'綁著稱' => '綁著稱',
-'綁著者' => '綁著者',
-'綁著述' => '綁著述',
-'綁著錄' => '綁著錄',
-'網路' => '網絡',
-'緝凶' => '緝兇',
-'繞著' => '繞着',
-'繞著作' => '繞著作',
-'繞著名' => '繞著名',
-'繞著書' => '繞著書',
-'繞著稱' => '繞著稱',
-'繞著者' => '繞著者',
-'繞著述' => '繞著述',
-'繞著錄' => '繞著錄',
-'纏著' => '纏着',
-'纏著作' => '纏著作',
-'纏著名' => '纏著名',
-'纏著書' => '纏著書',
-'纏著稱' => '纏著稱',
-'纏著者' => '纏著者',
-'纏著述' => '纏著述',
-'纏著錄' => '纏著錄',
+'管帳' => '管账',
+'公尺' => '米',
+'糊塗帳' => '糊涂账',
+'糖份' => '糖分',
+'動畫影集' => '系列动画片',
+'繫著' => '系着',
+'索贊尼辛' => '索尔仁尼琴',
+'索忍尼辛' => '索尔仁尼琴',
+'蘇辛尼津' => '索尔仁尼琴',
+'索馬利亞' => '索马里',
+'索馬利蘭' => '索马里兰',
+'正體中文' => '繁体中文',
+'強斯頓環礁' => '约翰斯顿岛',
+'組份' => '组分',
+'經常帳' => '经常账',
+'經濟帳' => '经济账',
+'綁著' => '绑着',
+'綁著書' => '绑著书',
+'綁著作' => '绑著作',
+'綁著名' => '绑著名',
+'綁著錄' => '绑著录',
+'綁著稱' => '绑著称',
+'綁著者' => '绑著者',
+'綁著述' => '绑著述',
+'結帳' => '结账',
+'繞著' => '绕着',
+'繞著書' => '绕著书',
+'繞著作' => '绕著作',
+'繞著名' => '绕著名',
+'繞著錄' => '绕著录',
+'繞著稱' => '绕著称',
+'繞著者' => '绕著者',
+'繞著述' => '绕著述',
+'維根斯坦' => '维特根斯坦',
+'繃著' => '绷着',
+'緣份' => '缘分',
+'纏著' => '缠着',
+'纏著書' => '缠著书',
+'纏著作' => '缠著作',
+'纏著名' => '缠著名',
+'纏著錄' => '缠著录',
+'纏著稱' => '缠著称',
+'纏著者' => '缠著者',
+'纏著述' => '缠著述',
+'網站連結' => '网站链接',
+'網路' => '网络',
+'網頁連結' => '网页链接',
 '罩著' => '罩着',
+'罩著書' => '罩著书',
 '罩著作' => '罩著作',
 '罩著名' => '罩著名',
-'罩著書' => '罩著書',
-'罩è\91\97稱' => '罩è\91\97稱',
+'罩著錄' => '罩著录',
+'罩è\91\97稱' => '罩è\91\97称',
 '罩著者' => '罩著者',
 '罩著述' => '罩著述',
-'罩著錄' => '罩著錄',
-'罵著' => '罵着',
-'罵著作' => '罵著作',
-'罵著名' => '罵著名',
-'罵著書' => '罵著書',
-'罵著稱' => '罵著稱',
-'罵著者' => '罵著者',
-'罵著述' => '罵著述',
-'罵著錄' => '罵著錄',
 '美著' => '美着',
+'美著書' => '美著书',
 '美著作' => '美著作',
 '美著名' => '美著名',
-'美著書' => '美著書',
-'ç¾\8eè\91\97稱' => 'ç¾\8eè\91\97稱',
+'美著錄' => '美著录',
+'ç¾\8eè\91\97稱' => 'ç¾\8eè\91\97称',
 '美著者' => '美著者',
 '美著述' => '美著述',
-'美著錄' => '美著錄',
 '耀著' => '耀着',
+'耀著書' => '耀著书',
 '耀著作' => '耀著作',
 '耀著名' => '耀著名',
-'耀著書' => '耀著書',
-'è\80\80è\91\97稱' => 'è\80\80è\91\97稱',
+'耀著錄' => '耀著录',
+'è\80\80è\91\97稱' => 'è\80\80è\91\97称',
 '耀著者' => '耀著者',
 '耀著述' => '耀著述',
-'耀著錄' => '耀著錄',
-'寮國' => '老撾',
+'寮國' => '老挝',
+'寮人民民主共和國' => '老挝人民民主共和国',
+'寮語' => '老挝语',
 '考著' => '考着',
+'考著書' => '考著书',
 '考著作' => '考著作',
 '考著名' => '考著名',
-'考著書' => '考著書',
-'考著稱' => '考著稱',
-'考著者' => '考著者',
-'考著述' => '考著述',
-'考著錄' => '考著錄',
-'圣基茨和尼维斯' => '聖吉斯納域斯',
-'聖克里斯多福及尼維斯' => '聖吉斯納域斯',
-'聖文森及格瑞那丁' => '聖文森特和格林納丁斯',
-'聖露西亞' => '聖盧西亞',
-'聖馬利諾' => '聖馬力諾',
-'聽不著' => '聽不着',
-'聽得著' => '聽得着',
-'聽著' => '聽着',
-'聽著作' => '聽著作',
-'聽著名' => '聽著名',
-'聽著書' => '聽著書',
-'聽著稱' => '聽著稱',
-'聽著者' => '聽著者',
-'聽著述' => '聽著述',
-'聽著錄' => '聽著錄',
-'肚里' => '肚裏',
-'肚裡' => '肚裏',
-'肯尼亚' => '肯雅',
-'肯亞' => '肯雅',
-'背著' => '背着',
-'背著作' => '背著作',
-'背著名' => '背著名',
-'背著書' => '背著書',
-'背著稱' => '背著稱',
-'背著者' => '背著者',
-'背著述' => '背著述',
-'背著錄' => '背著錄',
-'膠著' => '膠着',
-'膠著作' => '膠著作',
-'膠著名' => '膠著名',
-'膠著書' => '膠著書',
-'膠著稱' => '膠著稱',
-'膠著者' => '膠著者',
-'膠著述' => '膠著述',
-'膠著錄' => '膠著錄',
-'臨著' => '臨着',
-'臨著作' => '臨著作',
-'臨著名' => '臨著名',
-'臨著書' => '臨著書',
-'臨著稱' => '臨著稱',
-'臨著者' => '臨著者',
-'臨著述' => '臨著述',
-'臨著錄' => '臨著錄',
-'與著' => '與着',
-'與著作' => '與著作',
-'與著名' => '與著名',
-'與著書' => '與著書',
-'與著稱' => '與著稱',
-'與著者' => '與著者',
-'與著述' => '與著述',
-'與著錄' => '與著錄',
-'迈克尔·舒马赫' => '舒麥加',
+'考著錄' => '考著录',
+'考著稱' => '考著称',
+'考著者' => '考著者',
+'考著述' => '考著述',
+'職份' => '职分',
+'辛康納利' => '肖恩·康纳利',
+'蕭士塔高維奇' => '肖斯塔科维奇',
+'蕭士達高維契' => '肖斯塔科维奇',
+'甘迺迪' => '肯尼迪',
+'背著' => '背着',
+'背著書' => '背著书',
+'背著作' => '背著作',
+'背著名' => '背著名',
+'背著錄' => '背著录',
+'背著稱' => '背著称',
+'背著者' => '背著者',
+'背著述' => '背著述',
+'膠著' => '胶着',
+'膠著書' => '胶著书',
+'膠著作' => '胶著作',
+'膠著名' => '胶著名',
+'膠著錄' => '胶著录',
+'膠著稱' => '胶著称',
+'膠著者' => '胶著者',
+'膠著述' => '胶著述',
+'舒麥加' => '舒马赫',
+'太空梭' => '航天飞机',
+'穿梭機' => '航天飞机',
+'藝著' => '艺着',
+'藝著書' => '艺著书',
+'藝著作' => '艺著作',
+'藝著名' => '艺著名',
+'藝著錄' => '艺著录',
+'藝著稱' => '艺著称',
+'藝著者' => '艺著者',
+'藝著述' => '艺著述',
+'愛滋' => '艾滋',
+'晶片' => '芯片',
+'晶元' => '芯片',
+'蘇利南' => '苏里南',
 '苦著' => '苦着',
+'苦著書' => '苦著书',
 '苦著作' => '苦著作',
 '苦著名' => '苦著名',
-'苦著書' => '苦著書',
-'è\8b¦è\91\97稱' => 'è\8b¦è\91\97稱',
+'苦著錄' => '苦著录',
+'è\8b¦è\91\97稱' => 'è\8b¦è\91\97称',
 '苦著者' => '苦著者',
 '苦著述' => '苦著述',
-'苦著錄' => '苦著錄',
-'苦里' => '苦裏',
-'苦裡' => '苦裏',
-'荃湾线' => '荃灣綫',
-'荃灣線' => '荃灣綫',
+'英吋' => '英寸',
+'英呎' => '英尺',
+'大英國協' => '英联邦',
+'共和联邦' => '英联邦',
+'士多啤梨' => '草莓',
+'螢光棒' => '荧光棒',
+'螢屏' => '荧屏',
+'霍爾斯坦' => '荷尔斯泰因',
 '莫三比克' => '莫桑比克',
-'賴索托' => '萊索托',
-'馬自達' => '萬事得',
-'马自达' => '萬事得',
+'雷伊泰灣' => '莱特湾',
+'賴索托' => '莱索托',
+'穫著' => '获着',
+'獲著' => '获着',
+'獲著書' => '获著书',
+'獲著作' => '获著作',
+'獲著名' => '获著名',
+'獲著錄' => '获著录',
+'獲著稱' => '获著称',
+'獲著者' => '获著者',
+'獲著述' => '获著述',
+'塞拉耶佛' => '萨拉热窝',
 '落著' => '落着',
+'落著書' => '落著书',
 '落著作' => '落著作',
 '落著名' => '落著名',
-'落著書' => '落著書',
-'è\90½è\91\97稱' => 'è\90½è\91\97稱',
+'落著錄' => '落著录',
+'è\90½è\91\97稱' => 'è\90½è\91\97称',
 '落著者' => '落著者',
 '落著述' => '落著述',
-'落著錄' => '落著錄',
+'滿地可' => '蒙特利尔',
+'蒙特婁' => '蒙特利尔',
 '蒙著' => '蒙着',
+'蒙著書' => '蒙著书',
 '蒙著作' => '蒙著作',
 '蒙著名' => '蒙著名',
-'蒙著書' => '蒙著書',
-'è\92\99è\91\97稱' => 'è\92\99è\91\97稱',
+'蒙著錄' => '蒙著录',
+'è\92\99è\91\97稱' => 'è\92\99è\91\97称',
 '蒙著者' => '蒙著者',
 '蒙著述' => '蒙著述',
-'è\92\99è\91\97é\8c\84' => 'è\92\99è\91\97é\8c\84',
-'è\90¨è¾¾å§\86' => 'è\96©é\81\94å§\86',
-'è\97\89è\91\97' => 'è\97\89ç\9d\80',
+'è\93\8bè\91\97' => 'è\93\8bç\9d\80',
+'è\97\8dè\8a½' => 'è\93\9dç\89\99',
+'è\96\9bä¸\81æ ¼' => 'è\96\9bå®\9aè°\94',
 '藏著' => '藏着',
+'藏著書' => '藏著书',
 '藏著作' => '藏著作',
 '藏著名' => '藏著名',
-'藏著書' => '藏著書',
-'è\97\8fè\91\97稱' => 'è\97\8fè\91\97稱',
+'藏著錄' => '藏著录',
+'è\97\8fè\91\97稱' => 'è\97\8fè\91\97称',
 '藏著者' => '藏著者',
 '藏著述' => '藏著述',
-'藏著錄' => '藏著錄',
-'藝著' => '藝着',
-'藝著作' => '藝著作',
-'藝著名' => '藝著名',
-'藝著書' => '藝著書',
-'藝著稱' => '藝著稱',
-'藝著者' => '藝著者',
-'藝著述' => '藝著述',
-'藝著錄' => '藝著錄',
 '蘸著' => '蘸着',
+'蘸著書' => '蘸著书',
 '蘸著作' => '蘸著作',
 '蘸著名' => '蘸著名',
-'蘸著書' => '蘸著書',
-'è\98¸è\91\97稱' => 'è\98¸è\91\97稱',
+'蘸著錄' => '蘸著录',
+'è\98¸è\91\97稱' => 'è\98¸è\91\97称',
 '蘸著者' => '蘸著者',
 '蘸著述' => '蘸著述',
-'蘸著錄' => '蘸著錄',
 '行著' => '行着',
+'行著書' => '行著书',
 '行著作' => '行著作',
 '行著名' => '行著名',
-'行著書' => '行著書',
-'è¡\8cè\91\97稱' => 'è¡\8cè\91\97稱',
+'行著錄' => '行著录',
+'è¡\8cè\91\97稱' => 'è¡\8cè\91\97称',
 '行著者' => '行著者',
 '行著述' => '行著述',
-'行著錄' => '行著錄',
-'衛' => '衞',
 '衣著' => '衣着',
+'衣著書' => '衣著书',
 '衣著作' => '衣著作',
 '衣著名' => '衣著名',
-'衣著書' => '衣著書',
-'è¡£è\91\97稱' => 'è¡£è\91\97稱',
+'衣著錄' => '衣著录',
+'è¡£è\91\97稱' => 'è¡£è\91\97称',
 '衣著者' => '衣著者',
 '衣著述' => '衣著述',
-'衣著錄' => '衣著錄',
-'裡勾外連' => '裏勾外連',
-'里勾外连' => '裏勾外連',
-'里面' => '裏面',
-'裡面' => '裏面',
-'裝著' => '裝着',
-'裝著作' => '裝著作',
-'裝著名' => '裝著名',
-'裝著書' => '裝著書',
-'裝著稱' => '裝著稱',
-'裝著者' => '裝著者',
-'裝著述' => '裝著述',
-'裝著錄' => '裝著錄',
+'表姊' => '表姐',
+'裝著' => '装着',
+'裝著書' => '装著书',
+'裝著作' => '装著作',
+'裝著名' => '装著名',
+'裝著錄' => '装著录',
+'裝著稱' => '装著称',
+'裝著者' => '装著者',
+'裝著述' => '装著述',
 '裹著' => '裹着',
+'裹著書' => '裹著书',
 '裹著作' => '裹著作',
 '裹著名' => '裹著名',
-'裹著書' => '裹著書',
-'裹è\91\97稱' => '裹è\91\97稱',
+'裹著錄' => '裹著录',
+'裹è\91\97稱' => '裹è\91\97称',
 '裹著者' => '裹著者',
 '裹著述' => '裹著述',
-'裹著錄' => '裹著錄',
-'西铁线' => '西鐵綫',
-'西鐵線' => '西鐵綫',
-'見著' => '見着',
-'見著作' => '見著作',
-'見著名' => '見著名',
-'見著書' => '見著書',
-'見著稱' => '見著稱',
-'見著者' => '見著者',
-'見著述' => '見著述',
-'見著錄' => '見著錄',
-'觀塘線' => '觀塘綫',
-'观塘线' => '觀塘綫',
-'記著' => '記着',
-'記著作' => '記著作',
-'記著名' => '記著名',
-'記著書' => '記著書',
-'記著稱' => '記著稱',
-'記著者' => '記著者',
-'記著述' => '記著述',
-'記著錄' => '記著錄',
-'試著' => '試着',
-'試著作' => '試著作',
-'試著名' => '試著名',
-'試著書' => '試著書',
-'試著稱' => '試著稱',
-'試著者' => '試著者',
-'試著述' => '試著述',
-'試著錄' => '試著錄',
-'語著' => '語着',
-'語著作' => '語著作',
-'語著名' => '語著名',
-'語著書' => '語著書',
-'語著稱' => '語著稱',
-'語著者' => '語著者',
-'語著述' => '語著述',
-'語著錄' => '語著錄',
-'數據機' => '調制解調器',
+'要帳' => '要账',
+'覆著' => '覆着',
+'見著' => '见着',
+'見著書' => '见著书',
+'見著作' => '见著作',
+'見著名' => '见著名',
+'見著錄' => '见著录',
+'見著稱' => '见著称',
+'見著者' => '见著者',
+'見著述' => '见著述',
+'占士邦' => '詹姆斯·邦德',
 '警戒著' => '警戒着',
-'變著' => '變着',
-'變著作' => '變著作',
-'變著名' => '變著名',
-'變著書' => '變著書',
-'變著稱' => '變著稱',
-'變著者' => '變著者',
-'變著述' => '變著述',
-'變著錄' => '變著錄',
-'豎著' => '豎着',
-'豎著作' => '豎著作',
-'豎著名' => '豎著名',
-'豎著書' => '豎著書',
-'豎著稱' => '豎著稱',
-'豎著者' => '豎著者',
-'豎著述' => '豎著述',
-'豎著錄' => '豎著錄',
+'計畫' => '计划',
+'電腦程式' => '计算机程序',
+'認帳' => '认账',
+'記著' => '记着',
+'記著書' => '记著书',
+'記著作' => '记著作',
+'記著名' => '记著名',
+'記著錄' => '记著录',
+'記著稱' => '记著称',
+'記著者' => '记著者',
+'記著述' => '记著述',
+'記帳' => '记账',
+'辭彙' => '词汇',
+'片語' => '词组',
+'試著' => '试着',
+'試著書' => '试著书',
+'試著作' => '试著作',
+'試著名' => '试著名',
+'試著錄' => '试著录',
+'試著稱' => '试著称',
+'試著者' => '试著者',
+'試著述' => '试著述',
+'語著' => '语着',
+'語著書' => '语著书',
+'語著作' => '语著作',
+'語著名' => '语著名',
+'語著錄' => '语著录',
+'語著稱' => '语著称',
+'語著者' => '语著者',
+'語著述' => '语著述',
+'說著' => '说着',
+'說著作' => '说著作',
+'說著稱' => '说著称',
+'說著者' => '说著者',
+'說著述' => '说著述',
+'諾曼第' => '诺曼底',
+'數據機' => '调制解调器',
+'象徵著' => '象征着',
+'象徵著名' => '象征著名',
 '豫著' => '豫着',
+'豫著書' => '豫著书',
 '豫著作' => '豫著作',
 '豫著名' => '豫著名',
-'豫著書' => '豫著書',
-'豫è\91\97稱' => '豫è\91\97稱',
+'豫著錄' => '豫著录',
+'豫è\91\97稱' => '豫è\91\97称',
 '豫著者' => '豫著者',
 '豫著述' => '豫著述',
-'豫著錄' => '豫著錄',
-'貝南' => '貝寧',
-'貞著' => '貞着',
-'貞著作' => '貞著作',
-'貞著名' => '貞著名',
-'貞著書' => '貞著書',
-'貞著稱' => '貞著稱',
-'貞著者' => '貞著者',
-'貞著述' => '貞著述',
-'貞著錄' => '貞著錄',
-'買凶' => '買兇',
-'尚比亞' => '贊比亞',
+'碧咸' => '贝克汉姆',
+'貝爾格勒' => '贝尔格莱德',
+'貞著' => '贞着',
+'貞著書' => '贞著书',
+'貞著作' => '贞著作',
+'貞著名' => '贞著名',
+'貞著錄' => '贞著录',
+'貞著稱' => '贞著称',
+'貞著者' => '贞著者',
+'貞著述' => '贞著述',
+'負著' => '负着',
+'帳上' => '账上',
+'帳冊' => '账册',
+'帳務' => '账务',
+'帳單' => '账单',
+'帳號' => '账号',
+'帳外' => '账外',
+'帳戶' => '账户',
+'帳房' => '账房',
+'帳本' => '账本',
+'帳款' => '账款',
+'帳目' => '账目',
+'帳簿' => '账簿',
+'帳面' => '账面',
+'賒帳' => '赊账',
+'賴帳' => '赖账',
+'尚比亞' => '赞比亚',
+'西臺人' => '赫梯人',
+'西臺國' => '赫梯国',
+'西臺帝' => '赫梯帝',
+'西臺文' => '赫梯文',
+'西臺族' => '赫梯族',
+'西臺王' => '赫梯王',
+'西臺語' => '赫梯语',
+'赫魯雪夫' => '赫鲁晓夫',
+'走為上著' => '走为上着',
 '走著' => '走着',
+'走著書' => '走著书',
 '走著作' => '走著作',
 '走著名' => '走著名',
-'走著書' => '走著書',
-'èµ°è\91\97稱' => 'èµ°è\91\97稱',
+'走著錄' => '走著录',
+'èµ°è\91\97稱' => 'èµ°è\91\97称',
 '走著者' => '走著者',
 '走著述' => '走著述',
-'èµ°è\91\97é\8c\84' => 'èµ°è\91\97é\8c\84',
-'趕著' => '趕着',
-'è¶\95è\91\97ä½\9c' => 'è\95著作',
-'è¶\95è\91\97å\90\8d' => 'è\95著名',
-'趕著書' => '趕著書',
-'è¶\95è\91\97稱' => 'è\95è\91\97稱',
-'è¶\95è\91\97è\80\85' => 'è\95著者',
-'è¶\95è\91\97è¿°' => 'è\95著述',
-'è¶\95è\91\97é\8c\84' => 'è¶\95è\91\97é\8c\84',
+'è\95è\91\97' => '赶ç\9d\80',
+'趕著書' => '赶著书',
+'è¶\95è\91\97ä½\9c' => '赶著作',
+'è¶\95è\91\97å\90\8d' => '赶著名',
+'趕著錄' => '赶著录',
+'è¶\95è\91\97稱' => '赶è\91\97称',
+'è¶\95è\91\97è\80\85' => '赶著者',
+'è¶\95è\91\97è¿°' => '赶著述',
+'è¶\85é\80£çµ\90' => 'è¶\85é\93¾æ\8e¥',
 '趴著' => '趴着',
+'趴著書' => '趴著书',
 '趴著作' => '趴著作',
-'趴著名' => '趴著名',
-'趴著書' => '趴著書',
-'趴è\91\97稱' => '趴è\91\97稱',
+'趴著名' => '趴著名',
+'趴著錄' => '趴著录',
+'趴è\91\97稱' => '趴è\91\97称',
 '趴著者' => '趴著者',
 '趴著述' => '趴著述',
-'趴著錄' => '趴著錄',
+'躍著' => '跃着',
+'躍著書' => '跃著书',
+'躍著作' => '跃著作',
+'躍著名' => '跃著名',
+'躍著錄' => '跃著录',
+'躍著稱' => '跃著称',
+'躍著者' => '跃著者',
+'躍著述' => '跃著述',
 '跑著' => '跑着',
+'跑著書' => '跑著书',
 '跑著作' => '跑著作',
 '跑著名' => '跑著名',
-'跑著書' => '跑著書',
-'è·\91è\91\97稱' => 'è·\91è\91\97稱',
+'跑著錄' => '跑著录',
+'è·\91è\91\97稱' => 'è·\91è\91\97称',
 '跑著者' => '跑著者',
 '跑著述' => '跑著述',
-'跑著錄' => '跑著錄',
 '跟著' => '跟着',
+'跟著書' => '跟著书',
 '跟著作' => '跟著作',
 '跟著名' => '跟著名',
-'跟著書' => '跟著書',
-'è·\9fè\91\97稱' => 'è·\9fè\91\97稱',
+'跟著錄' => '跟著录',
+'è·\9fè\91\97稱' => 'è·\9fè\91\97称',
 '跟著者' => '跟著者',
 '跟著述' => '跟著述',
-'跟著錄' => '跟著錄',
 '跪著' => '跪着',
+'跪著書' => '跪著书',
 '跪著作' => '跪著作',
 '跪著名' => '跪著名',
-'跪著書' => '跪著書',
-'è·ªè\91\97稱' => 'è·ªè\91\97稱',
+'跪著錄' => '跪著录',
+'è·ªè\91\97稱' => 'è·ªè\91\97称',
 '跪著者' => '跪著者',
 '跪著述' => '跪著述',
-'跪著錄' => '跪著錄',
 '跳著' => '跳着',
+'跳著書' => '跳著书',
 '跳著作' => '跳著作',
 '跳著名' => '跳著名',
-'跳著書' => '跳著書',
-'è·³è\91\97稱' => 'è·³è\91\97稱',
+'跳著錄' => '跳著录',
+'è·³è\91\97稱' => 'è·³è\91\97称',
 '跳著者' => '跳著者',
 '跳著述' => '跳著述',
-'跳著錄' => '跳著錄',
 '踏著' => '踏着',
+'踏著書' => '踏著书',
 '踏著作' => '踏著作',
 '踏著名' => '踏著名',
-'踏著稱' => '踏著稱',
+'踏著錄' => '踏著录',
+'踏著稱' => '踏著称',
 '踏著者' => '踏著者',
 '踏著述' => '踏著述',
-'踏著錄' => '踏著錄',
 '踩著' => '踩着',
+'踩著書' => '踩著书',
 '踩著作' => '踩著作',
 '踩著名' => '踩著名',
-'踩著書' => '踩著書',
-'踩è\91\97稱' => '踩è\91\97稱',
+'踩著錄' => '踩著录',
+'踩è\91\97稱' => '踩è\91\97称',
 '踩著者' => '踩著者',
 '踩著述' => '踩著述',
-'踩著錄' => '踩著錄',
-'躍著' => '躍着',
-'躍著作' => '躍著作',
-'躍著名' => '躍著名',
-'躍著書' => '躍著書',
-'躍著稱' => '躍著稱',
-'躍著者' => '躍著者',
-'躍著述' => '躍著述',
-'躍著錄' => '躍著錄',
+'笨豬跳' => '蹦极跳',
+'绑紧跳' => '蹦极跳',
+'身分' => '身份',
 '身著' => '身着',
+'身著書' => '身著书',
 '身著作' => '身著作',
 '身著名' => '身著名',
-'身著書' => '身著書',
-'身è\91\97稱' => '身è\91\97稱',
+'身著錄' => '身著录',
+'身è\91\97稱' => '身è\91\97称',
 '身著者' => '身著者',
 '身著述' => '身著述',
-'身著錄' => '身著錄',
 '躺著' => '躺着',
+'躺著書' => '躺著书',
 '躺著作' => '躺著作',
 '躺著名' => '躺著名',
-'躺著書' => '躺著書',
-'躺è\91\97稱' => '躺è\91\97稱',
+'躺著錄' => '躺著录',
+'躺è\91\97稱' => '躺è\91\97称',
 '躺著者' => '躺著者',
 '躺著述' => '躺著述',
-'躺著錄' => '躺著錄',
-'軟體' => '軟件',
-'載著' => '載着',
-'載著作' => '載著作',
-'載著名' => '載著名',
-'載著書' => '載著書',
-'載著稱' => '載著稱',
-'載著者' => '載著者',
-'載著述' => '載著述',
-'載著錄' => '載著錄',
-'轉著' => '轉着',
-'轉著作' => '轉著作',
-'轉著名' => '轉著名',
-'轉著書' => '轉著書',
-'轉著稱' => '轉著稱',
-'轉著者' => '轉著者',
-'轉著述' => '轉著述',
-'轉著錄' => '轉著錄',
-'辦著' => '辦着',
-'辦著作' => '辦著作',
-'辦著名' => '辦著名',
-'辦著書' => '辦著書',
-'辦著稱' => '辦著稱',
-'辦著者' => '辦著者',
-'辦著述' => '辦著述',
-'辦著錄' => '辦著錄',
-'近角聪信' => '近角聰信',
-'近角聰信' => '近角聰信',
-'迪士尼线' => '迪士尼綫',
-'迪士尼線' => '迪士尼綫',
-'迫著' => '迫着',
-'追著' => '追着',
-'追著作' => '追著作',
-'追著名' => '追著名',
-'追著書' => '追著書',
-'追著稱' => '追著稱',
-'追著者' => '追著者',
-'追著述' => '追著述',
-'追著錄' => '追著錄',
-'逆著' => '逆着',
-'逆著作' => '逆著作',
-'逆著名' => '逆著名',
-'逆著書' => '逆著書',
-'逆著稱' => '逆著稱',
-'逆著者' => '逆著者',
-'逆著述' => '逆著述',
-'逆著錄' => '逆著錄',
-'這里' => '這裏',
-'這裡' => '這裏',
-'連著' => '連着',
-'連著作' => '連著作',
-'連著名' => '連著名',
-'連著書' => '連著書',
-'連著稱' => '連著稱',
-'連著者' => '連著者',
-'連著述' => '連著述',
-'連著錄' => '連著錄',
-'逼著' => '逼着',
-'逼著作' => '逼著作',
-'逼著名' => '逼著名',
-'逼著書' => '逼著書',
-'逼著稱' => '逼著稱',
-'逼著者' => '逼著者',
-'逼著述' => '逼著述',
-'逼著錄' => '逼著錄',
-'遇著' => '遇着',
-'遇著作' => '遇著作',
-'遇著名' => '遇著名',
-'遇著書' => '遇著書',
-'遇著稱' => '遇著稱',
-'遇著者' => '遇著者',
-'遇著述' => '遇著述',
-'遇著錄' => '遇著錄',
-'達著' => '達着',
-'達著作' => '達著作',
-'達著名' => '達著名',
-'達著書' => '達著書',
-'達著稱' => '達著稱',
-'達著者' => '達著者',
-'達著述' => '達著述',
-'達著錄' => '達著錄',
-'遠著' => '遠着',
-'遠著作' => '遠著作',
-'遠著名' => '遠著名',
-'遠著書' => '遠著書',
-'遠著稱' => '遠著稱',
-'遠著者' => '遠著者',
-'遠著述' => '遠著述',
-'遠著錄' => '遠著錄',
-'配著' => '配着',
-'配著作' => '配著作',
-'配著名' => '配著名',
-'配著書' => '配著書',
-'配著稱' => '配著稱',
-'配著者' => '配著者',
-'配著述' => '配著述',
-'配著錄' => '配著錄',
-'醯' => '酰',
-'醜著' => '醜着',
-'醜著作' => '醜著作',
-'醜著名' => '醜著名',
-'醜著書' => '醜著書',
-'醜著稱' => '醜著稱',
-'醜著者' => '醜著者',
-'醜著述' => '醜著述',
-'醜著錄' => '醜著錄',
-'醫院裡' => '醫院裏',
-'醯壺' => '醯壺',
-'醯壶' => '醯壺',
-'醯醋' => '醯醋',
-'醯醢' => '醯醢',
-'醯醬' => '醯醬',
-'醯酱' => '醯醬',
-'醯鸡' => '醯雞',
-'醯雞' => '醯雞',
-'釀著' => '釀着',
-'釀著作' => '釀著作',
-'釀著名' => '釀著名',
-'釀著書' => '釀著書',
-'釀著稱' => '釀著稱',
-'釀著者' => '釀著者',
-'釀著述' => '釀著述',
-'釀著錄' => '釀著錄',
-'鉤' => '鈎',
-'鉤心鬥角' => '鈎心鬥角',
-'鋪著' => '鋪着',
-'鋪著作' => '鋪著作',
-'鋪著名' => '鋪著名',
-'鋪著書' => '鋪著書',
-'鋪著稱' => '鋪著稱',
-'鋪著者' => '鋪著者',
-'鋪著述' => '鋪著述',
-'鋪著錄' => '鋪著錄',
-'閉著' => '閉着',
-'閉著作' => '閉著作',
-'閉著名' => '閉著名',
-'閉著書' => '閉著書',
-'閉著稱' => '閉著稱',
-'閉著者' => '閉著者',
-'閉著述' => '閉著述',
-'閉著錄' => '閉著錄',
-'開著' => '開着',
-'開著作' => '開著作',
-'開著名' => '開著名',
-'開著書' => '開著書',
-'開著稱' => '開著稱',
-'開著者' => '開著者',
-'開著述' => '開著述',
-'開著錄' => '開著錄',
-'閑著' => '閑着',
-'閑著作' => '閑著作',
-'閑著名' => '閑著名',
-'閑著書' => '閑著書',
-'閑著稱' => '閑著稱',
-'閑著者' => '閑著者',
-'閑著述' => '閑著述',
-'閑著錄' => '閑著錄',
-'關著' => '關着',
-'關著作' => '關著作',
-'關著名' => '關著名',
-'關著書' => '關著書',
-'關著稱' => '關著稱',
-'關著者' => '關著者',
-'關著述' => '關著述',
-'關著錄' => '關著錄',
-'聞不著' => '闻不着',
-'聞得著' => '闻得着',
+'轉著' => '转着',
+'轉著書' => '转著书',
+'轉著作' => '转著作',
+'轉著名' => '转著名',
+'轉著錄' => '转著录',
+'轉著稱' => '转著称',
+'轉著者' => '转著者',
+'轉著述' => '转著述',
+'轉帳' => '转账',
+'軟體' => '软件',
+'軟體動物' => '软体动物',
+'軟體家具' => '软体家具',
+'軟碟機' => '软驱',
+'載著' => '载着',
+'載著書' => '载著书',
+'載著作' => '载著作',
+'載著名' => '载著名',
+'載著錄' => '载著录',
+'載著稱' => '载著称',
+'載著者' => '载著者',
+'載著述' => '载著述',
+'達·文西' => '达·芬奇',
+'達著' => '达着',
+'三蘭港' => '达累斯萨拉姆',
+'達文西' => '达芬奇',
+'達著書' => '达著书',
+'達著作' => '达著作',
+'達著名' => '达著名',
+'達著錄' => '达著录',
+'達著稱' => '达著称',
+'達著者' => '达著者',
+'達著述' => '达著述',
+'過份' => '过分',
+'過著' => '过着',
+'過著作' => '过著作',
+'過著名' => '过著名',
+'過著錄' => '过著录',
+'過著稱' => '过著称',
+'過著者' => '过著者',
+'過著述' => '过著述',
+'米高·奧雲' => '迈克尔·欧文',
+'還帳' => '还账',
+'演化論' => '进化论',
+'進帳' => '进账',
+'遠著' => '远着',
+'遠著書' => '远著书',
+'遠著作' => '远著作',
+'遠著名' => '远著名',
+'遠著錄' => '远著录',
+'遠著稱' => '远著称',
+'遠著者' => '远著者',
+'遠著述' => '远著述',
+'連著' => '连着',
+'連結他' => '连结他',
+'連著書' => '连著书',
+'連著作' => '连著作',
+'連著名' => '连著名',
+'連著錄' => '连著录',
+'連著稱' => '连著称',
+'連著者' => '连著者',
+'連著述' => '连著述',
+'杜拜' => '迪拜',
+'迫著' => '迫着',
+'疊代' => '迭代',
+'追著' => '追着',
+'追著書' => '追著书',
+'追著作' => '追著作',
+'追著名' => '追著名',
+'追著錄' => '追著录',
+'追著稱' => '追著称',
+'追著者' => '追著者',
+'追著述' => '追著述',
+'逆著' => '逆着',
+'逆著書' => '逆著书',
+'逆著作' => '逆著作',
+'逆著名' => '逆著名',
+'逆著錄' => '逆著录',
+'逆著稱' => '逆著称',
+'逆著者' => '逆著者',
+'逆著述' => '逆著述',
+'逼著' => '逼着',
+'逼著書' => '逼著书',
+'逼著作' => '逼著作',
+'逼著名' => '逼著名',
+'逼著錄' => '逼著录',
+'逼著稱' => '逼著称',
+'逼著者' => '逼著者',
+'逼著述' => '逼著述',
+'遇著' => '遇着',
+'遇著書' => '遇著书',
+'遇著作' => '遇著作',
+'遇著名' => '遇著名',
+'遇著錄' => '遇著录',
+'遇著稱' => '遇著称',
+'遇著者' => '遇著者',
+'遇著述' => '遇著述',
+'部份' => '部分',
+'配合著' => '配合着',
+'配合著名' => '配合著名',
+'配著' => '配着',
+'配著書' => '配著书',
+'配著作' => '配著作',
+'配著名' => '配著名',
+'配著錄' => '配著录',
+'配著稱' => '配著称',
+'配著者' => '配著者',
+'配著述' => '配著述',
+'釀著' => '酿着',
+'釀著書' => '酿著书',
+'釀著作' => '酿著作',
+'釀著名' => '酿著名',
+'釀著錄' => '酿著录',
+'釀著稱' => '酿著称',
+'釀著者' => '酿著者',
+'釀著述' => '酿著述',
+'黎克特制' => '里氏',
+'芮氏0' => '里氏0',
+'芮氏1' => '里氏1',
+'芮氏2' => '里氏2',
+'芮氏3' => '里氏3',
+'芮氏4' => '里氏4',
+'芮氏5' => '里氏5',
+'芮氏6' => '里氏6',
+'芮氏7' => '里氏7',
+'芮氏8' => '里氏8',
+'芮氏9' => '里氏9',
+'芮氏地震規模' => '里氏地震规模',
+'芮氏規模' => '里氏震级',
+'金夏沙' => '金沙萨',
+'鈽' => '钚',
+'鍅' => '钫',
+'狄托' => '铁托',
+'鋪著' => '铺着',
+'鋪著書' => '铺著书',
+'鋪著作' => '铺著作',
+'鋪著名' => '铺著名',
+'鋪著錄' => '铺著录',
+'鋪著稱' => '铺著称',
+'鋪著者' => '铺著者',
+'鋪著述' => '铺著述',
+'銷帳' => '销账',
+'鉲' => '锎',
+'鎝' => '锝',
+'鉳' => '锫',
+'鑀' => '锿',
+'鋂' => '镅',
+'錼' => '镎',
+'孟德爾頌' => '门德尔松',
+'孟德爾遜' => '门德尔松',
+'快閃記憶體' => '闪存',
+'閉著' => '闭着',
+'閉著書' => '闭著书',
+'閉著作' => '闭著作',
+'閉著名' => '闭著名',
+'閉著錄' => '闭著录',
+'閉著稱' => '闭著称',
+'閉著者' => '闭著者',
+'閉著述' => '闭著述',
+'閒著' => '闲着',
+'閑著' => '闲着',
+'閑著書' => '闲著书',
+'閑著作' => '闲著作',
+'閑著名' => '闲著名',
+'閑著錄' => '闲著录',
+'閑著稱' => '闲著称',
+'閑著者' => '闲著者',
+'閑著述' => '闲著述',
+'悶著' => '闷着',
+'鬧著' => '闹着',
 '聞著' => '闻着',
 '亞塞拜然' => '阿塞拜疆',
-'阿拉伯聯合大公國' => '阿拉伯聯合酋長國',
+'阿布達比' => '阿布扎比',
+'阿拉伯聯合大公國' => '阿拉伯联合酋长国',
+'亞斯文' => '阿斯旺',
 '附著' => '附着',
+'附著書' => '附著书',
 '附著作' => '附著作',
 '附著名' => '附著名',
-'附著書' => '附著書',
-'é\99\84è\91\97稱' => 'é\99\84è\91\97稱',
+'附著錄' => '附著录',
+'é\99\84è\91\97稱' => 'é\99\84è\91\97称',
 '附著者' => '附著者',
 '附著述' => '附著述',
-'附著錄' => '附著錄',
 '陋著' => '陋着',
+'陋著書' => '陋著书',
 '陋著作' => '陋著作',
 '陋著名' => '陋著名',
-'陋著書' => '陋著書',
-'é\99\8bè\91\97稱' => 'é\99\8bè\91\97稱',
+'陋著錄' => '陋著录',
+'é\99\8bè\91\97稱' => 'é\99\8bè\91\97称',
 '陋著者' => '陋著者',
 '陋著述' => '陋著述',
-'陋著錄' => '陋著錄',
 '陪著' => '陪着',
+'陪著書' => '陪著书',
 '陪著作' => '陪著作',
 '陪著名' => '陪著名',
-'陪著書' => '陪著書',
-'é\99ªè\91\97稱' => 'é\99ªè\91\97稱',
+'陪著錄' => '陪著录',
+'é\99ªè\91\97稱' => 'é\99ªè\91\97称',
 '陪著者' => '陪著者',
 '陪著述' => '陪著述',
-'陪著錄' => '陪著錄',
+'隨著' => '随着',
+'隨著書' => '随著书',
+'隨著作' => '随著作',
+'隨著名' => '随著名',
+'隨著錄' => '随著录',
+'隨著稱' => '随著称',
+'隨著者' => '随著者',
+'隨著述' => '随著述',
+'私隱' => '隐私',
 '隔著' => '隔着',
+'隔著書' => '隔著书',
 '隔著作' => '隔著作',
 '隔著名' => '隔著名',
-'隔著書' => '隔著書',
-'é\9a\94è\91\97稱' => 'é\9a\94è\91\97稱',
+'隔著錄' => '隔著录',
+'é\9a\94è\91\97稱' => 'é\9a\94è\91\97称',
 '隔著者' => '隔著者',
 '隔著述' => '隔著述',
-'隔著錄' => '隔著錄',
-'隨著' => '隨着',
-'隨著作' => '隨著作',
-'隨著名' => '隨著名',
-'隨著書' => '隨著書',
-'隨著稱' => '隨著稱',
-'隨著者' => '隨著者',
-'隨著述' => '隨著述',
-'隨著錄' => '隨著錄',
+'耶加達' => '雅加达',
+'雅爾達' => '雅尔塔',
 '雅著' => '雅着',
+'雅著書' => '雅著书',
 '雅著作' => '雅著作',
 '雅著名' => '雅著名',
-'雅著書' => '雅著書',
-'é\9b\85è\91\97稱' => 'é\9b\85è\91\97稱',
+'雅著錄' => '雅著录',
+'é\9b\85è\91\97稱' => 'é\9b\85è\91\97称',
 '雅著者' => '雅著者',
 '雅著述' => '雅著述',
-'雅著錄' => '雅著錄',
-'雜著' => '雜着',
-'雜著作' => '雜著作',
-'雜著名' => '雜著名',
-'雜著書' => '雜著書',
-'雜著稱' => '雜著稱',
-'雜著者' => '雜著者',
-'雜著述' => '雜著述',
-'雜著錄' => '雜著錄',
-'冰淇淋' => '雪糕',
-'雪里红' => '雪裏紅',
-'雪裡紅' => '雪裏紅',
-'雪裡蕻' => '雪裏蕻',
-'雪里蕻' => '雪裏蕻',
+'山葉' => '雅马哈',
+'雷諾瓦' => '雷诺阿',
+'荷姆茲' => '霍尔木兹',
+'非份' => '非分',
 '靠著' => '靠着',
 '靠著作' => '靠著作',
 '靠著名' => '靠著名',
-'靠著稱' => '靠著稱',
-'é\9d è\91\97称' => 'é\9d è\91\97稱',
+'靠著錄' => '靠著录',
+'é\9d è\91\97稱' => 'é\9d è\91\97称',
 '靠著者' => '靠著者',
 '靠著述' => '靠著述',
-'靠著錄' => '靠著錄',
-'靠著录' => '靠著錄',
-'響著' => '響着',
-'響著作' => '響著作',
-'響著名' => '響著名',
-'響著書' => '響著書',
-'響著稱' => '響著稱',
-'響著者' => '響著者',
-'響著述' => '響著述',
-'響著錄' => '響著錄',
-'頂著' => '頂着',
-'頂著作' => '頂著作',
-'頂著名' => '頂著名',
-'頂著書' => '頂著書',
-'頂著稱' => '頂著稱',
-'頂著者' => '頂著者',
-'頂著述' => '頂著述',
-'頂著錄' => '頂著錄',
-'順著' => '順着',
-'順著作' => '順著作',
-'順著名' => '順著名',
-'順著書' => '順著書',
-'順著稱' => '順著稱',
-'順著者' => '順著者',
-'順著述' => '順著述',
-'順著錄' => '順著錄',
-'頒布' => '頒佈',
-'颁布' => '頒佈',
-'領域裡' => '領域裏',
-'领域里' => '領域裏',
-'領著' => '領着',
-'領著作' => '領著作',
-'領著名' => '領著名',
-'領著書' => '領著書',
-'領著稱' => '領著稱',
-'領著者' => '領著者',
-'領著述' => '領著述',
-'領著錄' => '領著錄',
-'飄著' => '飄着',
-'飄著作' => '飄著作',
-'飄著名' => '飄著名',
-'飄著書' => '飄著書',
-'飄著稱' => '飄著稱',
-'飄著者' => '飄著者',
-'飄著述' => '飄著述',
-'飄著錄' => '飄著錄',
-'館裡' => '館裏',
-'馆里' => '館裏',
-'馬爾地夫' => '馬爾代夫',
-'馬利共和國' => '馬里共和國',
-'土豆' => '馬鈴薯',
-'馬鞍山線' => '馬鞍山綫',
-'马鞍山线' => '馬鞍山綫',
-'駕著' => '駕着',
-'駕著作' => '駕著作',
-'駕著名' => '駕著名',
-'駕著書' => '駕著書',
-'駕著稱' => '駕著稱',
-'駕著者' => '駕著者',
-'駕著述' => '駕著述',
-'駕著錄' => '駕著錄',
-'騎著' => '騎着',
-'騎著作' => '騎著作',
-'騎著名' => '騎著名',
-'騎著書' => '騎著書',
-'騎著稱' => '騎著稱',
-'騎著者' => '騎著者',
-'騎著述' => '騎著述',
-'騎著錄' => '騎著錄',
-'騙著' => '騙着',
-'騙著作' => '騙著作',
-'騙著名' => '騙著名',
-'騙著書' => '騙著書',
-'騙著稱' => '騙著稱',
-'騙著者' => '騙著者',
-'騙著述' => '騙著述',
-'騙著錄' => '騙著錄',
+'南韓' => '韩国',
+'音樂錄影帶' => '音乐录影带',
+'頂著' => '顶着',
+'頂著書' => '顶著书',
+'頂著作' => '顶著作',
+'頂著名' => '顶著名',
+'頂著錄' => '顶著录',
+'頂著稱' => '顶著称',
+'頂著者' => '顶著者',
+'頂著述' => '顶著述',
+'順著' => '顺着',
+'順著書' => '顺著书',
+'順著作' => '顺著作',
+'順著名' => '顺著名',
+'順著錄' => '顺著录',
+'順著稱' => '顺著称',
+'順著者' => '顺著者',
+'順著述' => '顺著述',
+'領著' => '领着',
+'領著書' => '领著书',
+'領著作' => '领著作',
+'領著名' => '领著名',
+'領著錄' => '领著录',
+'領著稱' => '领著称',
+'領著者' => '领著者',
+'領著述' => '领著述',
+'飄著' => '飘着',
+'飃著' => '飘着',
+'飄著書' => '飘著书',
+'飄著作' => '飘著作',
+'飄著名' => '飘著名',
+'飄著錄' => '飘著录',
+'飄著稱' => '飘著称',
+'飄著者' => '飘著者',
+'飄著述' => '飘著述',
+'行政總裁' => '首席执行官',
+'執行長、' => '首席执行官、',
+'執行長。' => '首席执行官。',
+'執行長,' => '首席执行官,',
+'財務長、' => '首席财务官、',
+'財務長。' => '首席财务官。',
+'財務長,' => '首席财务官,',
+'營運長、' => '首席运营官、',
+'營運長。' => '首席运营官。',
+'營運長,' => '首席运营官,',
+'馬爾地夫' => '马尔代夫',
+'萌島' => '马恩岛',
+'馬拉威' => '马拉维',
+'馬斯垂克' => '马斯特里赫特',
+'馬爾他' => '马耳他',
+'麻薩諸塞' => '马萨诸塞',
+'馬利共和國' => '马里共和国',
+'駛著' => '驶着',
+'駕著' => '驾着',
+'駕著書' => '驾著书',
+'駕著作' => '驾著作',
+'駕著名' => '驾著名',
+'駕著錄' => '驾著录',
+'駕著稱' => '驾著称',
+'駕著者' => '驾著者',
+'駕著述' => '驾著述',
+'罵著' => '骂着',
+'罵著書' => '骂著书',
+'罵著作' => '骂著作',
+'罵著名' => '骂著名',
+'罵著錄' => '骂著录',
+'罵著稱' => '骂著称',
+'罵著者' => '骂著者',
+'罵著述' => '骂著述',
+'騎著' => '骑着',
+'騎著書' => '骑著书',
+'騎著作' => '骑著作',
+'騎著名' => '骑著名',
+'騎著錄' => '骑著录',
+'騎著稱' => '骑著称',
+'騎著者' => '骑著者',
+'騎著述' => '骑著述',
+'騙著' => '骗着',
+'騙著書' => '骗著书',
+'騙著作' => '骗著作',
+'騙著名' => '骗著名',
+'騙著錄' => '骗著录',
+'騙著稱' => '骗著称',
+'騙著者' => '骗著者',
+'騙著述' => '骗著述',
+'尖峰時段' => '高峰时段',
+'尖峰時間' => '高峰时间',
+'高畫質' => '高清',
 '高著' => '高着',
+'高著書' => '高著书',
 '高著作' => '高著作',
 '高著名' => '高著名',
-'高著書' => '高著書',
-'é«\98è\91\97稱' => 'é«\98è\91\97稱',
+'高著錄' => '高著录',
+'é«\98è\91\97稱' => 'é«\98è\91\97称',
 '高著者' => '高著者',
 '高著述' => '高著述',
-'高著錄' => '高著錄',
 '髭著' => '髭着',
+'髭著書' => '髭著书',
 '髭著作' => '髭著作',
 '髭著名' => '髭著名',
-'髭著書' => '髭著書',
-'é«­è\91\97稱' => 'é«­è\91\97稱',
+'髭著錄' => '髭著录',
+'é«­è\91\97稱' => 'é«­è\91\97称',
 '髭著者' => '髭著者',
 '髭著述' => '髭著述',
-'髭著錄' => '髭著錄',
-'鬥著' => '鬥着',
-'鬥著作' => '鬥著作',
-'鬥著名' => '鬥著名',
-'鬥著書' => '鬥著書',
-'鬥著稱' => '鬥著稱',
-'鬥著者' => '鬥著者',
-'鬥著述' => '鬥著述',
-'鬥著錄' => '鬥著錄',
-'麗著' => '麗着',
-'麗著作' => '麗著作',
-'麗著名' => '麗著名',
-'麗著書' => '麗著書',
-'麗著稱' => '麗著稱',
-'麗著者' => '麗著者',
-'麗著述' => '麗著述',
-'麗著錄' => '麗著錄',
+'咪高峰' => '麦克风',
 '黏著' => '黏着',
+'黏著書' => '黏著书',
 '黏著作' => '黏著作',
 '黏著名' => '黏著名',
-'黏著書' => '黏著書',
-'é»\8fè\91\97稱' => 'é»\8fè\91\97稱',
+'黏著錄' => '黏著录',
+'é»\8fè\91\97稱' => 'é»\8fè\91\97称',
 '黏著者' => '黏著者',
 '黏著述' => '黏著述',
-'黏著錄' => '黏著錄',
-'點著' => '點着',
-'點著作' => '點著作',
-'點著名' => '點著名',
-'點著書' => '點著書',
-'點著稱' => '點著稱',
-'點著者' => '點著者',
-'點著述' => '點著述',
-'點著錄' => '點著錄',
-'點裡' => '點裏',
-'点里' => '點裏',
-);
-
-$zh2CN = array(
-'16進位' => '16进位',
-'16進位制' => '16进位制',
-'『' => '‘',
-'』' => '’',
-'「' => '“',
-'」' => '”',
-'萬曆' => '万历',
-'三極體' => '三极管',
-'三極管' => '三极管',
-'串列加速器' => '串列加速器',
-'串列' => '串行',
-'烏茲別克' => '乌兹别克斯坦',
-'葉門' => '也门',
-'芝士' => '乾酪',
-'二極管' => '二极管',
-'二極體' => '二极管',
-'二進位制' => '二进位制',
-'二進位' => '二进制',
-'網際網路' => '互联网',
-'互聯網' => '互联网',
-'互動式' => '交互式',
-'人工智慧' => '人工智能',
-'甚麽' => '什么',
-'甚麼' => '什么',
-'乙太網' => '以太网',
-'優先順序' => '优先级',
-'感測' => '传感',
-'伯利茲' => '伯利兹',
-'貝里斯' => '伯利兹',
-'點陣圖' => '位图',
-'維德角' => '佛得角',
-'常式' => '例程',
-'侏儸紀' => '侏罗纪',
-'海珊' => '侯赛因',
-'攜帶型' => '便携式',
-'資訊理論' => '信息论',
-'母音' => '元音',
-'光碟' => '光盘',
-'光碟機' => '光驱',
-'柯林頓' => '克林顿',
-'克羅埃西亞' => '克罗地亚',
-'進球' => '入球',
-'全形' => '全角',
-'八進位制' => '八进位制',
-'八進位' => '八进制',
-'六進位制' => '六进位制',
-'六進位' => '六进制',
-'記憶體' => '内存',
-'甘比亞' => '冈比亚',
-'防寫' => '写保护',
-'軍中樂園' => '军中乐园',
-'冷菜' => '凉菜',
-'冷盤' => '凉菜',
-'幾內亞比索' => '几内亚比绍',
-'梵谷' => '凡高',
-'計程車' => '出租车',
-'解析度' => '分辨率',
-'列支敦斯登' => '列支敦士登',
-'賴比瑞亞' => '利比里亚',
-'迦納' => '加纳',
-'加彭' => '加蓬',
-'載入' => '加载',
-'十進位制' => '十进位制',
-'十進位' => '十进制',
-'半形' => '半角',
-'华乐街' => '华乐街',
-'波札那' => '博茨瓦纳',
-'盧安達' => '卢旺达',
-'衞生' => '卫生',
-'衛生' => '卫生',
-'瓜地馬拉' => '危地马拉',
-'厄瓜多' => '厄瓜多尔',
-'厄瓜多爾' => '厄瓜多尔',
-'厄瓜多尔' => '厄瓜多尔',
-'厄利垂亞' => '厄立特里亚',
-'變數' => '变量',
-'撞球' => '台球',
-'桌球' => '台球',
-'吉布地' => '吉布提',
-'哈薩克' => '哈萨克斯坦',
-'哥斯大黎加' => '哥斯达黎加',
-'雜訊' => '噪声',
-'因數' => '因子',
-'吐瓦魯' => '图瓦卢',
-'土庫曼' => '土库曼斯坦',
-'聖露西亞' => '圣卢西亚',
-'聖吉斯納域斯' => '圣基茨和尼维斯',
-'聖克里斯多福及尼維斯' => '圣基茨和尼维斯',
-'聖文森及格瑞那丁' => '圣文森特和格林纳丁斯',
-'聖馬利諾' => '圣马力诺',
-'蓋亞那' => '圭亚那',
-'坦尚尼亞' => '坦桑尼亚',
-'衣索比亞' => '埃塞俄比亚',
-'衣索匹亞' => '埃塞俄比亚',
-'功能變數名稱' => '域名',
-'吉里巴斯' => '基里巴斯',
-'塔吉克' => '塔吉克斯坦',
-'塞拉利昂' => '塞拉利昂',
-'塞普勒斯' => '塞浦路斯',
-'塞席爾' => '塞舌尔',
-'音效卡' => '声卡',
-'多米尼克' => '多米尼加国',
-'夜学' => '夜校',
-'福士' => '大众',
-'福斯' => '大众',
-'大衛碧咸' => '大卫·贝克汉姆',
-'頭槌' => '头球',
-'賓士' => '奔驰',
-'平治' => '奔驰',
-'忌廉' => '奶油',
-'字元会' => '字元会',
-'字元會' => '字元会',
-'字元濟' => '字元济',
-'字元济' => '字元济',
-'字型大小' => '字号',
-'字型檔' => '字库',
-'欄位' => '字段',
-'字母' => '字母',
-'字元' => '字符',
-'字節' => '字节',
-'位元組' => '字节',
-'存檔' => '存盘',
-'安地卡及巴布達' => '安提瓜和巴布达',
-'巨集' => '宏',
-'寬頻' => '宽带',
-'定址' => '寻址',
-'奈及利亞' => '尼日利亚',
-'尼日利亞' => '尼日利亚',
-'尼日利亚' => '尼日利亚',
-'尼日爾' => '尼日尔',
-'尼日尔' => '尼日尔',
-'章節附註' => '尾注',
-'區域網' => '局域网',
-'巴貝多' => '巴巴多斯',
-'巴布亞紐幾內亞' => '巴布亚新几内亚',
-'布希' => '布什',
-'布殊' => '布什',
-'布基納法索' => '布基纳法索',
-'布吉納法索' => '布基纳法索',
-'布希亞' => '布希亚',
-'布希亚' => '布希亚',
-'蒲隆地' => '布隆迪',
-'希特拉' => '希特勒',
-'帛琉' => '帕劳',
-'平治之乱' => '平治之乱',
-'平治之亂' => '平治之乱',
-'非同步' => '异步',
-'迴圈' => '循环',
-'快閃記憶體' => '快闪存储器',
-'匯流排' => '总线',
-'義大利' => '意大利',
-'黛安娜' => '戴安娜',
-'屋价' => '房价',
-'索羅門群島' => '所罗门群岛',
-'打印' => '打印',
-'列印' => '打印',
-'印表機' => '打印机',
-'打印機' => '打印机',
-'射門' => '打门',
-'掃瞄器' => '扫瞄仪',
-'括弧' => '括号',
-'拿破崙' => '拿破仑',
-'積架' => '捷豹',
-'介面' => '接口',
-'控制項' => '控件',
-'資料庫' => '数据库',
-'汶萊' => '文莱',
-'史瓦濟蘭' => '斯威士兰',
-'斯洛維尼亞' => '斯洛文尼亚',
-'紐西蘭' => '新西兰',
-'即食麵' => '方便面',
-'快速面' => '方便面',
-'泡麵' => '方便面',
-'速食麵' => '方便面',
-'伺服器' => '服务器',
-'機械人' => '机器人',
-'機器人' => '机器人',
-'許可權' => '权限',
-'寶獅' => '标志',
-'格瑞那達' => '格林纳达',
-'榴槤' => '榴莲',
-'榴梿' => '榴莲',
-'茅利塔尼亞' => '毛里塔尼亚',
-'毛里裘斯' => '毛里求斯',
-'模里西斯' => '毛里求斯',
-'华乐' => '民乐',
-'中樂' => '民乐',
-'永曆' => '永历',
-'沙地阿拉伯' => '沙特阿拉伯',
-'沙烏地阿拉伯' => '沙特阿拉伯',
-'波士尼亞赫塞哥維納' => '波斯尼亚和黑塞哥维那',
-'辛巴威' => '津巴布韦',
-'宏都拉斯' => '洪都拉斯',
-'滑鼠蛇' => '滑鼠蛇',
-'滿16進位' => '满16进位',
-'滿二進位' => '满二进位',
-'滿八進位' => '满八进位',
-'滿六進位' => '满六进位',
-'滿十六進位' => '满十六进位',
-'滿十進位' => '满十进位',
-'蓋火鍋' => '火锅盖帽',
-'千里達托貝哥' => '特立尼达和托巴哥',
-'狗隻' => '犬只',
-'卡佩雅蒂' => '珍妮弗·卡普里亚蒂',
-'諾魯' => '瑙鲁',
-'萬那杜' => '瓦努阿图',
-'溫納圖' => '瓦努阿图',
-'碟片' => '盘片',
-'短訊' => '短信',
-'簡訊' => '短信',
-'矽尘' => '矽尘',
-'矽塵' => '矽尘',
-'矽肺' => '矽肺',
-'矽钢' => '矽钢',
-'矽鋼' => '矽钢',
-'矽' => '硅',
-'矽片' => '硅片',
-'矽谷' => '硅谷',
-'硬體' => '硬件',
-'硬碟' => '硬盘',
-'磁碟' => '磁盘',
-'磁軌' => '磁道',
-'葛摩' => '科摩罗',
-'象牙海岸' => '科特迪瓦',
-'行動電話' => '移动电话',
-'流動電話' => '移动电话',
-'程式控制' => '程控',
-'突尼西亞' => '突尼斯',
-'谐星' => '笑星',
-'等於' => '等于',
-'運算元' => '算子',
-'演算法' => '算法',
-'顆進球' => '粒入球',
-'索馬利亞' => '索马里',
-'網路' => '网络',
-'網絡' => '网络',
-'寮國' => '老挝',
-'肯雅' => '肯尼亚',
-'肯亞' => '肯尼亚',
-'單車' => '自行车',
-'太空梭' => '航天飞机',
-'穿梭機' => '航天飞机',
-'節慶' => '节日',
-'晶元' => '芯片',
-'晶片' => '芯片',
-'蘇利南' => '苏里南',
-'士多啤梨' => '草莓',
-'莫三比克' => '莫桑比克',
-'賴索托' => '莱索托',
-'辭彙' => '词汇',
-'片語' => '词组',
-'調制解調器' => '调制解调器',
-'數據機' => '调制解调器',
-'貝南' => '贝宁',
-'尚比亞' => '赞比亚',
-'绑紧跳' => '蹦极跳',
-'笨豬跳' => '蹦极跳',
-'軟體' => '软件',
-'軟件' => '软件',
-'軟碟機' => '软驱',
-'米高奧雲' => '迈克尔·欧文',
-'舒麥加' => '迈克尔·舒马赫',
-'遠程控制' => '远程控制',
-'远程控制' => '远程控制',
-'亞塞拜然' => '阿塞拜疆',
-'阿拉伯聯合大公國' => '阿拉伯联合酋长国',
-'散钱' => '零钱',
-'南韓' => '韩国',
-'馬爾地夫' => '马尔代夫',
-'沙芬' => '马拉特·萨芬',
-'馬爾他' => '马耳他',
-'萬事得' => '马自达',
-'馬利共和國' => '马里共和国',
-'預設' => '默认',
+'蒙特內哥羅' => '黑山',
 '滑鼠' => '鼠标',
 );
-
-$zh2SG = array(
-'『' => '‘',
-'』' => '’',
-'「' => '“',
-'」' => '”',
-'住房' => '住屋',
-'凉菜' => '冷菜',
-'冷盤' => '冷菜',
-'民乐' => '华乐',
-'夜校' => '夜学',
-'房价' => '屋价',
-'即食麵' => '快速面',
-'速食麵' => '快速面',
-'泡麵' => '快速面',
-'方便面' => '快速面',
-'零钱' => '散钱',
-'散紙' => '散钱',
-'榴莲' => '榴梿',
-'榴蓮' => '榴梿',
-'笨豬跳' => '绑紧跳',
-'蹦极跳' => '绑紧跳',
-'笑星' => '谐星',
-);
index 12f0dff..82424eb 100644 (file)
@@ -41,13 +41,14 @@ class DeleteAction extends FormlessAction {
        }
 
        public function show() {
+               $out = $this->getOutput();
                if ( $this->getContext()->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
-                       $out = $this->getOutput();
                        $out->addModuleStyles( array(
                                'mediawiki.ui.input',
                                'mediawiki.ui.checkbox',
                        ) );
                }
+               $out->addHelpLink( 'Help:Sysop deleting and undeleting' );
                $this->page->delete();
        }
 }
index ff31eb6..338d939 100644 (file)
@@ -246,13 +246,13 @@ class InfoAction extends FormlessAction {
                        $pageInfo['header-basic'][] = array(
                                $this->msg( 'pageinfo-redirectsto' ),
                                Linker::link( $this->page->getRedirectTarget() ) .
-                               $this->msg( 'word-separator' )->text() .
-                               $this->msg( 'parentheses', Linker::link(
+                               $this->msg( 'word-separator' )->escaped() .
+                               $this->msg( 'parentheses' )->rawParams( Linker::link(
                                        $this->page->getRedirectTarget(),
                                        $this->msg( 'pageinfo-redirectsto-info' )->escaped(),
                                        array(),
                                        array( 'action' => 'info' )
-                               ) )->text()
+                               ) )->escaped()
                        );
                }
 
index 3a31b2a..74e51c8 100644 (file)
@@ -32,9 +32,6 @@
  * Module parameters: Derived classes can define getAllowedParams() to specify
  *    which parameters to expect, how to parse and validate them.
  *
- * Profiling: various methods to allow keeping tabs on various tasks and their
- *    time costs
- *
  * Self-documentation: code to allow the API to document its own state
  *
  * @ingroup API
@@ -160,6 +157,9 @@ abstract class ApiBase extends ContextSource {
         * If the module may only be used with a certain format module,
         * it should override this method to return an instance of that formatter.
         * A value of null means the default format will be used.
+        * @note Do not use this just because you don't want to support non-json
+        * formats. This should be used only when there is a fundamental
+        * requirement for a specific format.
         * @return mixed Instance of a derived class of ApiFormatBase, or null
         */
        public function getCustomPrinter() {
@@ -380,6 +380,20 @@ abstract class ApiBase extends ContextSource {
                return $this->isMain() ? null : $this->getMain();
        }
 
+       /**
+        * Returns true if the current request breaks the same-origin policy.
+        *
+        * For example, json with callbacks.
+        *
+        * https://en.wikipedia.org/wiki/Same-origin_policy
+        *
+        * @since 1.25
+        * @return bool
+        */
+       public function lacksSameOriginSecurity() {
+               return $this->getMain()->getRequest()->getVal( 'callback' ) !== null;
+       }
+
        /**
         * Get the path to this module
         *
@@ -466,9 +480,7 @@ abstract class ApiBase extends ContextSource {
         */
        protected function getDB() {
                if ( !isset( $this->mSlaveDB ) ) {
-                       $this->profileDBIn();
                        $this->mSlaveDB = wfGetDB( DB_SLAVE, 'api' );
-                       $this->profileDBOut();
                }
 
                return $this->mSlaveDB;
@@ -1280,7 +1292,6 @@ abstract class ApiBase extends ContextSource {
         * @throws UsageException
         */
        public function dieUsage( $description, $errorCode, $httpRespCode = 0, $extradata = null ) {
-               Profiler::instance()->close();
                throw new UsageException(
                        $description,
                        $this->encodeParamName( $errorCode ),
@@ -1937,6 +1948,21 @@ abstract class ApiBase extends ContextSource {
                throw new MWException( "Internal error in $method: $message" );
        }
 
+       /**
+        * 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 = '"' . addslashes( $feature ) . '"' .
+                       ' "' . wfUrlencode( str_replace( ' ', '_', $this->getUser()->getName() ) ) . '"' .
+                       ' "' . $request->getIP() . '"' .
+                       ' "' . addslashes( $request->getHeader( 'Referer' ) ) . '"' .
+                       ' "' . addslashes( $this->getMain()->getUserAgent() ) . '"';
+               wfDebugLog( 'api-feature-usage', $s, 'private' );
+       }
+
        /**@}*/
 
        /************************************************************************//**
@@ -2172,162 +2198,6 @@ abstract class ApiBase extends ContextSource {
 
        /**@}*/
 
-       /************************************************************************//**
-        * @name   Profiling
-        * @{
-        */
-
-       /**
-        * Profiling: total module execution time
-        */
-       private $mTimeIn = 0, $mModuleTime = 0;
-       /** @var ScopedCallback */
-       private $profile;
-       /** @var ScopedCallback */
-       private $dbProfile;
-
-       /**
-        * Get the name of the module as shown in the profiler log
-        *
-        * @param DatabaseBase|bool $db
-        *
-        * @return string
-        */
-       public function getModuleProfileName( $db = false ) {
-               if ( $db ) {
-                       return 'API:' . $this->mModuleName . '-DB';
-               }
-
-               return 'API:' . $this->mModuleName;
-       }
-
-       /**
-        * Start module profiling
-        */
-       public function profileIn() {
-               if ( $this->mTimeIn !== 0 ) {
-                       ApiBase::dieDebug( __METHOD__, 'Called twice without calling profileOut()' );
-               }
-               $this->mTimeIn = microtime( true );
-               $this->profile = Profiler::instance()->scopedProfileIn( $this->getModuleProfileName() );
-       }
-
-       /**
-        * End module profiling
-        */
-       public function profileOut() {
-               if ( $this->mTimeIn === 0 ) {
-                       ApiBase::dieDebug( __METHOD__, 'Called without calling profileIn() first' );
-               }
-               if ( $this->mDBTimeIn !== 0 ) {
-                       ApiBase::dieDebug(
-                               __METHOD__,
-                               'Must be called after database profiling is done with profileDBOut()'
-                       );
-               }
-
-               $this->mModuleTime += microtime( true ) - $this->mTimeIn;
-               $this->mTimeIn = 0;
-               Profiler::instance()->scopedProfileOut( $this->profile );
-       }
-
-       /**
-        * When modules crash, sometimes it is needed to do a profileOut() regardless
-        * of the profiling state the module was in. This method does such cleanup.
-        */
-       public function safeProfileOut() {
-               if ( $this->mTimeIn !== 0 ) {
-                       if ( $this->mDBTimeIn !== 0 ) {
-                               $this->profileDBOut();
-                       }
-                       $this->profileOut();
-               }
-       }
-
-       /**
-        * Total time the module was executed
-        * @return float
-        */
-       public function getProfileTime() {
-               if ( $this->mTimeIn !== 0 ) {
-                       ApiBase::dieDebug( __METHOD__, 'Called without calling profileOut() first' );
-               }
-
-               return $this->mModuleTime;
-       }
-
-       /**
-        * Profiling: database execution time
-        */
-       private $mDBTimeIn = 0, $mDBTime = 0;
-
-       /**
-        * Start module profiling
-        */
-       public function profileDBIn() {
-               if ( $this->mTimeIn === 0 ) {
-                       ApiBase::dieDebug(
-                               __METHOD__,
-                               'Must be called while profiling the entire module with profileIn()'
-                       );
-               }
-               if ( $this->mDBTimeIn !== 0 ) {
-                       ApiBase::dieDebug( __METHOD__, 'Called twice without calling profileDBOut()' );
-               }
-               $this->mDBTimeIn = microtime( true );
-
-               $this->dbProfile = Profiler::instance()->scopedProfileIn( $this->getModuleProfileName( true ) );
-       }
-
-       /**
-        * End database profiling
-        */
-       public function profileDBOut() {
-               if ( $this->mTimeIn === 0 ) {
-                       ApiBase::dieDebug( __METHOD__, 'Must be called while profiling ' .
-                               'the entire module with profileIn()' );
-               }
-               if ( $this->mDBTimeIn === 0 ) {
-                       ApiBase::dieDebug( __METHOD__, 'Called without calling profileDBIn() first' );
-               }
-
-               $time = microtime( true ) - $this->mDBTimeIn;
-               $this->mDBTimeIn = 0;
-
-               $this->mDBTime += $time;
-               $this->getMain()->mDBTime += $time;
-               Profiler::instance()->scopedProfileOut( $this->dbProfile );
-       }
-
-       /**
-        * Total time the module used the database
-        * @return float
-        */
-       public function getProfileDBTime() {
-               if ( $this->mDBTimeIn !== 0 ) {
-                       ApiBase::dieDebug( __METHOD__, 'Called without calling profileDBOut() first' );
-               }
-
-               return $this->mDBTime;
-       }
-
-       /**
-        * 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 = '"' . addslashes( $feature ) . '"' .
-                       ' "' . wfUrlencode( str_replace( ' ', '_', $this->getUser()->getName() ) ) . '"' .
-                       ' "' . $request->getIP() . '"' .
-                       ' "' . addslashes( $request->getHeader( 'Referer' ) ) . '"' .
-                       ' "' . addslashes( $this->getMain()->getUserAgent() ) . '"';
-               wfDebugLog( 'api-feature-usage', $s, 'private' );
-       }
-
-       /**@}*/
-
        /************************************************************************//**
         * @name   Deprecated
         * @{
@@ -2778,6 +2648,71 @@ abstract class ApiBase extends ContextSource {
                return false;
        }
 
+       /**
+        * @deprecated since 1.25, always returns empty string
+        * @param DatabaseBase|bool $db
+        * @return string
+        */
+       public function getModuleProfileName( $db = false ) {
+               wfDeprecated( __METHOD__, '1.25' );
+               return '';
+       }
+
+       /**
+        * @deprecated since 1.25
+        */
+       public function profileIn() {
+               // No wfDeprecated() yet because extensions call this and might need to
+               // keep doing so for BC.
+       }
+
+       /**
+        * @deprecated since 1.25
+        */
+       public function profileOut() {
+               // No wfDeprecated() yet because extensions call this and might need to
+               // keep doing so for BC.
+       }
+
+       /**
+        * @deprecated since 1.25
+        */
+       public function safeProfileOut() {
+               wfDeprecated( __METHOD__, '1.25' );
+       }
+
+       /**
+        * @deprecated since 1.25, always returns 0
+        * @return float
+        */
+       public function getProfileTime() {
+               wfDeprecated( __METHOD__, '1.25' );
+               return 0;
+       }
+
+       /**
+        * @deprecated since 1.25
+        */
+       public function profileDBIn() {
+               wfDeprecated( __METHOD__, '1.25' );
+       }
+
+       /**
+        * @deprecated since 1.25
+        */
+       public function profileDBOut() {
+               wfDeprecated( __METHOD__, '1.25' );
+       }
+
+       /**
+        * @deprecated since 1.25, always returns 0
+        * @return float
+        */
+       public function getProfileDBTime() {
+               wfDeprecated( __METHOD__, '1.25' );
+               return 0;
+       }
+
        /**@}*/
 }
 
index dea43ba..f03cef2 100644 (file)
@@ -78,7 +78,7 @@ class ApiBlock extends ApiBase {
                                'other',
                                $params['reason']
                        ),
-                       'Expiry' => $params['expiry'] == 'never' ? 'infinite' : $params['expiry'],
+                       'Expiry' => $params['expiry'],
                        'HardBlock' => !$params['anononly'],
                        'CreateAccount' => $params['nocreate'],
                        'AutoBlock' => $params['autoblock'],
index a7ba48a..b56a244 100644 (file)
  */
 class ApiCreateAccount extends ApiBase {
        public function execute() {
-               // If we're in JSON callback mode, no tokens can be obtained
-               if ( !is_null( $this->getMain()->getRequest()->getVal( 'callback' ) ) ) {
-                       $this->dieUsage( 'Cannot create account when using a callback', 'aborted' );
+               // If we're in a mode that breaks the same-origin policy, no tokens can
+               // be obtained
+               if ( $this->lacksSameOriginSecurity() ) {
+                       $this->dieUsage(
+                               'Cannot create account when the same-origin policy is not applied', 'aborted'
+                       );
                }
 
                // $loginForm->addNewaccountInternal will throw exceptions
index 8ad2ad9..f697b6f 100644 (file)
@@ -48,8 +48,12 @@ class ApiEditPage extends ApiBase {
                $apiResult = $this->getResult();
 
                if ( $params['redirect'] ) {
-                       if ( $params['prependtext'] === null && $params['appendtext'] === null && $params['section'] !== 'new' ) {
-                               $this->dieUsage( 'You have attempted to edit using the "redirect"-following mode, which must be used in conjuction with section=new, prependtext, or appendtext.', 'redirect-appendonly' );
+                       if ( $params['prependtext'] === null && $params['appendtext'] === null
+                               && $params['section'] !== 'new'
+                       ) {
+                               $this->dieUsage( 'You have attempted to edit using the "redirect"-following'
+                                       . ' mode, which must be used in conjuction with section=new, prependtext'
+                                       . ', or appendtext.', 'redirect-appendonly' );
                        }
                        if ( $titleObj->isRedirect() ) {
                                $oldTitle = $titleObj;
@@ -255,6 +259,7 @@ class ApiEditPage extends ApiBase {
                        'wpIgnoreBlankSummary' => true,
                        'wpIgnoreBlankArticle' => true,
                        'wpIgnoreSelfRedirect' => true,
+                       'bot' => $params['bot'],
                );
 
                if ( !is_null( $params['summary'] ) ) {
@@ -295,10 +300,13 @@ class ApiEditPage extends ApiBase {
                if ( !is_null( $params['section'] ) ) {
                        $section = $params['section'];
                        if ( !preg_match( '/^((T-)?\d+|new)$/', $section ) ) {
-                               $this->dieUsage( "The section parameter must be a valid section id or 'new'", "invalidsection" );
+                               $this->dieUsage( "The section parameter must be a valid section id or 'new'",
+                                       "invalidsection" );
                        }
                        $content = $pageObj->getContent();
-                       if ( $section !== '0' && $section != 'new' && ( !$content || !$content->getSection( $section ) ) ) {
+                       if ( $section !== '0' && $section != 'new'
+                               && ( !$content || !$content->getSection( $section ) )
+                       ) {
                                $this->dieUsage( "There is no section {$section}.", 'nosuchsection' );
                        }
                        $requestArray['wpSection'] = $params['section'];
@@ -401,7 +409,7 @@ class ApiEditPage extends ApiBase {
                $oldRequest = $wgRequest;
                $wgRequest = $req;
 
-               $status = $ep->internalAttemptSave( $result, $user->isAllowed( 'bot' ) && $params['bot'] );
+               $status = $ep->attemptSave( $result );
                $wgRequest = $oldRequest;
 
                switch ( $status->value ) {
index 561ff3b..bfa750b 100644 (file)
@@ -117,7 +117,10 @@ class ApiFeedWatchlist extends ApiBase {
 
                        $feedItems = array();
                        foreach ( (array)$data['query']['watchlist'] as $info ) {
-                               $feedItems[] = $this->createFeedItem( $info );
+                               $feedItem = $this->createFeedItem( $info );
+                               if ( $feedItem ) {
+                                       $feedItems[] = $feedItem;
+                               }
                        }
 
                        $msg = wfMessage( 'watchlist' )->inContentLanguage()->text();
@@ -166,10 +169,22 @@ class ApiFeedWatchlist extends ApiBase {
        private function createFeedItem( $info ) {
                $titleStr = $info['title'];
                $title = Title::newFromText( $titleStr );
+               $curidParam = array();
+               if ( !$title || $title->isExternal() ) {
+                       // Probably a formerly-valid title that's now conflicting with an
+                       // interwiki prefix or the like.
+                       if ( isset( $info['pageid'] ) ) {
+                               $title = Title::newFromId( $info['pageid'] );
+                               $curidParam = array( 'curid' => $info['pageid'] );
+                       }
+                       if ( !$title || $title->isExternal() ) {
+                               return null;
+                       }
+               }
                if ( isset( $info['revid'] ) ) {
                        $titleUrl = $title->getFullURL( array( 'diff' => $info['revid'] ) );
                } else {
-                       $titleUrl = $title->getFullURL();
+                       $titleUrl = $title->getFullURL( $curidParam );
                }
                $comment = isset( $info['comment'] ) ? $info['comment'] : null;
 
index aba6921..6fd79f4 100644 (file)
@@ -73,7 +73,7 @@ class ApiImageRotate extends ApiBase {
                                $r['missing'] = '';
                        }
 
-                       $file = wfFindFile( $title );
+                       $file = wfFindFile( $title, array( 'latest' => true ) );
                        if ( !$file ) {
                                $r['result'] = 'Failure';
                                $r['errormessage'] = 'File does not exist';
index 920dbbf..5480d94 100644 (file)
@@ -46,11 +46,12 @@ class ApiLogin extends ApiBase {
         * is reached. The expiry is $this->mLoginThrottle.
         */
        public function execute() {
-               // If we're in JSON callback mode, no tokens can be obtained
-               if ( !is_null( $this->getMain()->getRequest()->getVal( 'callback' ) ) ) {
+               // If we're in a mode that breaks the same-origin policy, no tokens can
+               // be obtained
+               if ( $this->lacksSameOriginSecurity() ) {
                        $this->getResult()->addValue( null, 'login', array(
                                'result' => 'Aborted',
-                               'reason' => 'Cannot log in when using a callback',
+                               'reason' => 'Cannot log in when the same-origin policy is not applied',
                        ) );
 
                        return;
index fe01f11..1feb485 100644 (file)
@@ -181,10 +181,10 @@ class ApiMain extends ApiBase {
                        // Remove all modules other than login
                        global $wgUser;
 
-                       if ( $this->getVal( 'callback' ) !== null ) {
-                               // JSON callback allows cross-site reads.
-                               // For safety, strip user credentials.
-                               wfDebug( "API: stripping user credentials for JSON callback\n" );
+                       if ( $this->lacksSameOriginSecurity() ) {
+                               // If we're in a mode that breaks the same-origin policy, strip
+                               // user credentials for security.
+                               wfDebug( "API: stripping user credentials when the same-origin policy is not applied\n" );
                                $wgUser = new User();
                                $this->getContext()->setUser( $wgUser );
                        }
@@ -361,14 +361,11 @@ class ApiMain extends ApiBase {
         * Execute api request. Any errors will be handled if the API was called by the remote client.
         */
        public function execute() {
-               $this->profileIn();
                if ( $this->mInternalMode ) {
                        $this->executeAction();
                } else {
                        $this->executeActionWithErrorHandling();
                }
-
-               $this->profileOut();
        }
 
        /**
@@ -450,8 +447,6 @@ class ApiMain extends ApiBase {
                // Reset and print just the error message
                ob_clean();
 
-               // If the error occurred during printing, do a printer->profileOut()
-               $this->mPrinter->safeProfileOut();
                $this->printResult( true );
        }
 
@@ -658,8 +653,24 @@ class ApiMain extends ApiBase {
                        $out->addVaryHeader( 'X-Forwarded-Proto' );
                }
 
+               // The logic should be:
+               // $this->mCacheControl['max-age'] is set?
+               //    Use it, the module knows better than our guess.
+               // !$this->mModule || $this->mModule->isWriteMode(), and mCacheMode is private?
+               //    Use 0 because we can guess caching is probably the wrong thing to do.
+               // Use $this->getParameter( 'maxage' ), which already defaults to 0.
+               $maxage = 0;
+               if ( isset( $this->mCacheControl['max-age'] ) ) {
+                       $maxage = $this->mCacheControl['max-age'];
+               } elseif ( ( $this->mModule && !$this->mModule->isWriteMode() ) ||
+                       $this->mCacheMode !== 'private'
+               ) {
+                       $maxage = $this->getParameter( 'maxage' );
+               }
+               $privateCache = 'private, must-revalidate, max-age=' . $maxage;
+
                if ( $this->mCacheMode == 'private' ) {
-                       $response->header( 'Cache-Control: private' );
+                       $response->header( "Cache-Control: $privateCache" );
                        return;
                }
 
@@ -671,14 +682,14 @@ class ApiMain extends ApiBase {
                                $response->header( $out->getXVO() );
                                if ( $out->haveCacheVaryCookies() ) {
                                        // Logged in, mark this request private
-                                       $response->header( 'Cache-Control: private' );
+                                       $response->header( "Cache-Control: $privateCache" );
                                        return;
                                }
                                // Logged out, send normal public headers below
                        } elseif ( session_id() != '' ) {
                                // Logged in or otherwise has session (e.g. anonymous users who have edited)
                                // Mark request private
-                               $response->header( 'Cache-Control: private' );
+                               $response->header( "Cache-Control: $privateCache" );
 
                                return;
                        } // else no XVO and anonymous, send public headers below
@@ -702,7 +713,7 @@ class ApiMain extends ApiBase {
                        // Public cache not requested
                        // Sending a Vary header in this case is harmless, and protects us
                        // against conditional calls of setCacheMaxAge().
-                       $response->header( 'Cache-Control: private' );
+                       $response->header( "Cache-Control: $privateCache" );
 
                        return;
                }
@@ -755,7 +766,6 @@ class ApiMain extends ApiBase {
                // Printer may not be able to handle errors. This is particularly
                // likely if the module returns something for getCustomPrinter().
                if ( !$this->mPrinter->canPrintErrors() ) {
-                       $this->mPrinter->safeProfileOut();
                        $this->mPrinter = $this->createPrinterByName( self::API_DEFAULT_FORMAT );
                }
 
@@ -1024,10 +1034,8 @@ class ApiMain extends ApiBase {
                $this->checkAsserts( $params );
 
                // Execute
-               $module->profileIn();
                $module->execute();
                Hooks::run( 'APIAfterExecute', array( &$module ) );
-               $module->profileOut();
 
                $this->reportUnusedParams();
 
@@ -1178,13 +1186,10 @@ class ApiMain extends ApiBase {
 
                $this->getResult()->cleanUpUTF8();
                $printer = $this->mPrinter;
-               $printer->profileIn();
 
                $printer->initPrinter( false );
-
                $printer->execute();
                $printer->closePrinter();
-               $printer->profileOut();
        }
 
        /**
index e53e2b2..d462862 100644 (file)
@@ -115,11 +115,9 @@ class ApiPageSet extends ApiBase {
                $this->mAllowGenerator = ( $flags & ApiPageSet::DISABLE_GENERATORS ) == 0;
                $this->mDefaultNamespace = $defaultNamespace;
 
-               $this->profileIn();
                $this->mParams = $this->extractRequestParams();
                $this->mResolveRedirects = $this->mParams['redirects'];
                $this->mConvertTitles = $this->mParams['converttitles'];
-               $this->profileOut();
        }
 
        /**
@@ -143,17 +141,12 @@ class ApiPageSet extends ApiBase {
         *    relevant parameters as used
         */
        private function executeInternal( $isDryRun ) {
-               $this->profileIn();
-
                $generatorName = $this->mAllowGenerator ? $this->mParams['generator'] : null;
                if ( isset( $generatorName ) ) {
                        $dbSource = $this->mDbSource;
-                       $isQuery = $dbSource instanceof ApiQuery;
-                       if ( !$isQuery ) {
+                       if ( !$dbSource instanceof ApiQuery ) {
                                // If the parent container of this pageset is not ApiQuery, we must create it to run generator
                                $dbSource = $this->getMain()->getModuleManager()->getModule( 'query' );
-                               // Enable profiling for query module because it will be used for db sql profiling
-                               $dbSource->profileIn();
                        }
                        $generator = $dbSource->getModuleManager()->getModule( $generatorName, null, true );
                        if ( $generator === null ) {
@@ -174,9 +167,6 @@ class ApiPageSet extends ApiBase {
                        $tmpPageSet->executeInternal( $isDryRun );
 
                        // populate this pageset with the generator output
-                       $this->profileOut();
-                       $generator->profileIn();
-
                        if ( !$isDryRun ) {
                                $generator->executeGenerator( $this );
                                Hooks::run( 'APIQueryGeneratorAfterExecute', array( &$generator, &$this ) );
@@ -187,17 +177,10 @@ class ApiPageSet extends ApiBase {
                                        $main->getVal( $generator->encodeParamName( $paramName ) );
                                }
                        }
-                       $generator->profileOut();
-                       $this->profileIn();
 
                        if ( !$isDryRun ) {
                                $this->resolvePendingRedirects();
                        }
-
-                       if ( !$isQuery ) {
-                               // If this pageset is not part of the query, we called profileIn() above
-                               $dbSource->profileOut();
-                       }
                } else {
                        // Only one of the titles/pageids/revids is allowed at the same time
                        $dataSource = null;
@@ -241,7 +224,6 @@ class ApiPageSet extends ApiBase {
                                }
                        }
                }
-               $this->profileOut();
        }
 
        /**
@@ -678,9 +660,7 @@ class ApiPageSet extends ApiBase {
         * @param array $titles Array of Title objects
         */
        public function populateFromTitles( $titles ) {
-               $this->profileIn();
                $this->initFromTitles( $titles );
-               $this->profileOut();
        }
 
        /**
@@ -688,9 +668,7 @@ class ApiPageSet extends ApiBase {
         * @param array $pageIDs Array of page IDs
         */
        public function populateFromPageIDs( $pageIDs ) {
-               $this->profileIn();
                $this->initFromPageIds( $pageIDs );
-               $this->profileOut();
        }
 
        /**
@@ -703,9 +681,7 @@ class ApiPageSet extends ApiBase {
         * @param ResultWrapper $queryResult Query result object
         */
        public function populateFromQueryResult( $db, $queryResult ) {
-               $this->profileIn();
                $this->initFromQueryResult( $queryResult );
-               $this->profileOut();
        }
 
        /**
@@ -713,9 +689,7 @@ class ApiPageSet extends ApiBase {
         * @param array $revIDs Array of revision IDs
         */
        public function populateFromRevisionIDs( $revIDs ) {
-               $this->profileIn();
                $this->initFromRevIDs( $revIDs );
-               $this->profileOut();
        }
 
        /**
@@ -778,10 +752,8 @@ class ApiPageSet extends ApiBase {
                $set = $linkBatch->constructSet( 'page', $db );
 
                // Get pageIDs data from the `page` table
-               $this->profileDBIn();
                $res = $db->select( 'page', $this->getPageTableFields(), $set,
                        __METHOD__ );
-               $this->profileDBOut();
 
                // Hack: get the ns:titles stored in array(ns => array(titles)) format
                $this->initFromQueryResult( $res, $linkBatch->data, true ); // process Titles
@@ -812,10 +784,8 @@ class ApiPageSet extends ApiBase {
                        $db = $this->getDB();
 
                        // Get pageIDs data from the `page` table
-                       $this->profileDBIn();
                        $res = $db->select( 'page', $this->getPageTableFields(), $set,
                                __METHOD__ );
-                       $this->profileDBOut();
                }
 
                $this->initFromQueryResult( $res, $remaining, false ); // process PageIDs
@@ -921,7 +891,6 @@ class ApiPageSet extends ApiBase {
                        $where = array( 'rev_id' => $revids, 'rev_page = page_id' );
 
                        // Get pageIDs data from the `page` table
-                       $this->profileDBIn();
                        $res = $db->select( $tables, $fields, $where, __METHOD__ );
                        foreach ( $res as $row ) {
                                $revid = intval( $row->rev_id );
@@ -931,7 +900,6 @@ class ApiPageSet extends ApiBase {
                                $pageids[$pageid] = '';
                                unset( $remaining[$revid] );
                        }
-                       $this->profileDBOut();
                }
 
                $this->mMissingRevIDs = array_keys( $remaining );
@@ -948,7 +916,6 @@ class ApiPageSet extends ApiBase {
                        $fields = array( 'ar_rev_id', 'ar_namespace', 'ar_title' );
                        $where = array( 'ar_rev_id' => $this->mMissingRevIDs );
 
-                       $this->profileDBIn();
                        $res = $db->select( $tables, $fields, $where, __METHOD__ );
                        $titles = array();
                        foreach ( $res as $row ) {
@@ -956,7 +923,6 @@ class ApiPageSet extends ApiBase {
                                $titles[$revid] = Title::makeTitle( $row->ar_namespace, $row->ar_title );
                                unset( $remaining[$revid] );
                        }
-                       $this->profileDBOut();
 
                        $this->initFromTitles( $titles );
 
@@ -1012,9 +978,7 @@ class ApiPageSet extends ApiBase {
                                }
 
                                // Get pageIDs data from the `page` table
-                               $this->profileDBIn();
                                $res = $db->select( 'page', $pageFlds, $set, __METHOD__ );
-                               $this->profileDBOut();
 
                                // Hack: get the ns:titles stored in array(ns => array(titles)) format
                                $this->initFromQueryResult( $res, $linkBatch->data, true );
@@ -1033,7 +997,6 @@ class ApiPageSet extends ApiBase {
                $lb = new LinkBatch();
                $db = $this->getDB();
 
-               $this->profileDBIn();
                $res = $db->select(
                        'redirect',
                        array(
@@ -1045,7 +1008,6 @@ class ApiPageSet extends ApiBase {
                        ), array( 'rd_from' => array_keys( $this->mPendingRedirectIDs ) ),
                        __METHOD__
                );
-               $this->profileDBOut();
                foreach ( $res as $row ) {
                        $rdfrom = intval( $row->rd_from );
                        $from = $this->mPendingRedirectIDs[$rdfrom]->getPrefixedText();
index b74d528..f0a5daf 100644 (file)
@@ -156,7 +156,7 @@ class ApiParamInfo extends ApiBase {
                                if ( $joinLists ) {
                                        $ret = preg_replace( '!\s*</([oud]l)>\s*<\1>\s*!', "\n", $ret );
                                }
-                               $res[$key] = $ret;
+                               $res[$key] = Parser::stripOuterParagraph( $ret );
                                break;
 
                        case 'raw':
index 83d2cbc..73bea83 100644 (file)
@@ -70,6 +70,9 @@ class ApiParse extends ApiBase {
 
                if ( isset( $params['section'] ) ) {
                        $this->section = $params['section'];
+                       if ( !preg_match( '/^((T-)?\d+|new)$/', $this->section ) ) {
+                               $this->dieUsage( "The section parameter must be a valid section id or 'new'", "invalidsection" );
+                       }
                } else {
                        $this->section = false;
                }
@@ -85,6 +88,9 @@ class ApiParse extends ApiBase {
                $result = $this->getResult();
 
                if ( !is_null( $oldid ) || !is_null( $pageid ) || !is_null( $page ) ) {
+                       if ( $this->section === 'new' ) {
+                                       $this->dieUsage( 'section=new cannot be combined with oldid, pageid or page parameters. Please use text', 'params' );
+                       }
                        if ( !is_null( $oldid ) ) {
                                // Don't use the parser cache
                                $rev = Revision::newFromId( $oldid );
@@ -203,7 +209,14 @@ class ApiParse extends ApiBase {
                        }
 
                        if ( $this->section !== false ) {
-                               $this->content = $this->getSectionContent( $this->content, $titleObj->getPrefixedText() );
+                               if ( $this->section === 'new' ) {
+                                       // Insert the section title above the content.
+                                       if ( !is_null( $params['sectiontitle'] ) && $params['sectiontitle'] !== '' ) {
+                                               $this->content = $this->content->addSectionHeader( $params['sectiontitle'] );
+                                       }
+                               } else {
+                                       $this->content = $this->getSectionContent( $this->content, $titleObj->getPrefixedText() );
+                               }
                        }
 
                        if ( $params['pst'] || $params['onlypst'] ) {
@@ -218,6 +231,13 @@ class ApiParse extends ApiBase {
                                        $result_array['wikitext'] = array();
                                        ApiResult::setContent( $result_array['wikitext'], $this->content->serialize( $format ) );
                                }
+                               if ( !is_null( $params['summary'] ) ||
+                                       ( !is_null( $params['sectiontitle'] ) && $this->section === 'new' )
+                               ) {
+                                       $result_array['parsedsummary'] = array();
+                                       ApiResult::setContent( $result_array['parsedsummary'], $this->formatSummary( $titleObj, $params ) );
+                               }
+
                                $result->addValue( null, $this->getModuleName(), $result_array );
 
                                return;
@@ -252,12 +272,11 @@ class ApiParse extends ApiBase {
                        ApiResult::setContent( $result_array['text'], $p_result->getText() );
                }
 
-               if ( !is_null( $params['summary'] ) ) {
+               if ( !is_null( $params['summary'] ) ||
+                       ( !is_null( $params['sectiontitle'] ) && $this->section === 'new' )
+               ) {
                        $result_array['parsedsummary'] = array();
-                       ApiResult::setContent(
-                               $result_array['parsedsummary'],
-                               Linker::formatComment( $params['summary'], $titleObj )
-                       );
+                       ApiResult::setContent( $result_array['parsedsummary'], $this->formatSummary( $titleObj, $params ) );
                }
 
                if ( isset( $prop['langlinks'] ) ) {
@@ -481,6 +500,30 @@ class ApiParse extends ApiBase {
                return $section;
        }
 
+       /**
+        * This mimicks the behavior of EditPage in formatting a summary
+        *
+        * @param Title $title of the page being parsed
+        * @param Array $params the API parameters of the request
+        * @return Content|bool
+        */
+       private function formatSummary( $title, $params ) {
+               global $wgParser;
+               $summary = !is_null( $params['summary'] ) ? $params['summary'] : '';
+               $sectionTitle = !is_null( $params['sectiontitle'] ) ? $params['sectiontitle'] : '';
+
+               if ( $this->section === 'new' && ( $sectionTitle === '' || $summary === '' ) ) {
+                       if( $sectionTitle !== '' ) {
+                               $summary = $params['sectiontitle'];
+                       }
+                       if ( $summary !== '' ) {
+                               $summary = wfMessage( 'newsectionsummary' )->rawParams( $wgParser->stripSectionName( $summary ) )
+                                       ->inContentLanguage()->text();
+                       }
+               }
+               return Linker::formatComment( $summary, $title, $this->section === 'new' );
+       }
+
        private function formatLangLinks( $links ) {
                $result = array();
                foreach ( $links as $link ) {
@@ -698,6 +741,9 @@ class ApiParse extends ApiBase {
                        'onlypst' => false,
                        'effectivelanglinks' => false,
                        'section' => null,
+                       'sectiontitle' => array(
+                               ApiBase::PARAM_TYPE => 'string',
+                       ),
                        'disablepp' => false,
                        'disableeditsection' => false,
                        'generatexml' => array(
index ae7d42b..4736cfb 100644 (file)
@@ -77,7 +77,7 @@ class ApiProtect extends ApiBase {
                                $this->dieUsageMsg( array( 'protect-invalidlevel', $p[1] ) );
                        }
 
-                       if ( in_array( $expiry[$i], array( 'infinite', 'indefinite', 'infinity', 'never' ) ) ) {
+                       if ( wfIsInfinity( $expiry[$i] ) ) {
                                $expiryarray[$p[0]] = $db->getInfinity();
                        } else {
                                $exp = strtotime( $expiry[$i] );
index 9196dc7..f4b64a3 100644 (file)
@@ -169,9 +169,7 @@ class ApiQuery extends ApiBase {
         */
        public function getNamedDB( $name, $db, $groups ) {
                if ( !array_key_exists( $name, $this->mNamedDB ) ) {
-                       $this->profileDBIn();
                        $this->mNamedDB[$name] = wfGetDB( $db, $groups );
-                       $this->profileDBOut();
                }
 
                return $this->mNamedDB[$name];
@@ -295,10 +293,8 @@ class ApiQuery extends ApiBase {
                        $params = $module->extractRequestParams();
                        $cacheMode = $this->mergeCacheMode(
                                $cacheMode, $module->getCacheMode( $params ) );
-                       $module->profileIn();
                        $module->execute();
                        Hooks::run( 'APIQueryAfterExecute', array( &$module ) );
-                       $module->profileOut();
                }
 
                // Set the cache mode
index 7414913..1d4cff9 100644 (file)
@@ -372,12 +372,7 @@ abstract class ApiQueryBase extends ApiBase {
                        isset( $extraQuery['join_conds'] ) ? (array)$extraQuery['join_conds'] : array()
                );
 
-               // getDB has its own profileDBIn/Out calls
-               $db = $this->getDB();
-
-               $this->profileDBIn();
-               $res = $db->select( $tables, $fields, $where, $method, $options, $join_conds );
-               $this->profileDBOut();
+               $res = $this->getDB()->select( $tables, $fields, $where, $method, $options, $join_conds );
 
                return $res;
        }
@@ -590,7 +585,6 @@ abstract class ApiQueryBase extends ApiBase {
        protected function checkRowCount() {
                wfDeprecated( __METHOD__, '1.24' );
                $db = $this->getDB();
-               $this->profileDBIn();
                $rowcount = $db->estimateRowCount(
                        $this->tables,
                        $this->fields,
@@ -598,7 +592,6 @@ abstract class ApiQueryBase extends ApiBase {
                        __METHOD__,
                        $this->options
                );
-               $this->profileDBOut();
 
                if ( $rowcount > $this->getConfig()->get( 'APIMaxDBRows' ) ) {
                        return false;
index f828255..f46fb34 100644 (file)
@@ -75,8 +75,9 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                        );
                }
 
-               // If we're in JSON callback mode, no tokens can be obtained
-               if ( !is_null( $this->getMain()->getRequest()->getVal( 'callback' ) ) ) {
+               // If we're in a mode that breaks the same-origin policy, no tokens can
+               // be obtained
+               if ( $this->lacksSameOriginSecurity() ) {
                        $fld_token = false;
                }
 
index 02c88c4..5af44ee 100644 (file)
@@ -90,8 +90,9 @@ class ApiQueryInfo extends ApiQueryBase {
                        return $this->tokenFunctions;
                }
 
-               // If we're in JSON callback mode, no tokens can be obtained
-               if ( !is_null( $this->getMain()->getRequest()->getVal( 'callback' ) ) ) {
+               // If we're in a mode that breaks the same-origin policy, no tokens can
+               // be obtained
+               if ( $this->lacksSameOriginSecurity() ) {
                        return array();
                }
 
index 069e30b..7a31c48 100644 (file)
@@ -48,6 +48,10 @@ class ApiQueryPrefixSearch extends ApiQueryGeneratorBase {
                $searcher = new TitlePrefixSearch;
                $titles = $searcher->searchWithVariants( $search, $limit + 1, $namespaces, $offset );
                if ( $resultPageSet ) {
+                       if ( count( $titles ) > $limit ) {
+                               $this->setContinueEnumParameter( 'offset', $offset + $params['limit'] );
+                               array_pop( $titles );
+                       }
                        $resultPageSet->populateFromTitles( $titles );
                        foreach ( $titles as $index => $title ) {
                                $resultPageSet->setGeneratorData( $title, array( 'index' => $index + $offset + 1 ) );
index bfdc5ab..aa22264 100644 (file)
@@ -56,8 +56,9 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                        return $this->tokenFunctions;
                }
 
-               // If we're in JSON callback mode, no tokens can be obtained
-               if ( !is_null( $this->getMain()->getRequest()->getVal( 'callback' ) ) ) {
+               // If we're in a mode that breaks the same-origin policy, no tokens can
+               // be obtained
+               if ( $this->lacksSameOriginSecurity() ) {
                        return array();
                }
 
@@ -541,7 +542,8 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                                        $logEntry->getParameters(),
                                        $logEntry->getType(),
                                        $logEntry->getSubtype(),
-                                       $logEntry->getTimestamp()
+                                       $logEntry->getTimestamp(),
+                                       $logEntry->isLegacy()
                                );
                        }
                }
index 7092fc4..552ca3b 100644 (file)
@@ -53,8 +53,9 @@ class ApiQueryRevisions extends ApiQueryRevisionsBase {
                        return $this->tokenFunctions;
                }
 
-               // If we're in JSON callback mode, no tokens can be obtained
-               if ( !is_null( $this->getMain()->getRequest()->getVal( 'callback' ) ) ) {
+               // If we're in a mode that breaks the same-origin policy, no tokens can
+               // be obtained
+               if ( $this->lacksSameOriginSecurity() ) {
                        return array();
                }
 
index 59fe8ad..342e367 100644 (file)
@@ -62,8 +62,6 @@ class ApiQueryStashImageInfo extends ApiQueryImageInfo {
                                $result->setIndexedTagName_internal( array( 'query', $this->getModuleName() ), $modulePrefix );
                        }
                // @todo Update exception handling here to understand current getFile exceptions
-               } catch ( UploadStashNotAvailableException $e ) {
-                       $this->dieUsage( "Session not available: " . $e->getMessage(), "nosession" );
                } catch ( UploadStashFileNotFoundException $e ) {
                        $this->dieUsage( "File not found: " . $e->getMessage(), "invalidsessiondata" );
                } catch ( UploadStashBadPathException $e ) {
index 2e107ac..f8eee8d 100644 (file)
@@ -37,8 +37,8 @@ class ApiQueryTokens extends ApiQueryBase {
                $params = $this->extractRequestParams();
                $res = array();
 
-               if ( $this->getMain()->getRequest()->getVal( 'callback' ) !== null ) {
-                       $this->setWarning( 'Tokens may not be obtained when using a callback' );
+               if ( $this->lacksSameOriginSecurity() ) {
+                       $this->setWarning( 'Tokens may not be obtained when the same-origin policy is not applied' );
                        return;
                }
 
index 7fc0ba8..1e3a432 100644 (file)
@@ -115,7 +115,7 @@ class ApiQueryUserInfo extends ApiQueryBase {
                        );
                }
                if ( isset( $this->prop['preferencestoken'] ) &&
-                       is_null( $this->getMain()->getRequest()->getVal( 'callback' ) ) &&
+                       !$this->lacksSameOriginSecurity() &&
                        $user->isAllowed( 'editmyoptions' )
                ) {
                        $vals['preferencestoken'] = $user->getEditToken( '', $this->getMain()->getRequest() );
index b7f2f9a..52636cc 100644 (file)
@@ -67,8 +67,9 @@ class ApiQueryUsers extends ApiQueryBase {
                        return $this->tokenFunctions;
                }
 
-               // If we're in JSON callback mode, no tokens can be obtained
-               if ( !is_null( $this->getMain()->getRequest()->getVal( 'callback' ) ) ) {
+               // If we're in a mode that breaks the same-origin policy, no tokens can
+               // be obtained
+               if ( $this->lacksSameOriginSecurity() ) {
                        return array();
                }
 
index 11008cf..3857a08 100644 (file)
@@ -419,7 +419,8 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
                                        $logEntry->getParameters(),
                                        $logEntry->getType(),
                                        $logEntry->getSubtype(),
-                                       $logEntry->getTimestamp()
+                                       $logEntry->getTimestamp(),
+                                       $logEntry->isLegacy()
                                );
                        }
                }
index 5d37e20..dec64cc 100644 (file)
@@ -73,7 +73,8 @@ class ApiSetNotificationTimestamp extends ApiBase {
                        }
                        $title = reset( $pageSet->getGoodTitles() );
                        if ( $title ) {
-                               $timestamp = Revision::getTimestampFromId( $title, $params['torevid'] );
+                               $timestamp = Revision::getTimestampFromId(
+                                       $title, $params['torevid'], Revision::READ_LATEST );
                                if ( $timestamp ) {
                                        $timestamp = $dbw->timestamp( $timestamp );
                                } else {
@@ -86,7 +87,8 @@ class ApiSetNotificationTimestamp extends ApiBase {
                        }
                        $title = reset( $pageSet->getGoodTitles() );
                        if ( $title ) {
-                               $revid = $title->getNextRevisionID( $params['newerthanrevid'] );
+                               $revid = $title->getNextRevisionID(
+                                       $params['newerthanrevid'], Title::GAID_FOR_UPDATE );
                                if ( $revid ) {
                                        $timestamp = $dbw->timestamp( Revision::getTimestampFromId( $title, $revid ) );
                                } else {
index 3457670..c4b717c 100644 (file)
  * @since 1.25
  */
 class ApiStashEdit extends ApiBase {
+       const ERROR_NONE = 'stashed';
+       const ERROR_PARSE = 'error_parse';
+       const ERROR_CACHE = 'error_cache';
+       const ERROR_UNCACHEABLE = 'uncacheable';
+
        public function execute() {
                global $wgMemc;
 
@@ -105,41 +110,56 @@ class ApiStashEdit extends ApiBase {
                $key = self::getStashKey( $title, $content, $user );
                // De-duplicate requests on the same key
                if ( $user->pingLimiter( 'stashedit' ) ) {
-                       $editInfo = false;
                        $status = 'ratelimited';
                } elseif ( $wgMemc->lock( $key, 0, 30 ) ) {
-                       $format = $content->getDefaultFormat();
-                       $editInfo = $page->prepareContentForEdit( $content, null, $user, $format, false );
-                       $status = 'error'; // default
                        $unlocker = new ScopedCallback( function() use ( $key ) {
                                global $wgMemc;
                                $wgMemc->unlock( $key );
                        } );
+                       $status = self::parseAndStash( $page, $content, $user );
                } else {
-                       $editInfo = false;
                        $status = 'busy';
                }
 
+               $this->getResult()->addValue( null, $this->getModuleName(), array( 'status' => $status ) );
+       }
+
+       /**
+        * @param WikiPage $page
+        * @param Content $content
+        * @param User $user
+        * @return integer ApiStashEdit::ERROR_* constant
+        * @since 1.25
+        */
+       public static function parseAndStash( WikiPage $page, Content $content, User $user ) {
+               global $wgMemc;
+
+               $format = $content->getDefaultFormat();
+               $editInfo = $page->prepareContentForEdit( $content, null, $user, $format, false );
+
                if ( $editInfo && $editInfo->output ) {
+                       $key = self::getStashKey( $page->getTitle(), $content, $user );
+
                        list( $stashInfo, $ttl ) = self::buildStashValue(
                                $editInfo->pstContent, $editInfo->output, $editInfo->timestamp
                        );
+
                        if ( $stashInfo ) {
                                $ok = $wgMemc->set( $key, $stashInfo, $ttl );
                                if ( $ok ) {
-                                       $status = 'stashed';
                                        wfDebugLog( 'StashEdit', "Cached parser output for key '$key'." );
+                                       return self::ERROR_NONE;
                                } else {
-                                       $status = 'error';
                                        wfDebugLog( 'StashEdit', "Failed to cache parser output for key '$key'." );
+                                       return self::ERROR_CACHE;
                                }
                        } else {
-                               $status = 'uncacheable';
                                wfDebugLog( 'StashEdit', "Uncacheable parser output for key '$key'." );
+                               return self::ERROR_UNCACHEABLE;
                        }
                }
 
-               $this->getResult()->addValue( null, $this->getModuleName(), array( 'status' => $status ) );
+               return self::ERROR_PARSE;
        }
 
        /**
index 073495c..9eb4020 100644 (file)
@@ -54,8 +54,9 @@ class ApiTokens extends ApiBase {
        }
 
        private function getTokenTypes() {
-               // If we're in JSON callback mode, no tokens can be obtained
-               if ( !is_null( $this->getMain()->getRequest()->getVal( 'callback' ) ) ) {
+               // If we're in a mode that breaks the same-origin policy, no tokens can
+               // be obtained
+               if ( $this->lacksSameOriginSecurity() ) {
                        return array();
                }
 
index 73179d0..7aa1730 100644 (file)
@@ -2,17 +2,42 @@
        "@metadata": {
                "authors": [
                        "Toniher",
-                       "Macofe"
+                       "Macofe",
+                       "Xavier Dengra"
                ]
        },
        "apihelp-main-param-format": "El format de la sortida.",
        "apihelp-block-description": "Bloca un usuari.",
+       "apihelp-block-param-reason": "Raó del blocatge.",
        "apihelp-block-param-nocreate": "Evita la creació de comptes.",
+       "apihelp-createaccount-description": "Creeu un nou compte d'usuari.",
        "apihelp-createaccount-param-name": "Nom d'usuari.",
        "apihelp-createaccount-param-password": "Contrasenya (ignorada si es defineix <var>$1mailpassword</var>)",
+       "apihelp-createaccount-param-email": "Adreça electrònica de l'usuari (opcional).",
+       "apihelp-createaccount-param-realname": "Nom real de l'usuari (opcional).",
        "apihelp-delete-description": "Suprimeix una pàgina.",
+       "apihelp-disabled-description": "Aquest mòdul ha estat desactivat.",
        "apihelp-edit-description": "Crea i edita pàgines.",
        "apihelp-edit-param-text": "Contingut de la pàgina.",
+       "apihelp-edit-param-minor": "Edició menor.",
+       "apihelp-edit-param-createonly": "No editeu aquesta pàgina si ja existeix.",
+       "apihelp-edit-example-edit": "Editeu una pàgina.",
+       "apihelp-emailuser-description": "Envieu un correu electrònic a un usuari.",
+       "apihelp-emailuser-param-target": "Usuari a qui enviar el correu.",
+       "apihelp-emailuser-param-text": "Cos del correu.",
+       "apihelp-emailuser-param-ccme": "Envia'm una còpia d'aquest correu electrònic.",
        "apihelp-expandtemplates-param-title": "Títol de la pàgina.",
+       "apihelp-feedcontributions-param-deletedonly": "Mostra només les contribucions esborrades.",
+       "apihelp-feedrecentchanges-param-hideminor": "Amaga les edicions menors.",
+       "apihelp-feedrecentchanges-param-hidebots": "Amaga les edicions de bots.",
+       "apihelp-feedrecentchanges-param-hideanons": "Amaga les edicions anònimes.",
+       "apihelp-feedrecentchanges-param-hideliu": "Amaga les edicions d'usuaris registrats.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "Amaga les edicions patrullades.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Amaga les meves edicions.",
+       "apihelp-feedrecentchanges-param-tagfilter": "Filtra segons etiqueta.",
+       "apihelp-feedrecentchanges-param-target": "Mostra només els canvis de les pàgines enllaçades a aquesta pàgina.",
+       "apihelp-feedrecentchanges-example-simple": "Mostra els canvis recents.",
+       "apihelp-help-example-recursive": "Tota l'ajuda en una sola pàgina.",
+       "apihelp-import-param-rootpage": "Importa com a subpàgina d'aquesta pàgina.",
        "apihelp-login-example-login": "Inicia sessió."
 }
index 6b5c20b..059eb82 100644 (file)
@@ -8,25 +8,25 @@
                        "Cvanca"
                ]
        },
-       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/API:Main_page Dokumentace]\n* [https://www.mediawiki.org/wiki/Special:MyLanguage/API:FAQ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api E-mailová konference]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Oznámení k API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Chyby a požadavky]\n</div>\n<strong>Stav:</strong> Všechny funkce uvedené na této stránce by měly fungovat, ale API se stále aktivně vyvíjí a může se kdykoli změnit. Upozornění na změny získáte přihlášením se k [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ e-mailové konferenci mediawiki-api-announce].\n\n<strong>Chybné požadavky:</strong> Pokud jsou do API zaslány chybné požadavky, bude vrácena HTTP hlavička s klíčem „MediaWiki-API-Error“ a hodnota této hlavičky a chybový kód budou nastaveny na stejnou hodnotu. Více informací najdete na stránce https://www.mediawiki.org/wiki/API:Errors_and_warnings.",
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Dokumentace]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api E-mailová konference]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Oznámení k API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Chyby a požadavky]\n</div>\n<strong>Stav:</strong> Všechny funkce uvedené na této stránce by měly fungovat, ale API se stále aktivně vyvíjí a může se kdykoli změnit. Upozornění na změny získáte přihlášením se k [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ e-mailové konferenci mediawiki-api-announce].\n\n<strong>Chybné požadavky:</strong> Pokud jsou do API zaslány chybné požadavky, bude vrácena HTTP hlavička s klíčem „MediaWiki-API-Error“ a hodnota této hlavičky a chybový kód budou nastaveny na stejnou hodnotu. Více informací najdete [[mw:API:Errors_and_warnings|v dokumentaci]].",
        "apihelp-main-param-action": "Jaká akce se má provést.",
        "apihelp-main-param-format": "Formát výstupu.",
-       "apihelp-main-param-maxlag": "Maximální zpoždění lze použít, když je MediaWiki nainstalováno na cluster s replikovanou databází. Abyste se vyhnuli zhoršování už tak špatného replikačního zpoždění, můžete tímto parametrem nechat klienta čekat, dokud replikační zpoždění neklesne pod uvedenou hodnotu. V případě příliš vysokého zpoždění se vrátí chybový kód „maxlag“ s hlášením typu „Waiting for $host: $lag seconds lagged“.<br />Více informací najdete v [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Maxlag_parameter příručce].",
+       "apihelp-main-param-maxlag": "Maximální zpoždění lze použít, když je MediaWiki nainstalováno na cluster s replikovanou databází. Abyste se vyhnuli zhoršování už tak špatného replikačního zpoždění, můžete tímto parametrem nechat klienta čekat, dokud replikační zpoždění neklesne pod uvedenou hodnotu. V případě příliš vysokého zpoždění se vrátí chybový kód „<samp>maxlag</samp>“ s hlášením typu „<samp>Waiting for $host: $lag seconds lagged</samp>“.<br />Více informací najdete v [[mw:Manual:Maxlag_parameter|příručce]].",
        "apihelp-main-param-smaxage": "Nastaví hlavičku <code>s-maxage</code> na uvedený počet sekund. Chyby se nekešují nikdy.",
        "apihelp-main-param-maxage": "Nastaví hlavičku <code>max-age</code> na uvedený počet sekund. Chyby se nekešují nikdy.",
-       "apihelp-main-param-assert": "Ověřit, že je uživatel přihlášen, pokud je nastaveno na „user“, nebo že má uživatelské oprávnění bot, pokud je nastaveno na „bot“.",
+       "apihelp-main-param-assert": "Pokud je nastaveno na „<kbd>user</kbd>“, ověří, že je uživatel přihlášen, pokud je nastaveno na „<kbd>bot</kbd>“, ověří, že má oprávnění „bot“.",
        "apihelp-main-param-requestid": "Libovolná zde uvedená hodnota bude zahrnuta v odpovědi. Lze použít pro rozlišení požadavků.",
        "apihelp-main-param-servedby": "Zahrnout do odpovědi název hostitele, který požadavek obsloužil.",
        "apihelp-main-param-curtimestamp": "Zahrnout do odpovědi aktuální časové razítko.",
        "apihelp-main-param-origin": "Pokud k API přistupujete pomocí mezidoménového AJAXového požadavku (CORS), nastavte tento parametr na doménu původu. Musí být součástí všech předběžných požadavků, takže musí být součástí URI požadavku (nikoli těla POSTu). Hodnota musí přesně odpovídat jednomu z původů v hlavičce Origin:, takže musí být nastavena na něco jako http://en.wikipedia.org nebo https://meta.wikimedia.org. Pokud parametr neodpovídá hlavičce Origin:, bude vrácena odpověď 403. Pokud parametr odpovídá hlavičce Origin: a tento původ je na bílé listině, bude nastavena hlavička Access-Control-Allow-Origin.",
-       "apihelp-main-param-uselang": "Jazyk, který se má použít pro překlad hlášení. Seznam kódů lze načíst z [[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]] se siprop=languages nebo uveďte „user“ pro použití předvoleného jazyka aktuálního uživatele či „content“ pro použití jazyka obsahu této wiki.",
+       "apihelp-main-param-uselang": "Jazyk, který se má použít pro překlad hlášení. Seznam kódů lze načíst z <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> se <kbd>siprop=languages</kbd>, nebo zadejte „<kbd>user</kbd>“ pro použití předvoleného jazyka aktuálního uživatele či „<kbd>content</kbd>“ pro použití jazyka obsahu této wiki.",
        "apihelp-block-description": "Zablokovat uživatele.",
        "apihelp-block-param-user": "Uživatelské jméno, IP adresa nebo rozsah IP adres, které chcete zablokovat.",
        "apihelp-block-param-reason": "Důvod bloku.",
        "apihelp-block-param-anononly": "Zablokovat pouze anonymní uživatele (tj. zakázat editovat anonymně z této IP).",
        "apihelp-block-param-nocreate": "Nedovolit registraci nových uživatelů.",
-       "apihelp-block-param-noemail": "Zakázat uživateli posílat e-maily prostřednictvím wiki. (Vyžaduje oprávnění „blockemail“.)",
-       "apihelp-block-param-hidename": "Skrýt uživatelské jméno v knize zablokování. (Vyžaduje oprávnění „hideuser“.)",
+       "apihelp-block-param-noemail": "Zakázat uživateli posílat e-maily prostřednictvím wiki. (Vyžaduje oprávnění „<code>blockemail</code>“.)",
+       "apihelp-block-param-hidename": "Skrýt uživatelské jméno v knize zablokování. (Vyžaduje oprávnění <code>hideuser</code>.)",
        "apihelp-block-param-allowusertalk": "Povolit uživateli editovat svou vlastní diskusní stránku (závisí na <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Pokud již uživatel blokován je, přepsat současný blok.",
        "apihelp-block-param-watchuser": "Sledovat stránku uživatele nebo IP adresy a jejich diskuzní stránky.",
        "apihelp-createaccount-description": "Vytvořit nový uživatelský účet.",
        "apihelp-createaccount-param-name": "Uživatelské jméno.",
        "apihelp-createaccount-param-password": "Heslo (ignorováno, pokud je nastaveno <var>$1mailpassword</var>).",
+       "apihelp-createaccount-param-domain": "Doména pro externí ověření (volitelné).",
        "apihelp-createaccount-param-email": "E-mailová adresa uživatele (nepovinné).",
        "apihelp-createaccount-param-realname": "Skutečné jméno uživatele (nepovinné).",
        "apihelp-createaccount-param-mailpassword": "Pokud je nastaveno na libovolnou hodnotu, zašle se náhodně vygenerované heslo na e-mail uživatele.",
+       "apihelp-createaccount-param-reason": "Případný důvod pro vytvoření účtu, který se zaznamená do logu.",
        "apihelp-createaccount-param-language": "Kód jazyka, který se má uživateli nastavit jako výchozí (volitelné, výchozí je jazyk obsahu).",
+       "apihelp-createaccount-example-pass": "Vytvořit uživatele <kbd>testuser</kbd> s heslem <kbd>test123</kbd>.",
        "apihelp-createaccount-example-mail": "Vytvořit uživatele <kbd>testmailuser</kbd> a zaslat mu e-mail s náhodně vygenerovaným heslem.",
        "apihelp-delete-description": "Smazat stránku.",
+       "apihelp-delete-param-title": "Název stránky, která se má smazat. Není možné použít společně s <var>$1pageid</var>.",
+       "apihelp-delete-param-pageid": "ID stránky, která se má smazat. Není možné použít společně s <var>$1title</var>.",
+       "apihelp-delete-param-watch": "Přidat stránku na seznam sledovaných.",
        "apihelp-delete-example-simple": "Smazat stránku <kbd>Main Page</kbd>.",
        "apihelp-disabled-description": "Tento modul byl deaktivován.",
        "apihelp-edit-description": "Vytvářet a upravovat stránky.",
@@ -59,8 +65,8 @@
        "apihelp-edit-param-bot": "Označit tuto editaci jako editaci bota.",
        "apihelp-edit-param-createonly": "Needitovat stránku, pokud již existuje.",
        "apihelp-edit-param-nocreate": "Pokud stránka neexistuje, vrátit chybu.",
-       "apihelp-edit-param-watch": "Přidat stránku na váš seznam sledovaných stránek.",
-       "apihelp-edit-param-unwatch": "Odstranit stránku z vašeho seznamu sledovaných stránek.",
+       "apihelp-edit-param-watch": "Přidat stránku na seznam sledovaných.",
+       "apihelp-edit-param-unwatch": "Odstranit stránku ze seznamu sledovaných.",
        "apihelp-edit-param-watchlist": "Bezpodmíněnečně přidat nebo odstranit stránku ze sledovaných stránek aktuálního uživatele, použít nastavení nebo neměnit sledování.",
        "apihelp-edit-param-redirect": "Automaticky opravit přesměrování.",
        "apihelp-edit-example-edit": "Upravit stránku.",
diff --git a/includes/api/i18n/cv.json b/includes/api/i18n/cv.json
new file mode 100644 (file)
index 0000000..88f222f
--- /dev/null
@@ -0,0 +1,8 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Chuvash2014"
+               ]
+       },
+       "apihelp-login-example-login": "Кĕр"
+}
index c00acb4..9617204 100644 (file)
@@ -8,7 +8,8 @@
                        "Umherirrender",
                        "Giftpflanze",
                        "Macofe",
-                       "Se4598"
+                       "Se4598",
+                       "Purodha"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page/de|Dokumentation]]\n* [[mw:API:FAQ/de|Häufig gestellte Fragen]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Mailingliste]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-Ankündigungen]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Fehlerberichte und Anfragen]\n</div>\n<strong>Status:</strong> Alle auf dieser Seite gezeigten Funktionen sollten funktionieren, allerdings ist die API in aktiver Entwicklung und kann sich zu jeder Zeit ändern. Abonniere die [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ MediaWiki-API-Ankündigungs-Mailingliste], um über Aktualisierungen informiert zu werden.\n\n<strong>Fehlerhafte Anfragen:</strong> Wenn fehlerhafte Anfragen an die API gesendet werden, wird ein HTTP-Header mit dem Schlüssel „MediaWiki-API-Error“ gesendet. Der Wert des Headers und der Fehlercode werden auf den gleichen Wert gesetzt. Für weitere Informationen siehe [[mw:API:Errors_and_warnings|API: Fehler und Warnungen]].",
        "apihelp-block-param-watchuser": "Benutzer- und Diskussionsseiten des Benutzers oder der IP-Adresse beobachten.",
        "apihelp-block-example-ip-simple": "IP <kbd>192.0.2.5</kbd> für drei Tage mit der Begründung „First strike“ (erste Verwarnung) sperren",
        "apihelp-block-example-user-complex": "Benutzer <kbd>Vandal</kbd> unbeschränkt sperren mit der Begründung „Vandalism“ (Vandalismus), Erstellung neuer Benutzerkonten sowie Versand von E-Mails verhindern.",
+       "apihelp-checktoken-description": "Überprüft die Gültigkeit eines über <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> erhaltenen Tokens.",
+       "apihelp-checktoken-param-type": "Typ des Tokens, das getestet werden soll.",
+       "apihelp-checktoken-param-token": "Token, das getestet werden soll.",
+       "apihelp-checktoken-param-maxtokenage": "Maximal erlaubtes Alter des Tokens in Sekunden.",
+       "apihelp-checktoken-example-simple": "Überprüft die Gültigkeit des <kbd>csrf</kbd>-Tokens.",
        "apihelp-clearhasmsg-description": "Löschen des <code>hasmsg</code>-Flags („hat Nachrichten“-Flag) für den aktuellen Benutzer.",
        "apihelp-clearhasmsg-example-1": "<code>hasmsg</code>-Flags für den aktuellen Benutzer löschen",
        "apihelp-compare-description": "Abrufen des Unterschieds zwischen zwei Seiten.\n\nDu musst eine Versionsnummer, einen Seitentitel oder eine Seitennummer für „from“ als auch „to“ angeben.",
        "apihelp-paraminfo-description": "Ruft Informationen über API-Module ab.",
        "apihelp-paraminfo-param-helpformat": "Format der Hilfe-Zeichenfolgen.",
        "apihelp-parse-param-summary": "Zu parsende Zusammenfassung.",
+       "apihelp-parse-param-section": "Gibt nur den Inhalt dieses Abschnittes zurück oder erstellt einen neuen Abschnitt, wenn <kbd>new</kbd> angegeben wird.\n\n<kbd>new</kbd> wird nur ausgewertet, wenn auch <var>text</var> angegeben wurde.",
+       "apihelp-parse-param-sectiontitle": "Überschrift des neuen Abschnittes, wenn <var>section</var> = <kbd>new</kbd> ist.\n\nAnders als beim Bearbeiten der Seite wird der Parameter nicht durch die <var>summary</var> ersetzt, wenn er weggelassen oder leer ist.",
        "apihelp-parse-param-disableeditsection": "Deaktiviert Abschnittsbearbeitungslinks in der Parserausgabe.",
        "apihelp-parse-param-preview": "Im Vorschaumodus parsen.",
        "apihelp-parse-param-disabletoc": "Inhaltsverzeichnis in der Ausgabe deaktivieren.",
        "apihelp-parse-example-page": "Eine Seite parsen.",
        "apihelp-parse-example-text": "Wikitext parsen.",
+       "apihelp-parse-example-texttitle": "Parst den Wikitext über die Eingabe des Seitentitels.",
+       "apihelp-parse-example-summary": "Parst eine Zusammenfassung.",
        "apihelp-patrol-description": "Kontrolliert eine Seite oder Version.",
+       "apihelp-patrol-param-rcid": "Letzte-Änderungen-Kennung, die kontrolliert werden soll.",
+       "apihelp-patrol-param-revid": "Versionskennung, die kontrolliert werden soll.",
+       "apihelp-patrol-example-rcid": "Kontrolliert eine kürzlich getätigte Änderung.",
        "apihelp-patrol-example-revid": "Kontrolliert eine Version",
        "apihelp-protect-description": "Ändert den Schutzstatus einer Seite.",
        "apihelp-protect-param-title": "Titel der Seite, die du (ent-)sperren möchtest. Kann nicht zusammen mit $1pageid verwendet werden.",
        "apihelp-protect-example-protect": "Schützt eine Seite",
        "apihelp-protect-example-unprotect": "Eine Seite entsperren, indem die Einschränkungen durch den Schutz auf <kbd>all</kbd> gestellt werden.",
        "apihelp-protect-example-unprotect2": "Eine Seite entsperren, indem keine Einschränkungen übergeben werden",
+       "apihelp-purge-description": "Setzt den Cache der angegebenen Seiten zurück.\n\nFalls kein Benutzer angemeldet ist, müssen POST-Anfragen genutzt werden.",
        "apihelp-purge-param-forcelinkupdate": "Aktualisiert die Linktabellen.",
+       "apihelp-purge-param-forcerecursivelinkupdate": "Aktualisiert die Linktabelle der Seite und alle Linktabellen der Seiten, die sie als Vorlage einbinden.",
+       "apihelp-purge-example-simple": "Purgt die <kbd>Main Page</kbd> und die <kbd>API</kbd>-Seite.",
+       "apihelp-purge-example-generator": "Purgt die ersten 10 Seiten des Hauptnamensraums.",
+       "apihelp-query-description": "Bezieht Daten von und über MediaWiki.\n\nAlle Änderungsvorgänge müssen unter Angabe eines Tokens ablaufen, um Missbrauch durch böswillige Anwendungen vorzubeugen.",
+       "apihelp-query-param-prop": "Zurückzuliefernde Eigenschaften der abgefragten Seiten.",
        "apihelp-query-param-list": "Welche Listen abgerufen werden sollen.",
+       "apihelp-query-param-meta": "Zurückzugebende Metadaten.",
+       "apihelp-query-param-indexpageids": "Schließt einen zusätzlichen pageids-Abschnitt mit allen zurückgegebenen Seitenkennungen ein.",
+       "apihelp-query-param-export": "Exportiert die aktuellen Versionen der angegebenen oder generierten Seiten.",
+       "apihelp-query-param-exportnowrap": "Gibt den XML-Export zurück, ohne ihn in ein XML-Ergebnis einzuschließen (gleiches Format wie durch [[Special:Export]]). Kann nur zusammen mit $1export genutzt werden.",
+       "apihelp-query-param-iwurl": "Gibt an, ob die komplette URL zurückgegeben werden soll, wenn der Titel ein Interwikilink ist.",
+       "apihelp-query-param-continue": "Falls angegeben, wird query-continue als Schlüssel-Wert-Paar zurückgegeben, das anschließend an die Folgeabfrage gehängt werden kann. Dieser Parameter muss in der ersten Abfrage auf leer gesetzt werden.\n\nDieser Parameter ist für alle Neuentwicklungen empfohlen und wird in der nächsten API-Version Standard.",
+       "apihelp-query-param-rawcontinue": "Momentan unbeachtet. In Zukunft wird <var>$1continue</var> Standard, dieser Parameter wird dann benötigt, um die rohen <samp>query-continue</samp>-Daten zu erhalten.",
+       "apihelp-query-example-revisions": "Bezieht [[Special:ApiHelp/query+siteinfo|Seiteninformationen]] und [[Special:ApiHelp/query+revisions|Versionen]] der <kbd>Main Page</kbd>.",
+       "apihelp-query-example-allpages": "Bezieht Versionen von Seiten, die mit <kbd>API/</kbd> beginnen.",
        "apihelp-query+allcategories-description": "Alle Kategorien aufzählen.",
+       "apihelp-query+allcategories-param-from": "Kategorie, bei der die Auflistung beginnen soll.",
+       "apihelp-query+allcategories-param-to": "Kategorie, bei der die Auflistung enden soll.",
+       "apihelp-query+allcategories-param-prefix": "Listet alle Kategorien auf, die mit dem angegebenen Wert beginnen.",
+       "apihelp-query+allcategories-param-dir": "Sortierrichtung.",
+       "apihelp-query+allcategories-param-min": "Gibt nur Kategorien zurück, die mindestens die angegebene Anzahl an Einträgen haben.",
+       "apihelp-query+allcategories-param-max": "Gibt nur Kategorien zurück, die höchstens die angegebene Anzahl an Einträgen haben.",
        "apihelp-query+allcategories-param-limit": "Wie viele Kategorien zurückgegeben werden sollen.",
+       "apihelp-query+allcategories-param-prop": "Zurückzugebende Eigenschaften:\n;size: Ergänzt die Anzahl der Einträge in der Antwort.\n;hidden: Markiert über _&#95;HIDDENCAT_&#95; versteckte Kategorien.",
+       "apihelp-query+allcategories-example-size": "Listet Kategorien mit der Anzahl ihrer Einträge auf.",
+       "apihelp-query+allcategories-example-generator": "Bezieht Informationen über die Kategorieseite selbst für Kategorien, die mit <kbd>List</kbd> beginnen.",
+       "apihelp-query+alldeletedrevisions-description": "Bezieht alle gelöschten Versionen eines Benutzers oder eines Namensraumes.",
        "apihelp-query+alldeletedrevisions-paraminfo-useronly": "Darf nur mit <var>$3user</var> verwendet werden.",
+       "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "Kann nicht zusammen mit <var>$3user</var> benutzt werden.",
+       "apihelp-query+alldeletedrevisions-param-start": "Der Zeitstempel, bei dem die Auflistung beginnen soll.",
+       "apihelp-query+alldeletedrevisions-param-end": "Der Zeitstempel, bei dem die Auflistung enden soll.",
+       "apihelp-query+alldeletedrevisions-param-from": "Seitentitel, bei dem die Auflistung beginnen soll.",
+       "apihelp-query+alldeletedrevisions-param-to": "Seitentitel, bei dem die Auflistung enden soll.",
+       "apihelp-query+alldeletedrevisions-param-prefix": "Listet alle Seitentitel auf, die mit dem angegebenen Wert beginnen.",
+       "apihelp-query+alldeletedrevisions-param-tag": "Listet nur Versionen auf, die die angegebene Markierung haben.",
        "apihelp-query+alldeletedrevisions-param-user": "Nur Versionen von diesem Benutzer auflisten.",
+       "apihelp-query+alldeletedrevisions-param-excludeuser": "Schließt Bearbeitungen des angegebenen Benutzers aus.",
        "apihelp-query+alldeletedrevisions-param-namespace": "Nur Seiten in diesem Namensraum auflisten.",
        "apihelp-query+allfileusages-param-limit": "Wie viele Gesamtobjekte zurückgegeben werden sollen.",
        "apihelp-query+allfileusages-example-unique": "Einheitliche Dateititel auflisten",
        "apihelp-query+allimages-example-recent": "Zeigt eine Liste von kürzlich hochgeladenen Dateien ähnlich zu [[Special:NewFiles]].",
        "apihelp-query+alllinks-example-unique": "Einheitlich verlinkte Titel auflisten",
        "apihelp-query+allpages-param-filterredir": "Welche Seiten aufgelistet werden sollen.",
-       "apihelp-query+allredirects-example-unique": "Einheitliche Zielseiten auflisten",
+       "apihelp-query+allredirects-example-unique": "Einzigartige Zielseiten auflisten.",
        "apihelp-query+allredirects-example-generator": "Seiten abrufen, die die Weiterleitungen enthalten",
        "apihelp-query+alltransclusions-param-namespace": "Der aufzulistende Namensraum.",
-       "apihelp-query+alltransclusions-example-unique": "Einheitlich eingebundene Titel auflisten",
+       "apihelp-query+alltransclusions-example-unique": "Einzigartige eingebundene Titel auflisten.",
        "apihelp-query+allusers-param-limit": "Wie viele Benutzernamen insgesamt zurückgegeben werden sollen.",
        "apihelp-query+allusers-example-Y": "Benutzer ab <kbd>Y</kbd> auflisten.",
        "apihelp-query+backlinks-description": "Alle Seiten finden, die auf die angegebene Seite verlinken.",
        "apihelp-query+deletedrevisions-param-limit": "Die Maximalmenge der aufzulistenden Versionen.",
        "apihelp-query+deletedrevs-param-from": "Auflistung bei diesem Titel beginnen.",
        "apihelp-query+deletedrevs-param-to": "Auflistung bei diesem Titel beenden.",
+       "apihelp-query+duplicatefiles-param-localonly": "Sucht nur nach Dateien im lokalen Repositorium.",
+       "apihelp-query+duplicatefiles-example-simple": "Sucht nach Duplikaten von [[:File:Albert Einstein Head.jpg]].",
+       "apihelp-query+duplicatefiles-example-generated": "Sucht nach Duplikaten aller Dateien.",
+       "apihelp-query+embeddedin-param-namespace": "Der aufzulistende Namensraum.",
+       "apihelp-query+embeddedin-param-filterredir": "Wie Weiterleitungen behandelt werden sollen.",
+       "apihelp-query+embeddedin-param-limit": "Wie viele Seiten insgesamt zurückgegeben werden sollen.",
        "apihelp-query+extlinks-param-limit": "Wie viele Links zurückgegeben werden sollen.",
        "apihelp-query+exturlusage-param-limit": "Wie viele Seiten zurückgegeben werden sollen.",
+       "apihelp-query+filearchive-param-from": "Der Bildertitel, bei dem die Auflistung beginnen soll.",
+       "apihelp-query+filearchive-param-to": "Der Bildertitel, bei dem die Auflistung enden soll.",
+       "apihelp-query+filearchive-param-limit": "Wie viele Bilder insgesamt zurückgegeben werden sollen.",
        "apihelp-query+filearchive-example-simple": "Eine Liste aller gelöschten Dateien auflisten",
        "apihelp-query+imageinfo-param-limit": "Wie viele Dateiversionen pro Datei zurückgegeben werden sollen.",
        "apihelp-query+imageinfo-param-start": "Zeitstempel, von dem die Liste beginnen soll.",
        "apihelp-query+imageinfo-param-end": "Zeitstempel, an dem die Liste enden soll.",
        "apihelp-query+imageinfo-param-urlheight": "Ähnlich wie $1urlwidth.",
        "apihelp-query+info-description": "Ruft Basisinformationen über die Seite ab.",
+       "apihelp-query+info-param-testactions": "Überprüft, ob der aktuelle Benutzer gewisse Aktionen auf der Seite ausführen kann.",
        "apihelp-query+iwbacklinks-param-prefix": "Präfix für das Interwiki.",
        "apihelp-query+langbacklinks-param-limit": "Wie viele Gesamtseiten zurückgegeben werden sollen.",
        "apihelp-query+links-example-simple": "Links von der <kbd>Hauptseite</kbd> abrufen",
index 4237ff8..9d0663c 100644 (file)
        "apihelp-paraminfo-param-querymodules": "List of query module names (value of <var>prop</var>, <var>meta</var> or <var>list</var> parameter). Use <kbd>$1modules=query+foo</kbd> instead of <kbd>$1querymodules=foo</kbd>.",
        "apihelp-paraminfo-param-mainmodule": "Get information about the main (top-level) module as well. Use <kbd>$1modules=main</kbd> instead.",
        "apihelp-paraminfo-param-pagesetmodule": "Get information about the pageset module (providing titles= and friends) as well.",
-       "apihelp-paraminfo-param-formatmodules": "List of format module names (value of <var>format</var> parameter). Use <var>$1modules</kbd> instead.",
+       "apihelp-paraminfo-param-formatmodules": "List of format module names (value of <var>format</var> parameter). Use <var>$1modules</var> instead.",
        "apihelp-paraminfo-example-1": "Show info for <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>, <kbd>[[Special:ApiHelp/jsonfm|format=jsonfm]]</kbd>, <kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd>, and <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd>.",
 
        "apihelp-parse-description": "Parses content and returns parser output.\n\nSee the various prop-modules of <kbd>[[Special:ApiHelp/query|action=query]]</kbd> to get information from the current version of a page.\n\nThere are several ways to specify the text to parse:\n# Specify a page or revision, using <var>$1page</var>, <var>$1pageid</var>, or <var>$1oldid</var>.\n# Specify content explicitly, using <var>$1text</var>, <var>$1title</var>, and <var>$1contentmodel</var>.\n# Specify only a summary to parse. <var>$1prop</var> should be given an empty value.",
        "apihelp-parse-param-pst": "Do a pre-save transform on the input before parsing it. Only valid when used with text.",
        "apihelp-parse-param-onlypst": "Do a pre-save transform (PST) on the input, but don't parse it. Returns the same wikitext, after a PST has been applied. Only valid when used with <var>$1text</var>.",
        "apihelp-parse-param-effectivelanglinks": "Includes language links supplied by extensions (for use with <kbd>$1prop=langlinks</kbd>).",
-       "apihelp-parse-param-section": "Only retrieve the content of this section number.",
+       "apihelp-parse-param-section": "Only retrieve the content of this section number or when <kbd>new</kbd> generate a new section.\n\n<kbd>new</kbd> section is only honored when specifying <var>text</var>.",
+       "apihelp-parse-param-sectiontitle": "New section title when <var>section</var> is <kbd>new</kbd>.\n\nUnlike page editing, this does not fall back to <var>summary</var> when omitted or empty.",
        "apihelp-parse-param-disablepp": "Disable the PP Report from the parser output.",
        "apihelp-parse-param-disableeditsection": "Disable edit section links from the parser output.",
        "apihelp-parse-param-generatexml": "Generate XML parse tree (requires content model <code>$1</code>).",
index 1b17871..79f6ac2 100644 (file)
        "apihelp-feedcontributions-param-feedformat": "El formato del canal.",
        "apihelp-feedcontributions-param-year": "A partir del año (y anteriores).",
        "apihelp-feedcontributions-param-month": "A partir del mes (y anteriores).",
+       "apihelp-feedcontributions-param-tagfilter": "Filtrar las contribuciones que tienen estas etiquetas.",
        "apihelp-feedcontributions-param-deletedonly": "Mostrar solo las contribuciones borradas.",
+       "apihelp-feedcontributions-param-toponly": "Mostrar solo ediciones que son últimas revisiones.",
+       "apihelp-feedcontributions-param-newonly": "Mostrar solo ediciones que son creaciones de páginas.",
+       "apihelp-feedcontributions-param-showsizediff": "Mostrar la diferencia de tamaño entre revisiones.",
+       "apihelp-feedcontributions-example-simple": "Devolver las contribuciones del usuario <kbd>Ejemplo</kbd>.",
+       "apihelp-feedrecentchanges-description": "Devuelve un canal de cambios recientes.",
        "apihelp-feedrecentchanges-param-feedformat": "El formato del canal.",
+       "apihelp-feedrecentchanges-param-invert": "Todos los espacios de nombres menos el que está seleccionado.",
+       "apihelp-feedrecentchanges-param-associated": "Incluir el espacio de nombres asociado (discusión o principal).",
+       "apihelp-feedrecentchanges-param-limit": "Número máximo de resultados que devolver.",
        "apihelp-feedrecentchanges-param-from": "Mostrar los cambios realizados a partir de entonces.",
        "apihelp-feedrecentchanges-param-hideminor": "Ocultar cambios menores.",
        "apihelp-feedrecentchanges-param-hidebots": "Ocultar los cambios realizados por bots.",
        "apihelp-feedrecentchanges-example-30days": "Mostrar los cambios recientes limitados a 30 días",
        "apihelp-feedwatchlist-description": "Devuelve el canal de una lista de seguimiento.",
        "apihelp-feedwatchlist-param-feedformat": "El formato del canal.",
+       "apihelp-feedwatchlist-param-linktosections": "Enlazar directamente a las secciones cambiadas de ser posible.",
+       "apihelp-feedwatchlist-example-default": "Mostrar el canal de la lista de seguimiento.",
        "apihelp-feedwatchlist-example-all6hrs": "Mostrar todos los cambios en páginas vigiladas en las últimas 6 horas.",
        "apihelp-filerevert-description": "Revertir el archivo a una versión anterior.",
        "apihelp-filerevert-param-filename": "Nombre de archivo final, sin el prefijo Archivo:",
        "apihelp-filerevert-param-comment": "Comentario de carga.",
+       "apihelp-help-description": "Mostrar la ayuda para los módulos especificados.",
        "apihelp-help-example-main": "Ayuda del módulo principal",
        "apihelp-help-example-recursive": "Toda la ayuda en una página",
        "apihelp-help-example-help": "Ayuda del módulo de ayuda en sí",
        "apihelp-imagerotate-description": "Girar una o más imágenes.",
+       "apihelp-imagerotate-param-rotation": "Grados que rotar una imagen en sentido horario.",
+       "apihelp-imagerotate-example-simple": "Rotar <kbd>File:Ejemplo.png</kbd> <kbd>90</kbd> grados.",
+       "apihelp-imagerotate-example-generator": "Rotar todas las imágenes en la  <kbd>Categoría:Girar</kbd> <kbd>180</kbd> grados.",
        "apihelp-import-param-summary": "Resumen de importación.",
        "apihelp-import-param-xml": "Se cargó el archivo XML.",
        "apihelp-import-param-rootpage": "Importar como subpágina de esta página.",
        "apihelp-patrol-example-revid": "Patrullar una revisión",
        "apihelp-protect-param-reason": "Motivo de la (des)protección.",
        "apihelp-protect-example-protect": "Proteger una página",
+       "apihelp-query+allcategories-description": "Enumerar todas las categorías.",
+       "apihelp-query+alldeletedrevisions-paraminfo-useronly": "Solo puede usarse con <var>$3user</var>.",
        "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "No puede ser utilizado con <var>$3user</var>.",
        "apihelp-query+allimages-param-sha1": "Suma SHA1 de la imagen. Invalida $1sha1base36.",
        "apihelp-query+allimages-param-sha1base36": "Suma SHA1 de la imagen en base 36 (usada en MediaWiki).",
        "apihelp-query+blocks-example-simple": "Listar bloques.",
        "apihelp-query+categoryinfo-example-simple": "Obtener información acerca de <kbd>Category:Foo</kbd> y <kbd>Category:Bar</kbd>",
        "apihelp-query+categorymembers-example-generator": "Obtener información sobre las primeras 10 páginas de la <kbd>Categoría:Física</kbd>",
+       "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Modo|Modos}}: $2",
        "apihelp-query+deletedrevs-example-mode3-talk": "Listar las primeras 50 páginas en el espacio de nombres {{ns:talk}} (modo 3).",
        "apihelp-query+duplicatefiles-example-simple": "Buscar duplicados de [[:File:Alber Einstein Head.jpg]].",
        "apihelp-query+duplicatefiles-example-generated": "Buscar duplicados en todos los ficheros.",
        "apihelp-query+watchlistraw-example-simple": "Listar las páginas de la lista de seguimiento del usuario actual.",
        "apihelp-unblock-example-user": "Desbloquear al usuario <kbd>Bob</kbd> con el motivo <kbd>Lo siento, Bob</kbd>",
        "apihelp-undelete-example-revisions": "Restaurar dos revisiones de la página <kbd>Portada</kbd>.",
+       "apihelp-upload-param-watch": "Vigilar la página.",
+       "apihelp-upload-param-ignorewarnings": "Ignorar las advertencias.",
        "apihelp-upload-example-url": "Subir desde una URL.",
+       "apihelp-userrights-param-user": "Nombre de usuario.",
+       "apihelp-userrights-param-add": "Agregar el usuario a estos grupos.",
+       "apihelp-userrights-param-remove": "Eliminar el usuario de estos grupos.",
+       "apihelp-userrights-param-reason": "Motivo del cambio.",
        "apihelp-userrights-example-user": "Agregar al usuario <kbd>FooBot</kbd> al grupo <kbd>bot</kbd> y eliminarlo de los grupos <kbd>sysop</kbd> y <kbd>burócrata</kbd>.",
        "apihelp-watch-example-watch": "Vigilar la página <kbd>Portada</kbd>.",
        "apihelp-watch-example-unwatch": "Dejar de vigilar la <kbd>Portada</kbd>.",
+       "api-help-main-header": "Módulo principal",
+       "api-help-flag-deprecated": "Este módulo está en desuso.",
+       "api-help-flag-readrights": "Este módulo requiere permisos de lectura.",
+       "api-help-flag-writerights": "Este módulo requiere permisos de escritura.",
+       "api-help-flag-mustbeposted": "Este módulo solo acepta solicitudes POST.",
+       "api-help-flag-generator": "Este módulo puede utilizarse como un generador.",
        "api-help-parameters": "{{PLURAL:$1|Parámetro|Parámetros}}:",
+       "api-help-param-deprecated": "En desuso.",
+       "api-help-param-required": "Este parámetro es obligatorio.",
+       "api-help-param-list": "{{PLURAL:$1|1=Un valor|2=Valores (separados por <kbd>{{!}}</kbd>)}}: $2",
+       "api-help-param-list-can-be-empty": "{{PLURAL:$1|0=Debe estar vacío|Puede estar vacío, o $2}}",
        "api-help-param-multi-separate": "Separar los valores con <kbd>|</kbd>.",
        "api-help-examples": "{{PLURAL:$1|Ejemplo|Ejemplos}}:"
 }
index 7a0c773..3549cb6 100644 (file)
@@ -6,7 +6,8 @@
                        "Fatemi127",
                        "Reza1615",
                        "KhabarNegar",
-                       "Sahehco"
+                       "Sahehco",
+                       "Signal89"
                ]
        },
        "apihelp-main-param-action": "کدام عملیات را انجام دهد.",
        "apihelp-block-description": "بستن کاربر",
        "apihelp-block-param-user": "نام کاربری، آدرس آی پی یا محدوده آی پی موردنظر شما برای بستن.",
        "apihelp-block-param-reason": "دلیل بسته‌شدن",
-       "apihelp-block-param-anononly": "بستن فقط کاربران ناشناس (مانند غیرفعال‌کردن ویرایش‌های ناشناس این آی‌پی).",
+       "apihelp-block-param-anononly": "فقط بستن کاربران ناشناس (مانند غیرفعال‌کردن ویرایش‌های ناشناس این آی‌پی).",
        "apihelp-block-param-nocreate": "جلوگیری از ایجاد حساب.",
        "apihelp-block-param-autoblock": "به طور خودکار آخرین نشانی آی‌پی استفاده‌شده، و هر نشانی پس از آن که سعی می‌کند از آن داخل شود را ببند.",
-       "apihelp-block-param-noemail": "از کاربر در برابر ارسال پست الکترونیکی از طریق ویکی جلوگیری شود. (نیازمند دسترسی «blockemail» است).",
-       "apihelp-block-param-hidename": "نام کاربری را از سیاههٔ بستن پنهان کن. (نیازمند دسترسی «hideuser» است).",
+       "apihelp-block-param-noemail": "از کاربر در برابر ارسال پست الکترونیکی از طریق ویکی جلوگیری شود. (نیازمند دسترسی <code>blockemail</code> است).",
+       "apihelp-block-param-hidename": "نام کاربری را از سیاههٔ بستن پنهان کن. (نیازمند دسترسی <code>hideuser</code> است).",
        "apihelp-block-param-allowusertalk": "به کاربر برای ویرایش صفحه بحث‌شان اجازه دهید (بسته به <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "اگر کاربر پیش از این مسدود شده‌است، مسدود موجود را بازنویسی کن.",
        "apihelp-block-param-watchuser": "صفحه‌های کاربر و بحث کاربر نشانی آی‌پی یا کاربر را پی‌گیری کنید.",
-       "apihelp-block-example-ip-simple": "آی‌پی ۱۹۲.۰.۲.۵ را برای سه روز همراه دلیل «نخستین برخورد» ببندید",
+       "apihelp-block-example-ip-simple": "آی‌پی <kbd>۱۹۲٫۰٫۲٫۵</kbd> را برای سه روز همراه دلیل <kbd>برخورد اول</kbd> ببندید",
        "apihelp-clearhasmsg-description": "پرچم <code>hasmsg</code> را برای کاربر جاری پاک کن.",
        "apihelp-clearhasmsg-example-1": "پاک‌کردن پرچم <code>hasmsg</code> برای کاربر جاری",
        "apihelp-compare-description": "تفاوت بین ۲ صفحه را بیابید.\n\nشما باید یک شماره بازبینی، یک عنوان صفحه، یا یک شناسه صفحه برای هر دو «از» و «به» مشخص کنید.",
        "apihelp-createaccount-param-realname": "نام واقعی کاربر (اختیاری).",
        "apihelp-createaccount-param-mailpassword": "اگر به هر مقداری تنظیم شود، یک رمز عبور تصادفی به کاربر ایمیل خواهد شد.",
        "apihelp-createaccount-param-reason": "دلیل اختیاری برای ایجاد حساب کاربری جهت قرارگرفتن در سیاهه‌ها.",
-       "apihelp-createaccount-example-pass": "ایجاد کاربر «testuser» همراه رمز عبور «test123»",
-       "apihelp-createaccount-example-mail": "ایجاد کاربر «testmailuser» و ایمیل‌کردن یک رمز عبور تصادفی ساخته‌شده",
+       "apihelp-createaccount-example-pass": "ایجاد کاربر <kbd>testuser</kbd> همراه رمز عبور <kbd>test123</kbd>",
+       "apihelp-createaccount-example-mail": "ایجاد کاربر <kbd>testmailuser</kbd> و ارسال یک رمز عبور تصادفی به ای‌میل.",
        "apihelp-delete-description": "حذف صفحه",
-       "apihelp-delete-param-title": "عنوان صفحه‌ای که قصد حذفش را دارید. نمی‌تواند در کنار $1pageid استفاده شود.",
-       "apihelp-delete-param-pageid": "شناسه صفحه‌ای که قصد حذفش را دارید. نمی‌تواند در کنار $1title استفاده شود.",
+       "apihelp-delete-param-title": "عنوان صفحه‌ای که قصد حذفش را دارید. نمی‌تواند در کنار <var>$1pageid</var> استفاده شود.",
+       "apihelp-delete-param-pageid": "شناسه صفحه‌ای که قصد حذفش را دارید. نمی‌تواند در کنار <var>$1title</var> استفاده شود.",
        "apihelp-delete-param-reason": "دلیل برای حذف. اگر تنظیم نشود، یک دلیل خودکار ساخته‌شده استفاده می‌شود.",
-       "apihelp-delete-param-watch": "افزودن صفحه به فهرست پی‌گیری شما",
+       "apihelp-delete-param-watch": "افزودن صفحه به فهرست پی‌گیری کاربر فعلی",
        "apihelp-delete-param-unwatch": "صفحه را از پی‌گیری‌تان حذف کنید.",
-       "apihelp-delete-example-simple": "حذف صفحه اصلی",
-       "apihelp-delete-example-reason": "حذف صفحهٔ اصلی همراه دلیل «آماده برای انتقال»",
+       "apihelp-delete-example-simple": "حذف <kbd>صفحهٔ اصلی</kbd>",
+       "apihelp-delete-example-reason": "حذف <kbd>صفحهٔ اصلی</kbd> همراه دلیل  <kbd>آماده‌سازی برای انتقال</kbd>",
        "apihelp-disabled-description": "این پودمان غیرفعال شده است.",
        "apihelp-edit-description": "ایجاد و ویرایش صفحه",
-       "apihelp-edit-param-title": "عنوان صفحه‌ای که قصد ویرایشش را دارید. نمی‌تواند در کنار $1pageid استفاده شود.",
-       "apihelp-edit-param-pageid": "شناسه صفحهٔ صفحه‌ای که می‌خواهید ویرایشش کنید. نمی‌تواند در کنار $1title استفاده شود.",
-       "apihelp-edit-param-section": "شماره بخش. ۰ برای بخش بالا، «تازه» برای یک بخش تازه.",
+       "apihelp-edit-param-title": "عنوان صفحه‌ای که قصد ویرایشش را دارید. نمی‌تواند در کنار <var>$1pageid</var> استفاده شود.",
+       "apihelp-edit-param-pageid": "شناسه صفحهٔ صفحه‌ای که می‌خواهید ویرایشش کنید. نمی‌تواند در کنار <var>$1title</var> استفاده شود.",
+       "apihelp-edit-param-section": "شماره بخش. <kbd>۰</kbd> برای بخش بالا، «<kbd>تازه</kbd>» برای یک بخش تازه.",
        "apihelp-edit-param-sectiontitle": "عنوان برای بخش جدید.",
        "apihelp-edit-param-text": "محتوای صفحه.",
        "apihelp-edit-param-summary": "خلاصه را ویرایش کنید. همچنین عنوان بخش را زمانی که $1section=تازه و $1sectiontitle تنظیم نشده‌است.",
        "apihelp-feedrecentchanges-param-hideanons": "پنهان کردن ویرایش‌های کاربران ناشناس.",
        "apihelp-feedrecentchanges-param-hideliu": "پنهان کردن ویرایش‌های کاربران ثبت‌نام کرده.",
        "apihelp-feedrecentchanges-param-hidepatrolled": "پنهان کردن ویرایش گشت‌زن‌ها.",
-       "apihelp-feedrecentchanges-param-hidemyself": "پنهان کردن ویرایش‌های خودتان.",
+       "apihelp-feedrecentchanges-param-hidemyself": "پنهان کردن ویرایش‌های کاربر فعلی.",
        "apihelp-feedrecentchanges-param-tagfilter": "فیلتر کردن براساس برچسب",
        "apihelp-feedrecentchanges-param-target": "فقط نمایش ویرایش‌هایی که پیوند دارند به این صفحه.",
        "apihelp-feedrecentchanges-param-showlinkedto": "نمایش ویرایش‌ها بر روی صفحات پیوند داده شده به صفحات انتخاب شده.",
        "apihelp-help-example-query": "راهنما برای دو زیر پودمان کوئری",
        "apihelp-imagerotate-description": "چرخاندن یک یا چند تصویر",
        "apihelp-imagerotate-param-rotation": "درجه برای چرخاندن تصویر در جهت ساعت‌گرد.",
-       "apihelp-imagerotate-example-simple": "چرخاندن ۹۰ درجه برای [[:File:Example.png]]",
-       "apihelp-imagerotate-example-generator": "چرخاندن ۱۸۰ درجه برای همهٔ تصاویر موجود در [[:Category:Flip]]",
+       "apihelp-imagerotate-example-simple": "چرخاندن <kbd>۹۰</kbd> درجه برای <kbd>File:Example.png</kbd>",
+       "apihelp-imagerotate-example-generator": "چرخاندن <kbd>۱۸۰</kbd> درجه برای همهٔ تصاویر موجود در <kbd>Category:Flip</kbd>",
        "apihelp-import-param-summary": "خلاصه درون‌ریزی.",
        "apihelp-import-param-xml": "پرونده XML بارگذاری شد.",
        "apihelp-import-param-interwikisource": "برای درون‌ریز میان‌ویکی: ویکی برای درون‌ریزی از.",
        "apihelp-logout-description": "خروج به همراه پاک نمودن اطلاعات این نشست",
        "apihelp-logout-example-logout": "خروج کاربر فعلی",
        "apihelp-move-description": "انتقال صفحه",
-       "apihelp-move-param-to": "عنوانی که شما قصد دارید صفحه را به آن نام تغییر دهید.",
+       "apihelp-move-param-to": "عنوانی که قصد دارید صفحه را به آن نام تغییر دهید.",
        "apihelp-move-param-reason": "دلیل انتقال",
-       "apihelp-move-param-movetalk": "اÙ\86تÙ\82اÙ\84 ØµÙ\81Ø­Ù\87Ù\94 Ø¨Ø­Ø« Ø§Ú¯Ø± Ù\88جÙ\88د دارد.",
-       "apihelp-move-param-movesubpages": "اÙ\86تÙ\82اÙ\84 Ø²Û\8cر ØµÙ\81Ø­Ù\87â\80\8cÙ\87ا Ø§Ú¯Ø± Ø§Ù\85کاÙ\86â\80\8cپذÛ\8cر است.",
+       "apihelp-move-param-movetalk": "صÙ\81Ø­Ù\87Ù\94 Ø¨Ø­Ø« Ø±Ø§ ØªØºÛ\8cÛ\8cرÙ\86اÙ\85 Ø¯Ù\87Û\8cدØ\8c Ø§Ú¯Ø± Ù\88جÙ\88ددارد.",
+       "apihelp-move-param-movesubpages": "زÛ\8cرصÙ\81Ø­Ù\87 Ø±Ø§ ØªØºÛ\8cÛ\8cرÙ\86اÙ\85 Ø¯Ù\87Û\8cدØ\8c Ø§Ú¯Ø± Ø´Ø¯Ù\86Û\8c است.",
        "apihelp-move-param-noredirect": "عدم ساخت تغییرمسیر.",
+       "apihelp-move-param-watch": "صفحه و تغییرمسیر را به پی‌گیری کاربر کنونی بیافزایید.",
+       "apihelp-move-param-unwatch": "صفحه و تغییرمسیر را از پی‌گیری کاربر کنونی حذف کنید.",
        "apihelp-move-param-ignorewarnings": "چشم‌پوشی از همهٔ هشدارها.",
+       "apihelp-opensearch-description": "جستجو در ویکی بااستفاده از پروتکل اوپن‌سرچ.",
        "apihelp-opensearch-param-search": "جستجوی رشته.",
        "apihelp-opensearch-param-limit": "حداکثر تعداد نتایج برای بازگرداندن.",
        "apihelp-opensearch-param-namespace": "فضاهای نامی برای جستجو",
+       "apihelp-opensearch-param-suggest": "کاری نکنید اگر <var>[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> false است.",
        "apihelp-opensearch-param-format": "فرمت خروجی.",
-       "apihelp-opensearch-example-te": "یافتن صفحه‌هایی که با «ته» آغاز می‌شوند",
+       "apihelp-opensearch-example-te": "یافتن صفحه‌هایی که با <kbd>ته</kbd> آغاز می‌شوند",
        "apihelp-options-example-reset": "بازنشانی همه تنظیمات.",
        "apihelp-paraminfo-param-helpformat": "ساختار راهنمای رشته‌ها",
        "apihelp-parse-example-page": "تجزیه یک صفحه.",
        "apihelp-protect-description": "تغییر سطح محافظت صفحه",
        "apihelp-protect-param-reason": "دلیل برای (عدم) حفاظت.",
        "apihelp-protect-example-protect": "محافظت از صفحه",
-       "apihelp-protect-example-unprotect": "خارج ساختن صفحه از حفاظت با تغییر سطح حفاظتی به \"همگان\"",
+       "apihelp-protect-example-unprotect": "خارج ساختن صفحه از حفاظت با تغییر سطح حفاظتی به <kbd>همگان</kbd>.",
        "apihelp-protect-example-unprotect2": "خارج ساختن صفحه از حفاظت با قراردادن هیچ‌گونه محدودیت‌حفاظتی",
        "apihelp-purge-param-forcelinkupdate": "به‌روزرسانی جداول پیوندها.",
        "apihelp-purge-param-forcerecursivelinkupdate": "جدول پیوندها را به‌روز رسانی کنید، و جدول‌های پیوندهای هر صفحه‌ای را که از این صفحه به عنوان الگو استفاده می‌کند به‌روز رسانی کنید.",
        "apihelp-query-param-meta": "کدام فراداده‌ها دریافت شود.",
        "apihelp-query+allcategories-param-prefix": "عنوان همهٔ رده‌ها را که با این مقدار آغاز می‌شود جستجو کنید.",
        "apihelp-query+allcategories-param-limit": "میزان رده‌ها برای بازگرداندن.",
-       "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "نمی‌تواند همراه $3user به کار رود.",
+       "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "نمی‌تواند همراه <var>$3user</var> به کار رود.",
        "apihelp-query+allfileusages-param-limit": "تعداد آیتم‌ها برای بازگرداندن.",
        "apihelp-query+allfileusages-param-dir": "جهتی که باید فهرست شود.",
        "apihelp-query+allfileusages-example-unique": "فهرست پرونده‌های با عنوان یکتا",
        "apihelp-query+allpages-param-minsize": "محدودکردن به صفحه‌هایی که همراه دست کم این تعداد بایت است.",
        "apihelp-query+allpages-param-limit": "میزان کل صفحه‌ها برای بازگرداندن.",
        "apihelp-query+allredirects-param-limit": "تعداد آیتم‌ها برای بازگرداندن.",
-       "apihelp-query+backlinks-example-simple": "نمایش پیوندها به [[صفحهٔ اصلی]]",
+       "apihelp-query+backlinks-example-simple": "نمایش پیوندها به <kbd>صفحهٔ اصلی<kbd>",
        "apihelp-query+blocks-example-simple": "فهرست بسته‌شده‌ها",
        "apihelp-query+categories-param-show": "کدام نوع رده‌ها نمایش داده‌شود.",
        "apihelp-query+categories-param-limit": "چه میزان رده بازگردانده شود.",
        "apihelp-query+imageinfo-param-urlheight": "مشابه $1urlwidth.",
        "apihelp-query+info-description": "دریافت اطلاعات سادهٔ صفحه.",
        "apihelp-query+iwbacklinks-param-prefix": "پیشوند میان‌ویکی.",
-       "apihelp-query+iwbacklinks-param-title": "پیوند میان‌ویکی برای جستجو. باید همراه $1blprefix استفاده شود.",
+       "apihelp-query+iwbacklinks-param-title": "پیوند میان‌ویکی برای جستجو. باید همراه <var>$1blprefix</var> استفاده شود.",
        "apihelp-query+iwbacklinks-param-limit": "تعداد صفحه‌ها برای بازگرداندن.",
        "apihelp-query+linkshere-param-limit": "تعداد برای بازگرداندن.",
        "apihelp-query+logevents-description": "دریافت رویدادها از سیاهه‌ها.",
index c2d7fcc..c6b6829 100644 (file)
@@ -9,7 +9,8 @@
                        "Macofe",
                        "Linedwell",
                        "Nicolapps",
-                       "Raulel"
+                       "Raulel",
+                       "Arkanosis"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentation]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Liste de diffusion]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Annonces de l’API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bogues et demandes]\n</div>\n<strong>État :</strong> Toutes les fonctionnalités affichées sur cette page devraient fonctionner, mais l’API est encore en cours de développement et peut changer à tout moment. Inscrivez-vous à [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ la liste de diffusion mediawiki-api-announce] pour être informé des mises à jour.\n\n<strong>Requêtes erronées :</strong> Si des requêtes erronées sont envoyées à l’API, un en-tête HTTP sera renvoyé avec la clé « MediaWiki-API-Error ». La valeur de cet en-tête et le code d’erreur renvoyé prendront la même valeur. Pour plus d’information, voyez [[mw:API:Errors_and_warnings|API: Errors and warnings]].",
        "apihelp-logout-description": "Se déconnecter et effacer les données de session.",
        "apihelp-logout-example-logout": "Déconnecter l’utilisateur actuel.",
        "apihelp-managetags-description": "Effectuer des tâches de gestion relatives à la modification des balises.",
+       "apihelp-managetags-param-operation": "Quelle opération effectuer :\n;create:Créer une nouvelle balise de modification pour un usage manuel.\n;delete:Supprimer une balise de modification de la base de données, y compris la suppression de la marque de toutes les révisions, entrées de modification récente et entrées de journal dans lesquelles elle serait utilisée.\n;activate:Activer une balise de modification, permettant aux utilisateurs de l’appliquer manuellement.\n;deactivate:Désactiver une balise de modification, empêchant les utilisateurs de l’appliquer manuellement.",
+       "apihelp-managetags-param-tag": "Balise à créer, supprimer, activer ou désactiver. Pour la création de balise, elle ne doit pas exister. Pour la suppression de balise, elle doit exister. Pour l’activation de balise, elle doit exister et ne pas être utilisée par une extension. Pour la désactivation de balise, elle doit être actuellement active et définie manuellement.",
+       "apihelp-managetags-param-reason": "Un motif facultatif pour créer, supprimer, activer ou désactiver la balise.",
+       "apihelp-managetags-param-ignorewarnings": "S’il faut ignorer tout avertissement qui se produirait au cours de l’opération.",
+       "apihelp-managetags-example-create": "Créer une balise nommée <kbd>pourriel</kbd> avec le motif <kbd>À utiliser lors de la revue des modifications</kbd>",
+       "apihelp-managetags-example-delete": "Supprimer la balise <kbd>vandlaisme</kbd> avec le motif <kbd>Mal épelé</kbd>",
+       "apihelp-managetags-example-activate": "Activer une balise nommée <kbd>pourriel</kbd> avec le motif <kbd>À utiliser dans la revue des modifications</kbd>",
+       "apihelp-managetags-example-deactivate": "Désactiver une balise nommée <kbd>pourriel</kbd> avec le motif <kbd>Plus nécessaire</kbd>",
        "apihelp-move-description": "Déplacer une page.",
-       "apihelp-move-param-from": "Titre de la page que vous voulez déplacer. Impossible de l’utiliser avec $1fromid.",
-       "apihelp-move-param-fromid": "ID de la page que vous voulez déplacer. Impossible à utiliser avec $1from.",
+       "apihelp-move-param-from": "Titre de la page à renommer. Impossible de l’utiliser avec <var>$1fromid</var>.",
+       "apihelp-move-param-fromid": "ID de la page à renommer. Impossible à utiliser avec <var>$1from</var>.",
        "apihelp-move-param-to": "Titre de la page renommée.",
        "apihelp-move-param-reason": "Motif du renommage.",
        "apihelp-move-param-movetalk": "Renommer la page de discussion, si elle existe.",
        "apihelp-parse-param-pst": "Faire une transformation avant enregistrement de l’entrée avant de l’analyser. Valide uniquement quand utilisé avec du texte.",
        "apihelp-parse-param-onlypst": "Faire une transformation avant enregistrement (PST) de l’entrée, mais ne pas l’analyser. Renvoie le même wikitexte, après que la PST a été appliquée. Valide uniquement quand utilisé avec <var>$1text</var>.",
        "apihelp-parse-param-effectivelanglinks": "Inclut les liens de langue fournis par les extensions (à utiliser avec <kbd>$1prop=langlinks</kbd>).",
-       "apihelp-parse-param-section": "Récupérer uniquement le contenu de ce numéro de section.",
+       "apihelp-parse-param-section": "Récupérer uniquement le contenu de ce numéro de section ou quand <kbd>nouveau</kbd> génère une nouvelle section.\n\nLa <kbd>nouvelle</kbd> section est mise à l’honneur uniquement quand <var>text</var> est spécifié.",
+       "apihelp-parse-param-sectiontitle": "Nouveau titre de section quand <var>section</var> vaut <kbd>nouveau</kbd>.\n\nÀ la différence de la modification de page, cela ne revient pas à <var>summary</var> quand il est omis ou vide.",
        "apihelp-parse-param-disablepp": "Désactiver le rapport PP de la sortie de l’analyseur.",
        "apihelp-parse-param-disableeditsection": "Désactiver les liens de modification de section de la sortie de l’analyseur.",
        "apihelp-parse-param-generatexml": "Générer un arbre d’analyse XML (nécessite le modèle de contenu <code>$1</code>).",
        "apihelp-query+blocks-example-simple": "Lister les blocages",
        "apihelp-query+blocks-example-users": "Lister les blocages des utilisateurs <kbd>Alice</kbd> et <kbd>Bob</kbd>.",
        "apihelp-query+categories-description": "Lister toutes les catégories auxquelles les pages appartiennent.",
-       "apihelp-query+categories-param-prop": "Quelles propriétés supplémentaires obtenir de chaque catégorie :\n;sortkey:Ajoute la clé de tri (chaîne hexadécimale) et son préfixe (partie lisible) de la catégorie.\n;timestamp:Ajoute l’horodatage de l’ajout de la catégorie.\n;hidden:Marque els catégories cachées avec _&#95;HIDDENCAT_&#95;.",
+       "apihelp-query+categories-param-prop": "Quelles propriétés supplémentaires obtenir de chaque catégorie :\n;sortkey:Ajoute la clé de tri (chaîne hexadécimale) et son préfixe (partie lisible) de la catégorie.\n;timestamp:Ajoute l’horodatage de l’ajout de la catégorie.\n;hidden:Marque les catégories cachées avec _&#95;HIDDENCAT_&#95;.",
        "apihelp-query+categories-param-show": "Quelle sorte de catégories afficher.",
        "apihelp-query+categories-param-limit": "Combien de catégories renvoyer.",
        "apihelp-query+categories-param-categories": "Lister uniquement ces catégories. Utile pour vérifier si une certaine page est dans une certaine catégorie.",
        "apihelp-query+imageusage-param-namespace": "L’espace de noms à énumérer.",
        "apihelp-query+imageusage-param-dir": "La direction dans laquelle lister.",
        "apihelp-query+imageusage-param-filterredir": "Comment filtrer les redirections. Si mis à nonredirects quand $1redirect est activé, cela ne s’appliquera qu’au second niveau.",
-       "apihelp-query+imageusage-param-limit": "Combien de pages renvoyer au total. Si $1redirect est activé, la limite s’applique à chaque niveau séparément (ce qui veut dire que vous pouvez obtenir jusqu’à 2 * limite résultats).",
+       "apihelp-query+imageusage-param-limit": "Combien de pages renvoyer au total. Si <var>$1redirect</var> est activé, la limite s’applique à chaque niveau séparément (ce qui veut dire que jusqu’à 2 * <var>$1limit</var> résultats peuvent être renvoyés).",
        "apihelp-query+imageusage-param-redirect": "Si le lien vers une page est une redirection, trouver toutes les pages qui ont aussi un lien vers cette redirection. La limite maximale est divisée par deux.",
        "apihelp-query+imageusage-example-simple": "Afficher les pages utilisant [[:File:Albert Einstein Head.jpg]]",
        "apihelp-query+imageusage-example-generator": "Obtenir des informations sur les pages utilisant [[:File:Albert Einstein Head.jpg]]",
        "apihelp-query+info-paramvalue-prop-readable": "Si l’utilisateur peut lire cette page.",
        "apihelp-query+info-paramvalue-prop-preload": "Fournit le texte renvoyé par EditFormPreloadText.",
        "apihelp-query+info-paramvalue-prop-displaytitle": "Fournit la manière dont le titre de la page est réellement affiché.",
+       "apihelp-query+info-param-testactions": "Tester si l’utilisateur actuel peut effectuer certaines actions sur la page.",
        "apihelp-query+info-param-token": "Utiliser plutôt [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].",
        "apihelp-query+info-example-simple": "Obtenir des informations sur la page <kbd>Main Page</kbd>.",
        "apihelp-query+info-example-protection": "Obtenir des informations générale et de protection sur la page <kbd>Main Page</kbd>.",
        "apihelp-query+links-param-dir": "La direction dans laquelle lister.",
        "apihelp-query+links-example-simple": "Obtenir les liens de la page <kbd>Main Page</kbd>",
        "apihelp-query+links-example-generator": "Obtenir des informations sur tous les liens de page dans <kbd>Main Page</kbd>.",
-       "apihelp-query+links-example-namespaces": "Obtenir les liens de [[Main Page]] dans les espaces de nom Utilisateur et Modèle",
+       "apihelp-query+links-example-namespaces": "Obtenir les liens de la page <kbd>Accueil</kbd> dans les espaces de nom {{ns:user}} et {{ns:template}}.",
        "apihelp-query+linkshere-description": "Trouver toutes les pages ayant un lien vers les pages données.",
        "apihelp-query+linkshere-param-prop": "Quelles propriétés obtenir :\n;pageid:ID de chaque page.\n;title:Titre de chaque page.\n;redirect:Indique si la page est une redirection.",
        "apihelp-query+linkshere-param-namespace": "Inclure uniquement les pages dans ces espaces de nom.",
        "apihelp-query+querypage-param-page": "Le nom de la page spéciale. Remarque, ce nom est sensible à la casse.",
        "apihelp-query+querypage-param-limit": "Nombre de résultats à renvoyer.",
        "apihelp-query+querypage-example-ancientpages": "Renvoyer les résultats de [[Special:Ancientpages]].",
-       "apihelp-query+random-description": "Obtenir un ensemble de pages au hasard.\n\nLes pages sont listées dans un ordre prédéterminé, seul le point de départ est aléatoire. Par exemple, cela signifie que si la première page sur votre liste est « Accueil », la seconde sera *toujours* « Liste des singes de fiction », la troisième « Liste de personnes figurant sur les timbres de Vanuatu », etc.\n\nSi le nombre de page dans l’espace de nom est inférieur à $1limit, vous obtiendrez moins de page. Vous n'obtiendrez jamais deux fois la même page.",
+       "apihelp-query+random-description": "Obtenir un ensemble de pages au hasard.\n\nLes pages sont listées dans un ordre prédéterminé, seul le point de départ est aléatoire. Par exemple, cela signifie que si la première page dans la liste est <samp>Accueil</samp>, la seconde sera <em>toujours</em> <samp>Liste des singes de fiction</samp>, la troisième <samp>Liste de personnes figurant sur les timbres de Vanuatu</samp>, etc.\n\nSi le nombre de page dans l’espace de nom est inférieur à <var>$1limit</var>, moins de pages seront renvoyées. La même page ne sera jamais renvoyée deux fois.",
        "apihelp-query+random-param-namespace": "Renvoyer seulement des pages de ces espaces de noms.",
        "apihelp-query+random-param-limit": "Limite sur le nombre de pages aléatoires renvoyées.",
        "apihelp-query+random-param-redirect": "Charger une redirection aléatoire plutôt qu’une page aléatoire.",
        "apihelp-query+search-example-text": "Rechercher des textes pour <kbd>signification</kbd>.",
        "apihelp-query+search-example-generator": "Obtenir les informations sur les pages renvoyées par une recherche de <kbd>signification</kbd>.",
        "apihelp-query+siteinfo-description": "Renvoyer les informations générales sur le site.",
-       "apihelp-query+siteinfo-param-prop": "Quelles informations obtenir :\n;general:Information globale du système.\n;namespaces:Liste des espaces de nom déclarés et leur nom canonique.\n;namespacealiases:Liste des alias des espaces de nom déclarés.\n;specialpagealiases:Liste des alias des pages spéciales.\n;magicwords:Liste des mots magiques et leurs alias.\n;statistics:Renvoie les statistiques du site.\n;interwikimap:Renvoie la correspondance interwiki (éventuellement filtrée, éventuellement localisée en utilisant <var>$1inlanguagecode</var>).\n;dbrepllag:Renvoie le serveur de base de donnée avec la plus grande latence de réplication.\n;usergroups:Renvoie les groupes utilisateur et les droits associés.\n;extensions:Renvoie les extensions installées sur le wiki.\n;fileextensions:Renvoie la liste des extensions de fichier autorisées au téléchargement.\n;rightsinfo:Renvoie l’information sur les droits du wiki (sa licence), si elle est disponible.\n;restrictions:Renvoie l’information sur les types de restriction disponibles (protection).\n;languages:Renvoie une liste des langues que supporte MédiaWiki (éventuellement localisé en utilisant <var>$1inlanguagecode</var>).\n;skins:Renvoie une liste de tous les habillages activés (éventuellement localisé en utilisant <var>$1inlanguagecode</var>, sinon dans la langue du contenu).\n;extensiontags:Renvoie une liste des balises d’extension de l’analyseur.\n;functionhooks:Renvoie une liste des accroches de fonction de l’analyseur.\n;showhooks:Renvoie une liste de toutes les accroches souscrites (contenu de <var>[[mw:Manual:$wgHooks|$wgHooks]]</var>).\n;variables:Renvoie une liste des IDs de variable.\n;protocols:Renvoie une liste des protocoles qui sont autorisés dans les liens externes.\n;defaultoptions:Renvoie les valeurs par défaut pour les préférences utilisateur.",
+       "apihelp-query+siteinfo-param-prop": "Quelles informations obtenir :\n;general:Information globale du système.\n;namespaces:Liste des espaces de nom déclarés et leur nom canonique.\n;namespacealiases:Liste des alias des espaces de nom déclarés.\n;specialpagealiases:Liste des alias des pages spéciales.\n;magicwords:Liste des mots magiques et leurs alias.\n;statistics:Renvoie les statistiques du site.\n;interwikimap:Renvoie la correspondance interwiki (éventuellement filtrée, éventuellement localisée en utilisant <var>$1inlanguagecode</var>).\n;dbrepllag:Renvoie le serveur de base de donnée avec la plus grande latence de réplication.\n;usergroups:Renvoie les groupes utilisateur et les droits associés.\n;libraries:Renvoie les bibliothèques installées sur le wiki.\n;extensions:Renvoie les extensions installées sur le wiki.\n;fileextensions:Renvoie la liste des extensions de fichier autorisées au téléchargement.\n;rightsinfo:Renvoie l’information sur les droits du wiki (sa licence), si elle est disponible.\n;restrictions:Renvoie l’information sur les types de restriction disponibles (protection).\n;languages:Renvoie une liste des langues que supporte MédiaWiki (éventuellement localisé en utilisant <var>$1inlanguagecode</var>).\n;skins:Renvoie une liste de tous les habillages activés (éventuellement localisé en utilisant <var>$1inlanguagecode</var>, sinon dans la langue du contenu).\n;extensiontags:Renvoie une liste des balises d’extension de l’analyseur.\n;functionhooks:Renvoie une liste des accroches de fonction de l’analyseur.\n;showhooks:Renvoie une liste de toutes les accroches souscrites (contenu de <var>[[mw:Manual:$wgHooks|$wgHooks]]</var>).\n;variables:Renvoie une liste des IDs de variable.\n;protocols:Renvoie une liste des protocoles qui sont autorisés dans les liens externes.\n;defaultoptions:Renvoie les valeurs par défaut pour les préférences utilisateur.",
        "apihelp-query+siteinfo-param-filteriw": "Renvoyer uniquement les entrées locales ou uniquement les non locales de la correspondance interwiki.",
        "apihelp-query+siteinfo-param-showalldb": "Lister tous les serveurs de base de données, pas seulement celui avec la plus grande latence.",
        "apihelp-query+siteinfo-param-numberingroup": "Liste le nombre d’utilisateurs dans les groupes.",
        "apihelp-query+stashimageinfo-example-params": "Renvoie les vignettes pour deux fichiers mis en réserve",
        "apihelp-query+tags-description": "Lister les balises de modification.",
        "apihelp-query+tags-param-limit": "Le nombre maximal de balises à lister.",
-       "apihelp-query+tags-param-prop": "Quelles propriétés récupérer :\n;name:Ajoute le nom de la balise.\n;displayname:Ajoute le message système pour la balise.\n;description:Ajoute la description de la balise.\n;hitcount:Ajoute le nombre de révisions qui ont cette balise.\n;defined:Indique si la balise est définie.",
+       "apihelp-query+tags-param-prop": "Quelles propriétés récupérer :\n;name:Ajoute le nom de la balise.\n;displayname:Ajoute le message système pour la balise.\n;description:Ajoute la description de la balise.\n;hitcount:Ajoute le nombre de révisions et d’entrées du journal qui ont cette balise.\n;defined:Indique si la balise est définie.\n;source:Obtient les sources de la balise, ce qui comprend <samp>extension</samp> pour les balises définies par une extension et <samp>manual</samp> pour les balises pouvant être appliquées manuellement par les utilisateurs.\n;active:Si la balise est encore appliquée.",
        "apihelp-query+tags-example-simple": "Lister les balises disponibles",
        "apihelp-query+templates-description": "Renvoie toutes les pages incluses dans les pages fournies.",
        "apihelp-query+templates-param-namespace": "Afficher les modèles uniquement dans ces espaces de nom.",
        "apihelp-query+templates-param-limit": "Combien de modèles renvoyer.",
        "apihelp-query+templates-param-templates": "Lister uniquement ces modèles. Utile pour vérifier si une certaine page utilise un modèle donné.",
        "apihelp-query+templates-param-dir": "La direction dans laquelle lister.",
-       "apihelp-query+templates-example-simple": "Obtenir les modèles de [[Main Page]]",
+       "apihelp-query+templates-example-simple": "Obtenir les modèles utilisés sur la page <kbd>Accueil</kbd>.",
        "apihelp-query+templates-example-generator": "Obtenir des informations sur les pages modèle utilisé sur <kbd>Main Page</kbd>.",
        "apihelp-query+templates-example-namespaces": "Obtenir les pages des espaces de nom {{ns:user}} et {{ns:template}} qui sont inclues dans la page <kdb>Main Page<kdb>.",
        "apihelp-query+tokens-description": "Récupère les jetons pour les actions de modification de données.",
        "apihelp-query+users-param-users": "Une liste des utilisateurs sur lesquels obtenir de l’information.",
        "apihelp-query+users-param-token": "Utiliser plutôt <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.",
        "apihelp-query+users-example-simple": "Renvoyer des informations pour l'utilisateur <kbd>Exemple</kbd>.",
-       "apihelp-query+watchlist-description": "Obtenir les modifications récentes des pages dans la liste de suivi de l’utilisateur connecté.",
+       "apihelp-query+watchlist-description": "Obtenir les modifications récentes des pages dans la liste de suivi de l’utilisateur actuel.",
        "apihelp-query+watchlist-param-allrev": "Inclure les multiples révisions de la même page dans l’intervalle de temps fourni.",
        "apihelp-query+watchlist-param-start": "L’horodatage auquel démarrer l’énumération.",
        "apihelp-query+watchlist-param-end": "L’horodatage auquel arrêter l’énumération.",
        "apihelp-query+watchlist-example-generator": "Chercher l’information de la page sur les pages récemment modifiées de la liste de suivi de l’utilisateur actuel",
        "apihelp-query+watchlist-example-generator-rev": "Chercher l’information de la révision pour les modifications récentes des pages de la liste de suivi de l’utilisateur actuel",
        "apihelp-query+watchlist-example-wlowner": "Lister la révision de tête des pages récemment modifiées de la liste de suivi de l'utilisateur <kbd>Exemple</kbd>.",
-       "apihelp-query+watchlistraw-description": "Obtenir toutes les pages de la liste de suivi de l’utilisateur connecté.",
+       "apihelp-query+watchlistraw-description": "Obtenir toutes les pages de la liste de suivi de l’utilisateur actuel.",
        "apihelp-query+watchlistraw-param-namespace": "Lister uniquement les pages dans les espaces de nom fournis.",
        "apihelp-query+watchlistraw-param-limit": "Combien de résultats renvoyer au total par requête.",
        "apihelp-query+watchlistraw-param-prop": "Quelles propriétés supplémentaires obtenir :\n;changed:Ajoute l’horodatage de la dernière notification de l’utilisateur à propos de la modification.",
        "apihelp-revisiondelete-example-revision": "Masquer le contenu de la révision <kbd>12345</kbd> de la page <kbd>Main Page</kbd>",
        "apihelp-revisiondelete-example-log": "Masquer toutes les données de l’entrée de journal <kbd>67890</kbd> avec le motif <kbd>Violation de Biographie de Personne Vivante</kbd>.",
        "apihelp-rollback-description": "Annuler la dernière modification de la page.\n\nSi le dernier utilisateur à avoir modifié la page a fait plusieurs modifications sur une ligne, elles seront toutes annulées.",
-       "apihelp-rollback-param-title": "Titre de la page que vous voulez restaurer. Impossible à utiliser avec $1pageid.",
-       "apihelp-rollback-param-pageid": "ID de la page que vous voulez restaurer. Impossible à utiliser avec $1title.",
+       "apihelp-rollback-param-title": "Titre de la page à restaurer. Impossible à utiliser avec <var>$1pageid</var>.",
+       "apihelp-rollback-param-pageid": "ID de la page à restaurer. Impossible à utiliser avec <var>$1title</var>.",
        "apihelp-rollback-param-user": "Nom de l’utilisateur dont les modifications doivent être annulées.",
        "apihelp-rollback-param-summary": "Personnaliser le résumé de la modification. S’il est vide, le résumé par défaut sera utilisé.",
        "apihelp-rollback-param-markbot": "Marquer les modifications annulées et les modifications annulées comme robot.",
-       "apihelp-rollback-param-watchlist": "Ajouter ou supprimer la page de votre liste de suivi sans condition, utiliser les préférences ou ne pas modifier le suivi.",
+       "apihelp-rollback-param-watchlist": "Ajouter ou supprimer la page de la liste de suivi de l’utilisateur actuel sans condition, utiliser les préférences ou ne pas modifier le suivi.",
        "apihelp-rollback-example-simple": "Annuler les dernières modifications à [<kbd>Main Page</kbd> par l’utilisateur <kbd>Exemple</kbd>.",
        "apihelp-rollback-example-summary": "Annuler les dernières modifications de la page <kbd>Main Page</kbd> par l’utilisateur à l’adresse IP <kbd>192.0.2.5</kbd> avec le résumé <kbd>Annulation de vandalisme<kbd>, et marquer ces modifications et l’annulation comme modifications de robots.",
        "apihelp-rsd-description": "Exporter un schéma RSD (Découverte Très Simple).",
        "apihelp-undelete-param-reason": "Motif de restauration.",
        "apihelp-undelete-param-timestamps": "Horodatages des révisions à restaurer. Si <var>$1timestamps</var> et <var>$1fileids</var> sont vides, toutes seront restaurées.",
        "apihelp-undelete-param-fileids": "IDs des révisions de fichier à restaurer. Si <var>$1timestamps</var> et <var>$1fileids</var> sont vides, toutes seront restaurées.",
-       "apihelp-undelete-param-watchlist": "Ajouter ou supprimer la page de votre liste de suivi sans condition, utiliser les préférences ou ne pas modifier le suivi.",
+       "apihelp-undelete-param-watchlist": "Ajouter ou supprimer la page de la liste de suivi de l’utilisateur actuel sans condition, utiliser les préférences ou ne pas modifier le suivi.",
        "apihelp-undelete-example-page": "Annuler la suppression de la page <kbd>Main Page</kbd>.",
        "apihelp-undelete-example-revisions": "Annuler la suppression de deux révisions de la page <kbd>Main Page</kbd>.",
        "apihelp-upload-description": "Télécharger un fichier, ou obtenir l’état des téléchargements en cours.\n\nPlusieurs méthodes sont disponibles :\n* Télécharger directement le contenu du fichier, en utilisant le paramètre <var>$1file</var>.\n* Télécharger le fichier par morceaux, en utilsiant les paramètres <var>$1filesize</var>, <var>$1chunk</var>, and <var>$1offset</var>.* Pour que le serveur MédiaWiki cherche un fichier depuis une URL, utiliser le paramètre <var>$1url</var>.\n* Terminer un téléchargement précédent qui a échoué à cause d’avertissements, en utilisant le paramètre <var>$1filekey</var>.\nNoter que le POST HTTP doit être fait comme un téléchargement de fichier (par ex. en utilisant <code>multipart/form-data</code>) en envoyant le <code>multipart/form-data</code>.",
        "apihelp-upload-param-comment": "Télécharger le commentaire. Utilisé aussi comme texte de la page initiale pour les nouveaux fichiers si <var>$1text</var> n’est pas spécifié.",
        "apihelp-upload-param-text": "Texte de page initiale pour les nouveaux fichiers.",
        "apihelp-upload-param-watch": "Suivre la page.",
-       "apihelp-upload-param-watchlist": "Ajouter ou supprimer sans condition la page de votre liste de suivi, utiliser les préférences ou ne pas changer le suivi.",
+       "apihelp-upload-param-watchlist": "Ajouter ou supprimer sans condition la page de la liste de suivi de l’utilisateur actuel, utiliser les préférences ou ne pas changer le suivi.",
        "apihelp-upload-param-ignorewarnings": "Ignorer tous les avertissements.",
        "apihelp-upload-param-file": "Contenu du fichier.",
        "apihelp-upload-param-url": "URL où chercher le fichier.",
        "apihelp-wddx-description": "Extraire les données au format WDDX.",
        "apihelp-wddxfm-description": "Extraire les données au format WDDX (affiché proprement en HTML).",
        "apihelp-xml-description": "Extraire les données au format XML.",
-       "apihelp-xml-param-xslt": "Si spécifié, ajoute &lt;xslt&gt; comme feuille de style. Ce devrait être une page du wiki dans l’espace de noms MediaWiki dont le nom de page se termine par « .xsl ».",
+       "apihelp-xml-param-xslt": "Si spécifié, ajoute la page nommée comme une feuille de style XSL. La valeur doit être un titre dans l’espace de noms {{ns:mediawiki}} se terminant par <code>.xsl</code>.",
        "apihelp-xml-param-includexmlnamespace": "Si spécifié, ajoute un espace de noms XML.",
        "apihelp-xmlfm-description": "Extraire les données au format XML (affiché proprement en HTML).",
        "apihelp-yaml-description": "Extraire les données au format YAML.",
        "apihelp-yamlfm-description": "Extraire les données YAML (affiché proprement en HTML).",
        "api-format-title": "Résultat de l’API de MédiaWiki",
-       "api-format-prettyprint-header": "Vous regardez la représentation HTML du format $1. HTML est utile pour le débogage, mais inapproprié pour être utilisé dans une application.$2\n\nSpécifiez le paramètre format pour modifier le format de sortie. Pour voir la représentation non HTML du format $1, mettez format=$2.\n\nVoyez la [https://www.mediawiki.org/wiki/API documentation complète], ou l’ [[Special:ApiHelp/main|aide de l’API]] pour plus d’information.",
+       "api-format-prettyprint-header": "Voici la représentation HTML du format $1. HTML est utile pour le débogage, mais inapproprié pour être utilisé dans une application.$2\n\nSpécifiez le paramètre <var>format</var> pour modifier le format de sortie. Pour voir la représentation non HTML du format $1, mettez <kbd>format=$2</kbd>.\n\nVoyez la [[mw:API|documentation complète]], ou l’ [[Special:ApiHelp/main|aide de l’API]] pour plus d’information.",
        "api-orm-param-props": "Champs à rechercher.",
        "api-orm-param-limit": "Nombre maximal de lignes à renvoyer.",
        "api-pageset-param-titles": "Une liste des titres sur lesquels travailler.",
index 6d3ed76..1bee415 100644 (file)
        "apihelp-main-param-action": "Que acción se realizará.",
        "apihelp-main-param-format": "O formato de saída.",
        "apihelp-main-param-maxlag": "O retardo máximo pode usarse cando MediaWiki está instalada nun cluster de base de datos replicadas. Para gardar accións que causen calquera retardo máis de replicación do sitio, este parámetro pode facer que o cliente espere ata que o retardo de replicación sexa menor que o valor especificado. No caso de retardo excesivo, é devolto o código de erro <samp>maxlag</samp> cunha mensaxe como <samp>esperando por $host: $lag segundos de retardo</samp>.<br />Para máis información, ver [[mw:Manual:Maxlag_parameter|Manual: Maxlag parameter]].",
+       "apihelp-main-param-smaxage": "Fixar a cabeceira <code>s-maxage</code> a esos segundos. Os erros nunca se gardan na caché.",
+       "apihelp-main-param-maxage": "Fixar a cabeceira <code>max-age</code> a esos segundos. Os erros nunca se gardan na caché.",
+       "apihelp-main-param-assert": "Verificar se o usuario está conectado como <kbd>usuario</kbd> ou ten a marca de <kbd>bot</kbd>.",
        "apihelp-main-param-requestid": "Calquera valor dado aquí será incluído na resposta. Pode usarse para distingir peticións.",
        "apihelp-main-param-servedby": "Inclúa o nome do servidor que servía a solicitude nos resultados.",
        "apihelp-main-param-curtimestamp": "Incluir a marca de tempo actual no resultado.",
+       "apihelp-main-param-origin": "Cando se accede á API usando unha petición AJAX entre-dominios (CORS), inicializar o parámetro co dominio orixe. Isto debe incluírse en calquera petición pre-flight, e polo tanto debe ser parte da petición URI (non do corpo POST). Debe coincidir exactamente cunha das orixes na cabeceira <code>Origin</code>, polo que ten que ser fixado a algo como <kbd>https://en.wikipedia.org</kbd> ou <kbd>https://meta.wikimedia.org</kbd>. Se este parámetro non coincide coa cabeceira <code>Origin</code>, devolverase unha resposta 403. Se este parámetro coincide coa cabeceira <code>Origin</code> e a orixe está na lista branca, porase unha cabeceira <code>Access-Control-Allow-Origin</code>.",
+       "apihelp-main-param-uselang": "Linga a usar para a tradución de mensaxes. Pode consultarse unha lista de códigos en <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd> con <kbd>siprop=languages</kbd>, ou especificando <kbd>user</kbd> coa preferencia de lingua do usuario actual, ou especificando <kbd>content</kbd> para usar a lingua do contido desta wiki.",
        "apihelp-block-description": "Bloquear un usuario.",
        "apihelp-block-param-user": "Nome de usuario, dirección ou rango de IPs que quere bloquear.",
+       "apihelp-block-param-expiry": "Tempo de caducidade. Pode ser relativo (p. ex.<kbd>5 meses</kbd> ou <kbd>2 semanas</kbd>) ou absoluto (p. ex. 2014-09-18T12:34:56Z</kbd>). Se se pon kbd>infinite</kbd>, <kbd>indefinite</kbd>, ou <kbd>never</kbd>, o bloqueo nunca caducará.",
        "apihelp-block-param-reason": "Motivo para o bloqueo.",
        "apihelp-block-param-anononly": "Bloquear só usuarios anónimos (é dicir, desactivar edicións anónimas desta dirección IP).",
        "apihelp-block-param-nocreate": "Previr a creación de contas.",
        "apihelp-block-param-autoblock": "Bloquear automaticamente o último enderezo IP utilizado, e calquera outro enderezo desde o que intente conectarse.",
+       "apihelp-block-param-noemail": "Impide que o usuario envíe correos electrónicos a través da wiki. (Require o permiso <code>blockemail</code>).",
+       "apihelp-block-param-hidename": "Ocultar o nome de usuario do rexistro de bloqueos. (Precisa do permiso <code>hideuser</code>).",
        "apihelp-block-param-allowusertalk": "Permitir que o usuario edite a súa propia páxina de conversa (depende de <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var>).",
        "apihelp-block-param-reblock": "Se o usuario xa está bloqueado, sobreescribir o bloqueo existente.",
        "apihelp-block-param-watchuser": "Vixiar a páxina de usuario ou direccións IP e a de conversa deste usuario",
+       "apihelp-block-example-ip-simple": "Bloquear dirección IP <kbd>192.0.2.5</kbd> durante tres días coa razón <kbd>Primeiro aviso</kbd>.",
+       "apihelp-block-example-user-complex": "Bloquear indefinidamente ó usuario <kbd>Vándalo</kbd> coa razón <kbd>Vandalismo</kbd>, e impedir a creación de novas contas e envío de correos electrónicos.",
+       "apihelp-checktoken-description": "Verificar a validez dun identificador de <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>.",
+       "apihelp-checktoken-param-type": "Tipo de identificador a probar.",
+       "apihelp-checktoken-param-token": "Símbolo a testar",
+       "apihelp-checktoken-param-maxtokenage": "Tempo máximo autorizado para o identificador, en segundos.",
+       "apihelp-checktoken-example-simple": "Verificar a validez de un identificador   <kbd>csrf</kbd>.",
        "apihelp-clearhasmsg-description": "Limpar a bandeira <code>hasmsg</code> para o usuario actual",
        "apihelp-clearhasmsg-example-1": "Limpar a bandeira <code>hasmsg</code> para o usuario actual",
+       "apihelp-compare-description": "Obter as diferencias entre dúas páxinas.\n\nDebe indicar un número de revisión, un título de páxina, ou un ID de páxina tanto para \"from\" como para \"to\".",
        "apihelp-compare-param-fromtitle": "Primeiro título para comparar.",
        "apihelp-compare-param-fromid": "Identificador da primeira páxina a comparar.",
        "apihelp-compare-param-fromrev": "Primeira revisión a comparar.",
        "apihelp-createaccount-param-name": "Nome de usuario.",
        "apihelp-createaccount-param-password": "Contrasinal (ignorado se <var>$1mailpassword</var> está activo)",
        "apihelp-createaccount-param-domain": "Dominio para autenticación externa (opcional)",
+       "apihelp-createaccount-param-token": "Símbolo de creación de conta obtido á primeira.",
        "apihelp-createaccount-param-email": "Enderezo de correo eletrónico do usuario (opcional).",
        "apihelp-createaccount-param-realname": "Nome real do usuario (opcional).",
        "apihelp-createaccount-param-mailpassword": "Se se establece calquera valor, enviarase un contrasinal aleatorio ao usuario.",
+       "apihelp-createaccount-param-reason": "Razón opcional de creación da conta para gardar nos rexistros.",
+       "apihelp-createaccount-param-language": "Código de lingua para usar como defecto polo usuario (de xeito opcional, usarase a lingua por defecto)",
        "apihelp-createaccount-example-pass": "Crear usuario <kbd>testuser</kbd> con contrasinal <kbd>test123</kbd>.",
        "apihelp-createaccount-example-mail": "Crear usuario <kbd>testmailuser</kbd>\"testmailuser\" e enviar por correo electrónico un contrasinal xenerado de forma aleatoria.",
        "apihelp-delete-description": "Borrar a páxina.",
@@ -48,7 +67,9 @@
        "apihelp-delete-param-pageid": "Identificador da páxina a eliminar. Non pode usarse xunto con <var>$1title</var>.",
        "apihelp-delete-param-reason": "Razón para o borrado. Se non se indica, usarase unha razón xenerada automaticamente.",
        "apihelp-delete-param-watch": "Engadir esta páxina á lista de vixilancia do usuario actual.",
+       "apihelp-delete-param-watchlist": "Engadir ou eliminar sen condicións a páxina da lista de vixiancia do usuario actual, use as preferencias ou non cambie a vixiancia.",
        "apihelp-delete-param-unwatch": "Eliminar esta páxina da lista de vixilancia do usuario actual.",
+       "apihelp-delete-param-oldimage": "Nome da imaxe antiga a borrar como se proporciona en [[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]].",
        "apihelp-delete-example-simple": "Borrar <kbd>Main Page</kbd>.",
        "apihelp-delete-example-reason": "Eliminar <kbd>Main Page</kbd>  coa razón <kbd>Preparing for move</kbd>.",
        "apihelp-disabled-description": "Este módulo foi desactivado.",
        "apihelp-edit-param-section": "Número de selección. O <kbd>0</kbd> é para a sección superior, <kbd>new</kbd> para unha sección nova.",
        "apihelp-edit-param-sectiontitle": "Título para unha nova sección.",
        "apihelp-edit-param-text": "Contido da páxina.",
+       "apihelp-edit-param-summary": "Resumo de edición. Tamén título de sección cando $1section=new e $1sectiontitle non está definido.",
        "apihelp-edit-param-minor": "Edición pequena.",
        "apihelp-edit-param-notminor": "Edición non pequena.",
        "apihelp-edit-param-bot": "Marcar esta edición como de bot.",
+       "apihelp-edit-param-basetimestamp": "Selo de tempo da revisión de base, usado para detectar conflitos de edición. Pode obterse con [[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]].",
+       "apihelp-edit-param-starttimestamp": "Selo de tempo do comezo do proceso de edición, usado para detectar conflitos de edición. Pode obterse un valor axeitado usando <var>[[Special:ApiHelp/main|curtimestamp]]</var> cando se comeza o proceso de edición (p.ex. cando se carga o contido da páxina a editar).",
+       "apihelp-edit-param-recreate": "Ignorar todos os erros da páxina mentres está a ser borrada.",
        "apihelp-edit-param-createonly": "Non editar a páxina se xa existe.",
        "apihelp-edit-param-nocreate": "Amosar un mensaxe de erro se a páxina non existe",
        "apihelp-edit-param-watch": "Engadir esta páxina á lista de vixilancia do usuario actual.",
        "apihelp-edit-param-unwatch": "Eliminar esta páxina da lista de vixilancia do usuario actual.",
+       "apihelp-edit-param-watchlist": "Engadir ou eliminar sen condicións a páxina da lista de vixiancia do usuario actual, use as preferencias ou non cambie a vixiancia.",
+       "apihelp-edit-param-md5": "A función hash MD5 do parámetro $1text, ou dos parámetros $1prependtext e $1appendtext concatenados. Se está definida, non se fará a edición ata que a función hash sexa correcta.",
        "apihelp-edit-param-prependtext": "Engadir este texto ao comezo da páxina. Sobreescribirase $1text.",
+       "apihelp-edit-param-appendtext": "Engadir este texto no final da páxina. Ignorar $1text.\n\nUse $1section=new para engadir unha nova sección, máis que este parámetro.",
+       "apihelp-edit-param-undo": "Desfacer esta revisión. Ignorar $1text, $1prependtext e $1appendtext.",
+       "apihelp-edit-param-undoafter": "Desfacer tódalas revisións dende $1undo ata esta. Se non está definido, só desfacer unha revisión.",
        "apihelp-edit-param-redirect": "Resolver redireccións automáticamente",
+       "apihelp-edit-param-contentformat": "Formato de serialización de contido utilizado para o texto de entrada.",
+       "apihelp-edit-param-contentmodel": "Modelo de contido para o novo contido.",
+       "apihelp-edit-param-token": "O identificador debería enviarse empre como o último parámetro, ou polo menos despois do parámetro $1text.",
        "apihelp-edit-example-edit": "Editar a páxina",
+       "apihelp-edit-example-prepend": "Antepor <kbd>_&#95;NOTOC_&#95;</kbd> a unha páxina.",
+       "apihelp-edit-example-undo": "Desfacer revisións 13579 a 13585 con resumo automático.",
        "apihelp-emailuser-description": "Enviar un correo electrónico a un usuario.",
        "apihelp-emailuser-param-target": "Usuario ó que lle mandar correo electrónico.",
        "apihelp-emailuser-param-subject": "Asunto.",
        "apihelp-emailuser-param-text": "Corpo do correo.",
        "apihelp-emailuser-param-ccme": "Enviarme unha copia deste correo.",
+       "apihelp-emailuser-example-email": "Enviar un correo electrónico ó usuario <kbd>Administrador da wiki</kbd> co texto <kbd>Contido</kbd>.",
        "apihelp-expandtemplates-description": "Expandir tódolos modelos en wikitexto.",
        "apihelp-expandtemplates-param-title": "Título da páxina.",
        "apihelp-expandtemplates-param-text": "Sintaxis wiki a converter.",
+       "apihelp-expandtemplates-param-revid": "ID de revisión, para <nowiki>{{REVISIONID}}</nowiki> e variables similares.",
+       "apihelp-expandtemplates-param-prop": "Pezas de información a retornar:\n;wikitext:O texto wiki expandido.\n;categories:Calquer categoría presente na entrada que non estea representada na saída do texto wiki\n;properties:Propiedades da páxina definidas por palabras máxicas expandidas no texto wiki\n;volatile:Definir se a saída é volátil e se non debe usarse noutra parte da páxina.\n;ttl:Tempo máximo a partir do cal os cachés do resultado deben invalidarse.\n;parsetree:O análise sintáctico en árbore do XML de entrada.\nTeña en conta que se non se selecciona ningún valor o resultado conterá o texto wiki, pero a saída estará nun formato desprezado.",
+       "apihelp-expandtemplates-param-includecomments": "Cando queria incluír comentarios HTML na saída.",
+       "apihelp-expandtemplates-param-generatexml": "Xenerar árbore de análise XML (reemprazado por $1prop=parsetree).",
+       "apihelp-expandtemplates-example-simple": "Expandir o wikitexto <kbd><nowiki>{{Project:Sandbox}}</nowiki></kbd>.",
        "apihelp-feedcontributions-description": "Devolve a lista de contribucións dun usuario.",
+       "apihelp-feedcontributions-param-feedformat": "O formato de alimentación.",
+       "apihelp-feedcontributions-param-user": "Para que usuarios recuperar as contribucións.",
+       "apihelp-feedcontributions-param-namespace": "Que espazo de nomes filtrar polas contribucións.",
        "apihelp-feedcontributions-param-year": "Desde o ano (e anteriores).",
        "apihelp-feedcontributions-param-month": "Desde o mes de (e anteriores).",
        "apihelp-feedcontributions-param-tagfilter": "Filtrar as contribucións que teñan estas etiquetas.",
        "apihelp-feedcontributions-param-newonly": "Mostrar só as edicións que crearon páxinas.",
        "apihelp-feedcontributions-param-showsizediff": "Mostrar diferenza de tamaño entre edicións.",
        "apihelp-feedcontributions-example-simple": "Mostrar as contribucións do usuario <kbd>Example</kbd>.",
+       "apihelp-feedrecentchanges-description": "Devolve un ficheiro de cambios recentes.",
+       "apihelp-feedrecentchanges-param-feedformat": "O formato da saída.",
+       "apihelp-feedrecentchanges-param-namespace": "Espazo de nomes ó que limitar os resultados.",
        "apihelp-feedrecentchanges-param-invert": "Tódolos nomes de espazos agás o seleccionado",
+       "apihelp-feedrecentchanges-param-associated": "Incluir o espazo de nomes asociado (conversa ou principal).",
        "apihelp-feedrecentchanges-param-days": "Días a limitar os resultados",
        "apihelp-feedrecentchanges-param-limit": "Número máximo de resultados a visualizar.",
        "apihelp-feedrecentchanges-param-from": "Mostrar modificacións desde entón.",
        "apihelp-feedrecentchanges-param-showlinkedto": "Mostrar os cambios nas páxinas ligadas coa páxina seleccionada.",
        "apihelp-feedrecentchanges-example-simple": "Mostrar os cambios recentes",
        "apihelp-feedrecentchanges-example-30days": "Mostrar os cambios recentes limitados a 30 días",
+       "apihelp-feedwatchlist-description": "Devolve o fluxo dunha lista de vixiancia.",
+       "apihelp-feedwatchlist-param-feedformat": "O formato da saída.",
+       "apihelp-feedwatchlist-param-hours": "Lista as páxinas modificadas desde estas horas ata agora.",
+       "apihelp-feedwatchlist-param-linktosections": "Ligar directamente ás seccións modificadas se é posible.",
+       "apihelp-feedwatchlist-example-default": "Mostar o fluxo da lista de vixiancia.",
        "apihelp-feedwatchlist-example-all6hrs": "Amosar tódolos cambios feitos ás páxinas vixiadas nas últimas 6 horas.",
        "apihelp-filerevert-description": "Revertir o ficheiro a unha versión anterior.",
        "apihelp-filerevert-param-filename": "Nome de ficheiro final, sen o prefixo Ficheiro:",
        "apihelp-filerevert-param-comment": "Comentario de carga.",
        "apihelp-filerevert-param-archivename": "Nome de ficheiro da revisión á que reverter.",
+       "apihelp-filerevert-example-revert": "Reverter <kbd>Wiki.png</kbd> á versión do <kbd>2011-03-05T15:27:40Z</kbd>.",
        "apihelp-help-description": "Mostrar axuda para os módulos indicados.",
+       "apihelp-help-param-modules": "Módulos para mostar axuda (valores dos parámetros <var>acción</var> e <var>formato</var>, ou <kbd>principal</kbd>). Pode especificar submódulos con un <kbd>+</kbd>.",
        "apihelp-help-param-submodules": "Incluír axuda para os submódulos do módulo nomeado.",
        "apihelp-help-param-recursivesubmodules": "Incluír axuda para os submódulos de forma recursiva.",
        "apihelp-help-param-helpformat": "Formato de saída da axuda.",
+       "apihelp-help-param-wrap": "Incluír a saída nunha estrutura de resposta API estándar.",
        "apihelp-help-param-toc": "Incluír unha táboa de contidos na saída por HTML",
        "apihelp-help-example-main": "Axuda para o módulo principal",
        "apihelp-help-example-recursive": "Toda a axuda nunha páxina",
        "apihelp-help-example-help": "Axuda do módulo de axuda en si",
+       "apihelp-help-example-query": "Axuda para dous submódulos de consulta.",
        "apihelp-imagerotate-description": "Xirar unha ou máis imaxes.",
        "apihelp-imagerotate-param-rotation": "Graos a rotar a imaxe no sentido do reloxio.",
        "apihelp-imagerotate-example-simple": "Rotar <kbd>File:Example.png</kbd> <kbd>90</kbd> graos.",
        "apihelp-imagerotate-example-generator": "Rotar tódalas imaxes en <kbd>Category:Flip</kbd> <kbd>180</kbd> graos",
+       "apihelp-import-description": "Importar unha páxina doutra wiki, ou nun ficheiro XML.\n\nDecátese de que o POST HTTP debe facerse como unha carga de ficheiro (p. ex. usando multipart/form-data) cando se envíe un ficheiro para o parámetro <var>xml</var>.",
        "apihelp-import-param-summary": "Resume de importación.",
        "apihelp-import-param-xml": "Subido ficheiro XML.",
        "apihelp-import-param-interwikisource": "Para importacións interwiki: wiki da que importar.",
        "apihelp-import-param-templates": "Para importacións interwiki: importar tódolos modelos incluídos.",
        "apihelp-import-param-namespace": "Para importacións interwiki: importar a este espazo de nomes.",
        "apihelp-import-param-rootpage": "Importar como subpáxina desta páxina.",
+       "apihelp-import-example-import": "Importar [[meta:Help:Parserfunctions]] ó espazo de nomes 100 con todo o historial.",
+       "apihelp-login-description": "No caso dunha conexión correcta, as cookies necesarias incluiranse nas cabeceiras HTTP de resposta. No caso dunha conexión fallida, os intentos posteriores poden ser reducidos para limitar ataques automaticos de roubo de contrasinais.",
        "apihelp-login-param-name": "Nome de usuario.",
        "apihelp-login-param-password": "Contrasinal",
        "apihelp-login-param-domain": "Dominio (opcional).",
+       "apihelp-login-param-token": "Identificador de conexión obtido na primeira petición.",
+       "apihelp-login-example-gettoken": "Recuperar un identificador de conexión.",
        "apihelp-login-example-login": "Identificarse",
        "apihelp-logout-description": "Terminar e limpar datos de sesión.",
+       "apihelp-logout-example-logout": "Cerrar a sesión do usuario actual",
        "apihelp-managetags-description": "Realizar tarefas de xestión relacionadas coa modificación de etiquetas.",
+       "apihelp-managetags-param-operation": "Que operación realizar:\n;create:Crear unha nova etiqueta de modificación para uso manual.\n;delete:Borar unha etiqueta de modificación da base de datos, incluíndo o borrado da etiqueta de todas as revisións, entradas de cambios recentes e entradas de rexistro onde estea a usarse.\n;activate:Activar unha etiqueta de modificación, permitindo que os usuarios a usen manualmente.\n;deactivate:Desactivar unha etiqueta de modificación, impedindo que os usuarios a usen manualmente.",
+       "apihelp-managetags-param-tag": "Etiqueta para crear, borrar, activar ou desactivar. Para a creación da etiqueta, a etiqueta non pode existir previamente. Para o borrado da etiqueta, a etiqueta debe existir. Para a activación da etiqueta, a etiqueta debe existir e non pode ser usada por unha extensión. Para desactivar unha etiqueta, a etiqueta debe estar activa e definida manualmente.",
+       "apihelp-managetags-param-reason": "Un motivo opcional para crear, borrar, activar ou desactivar a etiqueta.",
+       "apihelp-managetags-param-ignorewarnings": "Ignorar calquera aviso que apareza durante a operación.",
+       "apihelp-managetags-example-create": "Crear unha etiqueta chamada <kbd>publicidade</kbd> coa razón <kbd>Para usar en vixiancia de edicións</kbd>",
+       "apihelp-managetags-example-delete": "Borrar a etiqueta <kbd>vandalismo</kbd> coa razón <kbd>Erros ortográficos</kbd>",
+       "apihelp-managetags-example-activate": "Activar a etiqueta chamada <kbd>publicidade</kbd> coa razón <kbd>Para usar en vixiancia de edicións</kbd>",
+       "apihelp-managetags-example-deactivate": "Desactivar a etiqueta chamada <kbd>publicidade</kbd> coa razón <kbd>Xa non é necesaria</kbd>",
        "apihelp-move-description": "Mover unha páxina.",
        "apihelp-move-param-from": "Título da páxina que quere renomear. Non pode usarse xunto con <var>$1fromid</var>.",
        "apihelp-move-param-fromid": "Identificador da páxina que quere renomear. Non pode usarse xunto con <var>$1from</var>.",
        "apihelp-move-param-noredirect": "Non crear unha redirección.",
        "apihelp-move-param-watch": "Engadir a páxina e a redirección á páxina de vixiancia do usuario actual.",
        "apihelp-move-param-unwatch": "Eliminar a páxina e a redirección da páxina de vixiancia do usuario actual.",
+       "apihelp-move-param-watchlist": "Engadir ou eliminar sen condicións a páxina da lista de vixiancia do usuario actual, use as preferencias ou non cambie a vixiancia.",
        "apihelp-move-param-ignorewarnings": "Ignorar as advertencias.",
        "apihelp-move-example-move": "Mover <kbd>Títulomalo</kbd> a <kbd>Títulobo</kbd> sen deixar unha redirección.",
        "apihelp-opensearch-description": "Buscar no wiki mediante o protocolo OpenSearch.",
        "apihelp-opensearch-param-search": "Buscar texto.",
        "apihelp-opensearch-param-limit": "Número máximo de resultados a visualizar.",
        "apihelp-opensearch-param-namespace": "Espazo de nomes no que buscar.",
+       "apihelp-opensearch-param-suggest": "Non facer nada se <var>[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> é falso.",
+       "apihelp-opensearch-param-redirects": "Como xestionar as redireccións:\n;return:Devolve a mesma redirección.\n;resolve:Devolve a páxina á que apunta. Pode devolver menos de $1limit resultados.\nPor razóns históricas, o valor por defecto para $1format=json é \"return\" e \"resolve\" para outros formatos.",
        "apihelp-opensearch-param-format": "O formato de saída.",
        "apihelp-opensearch-example-te": "Atopar páxinas que comezan por <kbd>Te</kbd>.",
+       "apihelp-options-description": "Cambiar as preferencias do usuario actual.\n\nSó se poden cambiar opcións que estean rexistradas no núcleo ou nunha das extensións instaladas, ou opcións con claves prefixadas con \"userjs-\" (previstas para ser usadas por scripts de usuario).",
        "apihelp-options-param-reset": "Reiniciar preferencias ás iniciais do sitio.",
+       "apihelp-options-param-resetkinds": "Lista de tipos de opcións a reinicializar cando a opción <var>$1reset</var> está definida.",
+       "apihelp-options-param-change": "Lista de cambios, con formato nome=valor (p. ex. skin=vector). O valor non pode ter caracteres de barra vertical. Se non se indica un valor (sen u signo igual), p. ex. nomeopcion|outraopcion|..., a opción será gardada co seu valor por defecto.",
+       "apihelp-options-param-optionname": "Nome dunha opción que debe ser fixado ó valor dado por <var>$1optionvalue</var>.",
+       "apihelp-options-param-optionvalue": "Valor da opción especificada por <var>$1optionname</var>, pode conter o caracter da barra vertical.",
        "apihelp-options-example-reset": "Restablecer tódaalas preferencias",
+       "apihelp-options-example-change": "Cambiar as preferencias <kbd>skin</kbd> and <kbd>hideminor</kbd>.",
+       "apihelp-options-example-complex": "Restaurar todas as preferencias, logo fixar <kbd>skin</kbd> e <kbd>nickname</kbd>.",
        "apihelp-paraminfo-description": "Obter información sobre módulos API.",
+       "apihelp-paraminfo-param-modules": "Lista de nomes de módulos (valores dos parámetros <var>acción</var e <var>formato</var>, ou <kbd>principal</kbd>). Pode especificar submódulos con <kbd>+</kbd>.",
+       "apihelp-paraminfo-param-helpformat": "Formato das cadeas de axuda.",
+       "apihelp-paraminfo-param-querymodules": "Lista dos nomes de módulos de consulta (valores dos parámetros <var>prop</var>, <var>meta</var> ou <var>list</var>). Use <kbd>$1modules=query+foo</kbd> no canto de <kbd>$1querymodules=foo</kbd>.",
+       "apihelp-paraminfo-param-mainmodule": "Obter información sobre o módulo principal (nivel superior). No canto use <kbd>$1modules=main</kbd>.",
+       "apihelp-paraminfo-param-pagesetmodule": "Obter información sobre o módulo pageset (proporcionando títulos= e amigos).",
+       "apihelp-paraminfo-param-formatmodules": "Lista dos nomes de módulo de formato (valores do parámetro <var>formato</var>). No canto use <var>$1modules</kbd>.",
+       "apihelp-paraminfo-example-1": "Amosar información para <kbd>[[Special:ApiHelp/parse|action=parse]]</kbd>, <kbd>[[Special:ApiHelp/jsonfm|format=jsonfm]]</kbd>, <kbd>[[Special:ApiHelp/query+allpages|action=query&list=allpages]]</kbd>, e <kbd>[[Special:ApiHelp/query+siteinfo|action=query&meta=siteinfo]]</kbd>.",
+       "apihelp-parse-param-title": "Título da páxina á que pertence o texto. Se non se indica, debe especificarse <var>$1contentmodel</var>, e [[API]] usarase como o título.",
+       "apihelp-parse-param-text": "Texto a analizar. Use <var>$1title</var> ou <var>$1contentmodel</var> para controlar o modelo de contido.",
+       "apihelp-parse-param-summary": "Resumo a analizar.",
+       "apihelp-parse-param-page": "Analizar o contido desta páxina. Non pode usarse de forma conxunta con <var>$1text</var> e <var>$1title</var>.",
+       "apihelp-parse-param-pageid": "Analizar o contido desta páxina. Ignora <var>$1page</var>.",
+       "apihelp-parse-param-redirects": "Se <var>$1page</var> ou <var>$1pageid</var> apuntar a unha redirección, resólvea.",
+       "apihelp-parse-param-oldid": "Analizar o contido desta revisión. Ignora <var>$1page</var> e <var>$1pageid</var>.",
+       "apihelp-parse-param-pst": "Fai unha transformación antes de gardar a entrada antes de analizala. Válida unicamente para usar con texto.",
+       "apihelp-parse-param-onlypst": "Facer unha transformación antes de gardar (PST) a entrada, pero sen analizala. Devolve o mesmo wikitexto, despois de que a PST foi aplicada. Só válida cando se usa con <var>$1text</var>.",
+       "apihelp-parse-param-effectivelanglinks": "Inclúe ligazóns de idioma proporcionadas polas extensións (para usar con <kbd>$1prop=langlinks</kbd>).",
+       "apihelp-parse-param-section": "Recuperar unicamente o contido deste número de sección ou cando <kbd>new</kbd> xera unha nova sección.\n\nA sección <kbd>new</kbd> só é atendida cando se especifica <var>text</var>.",
+       "apihelp-parse-param-sectiontitle": "Novo título de sección cando <var>section</var> é <kbd>new</kbd>.\n\nA diferenza da edición de páxinas, non se oculta no <var>summary</var> cando se omite ou está baleiro.",
+       "apihelp-parse-param-disablepp": "Desactivar o informe PP da saída do analizador.",
+       "apihelp-parse-param-disableeditsection": "Desactivar as ligazóns de edición de sección da saída do analizador.",
+       "apihelp-parse-param-generatexml": "Xenerar unha árbore de análise XML (necesita o modelo de contido <code>$1</code>).",
+       "apihelp-parse-param-preview": "Analizar en modo vista previa.",
+       "apihelp-parse-param-sectionpreview": "Analizar en modo vista previa de sección (activa tamén o modo de vista previa).",
+       "apihelp-parse-param-disabletoc": "Desactiva o índice na saída.",
+       "apihelp-parse-param-contentformat": "Formato de serialización do contido usado para o texto de entrada. Só válido cando se usa con $1text.",
+       "apihelp-parse-param-contentmodel": "Modelo de contido do texto de entrada. Se se omite, debe especificarse $1title, e o valor por defecto será o modelo do título especificado. Só válido cando se usa con $1text.",
+       "apihelp-parse-example-page": "Analizar unha páxina.",
+       "apihelp-parse-example-text": "Analizar un wikitexto.",
+       "apihelp-parse-example-texttitle": "Analizar wikitexto, especificando o título da páxina.",
+       "apihelp-parse-example-summary": "Analizar un resumo.",
        "apihelp-patrol-description": "Patrullar unha páxina ou edición.",
+       "apihelp-patrol-param-rcid": "ID de modificación recente a vixiar.",
+       "apihelp-patrol-param-revid": "ID de revisión a vixiar.",
        "apihelp-patrol-example-rcid": "Patrullar un cambio recente",
        "apihelp-patrol-example-revid": "Patrullar unha revisión",
+       "apihelp-protect-description": "Cambiar o nivel de protección dunha páxina.",
        "apihelp-protect-param-title": "Título da páxina que quere (des)protexer. Non pode usarse xunto con $1pageid.",
        "apihelp-protect-param-pageid": "Identificador da páxina que quere (des)protexer. Non pode usarse xunto con $1title.",
+       "apihelp-protect-param-protections": "Lista dos niveis de protección, con formato <kbd>action=level</kbd> (p.ex. <kbd>edit=sysop</kbd>).\n\n<strong>Nota:</strong> Todas as accións que non estean listadas terán restriccións para ser eliminadas.",
+       "apihelp-protect-param-expiry": "Selos de tempo de caducidade. Se só se indica un selo de tempo, usarase para todas as proteccións. Use <kbd>infinite</kbd>, <kbd>indefinite</kbd>, <kbd>infinity</kbd>, ou <kbd>never</kbd>, para unha protección sen caducidade.",
        "apihelp-protect-param-reason": "Razón para (des)protexer.",
+       "apihelp-protect-param-cascade": "Activar protección en cascada (p. ex. protexer páxinas incluídas nesta páxina). Ignorado se todos os niveis de protección proporcionados non permiten o uso en cascada.",
        "apihelp-protect-param-watch": "Se se define este parámetro, engadir a páxina que se (des)protexe á lista de vixilancia do usuario actual.",
+       "apihelp-protect-param-watchlist": "Engadir ou eliminar sen condicións a páxina da lista de vixiancia do usuario actual, use as preferencias ou non cambie a vixiancia.",
        "apihelp-protect-example-protect": "Protexer unha páxina",
+       "apihelp-protect-example-unprotect": "Desprotexer unha páxina poñendo as restricións a <kbd>all</kbd>.",
+       "apihelp-protect-example-unprotect2": "Desprotexer unha páxina quitando as restricións.",
+       "apihelp-purge-description": "Borrar a caché para os títulos indicados.\n\nPrecisa dunha petición POST se o usuario non está conectado.",
        "apihelp-purge-param-forcelinkupdate": "Actualizar as táboas de ligazóns.",
+       "apihelp-purge-param-forcerecursivelinkupdate": "Actualizar a táboa de ligazóns, e actualizar as táboas de ligazóns para calquera páxina que use esta páxina como modelo.",
        "apihelp-purge-example-simple": "Purgar a <kbd>Páxina Principal</kbd> e páxina da <kbd>API</kbd>.",
        "apihelp-purge-example-generator": "Purgar as primeiras 10 páxinas no espazo de nomes principal.",
+       "apihelp-query-description": "Consultar datos de e sobre MediaWiki.\n\nTodas as modificacións de datos primeiro teñen que facer unha busca para obter un identificador para evitar  abusos de sitios maliciosos.",
+       "apihelp-query-param-prop": "Que propiedades obter para as páxinas buscadas.",
+       "apihelp-query-param-list": "Que lista obter.",
+       "apihelp-query-param-meta": "Que metadatos obter.",
+       "apihelp-query-param-indexpageids": "Incluir una sección adicional de identificadores de páxina listando todos os IDs das páxinas devoltas.",
+       "apihelp-query-param-export": "Exportar as revisións actuais de todas as páxinas dadas ou xeneradas.",
+       "apihelp-query-param-exportnowrap": "Devolver o XML exportado sen incluílo nun resultado XML (mesmo formato que [[Special:Export]]). Só pode usarse con  $1export.",
+       "apihelp-query-param-iwurl": "Se fai falta obter a URL completa se o título é unha ligazón interwiki.",
+       "apihelp-query-param-continue": "Cando está presente, formatea query-continue como pares clave-valor que simplemente serán mesturados na consulta orixinal. Este parámetro debe fixarse a unha cadea baleira na consulta inicial.\n\nEste parámetro está recomendado para todos os novos desenvolvementos, e será o usado por defecto na seguinte versión da API.",
+       "apihelp-query-param-rawcontinue": "Actualmente ignorado. No futuro, <var>$1continue</var> virá por defecto e será necesario para recibir os datos en bruto de <samp>query-continue</samp>.",
+       "apihelp-query-example-revisions": "Consultar [[Special:ApiHelp/query+siteinfo|información do sitio]] e [[Special:ApiHelp/query+revisions|as revisións]] da <kbd>Páxina Principal</kbd>.",
+       "apihelp-query-example-allpages": "Buscar revisións de páxinas que comecen por <kbd>API/</kbd>.",
        "apihelp-query+allcategories-description": "Numerar tódalas categorías",
+       "apihelp-query+allcategories-param-from": "Categoría pola que comezar a enumeración.",
+       "apihelp-query+allcategories-param-to": "Categoría pola que rematar a enumeración.",
+       "apihelp-query+allcategories-param-prefix": "Buscar todos os títulos de categoría que comezan con este valor.",
+       "apihelp-query+allcategories-param-dir": "Dirección na que ordenar.",
+       "apihelp-query+allcategories-param-min": "Devolver só categorías con polo menos este número de membros.",
+       "apihelp-query+allcategories-param-max": "Devolver só categorías con como moito este número de membros.",
+       "apihelp-query+allcategories-param-limit": "Cantas categorías devolver.",
+       "apihelp-query+allcategories-param-prop": "Que propiedades recuperar:\n;size: Engade o número de páxinas na categoría.\n;hidden: Marca as categorías que están ocultas con _&#95;HIDDENCAT_&#95;.",
+       "apihelp-query+allcategories-example-size": "Listar categorías con información do número de páxinas en cada unha.",
+       "apihelp-query+allcategories-example-generator": "Obter información sobre a páxina de categoría para categorías que comezan por <kbd>List</kbd>.",
+       "apihelp-query+alldeletedrevisions-description": "Listar todas as revisións borradas por un usuario ou nun espazo de nomes.",
+       "apihelp-query+alldeletedrevisions-paraminfo-useronly": "Só pode usarse con <var>$3user</var>.",
        "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "Non pode usarse con <var>$3user</var>.",
        "apihelp-query+alldeletedrevisions-param-start": "Selo de tempo para comezar a enumeración.",
        "apihelp-query+alldeletedrevisions-param-end": "Selo de tempo para rematar a enumeración.",
        "apihelp-query+alldeletedrevisions-param-user": "Só listar revisións deste usuario.",
        "apihelp-query+alldeletedrevisions-param-excludeuser": "Non listar revisións deste usuario.",
        "apihelp-query+alldeletedrevisions-param-namespace": "Só listar páxinas neste espazo de nomes.",
+       "apihelp-query+alldeletedrevisions-param-miser-user-namespace": "<strong>Nota:</strong> Debido ó [[mw:Manual:$wgMiserMode|modo minimal]], ó usar á vez <var>$1user</var> e <var>$1namespace</var> pode devolver menos resultados de <var>$1limit</var> antes de continuar, en casos extremos, pode que non devolva resultados.",
+       "apihelp-query+alldeletedrevisions-param-generatetitles": "Usado como xenerador, xenera títulos no canto de IDs de revisión.",
        "apihelp-query+alldeletedrevisions-example-user": "Listar as últimas 50 contribucións borradas do usuario <kbd>Exemplo<kbd>.",
        "apihelp-query+alldeletedrevisions-example-ns-main": "Listar as 50 primeiras revisións borradas no espazo de nomes principal.",
+       "apihelp-query+allfileusages-description": "Lista todos os usos de ficheiro, incluído os que non existen.",
        "apihelp-query+allfileusages-param-from": "Título do ficheiro no que comezar a enumerar.",
        "apihelp-query+allfileusages-param-to": "Título do ficheiro no que rematar de enumerar.",
        "apihelp-query+allfileusages-param-prefix": "Buscar tódolos títulos de ficheiro que comezan con este valor.",
+       "apihelp-query+allfileusages-param-unique": "Mostrar só nomes de ficheiro distintos. Non pode usarse con $1prop=ids.\nCando se usa como xenerador, produce páxinas obxectivo no canto de páxinas fonte.",
+       "apihelp-query+allfileusages-param-prop": "Que partes de información incluír:\n;ids:Engade o ID de páxina usada (non pode usarse con $1unique).\n;title:Engade o nome do ficheiro.",
        "apihelp-query+allfileusages-param-limit": "Número total de obxectos a devolver.",
        "apihelp-query+allfileusages-param-dir": "Dirección na cal listar.",
+       "apihelp-query+allfileusages-example-B": "Lista títulos de ficheiro, incluíndo os   eliminados, cos IDs de páxina dos que proveñen, comezando en <kbd>B</kbd>.",
        "apihelp-query+allfileusages-example-unique": "Listar títulos únicos de ficheiros.",
+       "apihelp-query+allfileusages-example-unique-generator": "Obter todos os títulos de ficheiro, marcando os eliminados.",
+       "apihelp-query+allfileusages-example-generator": "Obtén as páxinas que conteñen os ficheiros.",
        "apihelp-query+allimages-description": "Enumerar tódalas imaxes secuencialmente.",
-       "apihelp-query+allimages-param-sort": "Propiedade pol que ordenar.",
+       "apihelp-query+allimages-param-sort": "Propiedade pola que ordenar.",
        "apihelp-query+allimages-param-dir": "Dirección na cal listar.",
+       "apihelp-query+allimages-param-from": "Título da imaxe no que comezar a enumerar. Só pode usarse con $1sort=name.",
+       "apihelp-query+allimages-param-to": "Título da imaxe no que rematar a enumerar. Só pode usarse con $1sort=name.",
+       "apihelp-query+allimages-param-start": "Título do selo de tempo no que comezar a enumerar. Só pode usarse con $1sort=timestamp.",
+       "apihelp-query+allimages-param-end": "Título do selo de tempo no que rematar a enumerar. Só pode usarse con $1sort=timestamp.",
+       "apihelp-query+allimages-param-prefix": "Buscar todas as imaxes cuxo título comeza por este valor. Só pode usarse con $1sort=name.",
+       "apihelp-query+allimages-param-minsize": "Limitar a imaxes con polo menos este número de bytes.",
+       "apihelp-query+allimages-param-maxsize": "Limitar a imaxes con como máximo este número de bytes.",
+       "apihelp-query+allimages-param-sha1": "Función hash SHA1 da imaxe. Invalida $1sha1base36.",
+       "apihelp-query+allimages-param-sha1base36": "Función hash SHA1 da imaxe en base 36 (usada en MediaWiki).",
        "apihelp-query+allimages-param-user": "Mostrar só ficheiros subidos por este usuario. Só pode usarse con $1sort=timestamp. Non se pode usar xunto a $1filterbots.",
        "apihelp-query+allimages-param-filterbots": "Como filtrar ficheiros subidos por bots. Só pode usarse con $1sort=timestamp. Non pode usarse xunto con $1user.",
        "apihelp-query+allimages-param-mime": "Que tipos MIME  buscar, por exemplo <kbd>imaxe/jpeg</kbd>.",
        "apihelp-query+allimages-param-limit": "Cantas imaxes mostar en total.",
+       "apihelp-query+allimages-example-B": "Mostrar unha lista de ficheiros que comezan por <kbd>B</kbd>.",
+       "apihelp-query+allimages-example-recent": "Mostrar unha lista de ficheiros subidos recentemente, similares a [[Special:NewFiles]].",
+       "apihelp-query+allimages-example-mimetypes": "Mostrar unha lista de ficheiros con tipo MIME <kbd>image/png</kbd> ou <kbd>image/gif</kbd>",
+       "apihelp-query+allimages-example-generator": "Mostar información sobre catro ficheiros que comecen pola letra <kbd>T</kbd>.",
        "apihelp-query+alllinks-description": "Numerar tódalas ligazóns que apuntan a un nome de espazos determinado.",
        "apihelp-query+alllinks-param-from": "Título da ligazón na que comezar a enumerar.",
        "apihelp-query+alllinks-param-to": "Título da ligazón na que rematar de enumerar.",
        "apihelp-query+alllinks-param-prefix": "Buscar tódolos títulos ligados que comezan con este valor.",
+       "apihelp-query+alllinks-param-unique": "Mostrar só títulos ligados distintos. Non pode usarse con <kbd>$1prop=ids</kbd>.\nCando se usa como xenerador, produce páxinas obxectivo no canto de páxinas fonte.",
+       "apihelp-query+alllinks-param-prop": "Que partes de información incluír:\n;ids: Engade o ID da páxina da ligazón (non pode usarse con <var>$1unique</var>).\n;título: Engade o título da ligazón.",
        "apihelp-query+alllinks-param-namespace": "Espazo de nomes a enumerar.",
        "apihelp-query+alllinks-param-limit": "Número total de obxectos a devolver.",
        "apihelp-query+alllinks-param-dir": "Dirección na cal listar.",
+       "apihelp-query+alllinks-example-B": "Lista os títulos ligados, incluíndo os eliminados, cos ID das páxinas das que proveñen, comezando en <kbd>B</kbd>.",
        "apihelp-query+alllinks-example-unique": "Listar títulos ligados únicos",
+       "apihelp-query+alllinks-example-unique-generator": "Obtén tódolos títulos ligados, marcando  os eliminados.",
+       "apihelp-query+alllinks-example-generator": "Obtén as páxinas que conteñen as ligazóns.",
+       "apihelp-query+allmessages-description": "Devolver mensaxes deste sitio.",
+       "apihelp-query+allmessages-param-messages": "Que mensaxes devolver. <kbd>*</kbd> (por defecto) significa todas as mensaxes",
        "apihelp-query+allmessages-param-prop": "Que propiedades obter.",
+       "apihelp-query+allmessages-param-enableparser": "Marcar para activar o analizador, isto preprocesará o texto wiki da mensaxe (substituir palabras máxicas, xestionar modelo, etc.)",
+       "apihelp-query+allmessages-param-nocontent": "Se se marca, non inclúe o contido das mensaxes na saída.",
+       "apihelp-query+allmessages-param-includelocal": "Tamén inclúe mensaxes locais, p.ex. mensaxes que non existen no software pero existen como unha páxina MediaWiki:. \nIsto lista todas as páxinas MediaWiki:, polo que tamén listará as que non son realmente mensaxes como [[MediaWiki:Common.js|Common.js]].",
        "apihelp-query+allmessages-param-args": "Argumentos a substituír na mensaxe.",
        "apihelp-query+allmessages-param-filter": "Retornar só mensaxes con nomes que conteñan esta cadea.",
+       "apihelp-query+allmessages-param-customised": "Devolver só mensaxes neste estado de personalización.",
        "apihelp-query+allmessages-param-lang": "Retornar mensaxes nesta lingua.",
        "apihelp-query+allmessages-param-from": "Retornar mensaxes que comezan nesta mensaxe.",
        "apihelp-query+allmessages-param-to": "Retornar mensaxes que rematan nesta mensaxe.",
+       "apihelp-query+allmessages-param-title": "Nome de páxina a usar como contexto cando se analice a mensaxe (para a opción $1enableparser)",
+       "apihelp-query+allmessages-param-prefix": "Devolver mensaxes con este prefixo.",
        "apihelp-query+allmessages-example-ipb": "Mostar mensaxes que comecen por <kbd>ipb-</kbd>.",
+       "apihelp-query+allmessages-example-de": "Mostrar mensaxes <kbd>august</kbd> e <kbd>mainpage</kbd> en Alemán.",
        "apihelp-query+allpages-description": "Numerar tódalas páxinas secuencialmente nun espazo de nomes determinado.",
        "apihelp-query+allpages-param-from": "Título da páxina na que comezar a enumerar.",
        "apihelp-query+allpages-param-to": "Título da páxina na que rematar de enumerar.",
        "apihelp-query+allpages-param-prefix": "Buscar tódolos títulos de páxinas que comezan con este valor.",
        "apihelp-query+allpages-param-namespace": "Espazo de nomes a enumerar.",
        "apihelp-query+allpages-param-filterredir": "Que páxinas listar.",
+       "apihelp-query+allpages-param-minsize": "Limitar a páxinas con polo menos este número de bytes.",
+       "apihelp-query+allpages-param-maxsize": "Limitar a páxinas con como máximo este número de bytes.",
        "apihelp-query+allpages-param-prtype": "Limitar a só protección de páxinas.",
        "apihelp-query+allpages-param-prlevel": "Filtrar proteccións baseándose no nivel de protección (debe empregarse có parámetro $1prtype= ).",
+       "apihelp-query+allpages-param-prfiltercascade": "Filtrar proteccións baseadas en cascada (ignoradas se $1prtype non ten valor).",
        "apihelp-query+allpages-param-limit": "Número total de páxinas a devolver.",
        "apihelp-query+allpages-param-dir": "Dirección na cal listar.",
+       "apihelp-query+allpages-param-filterlanglinks": "Filtro baseado en si unha páxina ten ligazóns de lingua. Decátese de que esto pode non considerar as ligazóns de lingua engadidas polas extensións.",
+       "apihelp-query+allpages-param-prexpiry": "Que finalización de protección pola que filtrar a páxina:\n;indefinida: Só obter páxinas coa finalización de protección indefinida.\n;definite: Só obter páxinas cunha finalización de protección definida.\n;all: Obter páxinas con calquera finalización de protección.",
        "apihelp-query+allpages-example-B": "Mostrar unha lista de páxinas que comezan pola letra <kbd>B</kbd>.",
        "apihelp-query+allpages-example-generator": "Mostrar inforfmación sobre 4 páxinas que comecen pola letra <kbd>T</kbd>.",
+       "apihelp-query+allpages-example-generator-revisions": "Motrar o contido das dúas primeiras páxinas que non sexan redirección que comecen por <kbd>Re</kbd>.",
        "apihelp-query+allredirects-description": "Lista tódalas redireccións a un espazo de nomes.",
        "apihelp-query+allredirects-param-from": "Título da redirección na que comezar a enumerar.",
        "apihelp-query+allredirects-param-to": "Título da redirección na que rematar de enumerar.",
+       "apihelp-query+allredirects-param-prefix": "Buscar todas as páxinas que comecen con este valor.",
+       "apihelp-query+allredirects-param-unique": "Só mostrar páxinas obxectivo distintas. Non pode usarse con $1prop=ids|fragment|interwiki.\nCando se usa como xenerador, produce páxinas obxectivo no canto de páxinas fonte.",
+       "apihelp-query+allredirects-param-prop": "Que información incluír:\n;ids:Engade o ID da páxina da redirección (non pode usarse con <var>$1unique</var>).\n;title:Engade o título da redirección.\n;fragment:Engade o fragmento da redirección, se o hai (non pode usarse con <var>$1unique</var>).\n;interwiki:Engade o prefixo interwiki da redirección, se o hai (non pode usarse con <var>$1unique</var>).",
        "apihelp-query+allredirects-param-namespace": "Espazo de nomes a enumerar.",
        "apihelp-query+allredirects-param-limit": "Número total de obxectos a devolver.",
        "apihelp-query+allredirects-param-dir": "Dirección na cal listar.",
+       "apihelp-query+allredirects-example-B": "Lista as páxinas obxectivo, incluíndo as eliminadas, cos ID das páxinas das que proveñen, comezando en <kbd>B</kbd>.",
+       "apihelp-query+allredirects-example-unique": "Lista páxinas obxectivo únicas.",
+       "apihelp-query+allredirects-example-unique-generator": "Obtén tódalas páxinas obxectivo, marcando as eliminadas.",
+       "apihelp-query+allredirects-example-generator": "Obtén as páxinas que conteñen as redireccións.",
+       "apihelp-query+alltransclusions-description": "Listar todas as transclusións (páxinas integradas usando &#123;&#123;x&#125;&#125;), incluíndo as eliminadas.",
        "apihelp-query+alltransclusions-param-from": "Título da transclusión na que comezar a enumerar.",
        "apihelp-query+alltransclusions-param-to": "Título da transclusión na que rematar de enumerar.",
+       "apihelp-query+alltransclusions-param-prefix": "Buscar todos os títulos transcluídos que comezan con este valor.",
+       "apihelp-query+alltransclusions-param-unique": "Mostrar só títulos transcluídos distintos. Non pode usarse con <kbd>$1prop=ids</kbd>.\nCando se usa como xenerador, produce páxinas obxectivo no canto de páxinas fonte.",
+       "apihelp-query+alltransclusions-param-prop": "Que partes de información incluír:\n;ids: Engade o ID da páxina da páxina transcluída (non pode usarse con $1unique).\n;title: Engade o título da transclusión.",
        "apihelp-query+alltransclusions-param-namespace": "Nome de espazos a numerar.",
+       "apihelp-query+alltransclusions-param-limit": "Número total de obxectos a devolver.",
+       "apihelp-query+alltransclusions-param-dir": "Dirección na cal listar.",
+       "apihelp-query+alltransclusions-example-B": "Lista os títulos transcluídos, incluíndo os eliminados, cos ID das páxinas das que proveñen, comezando en <kbd>B</kbd>.",
+       "apihelp-query+alltransclusions-example-unique": "Lista os títulos transcluídos únicos.",
+       "apihelp-query+alltransclusions-example-unique-generator": "Obtén tódolos títulos transcluídos, marcando  os eliminados.",
+       "apihelp-query+alltransclusions-example-generator": "Obtén as páxinas que conteñen as transclusións.",
        "apihelp-query+allusers-description": "Enumerar tódolos usuarios rexistrados.",
+       "apihelp-query+allusers-param-from": "Nome de usuario para comezar a enumeración",
+       "apihelp-query+allusers-param-to": "Nome de usuario para rematar a enumeración.",
+       "apihelp-query+allusers-param-prefix": "Buscar tódolos nomes de usuario que comezan con este valor.",
+       "apihelp-query+allusers-param-dir": "Dirección na que ordenar.",
+       "apihelp-query+allusers-param-group": "Só incluír os usuarios nos grupos dados.",
        "apihelp-query+allusers-param-excludegroup": "Excluír usuarios nos grupos dados.",
+       "apihelp-query+allusers-param-rights": "Incluír só ós usuarios cos dereitos dados. Non se inclúen grupo implícitos nin autopromocionados como *, usuario ou autoconfirmado.",
+       "apihelp-query+allusers-param-prop": "Que información incluír:\n;blockinfo:Engade información sobre o bloque actual do usuario.\n;groups:Lista de grupos nos que está o usuario. Isto usa máis recursos no servidor e pode devolver menos resultados que o límite.\n;implicitgroups:Lista todos os grupos ós que usuario pertence de forma automática.\n;rights:Lista os dereitos que ten o usuario.\n;editcount:Engade o número de edicións do usuario.\n;registration:Engade o selo de tempo do momento no que se rexistrou o usuario, se está dispoñible (pode ser branco).",
+       "apihelp-query+allusers-param-limit": "Número total de nomes de usuario a devolver.",
        "apihelp-query+allusers-param-witheditsonly": "Só listar usuarios que teñan feito edicións.",
+       "apihelp-query+allusers-param-activeusers": "Só listar usuarios activos {{PLURAL:$1|no último día|nos $1 últimos días}}.",
+       "apihelp-query+allusers-example-Y": "Listar usuarios que comecen por <kbd>Y</kbd>.",
+       "apihelp-query+backlinks-description": "Atopar todas as páxinas que ligan coa páxina dada.",
+       "apihelp-query+backlinks-param-title": "Título a buscar. Non pode usarse xunto con <var>$1pageid</var>.",
+       "apihelp-query+backlinks-param-pageid": "Identificador de páxina a buscar. Non pode usarse xunto con <var>$1title</var>.",
+       "apihelp-query+backlinks-param-namespace": "Espazo de nomes a enumerar.",
+       "apihelp-query+backlinks-param-dir": "Dirección na cal listar.",
+       "apihelp-query+backlinks-param-filterredir": "Como filtrar as redireccións. Se o valor é <kbd>nonredirects</kbd> cando <var>$1redirect</var> está activa, só se aplica ó segundo nivel.",
+       "apihelp-query+backlinks-param-limit": "Cantas páxinas devolver. Se <var>$1redirect</var> está activa, aplícase o límite a cada nivel de forma separada (isto significa que poden devolverse ata 2 * <var>$1limit</var> resultados).",
+       "apihelp-query+backlinks-param-redirect": "Se a ligazón sobre unha páxina é unha redirección, atopa tamén todas as páxinas que ligan con esa redirección. O límite máximo divídese á metade.",
+       "apihelp-query+backlinks-example-simple": "Mostrar ligazóns á <kbd>Páxina principal<kbd>.",
+       "apihelp-query+backlinks-example-generator": "Obter a información das páxinas que ligan á <kbd>Páxina principal<kbd>.",
+       "apihelp-query+blocks-description": "Listar todos os usuarios e direccións IP bloqueados.",
+       "apihelp-query+blocks-param-start": "Selo de tempo para comezar a enumeración.",
+       "apihelp-query+blocks-param-end": "Selo de tempo para rematar a enumeración.",
+       "apihelp-query+blocks-param-ids": "Lista de IDs de bloque a listar (opcional).",
+       "apihelp-query+blocks-param-users": "Lista de usuarios a buscar (opcional).",
+       "apihelp-query+blocks-param-ip": "Obter todos os bloques aplicables a esta IPs ou a este rango CIDR, incluíndo bloques de rangos.\nNon pode usarse xunto con <var>$3users</var>. Os rangos CIDR maiores que IPv4/$1 ou IPv6/$2 non se aceptan.",
+       "apihelp-query+blocks-param-limit": "Número máximo de bloques a listar.",
+       "apihelp-query+blocks-param-show": "Só mostrar elementos correspondentes a eses criterios.\nPor exemplo, para ver só bloques indefinidos en direccións IP, ponga <kbd>$1show=ip|!temp</kbd>.",
+       "apihelp-query+blocks-example-simple": "Listar bloques.",
+       "apihelp-query+blocks-example-users": "Lista de bloques de usuarios <kbd>Alice</kbd> e <kbd>Bob</kbd>.",
+       "apihelp-query+categories-description": "Listar todas as categorías ás que pertencen as páxinas.",
+       "apihelp-query+categories-param-prop": "Que propiedades adicionais obter para cada categoría:\n;sortkey:Engade a clave de ordenación (cadea hexadecimal) e o prefixo da clave de ordenación (parte lexible) da categoría.\n;timestamp:Engade o selo de tempo de cando se engadíu a categoría.\n;hidden:Pon unha marca nas categorías que están ocultas con _&#95;HIDDENCAT_&#95;.",
        "apihelp-query+categories-param-show": "Tipo de categorías a amosar.",
+       "apihelp-query+categories-param-limit": "Cantas categorías devolver.",
+       "apihelp-query+categories-param-categories": "Listar só esas categorías. Útil para verificar se unha páxina concreta está nunha categoría determinada.",
+       "apihelp-query+categories-param-dir": "Dirección na cal listar.",
+       "apihelp-query+categories-example-simple": "Obter a lista de categorías ás que pertence a páxina <kbd>Albert Einstein</kbd>",
+       "apihelp-query+categories-example-generator": "Obter a información de todas as categorías usadas na páxina <kbd>Albert Einstein</kbd>.",
+       "apihelp-query+categoryinfo-description": "Devolver información sobre as categorías dadas.",
+       "apihelp-query+categoryinfo-example-simple": "Obter información sobre <kbd>Category:Foo</kbd> e <kbd>Category:Bar</kbd>",
        "apihelp-query+categorymembers-description": "Listar tódalas páxinas nunha categoría determinada.",
+       "apihelp-query+categorymembers-param-title": "Que categoría enumerar (obrigatorio). Debe incluír o prefixo <kbd>{{ns:category}}:</kbd>. Non pode usarse xunto con <var>$1pageid</var>.",
+       "apihelp-query+categorymembers-param-pageid": "ID de páxina da categoría a enumerar. Non se pode usar xunto con <var>$1title</var>.",
+       "apihelp-query+categorymembers-param-prop": "Que información incluír:\n;ids:Engade o ID da páxina.\n;title:Engade o título e o ID do espazo de nomes da páxina.\n;sortkey:Engade a clave de ordenación usada para ordenala na categoría (cadea hexadecimal).\n;sortkeyprefix:Engade o prefixo da clave de ordenación usado para ordenala na categoría (parte lexible da clave de ordenación).\n;type:Engade o tipo no que foi categorizado a páxina (páxina, subcategoría ou ficheiro)\n;timestamp:Engade o selo de tempo no que foi incluída a páxina.",
+       "apihelp-query+categorymembers-param-namespace": "Só incluír páxinas nestes espazos de nomes. Decátese de que poden usarse  <kbd>$1type=subcat</kbd> ou <kbd>$1type=file</kbd> no canto de <kbd>$1namespace=14</kbd> ou <kbd>6</kbd>.",
+       "apihelp-query+categorymembers-param-type": "Que tipo de membros da categoría incluír. Ignorado cando está activo <kbd>$1sort=timestamp</kbd>.",
        "apihelp-query+categorymembers-param-limit": "Máximo número de páxinas a retornar.",
+       "apihelp-query+categorymembers-param-sort": "Propiedade pola que ordenar.",
+       "apihelp-query+categorymembers-param-dir": "En que dirección ordenar.",
+       "apihelp-query+categorymembers-param-start": "Selo de tempo para comezar o listado. Só pode usarse con <kbd>$1sort=timestamp</kbd>.",
+       "apihelp-query+categorymembers-param-end": "Selo de tempo co que rematar o listado. Só pode usarse con <kbd>$1sort=timestamp</kbd>.",
+       "apihelp-query+categorymembers-param-starthexsortkey": "Chave de ordenación coa que comezar o listado, como se indique en <kbd>$1prop=sortkey</kbd>. Pode usarse só con <kbd>$1sort=sortkey</kbd>.",
+       "apihelp-query+categorymembers-param-endhexsortkey": "Chave de ordenación coa que rematar o listado, como se indique en <kbd>$1prop=sortkey</kbd>. Pode usarse só con <kbd>$1sort=sortkey</kbd>.",
+       "apihelp-query+categorymembers-param-startsortkeyprefix": "Prefixo da chave de ordenación coa que comezar o listado. Pode usarse só con <kbd>$1sort=sortkey</kbd>. Ignórase <var>$1starthexsortkey</var>.",
+       "apihelp-query+categorymembers-param-endsortkeyprefix": "Prefixo da chave de ordenación ANTES de rematar o listado (e non a, se existe este valor entón non será incluído!). Pode usarse só con <kbd>$1sort=sortkey</kbd>. Ignórase $1endhexsortkey.",
+       "apihelp-query+categorymembers-param-startsortkey": "Usar $1starthexsortkey no canto.",
+       "apihelp-query+categorymembers-param-endsortkey": "Usar $1endhexsortkey no canto.",
+       "apihelp-query+categorymembers-example-simple": "Obter as dez primeiras páxinas de <kbd>Category:Physics</kbd>.",
+       "apihelp-query+categorymembers-example-generator": "Obter a información das primeiras dez páxinas de <kbd>Category:Physics</kbd>.",
+       "apihelp-query+contributors-description": "Obter a lista de contribuidores conectados e o número de contribuidores anónimos dunha páxina.",
+       "apihelp-query+contributors-param-group": "Incluír só ós usuarios dos grupos dados. Non se inclúen grupos implícitos nin autopromocionados como *, usuario ou autoconfirmado.",
        "apihelp-query+contributors-param-excludegroup": "Excluír usuarios nos grupos dados. Non se inclúen grupos implícitos nin autopromocionados como *, usuario ou autoconfirmado.",
+       "apihelp-query+contributors-param-rights": "Incluír só ós usuarios cos dereitos dados. Non se inclúen os dereitos dados a grupos implícitos nin autopromocionados como *, usuario ou autoconfirmado.",
+       "apihelp-query+contributors-param-excluderights": "Excluír usuarios cos dereitos dados. Non se inclúen os dereitos dados a grupos implícitos nin autopromocionados como *, usuario ou autoconfirmado.",
+       "apihelp-query+contributors-param-limit": "Número total de contribuidores a devolver.",
+       "apihelp-query+contributors-example-simple": "Mostrar os contribuidores á páxina <kbd>Main Page</kbd>.",
+       "apihelp-query+deletedrevisions-description": "Obter a información da revisión eliminada.\n\nPode usarse de varias formas:\n#Obter as revisións borradas dun conxunto de páxinas, indicando os títulos ou os IDs das páxinas. Ordenado por título e selo de tempo.\n#Obter datos sobre un conxunto de revisións borradas, indicando os seus IDs e os seus IDs de revisión. Ordenado por ID de revisión.",
+       "apihelp-query+deletedrevisions-param-start": "Selo de tempo no que comezar a enumeración. Ignorado cando se está procesando unha lista de IDs de revisións.",
+       "apihelp-query+deletedrevisions-param-end": "Selo de tempo no que rematar a enumeración. Ignorado cando se está procesando unha lista de IDs de revisións.",
+       "apihelp-query+deletedrevisions-param-tag": "Só listar revisións marcadas con esta etiqueta.",
        "apihelp-query+deletedrevisions-param-user": "Só listar revisións deste usuario.",
        "apihelp-query+deletedrevisions-param-excludeuser": "Non listar revisións deste usuario.",
+       "apihelp-query+deletedrevisions-param-limit": "Máximo número de revisións a listar.",
+       "apihelp-query+deletedrevisions-param-prop": "Que propiedades obter:\n;revid:Engade o ID da modificación borrada.\n;parentid:Engade o ID da modificación da modificación anterior da páxina.\n;user:Engade o usuario que fixo a modificación.\n;userid:Engade o ID do usuario que fixo a modificación.\n;comment:Engade o comentario da modificación.\n;parsedcomment:Engade o comentario analizado da modificación.\n;minor:Engade unha marca se a modificación é menor.\n;len:Engade a lonxitude (bytes) da modificación.\n;sha1:Engade a función SHA-1 (base 16) da modificación.\n;content:Engade o contido da modificación.\n;tags:Marcas da modificación.",
+       "apihelp-query+deletedrevisions-example-titles": "Listar as revisións borradas das páxinas <kbd>Main Page</kbd> e <kbd>Talk:Main Page</kbd>, con contido.",
+       "apihelp-query+deletedrevisions-example-revids": "Listar a información para a revisión borrada <kbd>123456</kbd>.",
+       "apihelp-query+deletedrevs-description": "Lista as modificación borradas.\n\nOpera según tres modos:\n#Lista as modificacións borradas dos títulos indicados, ordenados por selo de tempo.\n#Lista as contribucións borradas do usuario indicado, ordenadas por selo de tempo (sen indicar títulos).\n#Lista todas as modificacións borradas no espazo de nomes indicado, ordenadas por título e selo de tempo (sen indicar títulos, sen fixar $1user).\n\nCertos parámetros só se aplican a algúns modos e son ignorados noutros.",
+       "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|Modo|Modos}}: $2",
+       "apihelp-query+deletedrevs-param-start": "Selo de tempo no que comezar a enumeración.",
+       "apihelp-query+deletedrevs-param-end": "Selo de tempo para rematar a enumeración.",
+       "apihelp-query+deletedrevs-param-from": "Comezar listado neste título.",
+       "apihelp-query+deletedrevs-param-to": "Rematar listado neste título.",
        "apihelp-query+deletedrevs-param-prefix": "Buscar tódolos títulos de páxina que comezan con este valor.",
        "apihelp-query+deletedrevs-param-unique": "Só listar unha revisión por cada páxina.",
        "apihelp-query+deletedrevs-param-tag": "Só listar revisións marcadas con esta etiqueta.",
        "apihelp-query+deletedrevs-param-excludeuser": "Non listar revisións deste usuario.",
        "apihelp-query+deletedrevs-param-namespace": "Só listar páxinas neste espazo de nomes.",
        "apihelp-query+deletedrevs-param-limit": "Máximo número de revisións a listar.",
+       "apihelp-query+deletedrevs-example-mode1": "Listar as últimas revisións borradas das páxinas <kbd>Main Page</kbd> e <kbd>Talk:Main Page</kbd>, con contido (modo 1).",
        "apihelp-query+deletedrevs-example-mode2": "Listar as últimas 50 contribucións borradas de <kbd>Bob</kbd> (modo 2).",
        "apihelp-query+deletedrevs-example-mode3-main": "Listar as primeiras 50 revisións borradas no espazo de nomes principal (modo 3)",
+       "apihelp-query+deletedrevs-example-mode3-talk": "Listar as primeiras 50 páxinas no espazo de nomes {{ns:talk}} (modo 3).",
        "apihelp-query+disabled-description": "Este módulo de consulta foi desactivado.",
+       "apihelp-query+duplicatefiles-description": "Listar todos os ficheiros que son duplicados dos fichieros dados baseado nos valores da función hash.",
        "apihelp-query+duplicatefiles-param-limit": "Cantos ficheiros duplicados devolver.",
        "apihelp-query+duplicatefiles-param-dir": "Dirección na cal listar.",
        "apihelp-query+duplicatefiles-param-localonly": "Só buscar por ficheiros no repositorio local.",
        "apihelp-query+duplicatefiles-example-simple": "Buscar duplicados de [[:File:Albert Einstein Head.jpg]]",
        "apihelp-query+duplicatefiles-example-generated": "Buscar duplicados de tódolos ficheiros",
+       "apihelp-query+embeddedin-description": "Atopar todas as páxinas que inclúen (por transclusión) o título dado.",
        "apihelp-query+embeddedin-param-title": "Título a buscar. Non pode usarse xunto con $1pageid.",
        "apihelp-query+embeddedin-param-pageid": "Identificador de páxina a buscar. Non pode usarse xunto con $1title.",
        "apihelp-query+embeddedin-param-namespace": "Espazo de nomes a enumerar.",
        "apihelp-query+embeddedin-param-dir": "Dirección na cal listar.",
        "apihelp-query+embeddedin-param-filterredir": "Como filtrar para redireccións.",
        "apihelp-query+embeddedin-param-limit": "Número total de páxinas a devolver.",
+       "apihelp-query+embeddedin-example-simple": "Mostrar as páxinas que inclúan <kbd>Template:Stub</kbd>.",
+       "apihelp-query+embeddedin-example-generator": "Obter información sobre as páxinas que inclúen <kbd>Template:Stub</kbd>.",
+       "apihelp-query+extlinks-description": "Devolve todas as URLs externas (sen ser interwikis) das páxinas dadas.",
        "apihelp-query+extlinks-param-limit": "Cantas ligazóns devolver.",
+       "apihelp-query+extlinks-param-protocol": "Protocolo da URL. Se está baleiro e está activo <var>$1query</var>, o protocolo é <kbd>http</kbd>. Deixar esa variable e a <var>$1query</var> baleiras para listar todas as ligazóns externas.",
+       "apihelp-query+extlinks-param-query": "Buscar cadea sen protocolo. Útil para verificar se unha páxina determinada contén unha URL externa determinada.",
+       "apihelp-query+extlinks-param-expandurl": "Expandir as URLs relativas a un protocolo co protocolo canónico.",
        "apihelp-query+extlinks-example-simple": "Obter unha de ligazóns externas á <kbd>Páxina Principal<kbd>.",
        "apihelp-query+exturlusage-description": "Enumerar páxinas que conteñen unha dirección URL dada.",
+       "apihelp-query+exturlusage-param-prop": "Que información incluír:\n;ids:Engade o ID da páxina.\n;title:Engade o título e o ID do espazo de nomes da páxina.\n;url:Engade a URL usada na páxina.",
+       "apihelp-query+exturlusage-param-protocol": "Protocolo da URL. Se está baleiro e está activo <var>$1query</var>, o protocolo é <kbd>http</kbd>. Deixar esa variable e a <var>$1query</var> baleiras para listar todas as ligazóns externas.",
+       "apihelp-query+exturlusage-param-query": "Buscar unha cadea sen protocolo. Ver [[Special:LinkSearch]]. Deixar baleira para listar todas as ligazóns externas.",
        "apihelp-query+exturlusage-param-namespace": "Espazo de nomes a enumerar.",
        "apihelp-query+exturlusage-param-limit": "Cantas páxinas devolver.",
+       "apihelp-query+exturlusage-param-expandurl": "Expandir as URLs relativas a un protocolo co protocolo canónico.",
        "apihelp-query+exturlusage-example-simple": "Mostrar páxinas ligando a <kbd>http://www.mediawiki.org</kbd>.",
+       "apihelp-query+filearchive-description": "Enumerar secuencialmente todos os ficheiros borrados.",
+       "apihelp-query+filearchive-param-from": "Título da imaxe coa que comezar a enumeración.",
+       "apihelp-query+filearchive-param-to": "Título da imaxe coa que rematar a enumeración.",
        "apihelp-query+filearchive-param-prefix": "Buscar tódolos títulos de imaxes que comezan con este valor.",
        "apihelp-query+filearchive-param-limit": "Cantas imaxes devolver en total.",
        "apihelp-query+filearchive-param-dir": "Dirección na cal listar.",
+       "apihelp-query+filearchive-param-sha1": "Función hash SHA1 da imaxe. Invalida $1sha1base36.",
+       "apihelp-query+filearchive-param-sha1base36": "Función hash SHA1 da imaxe en base 36 (usado en MediaWiki).",
        "apihelp-query+filearchive-example-simple": "Mostrar unha lista de tódolos fichieiros eliminados.",
+       "apihelp-query+filerepoinfo-description": "Devolver a meta información sobre os repositorios de imaxes configurados na wiki.",
        "apihelp-query+filerepoinfo-example-simple": "Obter infomación sobre os repositorios de ficheiros",
        "apihelp-query+fileusage-description": "Atopar tódalas páxinas que usan os ficheiros dados.",
+       "apihelp-query+fileusage-param-prop": "Que propiedades obter:\n;pageid:ID de cada páxina.\n;título:Título de cada páxina.\n;redirect:Marca de se a páxina é unha redirección.",
        "apihelp-query+fileusage-param-namespace": "Só incluír páxinas nestes espazos de nomes.",
        "apihelp-query+fileusage-param-limit": "Cantos mostrar.",
+       "apihelp-query+fileusage-param-show": "Mostrar só elementos que cumpren estes criterios:\n;redirect:Só mostra redireccións.\n;!redirect:Só mostra as que non son redireccións.",
        "apihelp-query+fileusage-example-simple": "Obter unha lista de páxinas usando [[:File:Example.jpg]]",
        "apihelp-query+fileusage-example-generator": "Obter infomación sobre páxinas que usan [[:File:Example.jpg]]",
        "apihelp-query+imageinfo-description": "Devolve información de ficheiros e historial de subidas.",
-       "apihelp-query+imageinfo-paramvalue-prop-user": "Engade o usuario que subeu cada versión de ficheiro.",
+       "apihelp-query+imageinfo-param-prop": "Que información do ficheiro obter:",
+       "apihelp-query+imageinfo-paramvalue-prop-timestamp": "Engade selo de tempo á versión subida.",
+       "apihelp-query+imageinfo-paramvalue-prop-user": "Engade o usuario que subiu cada versión do ficheiro.",
+       "apihelp-query+imageinfo-paramvalue-prop-userid": "Engade o ID de usuario que subiu cada versión do ficheiro.",
        "apihelp-query+imageinfo-paramvalue-prop-comment": "Comentario da versión.",
+       "apihelp-query+imageinfo-paramvalue-prop-parsedcomment": "Analizar o comentario da versión.",
+       "apihelp-query+imageinfo-paramvalue-prop-canonicaltitle": "Engade o título canónico do ficheiro.",
+       "apihelp-query+imageinfo-paramvalue-prop-url": "Devolve a URL ó ficheiro e á páxina de descrición.",
+       "apihelp-query+imageinfo-paramvalue-prop-size": "Engade o tamaño do ficheiro en bytes e a altura, a anchura e o contador de páxina (se é aplicable).",
+       "apihelp-query+imageinfo-paramvalue-prop-dimensions": "Alias para o tamaño.",
+       "apihelp-query+imageinfo-paramvalue-prop-sha1": "Engade a función hash SHA-1 do ficheiro.",
+       "apihelp-query+imageinfo-paramvalue-prop-mime": "Engade o tipo MIME do ficheiro.",
+       "apihelp-query+imageinfo-paramvalue-prop-thumbmime": "Engade o tipo MIME da miniatura da imaxe (precisa a url e o parámetro $1urlwidth).",
+       "apihelp-query+imageinfo-paramvalue-prop-mediatype": "Engade o tipo do ficheiro.",
+       "apihelp-query+imageinfo-paramvalue-prop-metadata": "Lista os metadatos Exif da versión do ficheiro.",
+       "apihelp-query+imageinfo-paramvalue-prop-commonmetadata": "Lista os metadatos xenéricos do formato do ficheiro para a versión do ficheiro.",
+       "apihelp-query+imageinfo-paramvalue-prop-extmetadata": "Lista os metadatos combinados formateados de múltiples fontes. Os resultados están en formato HTML.",
+       "apihelp-query+imageinfo-paramvalue-prop-archivename": "Engade o nome de ficheiro da versión do ficheiro para versións anteriores ás últimas.",
+       "apihelp-query+imageinfo-paramvalue-prop-bitdepth": "Engade a profundidade de bits da versión.",
+       "apihelp-query+imageinfo-paramvalue-prop-uploadwarning": "Usado pola páxina Special:Upload para obter información sobre un ficheiro existente. Non previsto para usar fóra do núcleo MediaWiki.",
+       "apihelp-query+imageinfo-param-limit": "Cantas revisións de ficheiro a devolver por ficheiro.",
+       "apihelp-query+imageinfo-param-start": "Selo de tempo dende o que comezar a lista.",
+       "apihelp-query+imageinfo-param-end": "Selo de tempo no que rematar a lista.",
+       "apihelp-query+imageinfo-param-urlwidth": "Se $2prop=url está definido, será devolta unha URL a unha imaxe escalada a este ancho.\nPor razóns de rendimento se se usa esta opción, non se devolverán máis de $1 imaxes.",
+       "apihelp-query+imageinfo-param-urlheight": "Similar a $1urlwidth.",
+       "apihelp-query+imageinfo-param-metadataversion": "Versión de metadata a usar. Se <kbd>latest</kbd> está especificado, usa a última versión. Por defecto <kbd>1</kbd> para compatibilidade con versións anteriores.",
+       "apihelp-query+imageinfo-param-extmetadatalanguage": "Que lingua buscar en extmetadata. Isto afecta tanto á tradución a buscar, se hai varias dispoñibles, como a como se formatean cousas como os números e outros valores.",
+       "apihelp-query+imageinfo-param-extmetadatamultilang": "Se as traducións para a propiedade extmetadata están dispoñibles, búscaas todas.",
+       "apihelp-query+imageinfo-param-extmetadatafilter": "Se está especificado e non baleiro, só se devolverán esas claves para $1prop=extmetadata.",
        "apihelp-query+imageinfo-param-localonly": "Só buscar ficheiros no repositorio local.",
+       "apihelp-query+imageinfo-example-simple": "Busca a información sobre a versión actual de [[:File:Albert Einstein Head.jpg]].",
+       "apihelp-query+imageinfo-example-dated": "Busca información sobre as versións de [[:File:Test.jpg]] posteriores a 2008.",
+       "apihelp-query+images-description": "Devolve todos os ficheiros contidos nas páxinas dadas.",
+       "apihelp-query+images-param-limit": "Cantos ficheiros devolver.",
+       "apihelp-query+images-param-images": "Listar só eses ficheiros. Útil para verificar se unha páxina concreta ten un ficheiro determinado.",
+       "apihelp-query+images-param-dir": "Dirección na cal listar.",
        "apihelp-query+images-example-simple": "Obter unha lista de arquivos empregados na [[Main Page]].",
+       "apihelp-query+images-example-generator": "Obter información sobre todos os ficheiros usados na [[Main Page]].",
+       "apihelp-query+imageusage-description": "Atopar tódalas páxinas que usan o título da imaxe dada.",
+       "apihelp-query+imageusage-param-title": "Título a buscar. Non pode usarse xunto con $1pageid.",
+       "apihelp-query+imageusage-param-pageid": "ID de páxina a buscar. Non pode usarse xunto con $1title.",
        "apihelp-query+imageusage-param-namespace": "Nome de espazos a numerar.",
+       "apihelp-query+imageusage-param-dir": "Dirección na cal listar.",
+       "apihelp-query+imageusage-param-filterredir": "Como filtrar redireccións. Se se fixa a non redirección cando está activo $1redirect, isto só se aplica ó segundo nivel.",
+       "apihelp-query+imageusage-param-limit": "Cantas páxinas devolver. Se <var>$1redirect</var> está activa, aplícase o límite a cada nivel de forma separada (isto significa que poden devolverse ata 2 * <var>$1limit</var> resultados).",
+       "apihelp-query+imageusage-param-redirect": "Se a ligazón sobre unha páxina é unha redirección, atopa tamén todas as páxinas que ligan con esa redirección. O límite máximo divídese á metade.",
+       "apihelp-query+imageusage-example-simple": "Mostrar as páxinas que usan [[:File:Albert Einstein Head.jpg]].",
+       "apihelp-query+imageusage-example-generator": "Obter información sobre as páxinas que usan [[:File:Albert Einstein Head.jpg]].",
+       "apihelp-query+info-description": "Obter información básica da páxina.",
+       "apihelp-query+info-param-prop": "Que propiedades adicionais obter:",
+       "apihelp-query+info-paramvalue-prop-protection": "Listar o nivel de protección de cada páxina.",
+       "apihelp-query+info-paramvalue-prop-talkid": "O ID de páxina da páxina de conversa para cada páxina que non é páxina de conversa.",
+       "apihelp-query+info-paramvalue-prop-watched": "Listar o estado de vixiancia de cada páxina.",
+       "apihelp-query+info-paramvalue-prop-watchers": "O número de vixiantes, se está permitido.",
+       "apihelp-query+info-paramvalue-prop-notificationtimestamp": "O selo de tempo de notificación da lista de vixiancia de cada páxina.",
+       "apihelp-query+info-paramvalue-prop-subjectid": "O ID de páxina da páxina pai para cada páxina de conversa.",
+       "apihelp-query+info-paramvalue-prop-url": "Devolve unha URL completa, unha URL de modificación, e a URL canónica de cada páxina.",
+       "apihelp-query+info-paramvalue-prop-readable": "Se o usuario pode ler esta páxina.",
+       "apihelp-query+info-paramvalue-prop-preload": "Devolve o texto devolto por EditFormPreloadText.",
+       "apihelp-query+info-paramvalue-prop-displaytitle": "Devolve a forma na que se visualiza actualmente o título da páxina.",
+       "apihelp-query+info-param-testactions": "Proba se o usuario actual pode realizar certas accións na páxina.",
+       "apihelp-query+info-param-token": "Usar  [[Special:ApiHelp/query+tokens|action=query&meta=tokens]] no canto diso.",
+       "apihelp-query+info-example-simple": "Obter información sobre a páxina <kbd>Main Page</kbd>.",
+       "apihelp-query+info-example-protection": "Obter información xeral e de protección  sobre a páxina <kbd>Main Page</kbd>.",
+       "apihelp-query+iwbacklinks-description": "Atopar todas as páxina que ligan á ligazón interwiki indicada.\n\nPode usarse para atopar todas as ligazóns cun prefixo, ou todas as ligazóns a un título (co prefixo indicado). Se non se usa ningún parámetro funciona como \"todas as ligazóns interwiki\".",
+       "apihelp-query+iwbacklinks-param-prefix": "Prefixo para a interwiki.",
+       "apihelp-query+iwbacklinks-param-title": "Ligazón interwiki a buscar. Debe usarse con <var>$1blprefix</var>.",
+       "apihelp-query+iwbacklinks-param-limit": "Número total de páxinas a devolver.",
+       "apihelp-query+iwbacklinks-param-prop": "Que propiedades obter:\n;iwprefix:Engade o prefixo da interwiki.\n;iwtitle:Engade o título da interwiki.",
+       "apihelp-query+iwbacklinks-param-dir": "Dirección na cal listar.",
+       "apihelp-query+iwbacklinks-example-simple": "Obter as páxinas ligadas a [[wikibooks:Test]]",
+       "apihelp-query+iwbacklinks-example-generator": "Obter información sobre as páxinas que ligan a [[wikibooks:Test]].",
+       "apihelp-query+iwlinks-description": "Devolve todas as ligazóns interwiki ás páxinas indicadas.",
+       "apihelp-query+iwlinks-param-url": "Se obter a URL completa (non pode usarse con $1prop).",
+       "apihelp-query+iwlinks-param-prop": "Que propiedades adicionais obter para cada ligazón interwiki:\n;url:Engade a URL completa.",
+       "apihelp-query+iwlinks-param-limit": "Cantas ligazóns interwiki devolver.",
+       "apihelp-query+iwlinks-param-prefix": "Só devolver ligazóns interwiki con este prefixo.",
+       "apihelp-query+iwlinks-param-title": "Ligazón interwiki a buscar. Debe usarse con <var>$1prefix</var>.",
+       "apihelp-query+iwlinks-param-dir": "Dirección na cal listar.",
+       "apihelp-query+iwlinks-example-simple": "Obter as ligazóns interwiki da páxina <kbd>Main Page</kbd>.",
+       "apihelp-query+langbacklinks-description": "Atopar todas as páxinas que ligan coa ligazón de lingua dada. \n\nPode usarse para atopar todas as ligazóns cun código de lingua, ou todas as ligazón a un título (cunha lingua dada). Non usar cun parámetro que sexa \"todas as ligazóns de lingua\".\n\nDecátese que isto pode non considerar as ligazóns de idioma engadidas polas extensións.",
+       "apihelp-query+langbacklinks-param-lang": "Lingua para a ligazón de lingua.",
+       "apihelp-query+langbacklinks-param-title": "Ligazón de lingua a buscar. Debe usarse con $1lang.",
+       "apihelp-query+langbacklinks-param-limit": "Número total de páxinas a devolver.",
+       "apihelp-query+langbacklinks-param-prop": "Que propiedades obter:\n;lllang:Engade o código de lingua á ligazón de páxina.\n;lltitle:Engade o título da ligazón de lingua.",
+       "apihelp-query+langbacklinks-param-dir": "Dirección na cal listar.",
+       "apihelp-query+langbacklinks-example-simple": "Obter as páxinas ligadas a [[:fr:Test]].",
+       "apihelp-query+langbacklinks-example-generator": "Obter información sobre as páxinas que ligan a [[:fr:Test]].",
+       "apihelp-query+langlinks-description": "Devolve todas as ligazóns interwiki ás páxinas indicadas.",
+       "apihelp-query+langlinks-param-limit": "Cantas ligazóns de lingua devolver.",
+       "apihelp-query+langlinks-param-url": "Se obter a URL completa (non pode usarse con <var>$1prop</var>).",
+       "apihelp-query+langlinks-param-prop": "Que propiedades adicionais obter para cada ligazón interlingüística:\n;url:Engade a URL completa.\n;langname:Engade o nome localizado da lingua (o mellor intento). Use <var>$1inlanguagecode</var> para controlar a lingua.\n;autonym:Engade o nome nativo da lingua.",
+       "apihelp-query+langlinks-param-lang": "Devolver só ligazóns de lingua con este código de lingua.",
+       "apihelp-query+langlinks-param-title": "Ligazón a buscar. Debe usarse con <var>$1lang</var>.",
+       "apihelp-query+langlinks-param-dir": "Dirección na cal listar.",
+       "apihelp-query+langlinks-param-inlanguagecode": "Código de lingua para nomes de lingua localizados.",
+       "apihelp-query+langlinks-example-simple": "Obter ligazóns interlingua da páxina <kbd>Main Page</kbd>.",
+       "apihelp-query+links-description": "Devolve todas as ligazóns das páxinas indicadas.",
+       "apihelp-query+links-param-namespace": "Mostra ligazóns só neste espazo de nomes.",
+       "apihelp-query+links-param-limit": "Cantas ligazóns devolver.",
+       "apihelp-query+links-param-titles": "Listar só as ligazóns a eses títulos. Útil para verificar se unha páxina concreta liga a un título determinado.",
+       "apihelp-query+links-param-dir": "Dirección na cal listar.",
+       "apihelp-query+links-example-simple": "Obter as ligazóns da páxina <kbd>Main Page</kbd>.",
+       "apihelp-query+links-example-generator": "Obter información sobre as ligazóns de páxina da <kbd>Main Page</kbd>.",
+       "apihelp-query+links-example-namespaces": "Obter as ligazóns á páxina <kbd>Main Page</kbd> nos espazos de nome {{ns:user}} e {{ns:template}}.",
+       "apihelp-query+linkshere-description": "Atopar todas as páxinas que ligan coas páxinas dadas.",
+       "apihelp-query+linkshere-param-prop": "Que propiedades obter:\n;pageid:ID de cada páxina.\n;título:Título de cada páxina.\n;redirect:Marca de se a páxina é unha redirección.",
+       "apihelp-query+linkshere-param-namespace": "Só incluír páxinas nestes espazos de nomes.",
+       "apihelp-query+linkshere-param-limit": "Cantos mostrar.",
+       "apihelp-query+linkshere-param-show": "Mostrar só elementos que cumpren estes criterios:\n;redirect:Só mostra redireccións.\n;!redirect:Só mostra as que non son redireccións.",
+       "apihelp-query+linkshere-example-simple": "Obter unha lista que ligan á [[Main Page]]",
+       "apihelp-query+linkshere-example-generator": "Obter a información das páxinas que ligan á [[Main Page]].",
+       "apihelp-query+logevents-description": "Obter os eventos dos rexistros.",
+       "apihelp-query+logevents-param-type": "Filtrar as entradas do rexistro para mostrar só as deste tipo.",
+       "apihelp-query+logevents-param-action": "Filtrar accións no rexistro para mostrar só esta acción. Ignora <var>$1type</var>. Accións comodín como  <kbd>action/*</kbd> permiten especificar calquera cadea para o asterisco.",
+       "apihelp-query+logevents-param-start": "Selo de tempo no que comezar a enumeración.",
+       "apihelp-query+logevents-param-end": "Selo de tempo para rematar a enumeración.",
+       "apihelp-query+logevents-param-user": "Filtrar entradas ás feitas polo usuario indicado.",
+       "apihelp-query+logevents-param-title": "Filtrar entradas ás asociadas á páxina indicada.",
+       "apihelp-query+logevents-param-namespace": "Filtrar entradas ás do espazo de nomes indicado.",
+       "apihelp-query+logevents-param-prefix": "Filtrar entradas ás que comezan por este prefixo.",
+       "apihelp-query+logevents-param-tag": "Só listar entradas de evento marcadas con esta etiqueta.",
+       "apihelp-query+logevents-param-limit": "Número total de entradas de evento a devolver.",
+       "apihelp-query+logevents-example-simple": "Lista de eventos recentes do rexistro.",
+       "apihelp-query+pagepropnames-description": "Listar os nomes de todas as propiedades de páxina usados na wiki.",
        "apihelp-query+pagepropnames-param-limit": "Máximo número de nomes a retornar.",
+       "apihelp-query+pagepropnames-example-simple": "Obter os dez primeiros nomes de propiedade.",
+       "apihelp-query+pageprops-description": "Obter varias propiedades definidas no contido da páxina.",
+       "apihelp-query+pageprops-param-prop": "Listar só esas propiedades. Útil para verificar se unha páxina concreta usa unha propiedade de páxina determinada.",
+       "apihelp-query+pageprops-example-simple": "Obter as propiedades para <kbd>Category:Foo</kbd>.",
        "apihelp-query+pageswithprop-description": "Mostrar a lista de páxinas que empregan unha propiedade determinada.",
+       "apihelp-query+pageswithprop-param-propname": "Propiedade de páxina pola que enumerar as páxinas.",
+       "apihelp-query+pageswithprop-param-prop": "Que información incluír:\n;ids:Engade o ID da páxina.\n;title:Engade o título e o ID do espazo de nomes da páxina.\n;value:Engade o valor da propiedade da páxina.",
+       "apihelp-query+pageswithprop-param-limit": "Máximo número de páxinas a retornar.",
+       "apihelp-query+pageswithprop-param-dir": "En que dirección ordenar.",
+       "apihelp-query+pageswithprop-example-simple": "Lista as dez primeiras páxinas que usan  <code>&#123;&#123;DISPLAYTITLE:&#125;&#125;</code>.",
+       "apihelp-query+pageswithprop-example-generator": "Obter a infomación de páxina das dez primeiras páxinas que usan <code>_&#95;NOTOC_&#95;</code>.",
+       "apihelp-query+prefixsearch-description": "Facer unha busca de prefixo nos títulos das páxinas.",
        "apihelp-query+prefixsearch-param-search": "Buscar texto.",
        "apihelp-query+prefixsearch-param-namespace": "Espazo de nomes no que buscar.",
        "apihelp-query+prefixsearch-param-limit": "Número máximo de resultados a visualizar.",
        "apihelp-query+prefixsearch-param-offset": "Número de resultados a saltar.",
+       "apihelp-query+prefixsearch-example-simple": "Buscar títulos de páxina que comecen con <kbd>meaning</kbd>.",
+       "apihelp-query+protectedtitles-description": "Listar todos os títulos protexidos en creación.",
        "apihelp-query+protectedtitles-param-namespace": "Só listar títulos nestes espazos de nomes.",
        "apihelp-query+protectedtitles-param-level": "Só listar títulos con estos niveis de protección.",
        "apihelp-query+protectedtitles-param-limit": "Número total de páxinas a devolver.",
+       "apihelp-query+protectedtitles-param-start": "Comezar a listar neste selo de tempo de protección.",
+       "apihelp-query+protectedtitles-param-end": "Rematar de listar neste selo de tempo de protección.",
+       "apihelp-query+protectedtitles-param-prop": "Que propiedades obter:\n;timestamp:Engade o selo de tempo de cando se fixo a protección.\n;user:Engade o usuario que fixo a protección.\n;userid:Engade o ID do usuario que fixo a protección.\n;comment:Engade o comentario da protección.\n;parsedcomment:Engade o comentario analizado da protección.\n;expiry:Engade o selo de tempo no que rematará a protección\n;level:Engade o nivel de protección.",
        "apihelp-query+protectedtitles-example-simple": "Listar títulos protexidos",
        "apihelp-query+protectedtitles-example-generator": "Atopar ligazóns ós títulos protexidos no espazo de nomes principal",
+       "apihelp-query+querypage-description": "Obtén unha lista proporcionada por unha páxina especial basada en QueryPage.",
        "apihelp-query+querypage-param-page": "Nome da páxina especial. Teña en conta que diferencia entre maiúsculas e minúsculas.",
        "apihelp-query+querypage-param-limit": "Número de resultados a visualizar.",
        "apihelp-query+querypage-example-ancientpages": "Resultados devoltos de [[Special:Ancientpages]].",
        "apihelp-query+random-param-namespace": "Devolver páxinas só neste espazo de nomes.",
        "apihelp-query+random-param-limit": "Limitar cantas páxinas aleatorias se van devolver.",
+       "apihelp-query+random-param-redirect": "Cargar unha redirección aleatoria no canto dunha páxina aleatoria.",
+       "apihelp-query+random-example-simple": "Obter dúas páxinas aleatorias do espazo de nomes principal.",
+       "apihelp-query+random-example-generator": "Obter a información da páxina de dúas páxinas aleatorias do espazo de nomes principal.",
        "apihelp-query+recentchanges-description": "Enumerar cambios recentes.",
-       "apihelp-query+recentchanges-param-start": "Selo de tempo para comenzar a enumeración.",
+       "apihelp-query+recentchanges-param-start": "Selo de tempo para comezar a enumeración.",
        "apihelp-query+recentchanges-param-end": "Selo de tempo para rematar a enumeración.",
+       "apihelp-query+recentchanges-param-namespace": "Filtrar os cambios a só eses espazos de nomes.",
        "apihelp-query+recentchanges-param-user": "Só listar cambios deste usuario.",
        "apihelp-query+recentchanges-param-excludeuser": "Non listar cambios deste usuario.",
        "apihelp-query+recentchanges-param-tag": "Só listar cambios marcados con esta etiqueta.",
+       "apihelp-query+recentchanges-param-token": "Usar <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> no canto diso.",
+       "apihelp-query+recentchanges-param-show": "Só mostrar elementos que cumpran esos criterios. Por exemplo, para ver só edicións menores feitas por usuarios conectados, activar $1show=minor|!anon.",
        "apihelp-query+recentchanges-param-limit": "Número total de páxinas a devolver.",
        "apihelp-query+recentchanges-param-type": "Que tipos de cambios mostrar.",
        "apihelp-query+recentchanges-param-toponly": "Listar só cambios que son a última revisión.",
        "apihelp-query+recentchanges-example-simple": "Listar cambios recentes.",
+       "apihelp-query+recentchanges-example-generator": "Obter a información de páxina sobre cambios recentes sen vixiancia.",
+       "apihelp-query+redirects-description": "Devolve todas as redireccións das páxinas indicadas.",
+       "apihelp-query+redirects-param-prop": "Que propiedades recuperar:\n;pageid:ID de páxina de cada redirección.\n;title:Título de cada redirección.\n;fragment:Fragmento de cada redirección, se hai algún.",
        "apihelp-query+redirects-param-namespace": "Só incluir páxinas nestes espacios de nomes.",
+       "apihelp-query+redirects-param-limit": "Cantos redireccións devolver.",
+       "apihelp-query+redirects-param-show": "Só mostrar elementos que cumpran estos criterios:\n;fragment:Só mostrar redireccións que teñan un fragmento.\n;!fragment:Só mostrar redireccións que non teñan un fragmento.",
        "apihelp-query+redirects-example-simple": "Obter unha lista de redireccións á [[Main Page]]",
        "apihelp-query+redirects-example-generator": "Obter información sobre tódalas redireccións á [[Main Page]]",
+       "apihelp-query+revisions-description": "Obter información da modificación.\n\nPode usarse de varias formas:\n#Obter datos sobre un conxunto de páxinas (última modificación), fixando os títulos ou os IDs das páxinas.\n#Obter as modificacións da páxina indicada, usando os títulos ou os IDs de páxinas con comezar, rematar ou límite.\n#Obter os datos sobre un conxunto de modificacións fixando os seus IDs cos seus IDs de modificación.",
+       "apihelp-query+revisions-paraminfo-singlepageonly": "Só pode usarse cunha única páxina (mode #2).",
+       "apihelp-query+revisions-param-startid": "Desde que ID de revisión comezar a enumeración.",
+       "apihelp-query+revisions-param-endid": "Rematar a enumeración de revisión neste ID de revisión.",
+       "apihelp-query+revisions-param-start": "Desde que selo de tempo comezar a enumeración.",
+       "apihelp-query+revisions-param-end": "Enumerar desde este selo de tempo.",
        "apihelp-query+revisions-param-user": "Só incluir revisión feitas polo usuario.",
        "apihelp-query+revisions-param-excludeuser": "Excluír revisións feitas polo usuario.",
        "apihelp-query+revisions-param-tag": "Só listar revisións marcadas con esta etiqueta.",
+       "apihelp-query+revisions-param-token": "Que identificadores obter para cada revisión.",
+       "apihelp-query+revisions-example-content": "Obter datos con contido da última revisión dos títulos <kbd>API</kbd> e <kbd>Main Page</kbd>.",
        "apihelp-query+revisions-example-last5": "Mostrar as cinco últimas revisión da <kbd>Páxina Principal</kbd>.",
        "apihelp-query+revisions-example-first5": "Mostar as cinco primeiras revisións da <kbd>Páxina Principal</kbd>.",
        "apihelp-query+revisions-example-first5-after": "Mostrar as cinco primeiras revisións da <kbd>Páxina Principal</kbd> feitas despois de 2006-05-01.",
        "apihelp-query+revisions-example-first5-not-localhost": "Mostrar as cinco primeiras revisións da <kbd>Páxina Principal</kbd> que non foron feitas polo usuario anónimo <kbd>127.0.0.1</kbd>.",
        "apihelp-query+revisions-example-first5-user": "Mostrar as cinco primeiras revisión da <kbd>Páxina Principal</kbd> feitas polo usuario <kbd>MediaWiki default</kbd>.",
        "apihelp-query+revisions+base-param-limit": "Limitar cantas revisións se van devolver.",
+       "apihelp-query+revisions+base-param-expandtemplates": "Expandir os modelos no contido da revisión (require $1prop=content).",
+       "apihelp-query+revisions+base-param-generatexml": "Xenerar a árbore de análise XML para o contido da revisión (require $1prop=content).",
+       "apihelp-query+revisions+base-param-parse": "Analizar o contido da revisión (require $1prop=content). Por razóns de rendemento, se se usa esta opción, $1limit cámbiase a 1.",
+       "apihelp-query+revisions+base-param-section": "Recuperar unicamente o contido deste número de sección.",
+       "apihelp-query+revisions+base-param-diffto": "ID de revisión a comparar con cada revisión. Use <kbd>prev</kbd>, <kbd>next</kbd> e <kbd>cur</kbd> para a versión precedente, seguinte e actual respectivamente.",
+       "apihelp-query+revisions+base-param-difftotext": "Texto co que comparar cada revisión. Só compara un número limitado de revisións. Ignora <var>$1diffto</var>.  Se <var>$1section</var> ten valor, só se comparará co texto esa sección.",
+       "apihelp-query+revisions+base-param-contentformat": "Formato de serialización usado por <var>$1difftotext</var> e esperado para a saída do contido.",
        "apihelp-query+search-description": "Facer unha busca por texto completo.",
        "apihelp-query+search-param-search": "Buscar tódolos títulos de páxina (ou contido) que teñan este valor.",
        "apihelp-query+search-param-namespace": "Buscar só nestes espazos de nomes.",
        "apihelp-query+search-param-info": "Que metadatos devolver.",
        "apihelp-query+search-param-limit": "Número total de páxinas a devolver.",
        "apihelp-query+search-param-interwiki": "Incluir na busca resultados de interwikis, se é posible.",
+       "apihelp-query+search-param-backend": "Que servidor de busca usar, se non se indica usa o que hai por defecto.",
        "apihelp-query+search-example-simple": "Buscar por <kbd>significado</kbd>.",
        "apihelp-query+search-example-text": "Buscar texto por <kbd>significado</kbd>.",
+       "apihelp-query+search-example-generator": "Obter información da páxina sobre as páxinas devoltas por unha busca por <kbd>significado</kbd>.",
        "apihelp-query+siteinfo-description": "Devolver información xeral sobre o sitio.",
+       "apihelp-query+siteinfo-param-filteriw": "Só devolver entradas locais ou só non locais da correspondencia interwiki.",
+       "apihelp-query+siteinfo-param-showalldb": "Listar todos os servidores de base de datos, non só o que teña máis retardo.",
        "apihelp-query+siteinfo-param-numberingroup": "Listar o número de usuarios nos grupos de usuarios.",
+       "apihelp-query+siteinfo-param-inlanguagecode": "Código de lingua para os nomes de lingua localizados (a mellor forma posible) e nomes de presentación.",
+       "apihelp-query+siteinfo-example-simple": "Obter información do sitio.",
+       "apihelp-query+siteinfo-example-interwiki": "Obter unha lista de prefixos interwiki locais.",
+       "apihelp-query+siteinfo-example-replag": "Revisar o retardo de replicación actual.",
+       "apihelp-query+stashimageinfo-description": "Devolve a información dos ficheiros almacenados.",
+       "apihelp-query+stashimageinfo-param-filekey": "Clave que identifica unha subida precedente e que foi almacenada temporalmente.",
+       "apihelp-query+stashimageinfo-param-sessionkey": "Alias para $1filekey, para compatibilidade con versións antigas.",
+       "apihelp-query+stashimageinfo-example-simple": "Devolve a información dun ficheiro almacenado.",
+       "apihelp-query+stashimageinfo-example-params": "Devolve as miniaturas de dous ficheiros almacenados.",
+       "apihelp-query+tags-description": "Lista de marcas de cambios.",
        "apihelp-query+tags-param-limit": "Máximo número de etiquetas a listar.",
        "apihelp-query+tags-example-simple": "Listar as marcas dispoñibles",
+       "apihelp-query+templates-description": "Devolve todas as páxinas incluídas na páxina indicada.",
        "apihelp-query+templates-param-namespace": "Mostrar modelos só neste espazo de nomes.",
        "apihelp-query+templates-param-limit": "Número de modelos a devolver.",
+       "apihelp-query+templates-param-templates": "Listar só eses modelos. Útil para verificar se unha páxina concreta ten un modelo determinado.",
        "apihelp-query+templates-param-dir": "Dirección na cal listar.",
        "apihelp-query+templates-example-simple": "Coller os modelos usado na <kbd>Páxina Principal</kbd>.",
        "apihelp-query+templates-example-generator": "Obter información sobre os modelos usados na <kbd>Páxina Principal</kbd>.",
        "apihelp-query+templates-example-namespaces": "Obter páxinas nos espazos de nomes {{ns:user}} e {{ns:template}} que se transclúen na <kbd>Páxina Principal</kbd>.",
+       "apihelp-query+tokens-description": "Recupera os identificadores das accións de modificación de datos.",
+       "apihelp-query+tokens-param-type": "Tipos de identificadores a consultar.",
+       "apihelp-query+tokens-example-simple": "Recuperar un identificador csrf (por defecto).",
+       "apihelp-query+tokens-example-types": "Recuperar un identificador vixiancia e un de patrulla.",
+       "apihelp-query+transcludedin-description": "Atopar todas as páxinas que inclúen ás páxinas indicadas.",
+       "apihelp-query+transcludedin-param-prop": "Que propiedades obter:\n;pageid:ID de páxina de cada páxina.\n;title:Título de cada páxina.\n;redirect:Marca si a páxina é unha redirección.",
        "apihelp-query+transcludedin-param-namespace": "Só incluir páxinas nestes espacios de nomes.",
        "apihelp-query+transcludedin-param-limit": "Cantos mostrar.",
+       "apihelp-query+transcludedin-param-show": "Mostrar só elementos que cumpren estes criterios:\n;redirect:Só mostra redireccións.\n;!redirect:Só mostra as que non son redireccións.",
+       "apihelp-query+transcludedin-example-simple": "Obter unha lista de páxinas que inclúen a <kbd>Main Page</kbd>.",
+       "apihelp-query+transcludedin-example-generator": "Obter información sobre as páxinas que inclúen <kbd>Main Page</kbd>.",
        "apihelp-query+usercontribs-description": "Mostrar tódalas edicións dun usuario.",
        "apihelp-query+usercontribs-param-limit": "Máximo número de contribucións a mostar.",
+       "apihelp-query+usercontribs-param-start": "Selo de tempo de comezo ó que volver.",
+       "apihelp-query+usercontribs-param-end": "Selo de tempo de fin ó que volver.",
+       "apihelp-query+usercontribs-param-user": "Usuarios para os que recuperar as contribucións.",
+       "apihelp-query+usercontribs-param-userprefix": "Recuperar as contribucións de todos os usuarios cuxo nome comece por este valor. Ignora $1user.",
        "apihelp-query+usercontribs-param-namespace": "Só listar contribucións nestes espazos de nomes.",
+       "apihelp-query+usercontribs-param-show": "Só mostrar elementos que cumpran estos criterios, p.ex. só edicións menores: <kbd>$2show=!minor</kbd>.\n\nSe está fixado <kbd>$2show=patrolled</kbd> ou <kbd>$2show=!patrolled</kbd>, as modificacións máis antigas que <var>[[mw:Manual:$wgRCMaxAge|$wgRCMaxAge]]</var> ($1 {{PLURAL:$1|segundo|segundos}}) non se mostrarán.",
        "apihelp-query+usercontribs-param-tag": "Só listar revisións marcadas con esta etiqueta.",
        "apihelp-query+usercontribs-param-toponly": "Listar só cambios que son a última revisión.",
        "apihelp-query+usercontribs-example-user": "Mostrar as contribucións do usuario <kbd>Exemplo</kbd>.",
        "apihelp-query+userinfo-example-simple": "Obter información sobre o usuario actual.",
        "apihelp-query+userinfo-example-data": "Obter información adicional sobre o usuario actual.",
        "apihelp-query+users-description": "Obter información sobre unha lista de usuarios.",
+       "apihelp-query+users-param-prop": "Que información incluír:\n;blockinfo:Etiquetas se o usuario está bloqueado, por quen, e por que razón.\n;groups:Lista todos os grupos ós que pertence cada usuario.\n;implicitgroups:Lista os grupos dos que un usuario é membro de forma automatica.\n;rights:Lista todos os dereitos que ten cada usuario.\n;editcount:Engade o contador de edicións do usuario.\n;registration:Engade o selo de tempo do rexistro do usuario.\n;emailable:Marca se o usuario pode e quere recibir correos usando [[Special:Emailuser]].\n;gender:Marca o xénero do usuario. Devolve \"home\", \"muller\" ou \"descoñecido\".",
        "apihelp-query+users-param-users": "Lista de usuarios para os que obter información.",
+       "apihelp-query+users-param-token": "Usar <kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd> no canto diso.",
        "apihelp-query+users-example-simple": "Mostar información para o usuario <kbd>Exemplo</kbd>.",
-       "apihelp-query+watchlist-param-start": "Selo de tempo para comenzar a enumeración",
+       "apihelp-query+watchlist-description": "Ver os cambios recentes das páxinas na lista de vixiancia do usuario actual.",
+       "apihelp-query+watchlist-param-allrev": "Incluír múltiples revisións da mesma páxina dentro do intervalo de tempo indicado.",
+       "apihelp-query+watchlist-param-start": "Selo de tempo para comezar a enumeración",
        "apihelp-query+watchlist-param-end": "Selo de tempo para rematar a enumeración.",
+       "apihelp-query+watchlist-param-namespace": "Filtrar os cambios a só os espazos de nomes indicados.",
        "apihelp-query+watchlist-param-user": "Só listar cambios deste usuario.",
        "apihelp-query+watchlist-param-excludeuser": "Non listar cambios deste usuario.",
        "apihelp-query+watchlist-param-limit": "Cantos resultados totais mostrar por petición.",
+       "apihelp-query+watchlist-param-show": "Só mostrar elementos que cumpran esos criterios. Por exemplo, para ver só edicións menores feitas por usuarios conectados, activar $1show=minor|!anon.",
+       "apihelp-query+watchlist-param-type": "Que tipos de cambios mostrar:\n;edit:Modificacións normais de páxina.\n;external:Modificacións externas.\n;new:Creación de páxinas.\n;log:Entradas no rexistro.",
+       "apihelp-query+watchlist-param-owner": "Usado con $1token para acceder á lista de páxinas de vixiancia doutro usuario.",
+       "apihelp-query+watchlist-param-token": "Identificador de seguridade (dispoñible nas [[Special:Preferences#mw-prefsection-watchlist|preferencias]] de usuario) para permitir o acceso a outros á súa páxina de vixiancia.",
+       "apihelp-query+watchlist-example-simple": "Listar a última revisión das páxinas recentemente modificadas da lista de vixiancia do usuario actual.",
+       "apihelp-query+watchlist-example-props": "Buscar información adicional sobre a última revisión das páxinas modificadas recentemente da lista de vixiancia do usuario actual.",
+       "apihelp-query+watchlist-example-allrev": "Buscar a información sobre todos os cambios recentes das páxinas da lista de vixiancia do usuario actual.",
+       "apihelp-query+watchlist-example-generator": "Buscar a información de páxina das páxinas cambiadas recentemente da lista de vixiancia do usuario actual.",
+       "apihelp-query+watchlist-example-generator-rev": "Buscar a información da revisión dos cambios recentes de páxinas na lista de vixiancia do usuario actual.",
+       "apihelp-query+watchlist-example-wlowner": "Listar a última revisión das páxinas cambiadas recentemente da lista de vixiancia do usuario <kbd>Example</kbd>.",
+       "apihelp-query+watchlistraw-description": "Obter todas as páxinas da lista de vixiancia do usuario actual.",
        "apihelp-query+watchlistraw-param-namespace": "Só listar páxinas nestes espazos de nomes.",
        "apihelp-query+watchlistraw-param-limit": "Cantos resultados totais mostrar por petición.",
+       "apihelp-query+watchlistraw-param-prop": "Que propiedades adicionais obter:\n;changed:Engade o selo de tempo da última notificación ó usuario dunha modificación.",
        "apihelp-query+watchlistraw-param-show": "Só listar os elementos que cumplen estos criterios.",
+       "apihelp-query+watchlistraw-param-owner": "Usado con $1token para acceder á lista de páxinas de vixiancia doutro usuario.",
+       "apihelp-query+watchlistraw-param-token": "Identificador de seguridade (dispoñible nas [[Special:Preferences#mw-prefsection-watchlist|preferencias]] de usuario) para permitir o acceso a outros á súa páxina de vixiancia.",
        "apihelp-query+watchlistraw-example-simple": "Listar páxinas na lista de vixiancia do usuario actual.",
+       "apihelp-query+watchlistraw-example-generator": "Buscar a información de páxina das páxinas da lista de vixiancia do usuario actual.",
        "apihelp-revisiondelete-description": "Borrar e restaurar revisións.",
+       "apihelp-revisiondelete-param-type": "Tipo de borrado de revisión a ser tratada.",
+       "apihelp-revisiondelete-param-target": "Título de páxina para o borrado da revisión, se requerido para o tipo.",
+       "apihelp-revisiondelete-param-ids": "Identificadores para as revisións a ser  borradas.",
        "apihelp-revisiondelete-param-hide": "Que ocultar para cada revisión.",
        "apihelp-revisiondelete-param-show": "Que mostrar para cada revisión.",
+       "apihelp-revisiondelete-param-suppress": "Eliminar os datos dos administradores así coma dos doutros.",
        "apihelp-revisiondelete-param-reason": "Razón para o borrado ou restaurado.",
        "apihelp-revisiondelete-example-revision": "Ocultar contido para revisión <kbd>12345</kbd> na <kbd>Páxina Principal</kbd>.",
+       "apihelp-revisiondelete-example-log": "Ocultar todos os datos da entrada de rexistro <kbd>67890</kbd> coa razón <kbd>BLP violation</kbd>.",
+       "apihelp-rollback-description": "Desfacer a última modificación da páxina.\n\nSe o último usuario que modificou a páxina fixo varias modificacións nunha fila, desfaranse todas.",
+       "apihelp-rollback-param-title": "Título da páxina a desfacer. Non pode usarse xunto con <var>$1pageid</var>.",
+       "apihelp-rollback-param-pageid": "ID da páxina a desfacer. Non pode usarse xunto con <var>$1title</var>.",
+       "apihelp-rollback-param-user": "Nome do usuario cuxas modificacións van a desfacerse.",
+       "apihelp-rollback-param-summary": "Personalizar o resumo de edición. Se está baleiro, usarase o resumo por defecto.",
        "apihelp-rollback-param-markbot": "Marcar as edicións revertidas e a reversión como edicións de bot.",
+       "apihelp-rollback-param-watchlist": "Engadir ou eliminar sen condicións a páxina da lista de vixiancia do usuario actual, use as preferencias ou non cambie a vixiancia.",
        "apihelp-rollback-example-simple": "Desfacer as últimas edicións á <kbd>Páxina Principal</kbd> do usuario <kbd>Exemplo</kbd>.",
+       "apihelp-rollback-example-summary": "Desfacer as últimas edicións á páxina <kbd>Main Page</kbd> polo usuario da dirección IP <kbd>192.0.2.5</kbd> co resumo de edición <kbd>Revertindo vandalismo</kbd>, marcar esas edicións e a reversión como edicións de bot.",
+       "apihelp-rsd-description": "Exportar un esquema RSD (Really Simple Discovery, Descubrimento Moi Simple).",
+       "apihelp-rsd-example-simple": "Exportar o esquema RSD.",
+       "apihelp-setnotificationtimestamp-description": "Actualiza o selo de tempo de notificación das páxinas vixiadas.\n\nIsto afecta ó resalte das páxinas modificadas na lista de vixiancia e historial, e o envío de correo cando a preferencia \"Mandarme un correo cando cambie unha páxina da miña lista de vixiancia\" está activa.",
        "apihelp-setnotificationtimestamp-param-entirewatchlist": "Traballar en tódalas páxinas vixiadas.",
+       "apihelp-setnotificationtimestamp-param-timestamp": "Selo de tempo ó que fixar a notificación.",
+       "apihelp-setnotificationtimestamp-param-torevid": "Modificación á que fixar o selo de tempo de modificación (só unha páxina).",
+       "apihelp-setnotificationtimestamp-param-newerthanrevid": "Modificación na que fixar o selo de tempo de modificación máis recente (só unha páxina).",
        "apihelp-setnotificationtimestamp-example-all": "Restaurar o estado de notificación para toda a páxina de vixiancia",
        "apihelp-setnotificationtimestamp-example-page": "Restaurar o estado de notificación para a <kbd>Páxina Principal</kbd>.",
+       "apihelp-setnotificationtimestamp-example-pagetimestamp": "Fixar o selo de tempo de notificación para a <kbd>Main page</kbd> de forma que todas as edicións dende o 1 se xaneiro de 2012 queden sen revisar.",
        "apihelp-setnotificationtimestamp-example-allpages": "Restaurar o estado de notificación para as páxinas no espazo de nomes de <kbd>{{ns:user}}</kbd>.",
+       "apihelp-tokens-description": "Obter os identificadores para accións de modificación de datos.\n\nEste módulo está obsoleto e foi reemprazado por [[Special:ApiHelp/query+tokens|action=query&meta=tokens]].",
+       "apihelp-tokens-param-type": "Tipos de identificadores a consultar.",
+       "apihelp-tokens-example-edit": "Recuperar un identificador de modificación (por defecto).",
+       "apihelp-tokens-example-emailmove": "Recuperar un identificador de correo e un identificador de movemento.",
        "apihelp-unblock-description": "Desbloquear un usuario.",
+       "apihelp-unblock-param-id": "ID do bloque a desbloquear (obtido de <kbd>list=blocks</kbd>). Non pode usarse xunto con <var>$1user</var>.",
+       "apihelp-unblock-param-user": "Nome de usuario, dirección IP ou rango de direccións IP a desbloquear. Non pode usarse xunto con <var>$1id</var>.",
        "apihelp-unblock-param-reason": "Razón para desbloquear.",
        "apihelp-unblock-example-id": "Desbloquear bloqueo ID #<kbd>105</kbd>.",
        "apihelp-unblock-example-user": "Desbloquear usuario <kbd>Bob</kbd> con razón <kbd>Síntoo Bob</kbd>.",
+       "apihelp-undelete-description": "Restaurar modificacións dunha páxina borrada.\n\nUnha lista de modificacións borradas (incluíndo os seus selos de tempo) pode consultarse a través de [[Special:ApiHelp/query+deletedrevs|list=deletedrevs]], e unha lista de IDs de ficheiros borrados pode consultarse a través de [[Special:ApiHelp/query+filearchive|list=filearchive]].",
        "apihelp-undelete-param-title": "Título da páxina a restaurar.",
        "apihelp-undelete-param-reason": "Razón para restaurar.",
+       "apihelp-undelete-param-timestamps": "Selos de tempo das modificacións a restaurar. Se <var>$1timestamps</var> e <var>$1fileids</var> están baleiras, restaurarase todo.",
+       "apihelp-undelete-param-fileids": "IDs das modificacións de ficheiro a restaurar. Se <var>$1timestamps</var> e <var>$1fileids</var> están baleiras, serán restauradas todas.",
+       "apihelp-undelete-param-watchlist": "Engadir ou eliminar a páxina da lista de vixiancia do usuario actual sen condicións, use as preferencias ou non cambie a vixiancia.",
        "apihelp-undelete-example-page": "Restaurar a <kbd>Páxina Principal</kbd>.",
        "apihelp-undelete-example-revisions": "Restaurar dúas revisións de <kbd>[[Main Page]]</kbd>.",
+       "apihelp-upload-param-filename": "Nome de ficheiro obxectivo.",
+       "apihelp-upload-param-comment": "Subir comentario. Tamén usado como texto da páxina inicial para ficheiros novos se non se especifica <var>$1text</var>.",
        "apihelp-upload-param-text": "Texto da páxina inicial para novos ficheiros.",
        "apihelp-upload-param-watch": "Vixiar a páxina.",
+       "apihelp-upload-param-watchlist": "Engadir ou eliminar sen condicións a páxina da lista de vixiancia do usuario actual, use as preferencias ou non cambie a vixiancia.",
        "apihelp-upload-param-ignorewarnings": "Ignorar as advertencias.",
        "apihelp-upload-param-file": "Contido do ficheiro.",
+       "apihelp-upload-param-url": "URL onde buscar o ficheiro.",
+       "apihelp-upload-param-filekey": "Clave que identifica unha subida precedente e que foi almacenada temporalmente.",
+       "apihelp-upload-param-sessionkey": "Igual a $1filekey, mantido por razóns de compatibilidade con procesos antigos.",
+       "apihelp-upload-param-stash": "Se está indicado, o servidor almacenará o ficheiro temporalmente no canto de engadilo ó repositorio.",
        "apihelp-upload-param-filesize": "Tamaño de ficheiro completo da carga.",
+       "apihelp-upload-param-offset": "Desaxuste do bloque en bytes.",
+       "apihelp-upload-param-chunk": "Contido do bloque.",
+       "apihelp-upload-param-async": "Facer de forma asíncrona as operacións de ficheiro potencialmente grandes cando sexa posible.",
+       "apihelp-upload-param-asyncdownload": "Facer de forma asíncrona a busca dunha URL.",
+       "apihelp-upload-param-leavemessage": "Se se usa asyncdownload, deixar unha mensaxe na páxina de conversa do usuario cando se remate.",
+       "apihelp-upload-param-statuskey": "Buscar o estado da subida para esta clave de ficheiro (subida por URL).",
+       "apihelp-upload-param-checkstatus": "Só buscar o estado da subida da clave de ficheiro indicada.",
        "apihelp-upload-example-url": "Carga dunha URL",
        "apihelp-upload-example-filekey": "Completar carga que fallou debido a avisos",
+       "apihelp-userrights-description": "Cambiar a pertencia dun usuario a un grupo.",
        "apihelp-userrights-param-user": "Nome de usuario.",
        "apihelp-userrights-param-userid": "ID de usuario.",
        "apihelp-userrights-param-add": "Engadir o usuario a estes grupos.",
        "apihelp-userrights-param-remove": "Eliminar o usuario destes grupos.",
        "apihelp-userrights-param-reason": "Motivo para o cambio.",
+       "apihelp-userrights-example-user": "Engadir o usuario <kbd>FooBot</kbd> ó grupo <kbd>bot</kbd>, e eliminar dos grupos <kbd>sysop</kbd> e <kbd>burócrata</kbd>.",
+       "apihelp-userrights-example-userid": "Engadir ó usuario con ID <kbd>123</kbd> ó grupo <kbd>bot</kbd>, e borralo dos grupos <kbd>sysop</kbd> e <kbd>burócrata</kbd>.",
+       "apihelp-watch-description": "Engadir ou borrar páxinas da lista de vixiancia do usuario actual.",
+       "apihelp-watch-param-title": "Páxina a vixiar/deixar de vixiar. Usar no canto <var>$1titles</var>.",
+       "apihelp-watch-param-unwatch": "Se está definido, a páxina deixará de estar vixiada en vez de vixiada.",
        "apihelp-watch-example-watch": "Vixiar a páxina <kbd>Páxina Principal</kbd>.",
        "apihelp-watch-example-unwatch": "Deixar de vixiar a páxina <kbd>Páxina Principal</kbd>.",
        "apihelp-watch-example-generator": "Vixiar as primeiras páxinas no espazo de nomes principal",
+       "apihelp-format-example-generic": "Formatar o resultado da consulta no formato $1.",
+       "apihelp-dbg-description": "Datos de saída en formato <code>var_export()</code> de PHP.",
+       "apihelp-dbgfm-description": "Datos de saída en formato <code>var_export()</code> de PHP(impresión en HTML).",
+       "apihelp-dump-description": "Datos de saída en formato PHP <code>var_dump()</code>.",
+       "apihelp-dumpfm-description": "Datos de saída en formato <code>var_dump()</code> de PHP(impresión en HTML).",
+       "apihelp-json-description": "Datos de saída en formato JSON.",
+       "apihelp-json-param-callback": "Se está especificado, inclúe a saída na chamada da función indicada. Para maior seguridade, todos os datos específicos do usuario serán restrinxidos.",
+       "apihelp-json-param-utf8": "Se está especificado, codifica a maioría (pero non todos) dos caracteres ASCII como UTF-8 no canto de reemprazalos con secuencias de escape hexadecimais.",
+       "apihelp-jsonfm-description": "Datos de saída en formato JSON(impresión en HTML).",
+       "apihelp-none-description": "Ningunha saída.",
+       "apihelp-php-description": "Datos de saída en formato serializado de PHP.",
+       "apihelp-phpfm-description": "Datos de saída en formato serializado de PHP(impresión en HTML).",
+       "apihelp-rawfm-description": "Datos de saída cos elementos de depuración en formato JSON(impresión en HTML).",
+       "apihelp-txt-description": "Datos de saída en formato PHP <code>print_r()</code>.",
+       "apihelp-txtfm-description": "Datos de saída en formato <code>print_r()</code> de PHP(impresión en HTML).",
+       "apihelp-wddx-description": "Datos de saída en formato WDDX.",
+       "apihelp-wddxfm-description": "Datos de saída en formato WDDX(impresión en HTML).",
+       "apihelp-xml-description": "Datos de saída en formato XML.",
+       "apihelp-xml-param-xslt": "Se está indicado, engade o nome da páxina como unha folla de estilo XSL. O valor debe ser un título no espazo de nomes {{ns:mediawiki}} rematando con <code>.xsl</code>.",
+       "apihelp-xml-param-includexmlnamespace": "Se está indicado, engade un espazo de nomes XML.",
+       "apihelp-xmlfm-description": "Datos de saída en formato XML(impresión en HTML).",
+       "apihelp-yaml-description": "Datos de saída en formato YAML.",
+       "apihelp-yamlfm-description": "Datos de saída en formato YAML(impresión en HTML).",
+       "api-format-title": "Resultado de API de MediaWiki",
+       "api-orm-param-props": "Campos a consultar.",
        "api-orm-param-limit": "Número máximo de filas a mostrar.",
        "api-pageset-param-titles": "Lista de títulos nos que traballar.",
        "api-pageset-param-pageids": "Lista de identificadores de páxina nos que traballar.",
+       "api-pageset-param-revids": "Unha lista de IDs de modificacións sobre as que traballar.",
+       "api-pageset-param-generator": "Obter a lista de páxinas sobre as que traballar executando o módulo de consulta especificado.\n\n<strong>Nota:</strong>Os nomes de parámetro do xerador deben comezar cunha \"g\", vexa os exemplos.",
+       "api-pageset-param-redirects-generator": "Resolver automaticamente as redireccións en <var>$1titles</var>, <var>$1pageids</var>, e <var>$1revids</var>, e nas páxinas devoltas por <var>$1generator</var>.",
+       "api-pageset-param-redirects-nogenerator": "Resolver automaticamente as redireccións en <var>$1titles</var>, <var>$1pageids</var>, e <var>$1revids</var>.",
+       "api-pageset-param-converttitles": "Converter títulos a outras variantes se é preciso. Só funciona se a lingua de contido da wiki soporta a conversión en variantes. As linguas que soportan conversión en variante inclúen $1.",
        "api-help-title": "Axuda da API de MediaWiki",
+       "api-help-lead": "Esta é unha páxina de documentación da API de MediaWiki xerada automaticamente.\n\nDocumentación e exemplos:\nhttps://www.mediawiki.org/wiki/API",
        "api-help-main-header": "Módulo principal",
        "api-help-flag-deprecated": "Este módulo está obsoleto.",
+       "api-help-flag-internal": "<strong>Este módulo é interno ou inestable. </strong> O seu funcionamento pode cambiar sen aviso previo.",
        "api-help-flag-readrights": "Este módulo precisa permisos de lectura.",
        "api-help-flag-writerights": "Este módulo precisa permisos de escritura.",
        "api-help-flag-mustbeposted": "Este módulo só acepta peticións POST.",
        "api-help-param-integer-min": "{{PLURAL:$1|1=O valor debe ser maior |2=Os valores deben ser maiores}} que $2.",
        "api-help-param-integer-max": "{{PLURAL:$1|1=O valor debe ser menor |2=Os valores deben ser menores}} que $3.",
        "api-help-param-integer-minmax": "{{PLURAL:$1|1=O valor debe estar entre $2 e $3 |2=Os valores deben estar entre $2 e $3}}.",
+       "api-help-param-upload": "Debe ser enviado como un ficheiro importado usando multipart/form-data.",
        "api-help-param-multi-separate": "Separe os valores con <kbd>|</kbd>.",
+       "api-help-param-multi-max": "O número máximo de valores é {{PLURAL:$1|$1}} ({{PLURAL:$2|$2}} para os bots).",
        "api-help-param-default": "Por defecto: $1",
        "api-help-param-default-empty": "Por defecto: <span class=\"apihelp-empty\">(baleiro)</span>",
+       "api-help-param-token": "Un identificador \"$1\" recuperado por [[Special:ApiHelp/query+tokens|action=query&meta=tokens]]",
+       "api-help-param-token-webui": "Por compatibilidade, o identificador usado na web UI tamén é aceptado.",
+       "api-help-param-disabled-in-miser-mode": "Desactivado debido ó [[mw:Manual:$wgMiserMode|modo minimal]].",
+       "api-help-param-limited-in-miser-mode": "<strong>Nota:</strong> Debido ó [[mw:Manual:$wgMiserMode|modo minimal]], usar isto pode devolver menos de <var>$1limit</var> resultados antes de seguir, en casos extremos, pode que non se devolvan resultados.",
+       "api-help-param-direction": "En que dirección enumerar:\n;newer:Lista os máis antigos primeiro. Nota: $1start ten que estar antes que $1end.\n;older:Lista os máis novos primeiro (por defecto). Nota: $1start ten que estar despois que $1end.",
+       "api-help-param-continue": "Cando estean dispoñibles máis resultados, use isto para continuar.",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(sen descrición)</span>",
        "api-help-examples": "{{PLURAL:$1|Exemplo|Exemplos}}:",
        "api-help-permissions": "{{PLURAL:$1|Permiso|Permisos}}:",
+       "api-help-permissions-granted-to": "{{PLURAL:$1|Concedida a|Concedidas a}}: $2",
+       "api-help-right-apihighlimits": "Usar os valores superiores das consultas da API (consultas lentas: $1; consultas rápidas: $2). Os límites para as consultas lentas tamén se aplican ós parámetros multivaluados.",
        "api-credits-header": "Créditos"
 }
index 6552dc4..fcc7f7b 100644 (file)
@@ -5,7 +5,8 @@
                        "Amire80",
                        "Inkbug",
                        "Danny-w",
-                       "YaronSh"
+                       "YaronSh",
+                       "ערן"
                ]
        },
        "apihelp-main-param-action": "איזו פעולה לבצע.",
@@ -40,6 +41,7 @@
        "apihelp-delete-param-watch": "הוספת העמוד לרשימת המעקב של המשתמש הנוכחי.",
        "apihelp-delete-param-unwatch": "הסרת הדף מרשימת המעקב של של המשתמש הנוכחי.",
        "apihelp-delete-example-simple": "מחיקת הדף הראשי",
+       "apihelp-edit-param-text": "תוכן הדף.",
        "apihelp-edit-param-minor": "עריכה משנית.",
        "apihelp-edit-example-edit": "עריכת דף",
        "apihelp-emailuser-description": "שליחת דוא\"ל למשתמש.",
        "apihelp-feedcontributions-param-deletedonly": "הצגת תרומות שנמחקו בלבד.",
        "apihelp-feedcontributions-param-toponly": "הצגת עריכות שהן הגרסה העדכנית ביותר בלבד.",
        "apihelp-feedcontributions-example-simple": "החזרת תרומות עבור המשתמש <kbd>Example</kbd>.",
+       "apihelp-feedrecentchanges-param-hideminor": "הסתרת שינוים משניים.",
+       "apihelp-feedrecentchanges-param-hidebots": "הסתרת שינויים שנעשו על ידי בוטים.",
+       "apihelp-feedrecentchanges-param-hideanons": "הסתרת שינויים שנעשו על ידי אנונימים.",
+       "apihelp-feedrecentchanges-param-hideliu": "הסתרת שינויים שנעשו על ידי משתמשים רשומים.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "הסתרת שינויים שנבדקו.",
+       "apihelp-feedrecentchanges-param-hidemyself": "הסתרת שינוים שנעשו על ידי המשתמש הנוכחי.",
        "apihelp-feedrecentchanges-param-tagfilter": "סינון לפי תגית.",
+       "apihelp-feedrecentchanges-param-target": "הצגת שינויים שנעשו בדפים המקושרים לדף זה בלבד.",
+       "apihelp-feedrecentchanges-example-simple": "הצגת שינויים אחרונים.",
+       "apihelp-feedrecentchanges-example-30days": "הצגת שינויים אחרונים עבור 30 ימים.",
        "apihelp-help-description": "הצגת עזרה עבור היחידות שצוינו.",
        "apihelp-help-param-helpformat": "תסדיר פלט העזרה.",
        "apihelp-help-param-toc": "לכלול תוכן עניינים בפלט HTML.",
index 218d24c..277f368 100644 (file)
@@ -2,9 +2,16 @@
        "@metadata": {
                "authors": [
                        "Beta16",
-                       "Nivit"
+                       "Nivit",
+                       "Toadino2"
                ]
        },
+       "apihelp-block-description": "Blocca  un utente.",
+       "apihelp-emailuser-description": "Manda un'e-mail ad un utente.",
+       "apihelp-emailuser-param-ccme": "Mandami una copia di questa mail.",
+       "apihelp-expandtemplates-description": "Espandi tutti i template nel wikitesto.",
+       "apihelp-expandtemplates-param-title": "Titolo della pagina.",
+       "apihelp-expandtemplates-param-text": "Wikitesto da convertire.",
        "apihelp-query+recentchanges-example-simple": "Elenco modifiche recenti.",
        "apihelp-upload-example-url": "Carica da un URL.",
        "api-help-parameters": "{{PLURAL:$1|Parametro|Parametri}}:",
index 4c7b20a..e0e32f5 100644 (file)
@@ -28,6 +28,9 @@
        "apihelp-block-param-watchuser": "その利用者またはIPアドレスの利用者ページとトークページをウォッチします。",
        "apihelp-block-example-ip-simple": "IPアドレス <kbd>192.0.2.5</kbd> を <kbd>First strike<kbd> という理由で3日ブロックする",
        "apihelp-block-example-user-complex": "利用者 <kbd>Vandal</kbd> を <kbd>Vandalism</kbd> という理由で無期限ブロックし、新たなアカウント作成とメールの送信を禁止する。",
+       "apihelp-checktoken-param-type": "調べるトークンの種類。",
+       "apihelp-checktoken-param-token": "調べるトークン。",
+       "apihelp-checktoken-example-simple": "<kbd>csrf</kbd> トークンの妥当性を調べる。",
        "apihelp-compare-example-1": "版1と2の差分を生成する。",
        "apihelp-createaccount-description": "新しい利用者アカウントを作成します。",
        "apihelp-createaccount-param-name": "利用者名。",
@@ -36,6 +39,7 @@
        "apihelp-createaccount-param-email": "利用者の電子メールアドレス (任意)。",
        "apihelp-createaccount-param-realname": "利用者の本名 (省略可能)。",
        "apihelp-createaccount-param-mailpassword": "設定されると (その値を問わず)、ランダムなパスワードがその利用者に電子メールで送られます。",
+       "apihelp-createaccount-param-reason": "ログに記録されるアカウント作成の理由 (任意)。",
        "apihelp-createaccount-example-pass": "利用者 <kbd>testuser</kbd> をパスワード <kbd>test123</kbd> として作成する。",
        "apihelp-createaccount-example-mail": "利用者 <kbd>testuser</kbd>を作成し、ランダムに生成されたパスワードをメールで送る",
        "apihelp-delete-description": "ページを削除します。",
        "apihelp-feedcontributions-param-toponly": "最新版の編集のみ表示します。",
        "apihelp-feedcontributions-param-newonly": "ページ作成を伴う編集のみを表示します。",
        "apihelp-feedcontributions-example-simple": "利用者 <kbd>Example</kbd> の投稿記録を取得する。",
+       "apihelp-feedrecentchanges-param-limit": "返す結果の最大数。",
+       "apihelp-feedrecentchanges-param-hideminor": "細部の変更を隠す。",
+       "apihelp-feedrecentchanges-param-hidebots": "ボットによる変更を隠す。",
+       "apihelp-feedrecentchanges-param-hideanons": "未登録利用者による変更を隠す。",
+       "apihelp-feedrecentchanges-param-hideliu": "登録利用者による変更を隠す。",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "巡回済みの変更を隠す。",
+       "apihelp-feedrecentchanges-example-simple": "最近の更新を表示する。",
+       "apihelp-feedrecentchanges-example-30days": "最近30日間の変更を表示する。",
        "apihelp-filerevert-example-revert": "<kbd>Wiki.png</kbd> を <kbd>2011-03-05T15:27:40Z</kbd> の版に差し戻す。",
        "apihelp-help-description": "指定したモジュールのヘルプを表示します。",
        "apihelp-help-param-modules": "ヘルプを表示するモジュールです (<var>action</var> パラメーターおよび <var>format</var> パラメーターの値、または <kbd>main</kbd>)。<kbd>+</kbd> を使用して下位モジュールを指定できます。",
@@ -87,6 +99,8 @@
        "apihelp-imagerotate-example-simple": "<kbd>File:Example.png</kbd> を <kbd>90</kbd> 度回転させる。",
        "apihelp-imagerotate-example-generator": "<kbd>Category:Flip</kbd> 内のすべての画像を <kbd>180</kbd> 度回転させる。",
        "apihelp-import-param-xml": "XMLファイルをアップロード",
+       "apihelp-import-param-rootpage": "このページの下位ページとしてインポートする。",
+       "apihelp-import-example-import": "[[meta:Help:Parserfunctions]] をすべての履歴とともに名前空間100 にインポートする。",
        "apihelp-login-param-name": "利用者名。",
        "apihelp-login-param-password": "パスワード。",
        "apihelp-login-param-token": "最初のリクエストで取得したログイントークンです。",
        "apihelp-move-param-unwatch": "そのページと転送ページを現在の利用者のウォッチリストから除去します。",
        "apihelp-move-param-ignorewarnings": "あらゆる警告を無視",
        "apihelp-move-example-move": "<kbd>Badtitle</kbd> を <kbd>Goodtitle</kbd> に転送ページを残さず移動",
+       "apihelp-opensearch-param-search": "検索文字列。",
+       "apihelp-opensearch-param-limit": "返す結果の最大数。",
+       "apihelp-opensearch-param-namespace": "検索する名前空間。",
        "apihelp-opensearch-param-suggest": "<var>[[mw:Manual:$wgEnableOpenSearchSuggest|$wgEnableOpenSearchSuggest]]</var> が false の場合、何もしません。",
        "apihelp-paraminfo-description": "API モジュールに関する情報を取得します。",
        "apihelp-patrol-description": "ページまたは版を巡回済みにします。",
index 5e18dc1..540f64c 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Kwj2772",
-                       "Twotwo2019"
+                       "Twotwo2019",
+                       "아라"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [https://www.mediawiki.org/wiki/API:Main_page 설명문서]\n* [https://www.mediawiki.org/wiki/API:FAQ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api 메일링 리스트]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API 공지 사항] * [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R 버그 및 요청] </div>\n<strong>상태:</strong> 이 페이지에 표시된 모든 기능은 정상 작동할 것이지만, API는 여전히 활발하게 개발되고 있으며, 언제든지 바뀔 수 있습니다. 업데이트 정보를 받아보려면 [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ the mediawiki-api-announce 메일링 리스트]를 구독하십시오.\n\n<strong>잘못된 요청:</strong> API에 잘못된 요청이 전송되면 HTTP 헤더에서 \"MediaWiki-API-Error\" 키를 보내고, 헤더 값과 오류 코드가 같게 설정됩니다. 자세한 정보에 대해서는 https://www.mediawiki.org/wiki/API:Errors_and_warnings 를 참고하십시오.",
        "apihelp-block-param-watchuser": "해당 사용자 또는 IP 주소의 사용자 문서 및 토론 문서를 주시합니다.",
        "apihelp-block-example-ip-simple": "IP <kbd>192.0.2.5</kbd>에 대해 <kbd>First strike</kbd>라는 이유로 3일간 차단하기",
        "apihelp-block-example-user-complex": "사용자 <kbd>Vandal</kbd>을 <kbd>Vandalism</kbd>이라는 이유로 무기한 차단하며 계정 생성 및 이메일 발송을 막기",
+       "apihelp-delete-example-simple": "<kbd>Main Page</kbd>를 삭제합니다.",
+       "apihelp-edit-description": "문서를 만들고 편집합니다.",
+       "apihelp-edit-param-sectiontitle": "새 문단을 위한 제목.",
+       "apihelp-edit-param-text": "문서 내용.",
+       "apihelp-edit-param-summary": "편집 요약. 또한 $1section=new 및 $1sectiontitle이 설정되어 있지 않을 때 문단 제목.",
+       "apihelp-edit-param-minor": "사소한 편집.",
+       "apihelp-edit-param-notminor": "사소하지 않은 편집.",
+       "apihelp-edit-param-bot": "이 편집을 봇으로 표시.",
        "api-help-param-list": "{{PLURAL:$1|1=하나의 값|2=값 (\"{{!}}\"로 구분)}}: $2",
        "api-help-param-default": "기본값: $1"
 }
index 41f73b1..047ef0b 100644 (file)
@@ -4,8 +4,12 @@
                        "Purodha"
                ]
        },
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page/de|Dokemäntazjohn]]\n* [[mw:API:FAQ/de|Öff jefrohch]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Mäileng_Leß]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Aanköndejonge zom <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Application Programming Interface\">API</i>]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Jemäldte Fähler un Wönsch]\n</div>\n<strong>Status:</strong> Alle op heh dä Sigg aanjzeischte Ußwahle sullte donn, ävver et <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Application Programming Interface\">API</i> wee jrahd noch äntwekeld un et kann sesch alle Nahslangs jädd ändere. Holl Der de [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ Mäileng_Leß med Aanköndejonge], öm automattesch övver Neujeschkeite enfommehrt ze wähde.\n\n<strong>Kapodde Aanfrohe:</strong> Wam_mer kapodde Aanfroheaan et API <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Application Programming Interface\">API</i> schek, kritt mer ene <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"HyperText Transfer Protocol\">HTTP</i>-Kopp ußjejovve met däm Täx „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">MediaWiki-API-Error</code>“ dren, dä mer als ene Schlößel bedraachte kann. Mih dohzoh fengk met op dä Sigg [[mw:API:Errors_and_warnings|<i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Application Programming Interface\">API</i>: Fähler un Warnonge]].",
        "apihelp-main-param-action": "Wat för en Aufjahb.",
        "apihelp-main-param-format": "Et Fommaht för ußzejävve.",
+       "apihelp-main-param-smaxage": "Säz <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">s-maxage</code> em Kobb obb esu vill Sekonde. Fähler wähde nit faßjehallde.",
+       "apihelp-main-param-maxage": "Säz <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">max-age</code> em Kobb obb esu vill Sekonde. Fähler wähde nit faßjehallde.",
+       "apihelp-main-param-assert": "Ställ sescher, dat dä Metmaacher enjelogg es (doh för jiff <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">user</kbd> en), udder ene Bot es (doh för jiff <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">bot</kbd> en).",
        "apihelp-main-param-requestid": "Jehde Aanjahb vun heh weed widder med ußjejovve. Esuh kam_mer einzel Affrohre ussenein hallde.",
        "apihelp-main-param-servedby": "Donn däm ẞööver, dä et jedonn hät, singe Nahme med ußjävve.",
        "apihelp-main-param-curtimestamp": "Donn de aktoälle Zigg un et Dattum med ußjävve.",
@@ -15,6 +19,7 @@
        "apihelp-block-param-anononly": "Bloß de nahmelohse Metmaaacher spärre, alsu donn et nahmelohse Beärbeide vun dä <i lang=\"en\" xml:lang=\"en\" title=\"Internet Protocol\">IP</i>-Addräß uß verhendere.",
        "apihelp-block-param-nocreate": "Et Neu-Aanmelde verbeede",
        "apihelp-block-param-autoblock": "Dun automattesch de läzde <i lang=\"en\" xml:lang=\"en\">IP</i>-Adräß schpärre, di dä Metmaacher jehatt hät, un och all di <i lang=\"en\" xml:lang=\"en\">IP</i>-Adräße, vun wo dä versöhk, jet ze ändere.",
+       "apihelp-block-param-reblock": "Wann dä Metmaacher als jeschpächd es, donn dat övverschrihve.",
        "apihelp-block-param-watchuser": "Donn de Metmaachersigg un de Klaafsigg dohzoh op mig Oppaßleß säze.",
        "apihelp-block-example-ip-simple": "Donn de <i lang=\"en\" xmL:lang=\"en\" title=\"Internet Protocol\">IP</i>-Addräß <kbd>192.0.2.5</kbd> för drei ääsch schpärre mem Jrond: <kbd>Eestschlaach</kbd>.",
        "apihelp-compare-description": "Donn de Ongerscheide zwesche zwai Sigge beschtemme.\n\nDo moß derför jeweils en Väsjohn, en Övverschreff för di Sigg, odder ener Sigg iehr Kännong aanjävve, för de beide Sigge.",
        "apihelp-createaccount-param-realname": "Dämm Medmaacher singe reschtejje Nahme - kann fott blihve.",
        "apihelp-createaccount-param-mailpassword": "Wann heh jädd aanjejovve es, kritt dä Metmaacher e zohfällesch ußjesöhk neu Paßwood aan sing Adräß för de <i lang=\"en\" xml:lang=\"en\">e-mail</i> jescheck.",
        "apihelp-createaccount-param-reason": "Ene Jrond för dä Zojang aanzelähje, dä en de Logböhscher kütt.",
+       "apihelp-createaccount-param-language": "Dat Schprohcheköözel, wadd als der Schtandatt för dä Metmaacher jesaz wähde sull. Kann läddesch blihve, dann es et di Schprohch vum Wikki.",
+       "apihelp-createaccount-example-pass": "Lääsch dä Metmaacher <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">testuser</kbd> aan, mem Paßwood <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">test123</kbd>.",
+       "apihelp-createaccount-example-mail": "Lääsch dä Metmaacher <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">testmailuser</kbd> aan med emem zohfällesch ußjewörfelte Paßwoot un schegg_em dat övver de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\">e-mail</i>.",
        "apihelp-delete-description": "Schmieß en Sigg fott.",
        "apihelp-delete-param-watch": "Donn di Sigg en däm aktoälle Metmaacher sing Oppaßleß opnämme.",
        "apihelp-delete-param-unwatch": "Schmihß di Sigg us däm aktoälle Metmaacher singe Oppaßless erus.",
-       "apihelp-delete-example-simple": "Schmiiß de Houpsigg fott",
+       "apihelp-delete-example-simple": "Schmiiß de <kbd>Houpsigg</kbd> fott",
+       "apihelp-delete-example-reason": "Schmiiß de <kbd>Houpsigg</kbd> fott mem Jrond: <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Preparing for move</kbd>.",
+       "apihelp-disabled-description": "Dat Moduhl wohd affjeschalldt.",
        "apihelp-edit-description": "Sigge aanlähje un verändere.",
        "apihelp-edit-param-sectiontitle": "De Övverschreff för ene neue Affschnett.",
        "apihelp-edit-param-text": "Dä Sigg ehre Ennhalld.",
        "apihelp-edit-param-bot": "Makeer heh di Änderog als vun enem Bot jemaat.",
        "apihelp-edit-param-createonly": "Donn di Sigg nit ändere, wann se ald doh es.",
        "apihelp-edit-param-nocreate": "Mäld ene Fähler, wann di Sigg nit doh es.",
+       "apihelp-edit-param-watch": "Donn di Sigg op dem aktälle Metmaacher sing Oppaßleß.",
+       "apihelp-edit-param-unwatch": "schmiiß di Sigg uß heh däm Metmaacher singe oppaßleß.",
        "apihelp-edit-param-redirect": "Verfollsch de Ömleidonge automattesch.",
        "apihelp-edit-param-contentmodel": "Et Enhalltsmodäll för dä neue Ennhalld.",
        "apihelp-edit-example-edit": "Veränder en Sigg.",
        "apihelp-edit-example-prepend": "Donn <kbd>_&#95;NOTOC_&#95;</kbd> för en Sigg säze.",
        "apihelp-emailuser-description": "Donn en <i lang=\"en\" xml:lang=\"en\">e-mail</i> aan dä Metmaacher schecke.",
        "apihelp-emailuser-param-target": "D ä Metmaacher, dä di <i lang=\"en\" xml:lang=\"en\">e-mail</i> krijje sull.",
+       "apihelp-emailuser-param-subject": "Koppeih mem Beträff.",
+       "apihelp-emailuser-param-text": "Dä Täx en dä <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\">e-mail</i>.",
        "apihelp-emailuser-param-ccme": "scheck mer en Koppih vun heh dä <i lang=\"en\" xml:lang=\"en\">e-mail</i>.",
        "apihelp-emailuser-example-email": "Donn en <i lang=\"en\" xml:lang=\"en\">e-mail</i> aan dä Metmaacher <kbd lang=\"en\" xml:lang=\"en\">WikiSysop</kbd> schecke mem Täx <kbd>Dä Enhalld</kbd> dren.",
        "apihelp-expandtemplates-description": "Deiht alle Schablohne en Wikkitäx ömsäze.",
        "apihelp-expandtemplates-param-title": "De Övverschreff vun dä Sigg.",
+       "apihelp-expandtemplates-param-text": "Dä Wikitäx zom ömwandelle.",
+       "apihelp-expandtemplates-param-includecomments": "Ov Aanmärkonge em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"HyperText Markup Language\">HTML</i>-Fommaht med ußjejovve wähde sulle.",
+       "apihelp-feedcontributions-param-feedformat": "Däm Kannahl sing Fommaht.",
+       "apihelp-feedcontributions-param-year": "Vum johr un fröhjer.",
+       "apihelp-feedcontributions-param-month": "Vun däm Mohnd un derför",
+       "apihelp-feedcontributions-param-deletedonly": "zeijsch blohß de fottjeschmeße Beijdrähsch.",
+       "apihelp-feedcontributions-param-toponly": "Zeich blohß de Änderonge, di och de neußte sin.",
+       "apihelp-feedcontributions-param-newonly": "Zeich blohß de Änderonge, woh Sigge neu aanjelaat woode sin.",
+       "apihelp-feedcontributions-param-showsizediff": "Zeijsch de Ongerscheijd en de Jrühße zwesche de Väsjohne.",
+       "apihelp-feedcontributions-example-simple": "Zeijsch de Änderonge vum Metmaacher <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Example</kbd>.",
+       "apihelp-feedrecentchanges-param-feedformat": "Däm Kannahl sing Fommaht.",
+       "apihelp-feedrecentchanges-param-limit": "De hühßte Aanzahl vun Äjeebnesse för zeröck ze jävve",
+       "apihelp-feedrecentchanges-param-from": "Zeijsch de Änderonge zigg dämm.",
+       "apihelp-feedrecentchanges-param-hideminor": "De kein Minni_Änderonge verschteijsche.",
+       "apihelp-feedrecentchanges-param-hidepatrolled": "Nohjelohrte Änderonge övverjonn.",
+       "apihelp-feedrecentchanges-param-hidemyself": "Änderonge vun heh dämm Metmaacher övverjonn.",
+       "apihelp-feedwatchlist-param-feedformat": "Däm Kannahl sing Fommaht.",
+       "apihelp-filerevert-param-filename": "De Zih_Dattei, der ohne „{{ne:file}}“ derför.",
+       "apihelp-filerevert-param-comment": "Aanmärkong huh lahde.",
+       "apihelp-help-description": "zeisch Hölp för de aanjejovve Moduhle.",
+       "apihelp-help-example-recursive": "Alle Hölp en eine Sigg.",
+       "apihelp-help-example-help": "Alle Hölp övver de Hölp säälver.",
+       "apihelp-imagerotate-description": "Ein udder mieh Bellder driehje.",
+       "apihelp-imagerotate-param-rotation": "Öm wi vill Jrahd sulle de Bellder noh de Uhr drieh wääde?",
+       "apihelp-imagerotate-example-simple": "Drieh de <kbd>Dattei:Beijschpell.png</kbd> öm <kbd>90</kbd> Jrahd.",
+       "apihelp-imagerotate-example-generator": "Drieh alle Bellder en dä <kbd>Saachjropp:Ömdriehje</kbd> öm <kbd>180</kbd> Jrahd.",
+       "apihelp-import-param-xml": "Donn en Dattei em <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Extensible Markup Language\">XML</i>-Fommaht huhjahde.",
+       "apihelp-import-param-rootpage": "Als Ongersiff vun heh dä Sigg empottehre-",
+       "apihelp-login-param-name": "Metmaacher_Nahme.",
+       "apihelp-login-param-password": "Paßwoot.",
+       "apihelp-login-param-domain": "De Domaijn (kann fott bliehve)",
+       "apihelp-login-example-login": "Enlogge.",
+       "apihelp-logout-example-logout": "Donn dä aktoälle Metmaacher ußlogge.",
+       "apihelp-move-description": "Donn en Sigg ömbenänne",
+       "apihelp-move-param-to": "De neue Övverschreff för di Sigg drop ömzebenänne.",
+       "apihelp-move-param-reason": "Der jrond för di Sigg ömzebenänne.",
+       "apihelp-move-param-movetalk": "Donn de Klaafsigg ömbenänne, wann et se jitt.",
+       "apihelp-move-param-movesubpages": "Donn de Ongersigge ömbenänne, wann müjjelesch.",
+       "apihelp-move-param-noredirect": "Donn kein Ömleidong aanlähje.",
+       "apihelp-move-param-watch": "Donn de Sigg un de Ömleijdong op dem aktoälle Metmaacher sing Oppaßleß.",
+       "apihelp-move-param-unwatch": "Donn de Sigg un de Ömleijdong uß dem aktoälle Metmaacher sing Oppaßleß eruß nämme.",
+       "apihelp-move-param-watchlist": "Donn di Sigg en dem aktoälle Metmaacher sing Oppaßleß udder nemm se eruß, donn de Enschtällonge nämme udder donn de Oppaßleß nid ändere.",
+       "apihelp-move-param-ignorewarnings": "Donn alle Warnonge övverjonn",
+       "apihelp-move-example-move": "Donn <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Schlääschte Övverschreff</kbd> nach <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Johde Övverschreff</kbd> önmännde, der ohne en Ömleijdong aanzelähje.",
+       "apihelp-opensearch-param-search": "Noh wat söhke?",
+       "apihelp-opensearch-param-limit": "De hühßte Aanzahl vun Äjeebnesse för zeröck ze jävve",
+       "apihelp-opensearch-param-namespace": "En wällschem Appachtemang söhke.",
+       "apihelp-parse-param-section": "Holl blohß dann der Ennhalld vun däm Affschnett met dä Nommer, udder wann „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">new</kbd>“ enjejovve es, maach ene neu Affschnett derbei.",
+       "apihelp-parse-param-sectiontitle": "De Övverschreff för dä neuje Afschnet, wann <var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">section</var> = <kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">new</kbd> es.\n\nAnders wi beim Beärbeide vun dä Sigg weed dä Parramehter nit dorsch de <var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">summary</var> ußjetuusch, wann hä fottjelohße udder läddesch es.",
+       "apihelp-parse-example-page": "Donn en Sigg pahse.",
+       "apihelp-parse-example-text": "Donn Wikkitäx pahse.",
+       "apihelp-parse-example-texttitle": "Donn Wikkitäx pahse, un jiff derför en Övverschreff för en Sigg aan.",
+       "apihelp-parse-example-summary": "Donn Zersammefaßong pahse.",
+       "apihelp-patrol-description": "Donn en Sigg udder Väsjohn nohkike.",
+       "apihelp-patrol-param-rcid": "De Kännong in de läzde Änderonge zum Nohkike.",
+       "apihelp-patrol-param-revid": "De Kännong vun dä Väsjohn zum Nohkike.",
+       "apihelp-patrol-example-rcid": "Donn en läzde Änderonge nohkike.",
+       "apihelp-patrol-example-revid": "Donn en Väsjohn nohkike.",
+       "apihelp-protect-description": "Änder der Siggeschoz för en Sigg.",
+       "apihelp-protect-param-title": "De Övverschreff vun dä Sigg zom Schöze udder Freijävve. Kam_mer nit zesamme met\n„<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1pageid</code>“ bruche.",
+       "apihelp-protect-param-pageid": "De Kännong vun dä Sigg zom Schöze udder Freijävve. Kam_mer nit zesamme met\n„<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1pageid</code>“ bruche.",
+       "apihelp-protect-param-reason": "Der Jrond för et Schöze udder Freijävve.",
+       "apihelp-protect-example-protect": "Donn en Sigg schöze.",
+       "apihelp-query-param-list": "Wat för en Leßte holle.",
+       "apihelp-query+allcategories-description": "Alle Saachjroppe opzälle.",
+       "apihelp-query+allcategories-param-from": "De Saachjropp, vun woh aan opzälle.",
+       "apihelp-query+allcategories-param-to": "De Saachjropp, bes woh hen opzälle.",
+       "apihelp-query+allcategories-param-dir": "De Reijefollsch zum Zotehre.",
+       "apihelp-query+allcategories-param-limit": "Wi vell Saachjroppe ußjävve?",
+       "apihelp-query+allcategories-param-prop": "Which properties to get:\n;size:Adds number of pages in the category.\n;hidden:Tags categories that are hidden with _&#95;HIDDENCAT_&#95;.\n<!-- \nhttps://translatewiki.net/wiki/Thread:Support/About_MediaWiki:Apihelp-query%2Ballcategories-param-prop/ksh\n-->",
+       "apihelp-query+alldeletedrevisions-description": "Donn alle fottjeschmeße Väsjohne vun enem Metmaacher udder en enem Appachemang opleßte.",
+       "apihelp-query+alldeletedrevisions-paraminfo-useronly": "Kam_mer blohß met <var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$3user</var> bruche.",
+       "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "Kam_mer nit met <var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$3user</var> bruche.",
+       "apihelp-query+alldeletedrevisions-param-start": "Et Dattom un de Zigg vun woh aff opjezallt wähde sull.",
+       "apihelp-query+alldeletedrevisions-param-end": "Et Dattom un de Zigg bes woh hen opjezallt wähde sull.",
+       "apihelp-query+alldeletedrevisions-param-from": "Bejenn de Leß bei heh dä Överschreff.",
+       "apihelp-query+alldeletedrevisions-param-to": "Hühr de Leß bei heh dä Överschreff oop.",
+       "apihelp-query+alldeletedrevisions-param-prefix": "Söhk noh Sigge, woh de Övverschrevv esu aanfängk.",
+       "apihelp-query+alldeletedrevisions-param-user": "Donn blohß Väsjohne vun heh däm Metmaacher opleßte.",
+       "apihelp-query+alldeletedrevisions-param-excludeuser": "Donn kein Väsjohne vun heh däm Metmaacher opleßte.",
+       "apihelp-query+alldeletedrevisions-param-namespace": "Donn blohß Siegg en heh däm Appachtemang opleßte.",
+       "apihelp-query+alldeletedrevisions-param-generatetitles": "Wann als ene  Jenerahtor enjesaz, bräng Övverschreffte un kein Kännonge vu Väsjohne.",
+       "apihelp-query+alldeletedrevisions-example-user": "Donn de läzde fuffzisch fottjeschmeße Beijdrähsch vim Metmaacher „<kbd lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Example<kbd>“ opleste.",
+       "apihelp-query+alldeletedrevisions-example-ns-main": "Donn de läzde fuffzisch fottjeschmeße Väsjohne em Houp-Appachemang opleste.",
+       "apihelp-query+allfileusages-description": "Donn alle Dattei_Oprohfe opleste, och vun Datteije, di (noch) nit doh sin.",
+       "apihelp-query+allfileusages-param-from": "De Övverschreff vun dä Dattei, woh de Leß medd aanfange sull.",
+       "apihelp-query+allfileusages-param-to": "De Övverschreff vun dä Dattei, woh de Leß medd ophühre sull.",
+       "apihelp-query+allfileusages-param-prefix": "Söhk noh alle Övverschreffte, di met heh däm Täx aanfange.",
+       "apihelp-query+allfileusages-param-unique": "Donn blohß ongerscheidlijje Övverschreffte vun Datteije aanzeije. Kammer nit zesamme met „<code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1prop=ids<code>“ bruche.\nWann als ene  Jenerahtor enjesaz, bräng Zihlsigge un kein Kwällsigge.",
+       "apihelp-query+allfileusages-param-prop": "Which pieces of information to include:\n;ids:Adds the page ID of the using page (cannot be used with $1unique).\n;title:Adds the title of the file.\n<!-- \nhttps://translatewiki.net/wiki/Thread:Support/About_MediaWiki:Apihelp-query%2Ballfileusages-param-prop/ksh\n-->",
+       "apihelp-query+allfileusages-param-limit": "Wi vill sulle överhoup aanjezeisch wähde?",
+       "apihelp-query+allfileusages-param-dir": "En wälsche Reijefollsch?",
+       "apihelp-query+allfileusages-example-B": "Donn Övverschreffte vun Datteije aanzeije, och vun Datteije, di (noch) nit doh sin, zesame met dä Kännonge vun dä Sigge, woh se vun sin, aanjevange vun <kbd>B</kbd>.",
+       "apihelp-query+allfileusages-example-unique": "Donn ongerscheidlejje Övverschreffte vun Datteije opleßte.",
+       "apihelp-query+allfileusages-example-generator": "Holl Sigge, woh Datteieje dren vorkumme.",
+       "apihelp-query+allimages-description": "Donn alle Bellder der Reih noh opzälle.",
+       "apihelp-query+allimages-param-sort": "De Eijeschavv öm dernoh ze zottehre.",
+       "apihelp-query+allimages-param-dir": "En wälsche Reijefollsch?",
+       "apihelp-query+allimages-param-limit": "Wi vell Bellder ennsjesamp ußjävve.",
+       "apihelp-query+allimages-example-generator": "Zeisch Aanjahbe övver veer Bellder un bejenn mem Bohchschtabe <kbd>T</kbd>.",
+       "apihelp-query+alllinks-description": "Donn alle Lengk opzälle, di en e beschtemmpt Appachtemang jonn.",
+       "apihelp-query+alllinks-param-from": "De Övverschreff vun däm Lengk, woh de Leß medd aanfange sull.",
+       "apihelp-query+alllinks-param-to": "De Övverschreff vun dä Dattei, woh et Zälle ophühre sull.",
+       "apihelp-query+alllinks-param-prefix": "Söhk noh alle verlengk Övverschreffte, di met heh däm Täx aanfange.",
+       "apihelp-query+alllinks-param-namespace": "Dat Appachtemang zom opzälle.",
+       "apihelp-query+alllinks-param-limit": "Wi vill sulle överhoup aanjezeisch wähde?",
+       "apihelp-query+alllinks-param-dir": "En wälsche Reijefollsch?",
+       "apihelp-query+alllinks-example-unique": "Leß ongerscheidlejje verlengk Övverschreffte.",
+       "apihelp-query+alllinks-example-generator": "Holl Sigge, di di Lengks änthallde.",
+       "apihelp-query+allmessages-description": "Donn em Wikki sing Täxte un Nohreescht ußjävve.",
        "apihelp-query+allmessages-param-prop": "Wat för en Eijeschaffte holle.",
        "apihelp-query+allmessages-param-filter": "Jiv blohß de Täxte un Nohreesche uß, woh heh dat Täxschtöck dren änthallde es.",
        "apihelp-query+allmessages-param-customised": "Jiv bloß de Täxte un Nohreesche en heh däm Zohschtand uß.",
        "apihelp-query+allmessages-param-lang": "Jiv de Täxte un Nohreesche en heh dä Schprohch uß.",
        "apihelp-query+allmessages-param-from": "Jiv de Täxte un Nohreesche vun heh aan uß.",
        "apihelp-query+allmessages-param-to": "Jiv de Täxte un Nohreesche bes heh uß.",
-       "apihelp-query+allmessages-param-prefix": "Jiv de Täxte un Nohreesche met heh däm Aanfang uß."
+       "apihelp-query+allmessages-param-prefix": "Jiv de Täxte un Nohreesche met heh däm Aanfang uß.",
+       "apihelp-query+allpages-param-from": "De Övverschreff vun dä Sigg, woh de Leß medd aanfange sull.",
+       "apihelp-query+allpages-param-to": "De Kännong vun dä Sigg, bes woh hen opzälle.",
+       "apihelp-query+allpages-param-namespace": "De Saachjropp zom opzälle.",
+       "apihelp-query+allpages-param-filterredir": "Wat för en Sigg zem opleßte.",
+       "apihelp-query+allpages-param-minsize": "Bejränz op Sigge met winneschßdens esu vill Bytes dren.",
+       "apihelp-query+allpages-param-maxsize": "Bejränz op Sigge met hüüschßdens esu vill Bytes dren.",
+       "apihelp-query+allpages-param-prtype": "Bejränz op jeschöz Sigge.",
+       "apihelp-query+allpages-param-limit": "Wi vill Sigge zen aanzeije?",
+       "apihelp-query+allpages-param-dir": "En wälsche Reijefollsch?",
+       "apihelp-query+allpages-example-B": "Zeisch en Leß met Sigge un bejenn mem Bohchschtabe <kbd>B</kbd>.",
+       "apihelp-query+allpages-example-generator": "Zeisch Aanjahbe övver veer Bellder un bejenn mem Bohchschtabe <kbd>T</kbd>.",
+       "apihelp-query+allpages-example-generator-revisions": "Zeisch der Enhalld vu de eetsde zwai Sigg un bejenn bei <kbd>Re</kbd>.",
+       "apihelp-query+allredirects-description": "Alle Ömleidonge op e beschtemmp Appachtemang opleßte.",
+       "apihelp-query+allredirects-param-from": "De Övverschreff vun dä Ömleidong, woh de Leß medd ophühre sull.",
+       "apihelp-query+allredirects-param-to": "De Övverschreff vun dä Sigg, woh et Zälle ophühre sull.",
+       "apihelp-query+allredirects-param-prefix": "Söhk not sigge, die esu aanfange.",
+       "apihelp-query+allredirects-param-namespace": "Dat Appachtemang zom opzälle.",
+       "apihelp-query+allredirects-param-limit": "Wi vill sulle överhoup aanjezeisch wääde?",
+       "apihelp-query+allredirects-param-dir": "En wälsche Reijefollsch?",
+       "apihelp-query+allredirects-example-B": "Zeisch Zihlsigge, och di et (noch) nit jitt, met dä Kännonge, wo se her sin, un bejenn mem Bohchschtabe <kbd>B</kbd>.",
+       "apihelp-query+allredirects-example-unique": "Ongerscheidlijje Sigge opleste.",
+       "apihelp-query+allredirects-example-generator": "Holl de Sigge met de Ömleidonge.",
+       "apihelp-query+alltransclusions-param-namespace": "Dat Appachtemang zom opzälle.",
+       "apihelp-query+alltransclusions-param-limit": "Wi vill sulle överhoup aanjezeisch wähde?",
+       "apihelp-query+alltransclusions-param-dir": "En wälsche Reijefollsch?",
+       "apihelp-query+allusers-description": "Donn alle aanjemälldte Metmaacher opzälle.",
+       "apihelp-query+allusers-param-from": "Dä Metmaacher_Nahme vun woh aan opzälle.",
+       "apihelp-query+allusers-param-to": "Dä Metmaacher_Nahme bes woh hen opzälle.",
+       "apihelp-query+allusers-param-prefix": "Söhk noh alle Metmaacher_Nahme, di mit heh däm Wäät bejenne.",
+       "apihelp-query+allusers-param-dir": "De Reijefollsch zum Zotehre.",
+       "apihelp-query+allusers-param-group": "Donn blohß Metmaacher uß dä aanjejovve Jroppe enschlehße.",
+       "apihelp-query+allusers-param-excludegroup": "Donn keine Metmaacher uß dä aanjejovve Jroppe enschlehße.",
+       "apihelp-query+allusers-param-limit": "Wi vill Nahme Metmaacher sulle mer krijje?",
+       "apihelp-query+allusers-param-witheditsonly": "Blohß Metmahcher, di och ens jät verändert han.",
+       "apihelp-query+allusers-param-activeusers": "Donn blohß Metmaacher opleßte, di  {{PLURAL:$1|der läzde Daach|en de läzde $1 Dääsch|keine läzde Daach}} aktihf wohre.",
+       "apihelp-query+allusers-example-Y": "Monn metmaacher opleßte, woh de Nahme vun met <kbd>Y</kbd> aanfange.",
+       "apihelp-query+backlinks-description": "Fengk alle Sigge, di op de aanjejovve Sigg lengke.",
+       "apihelp-query+backlinks-param-namespace": "Dat Appachtemang zom opzälle.",
+       "apihelp-query+backlinks-param-dir": "En wälsche Reijefollsch?",
+       "apihelp-query+blocks-param-start": "Et Dattom un de Zigg vun woh aff opjezallt wähde sull.",
+       "apihelp-query+blocks-param-end": "Et Dattom un de Zigg bes woh hen opjezallt wähde sull.",
+       "apihelp-query+blocks-param-limit": "De hühßde Aanzahl Spärre zom opleste.",
+       "apihelp-query+blocks-param-prop": "Which properties to get:\n;id:Adds the ID of the block.\n;user:Adds the username of the blocked user.\n;userid:Adds the user ID of the blocked user.\n;by:Adds the username of the blocking user.\n;byid:Adds the user ID of the blocking user.\n;timestamp:Adds the timestamp of when the block was given.\n;expiry:Adds the timestamp of when the block expires.\n;reason:Adds the reason given for the block.\n;range:Adds the range of IP addresses affected by the block.\n;flags:Tags the ban with (autoblock, anononly, etc.).\n<!-- \nhttps://translatewiki.net/wiki/Thread:Support/About_MediaWiki:Apihelp-query%2Bblocks-param-prop/ksh\n-->",
+       "apihelp-query+blocks-example-simple": "Schpärre opleßte.",
+       "apihelp-query+blocks-example-users": "Donn de Schpärre vun dä Metmaacher <lang=\"en\" xml:lang=\"en\" dir=\"ltr\" kbd>Alice</kbd> un <lang=\"en\" xml:lang=\"en\" dir=\"ltr\" kbd>Bob</kbd> opleßte.",
+       "apihelp-query+categories-description": "Donn alle Saachjroppe epleßte, woh di Sigge dren sin.",
+       "apihelp-query+categories-param-prop": "Which additional properties to get for each category:\n;sortkey:Adds the sortkey (hexadecimal string) and sortkey prefix (human-readable part) for the category.\n;timestamp:Adds timestamp of when the category was added.\n;hidden:Tags categories that are hidden with _&#95;HIDDENCAT_&#95;.\n<!-- \nhttps://translatewiki.net/wiki/Thread:Support/About_MediaWiki:Apihelp-query%2Bcategories-param-prop/ksh\n-->",
+       "apihelp-query+categories-param-show": "Wat för en Zoot Saachjroppe zeije.",
+       "apihelp-query+categories-param-dir": "En wälsche Reijefollsch?",
+       "apihelp-query+categories-example-simple": "Holl en Leß med alle Saachjroppe, woh di Sigg <kbd>Albert Einstein</kbd> dren es.",
+       "apihelp-query+categories-example-generator": "Holl Aanjahbe övver alle Saachjroppe, di en dä Sigg <kbd>Albert Einstein</kbd> jebruch wähde.",
+       "apihelp-query+categoryinfo-description": "Holl Aanjahbe övver de aanjejovve Saachjroppe.",
+       "apihelp-query+categorymembers-description": "Donn alle Sigge en ener aanjejove saachjrobb opleste.",
+       "apihelp-query+categorymembers-param-limit": "De jrüüßte Zahl Sigge för ußzejävve.",
+       "apihelp-query+categorymembers-param-sort": "De Eijeschavv öm dernoh ze zottehre.",
+       "apihelp-query+categorymembers-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+duplicatefiles-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+embeddedin-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+filearchive-param-dir": "En wälsche Reijefollsch opleßte.",
+       "apihelp-query+images-param-dir": "En wälsche Reijefollsch opleßte.",
+       "apihelp-query+imageusage-param-namespace": "Dat Appachtemang zom opzälle.",
+       "apihelp-query+imageusage-param-dir": "En wälsche Reijefollsch opleßte.",
+       "apihelp-query+info-paramvalue-prop-watchers": "De Aanzahl Oppaßer, wann zohjelohße.",
+       "apihelp-query+iwbacklinks-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+iwlinks-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+langbacklinks-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+langlinks-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+links-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+pagepropnames-param-limit": "De jrüüßte Zahl Nahme för ußzejävve.",
+       "apihelp-query+pagepropnames-example-simple": "Holl de eezde zehn Nahme vun Eijeschaffte.",
+       "apihelp-query+pageswithprop-param-limit": "De jrüüßte Zahl Sigge för ußzejävve.",
+       "apihelp-query+pageswithprop-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+prefixsearch-param-namespace": "En wällschem Appachtemang söhke.",
+       "apihelp-query+prefixsearch-param-limit": "De hühßte Aanzahl vun Äjeebnesse för zeröck ze jävve",
+       "apihelp-query+querypage-param-limit": "De Aanzahl vun Äjeebnesse för zeröck ze jävve",
+       "apihelp-query+random-param-limit": "Wi vill zohfälleje Sigge sulle ußjejovve wähde?",
+       "apihelp-query+revisions+base-param-limit": "Wi vill Väsjohne sulle ußjejovve wähde?",
+       "apihelp-query+siteinfo-param-numberingroup": "Donn de Aanzahl Metmaacher en de Jroppe vun Metmaacher opleßte.",
+       "apihelp-query+tags-param-limit": "De hühßde Aanzahl !!FUZY tags zom opleste.",
+       "apihelp-query+tags-param-prop": "Wat för en Eijschaffte holle:\n;name:Adds name of tag.\n;displayname:Adds system message for the tag.\n;description:Adds description of the tag.\n;hitcount:Adds the number of revisions and log entries that have this tag.\n;defined:Indicate whether the tag is defined.\n;source:Gets the sources of the tag, which may include <samp>extension</samp> for extension-defined tags and <samp>manual</samp> for tags that may be applied manually by users.\n;active:Whether the tag is still being applied.\n<!-- https://translatewiki.net/wiki/Thread:Support/About_MediaWiki:Apihelp-query%2Btags-param-prop/ksh\n -->",
+       "apihelp-query+templates-param-limit": "Wi vill Schablohne sulle ußjejovve wähde?",
+       "apihelp-query+templates-param-dir": "En wälsche Reihjefollsch opleßte.",
+       "apihelp-query+usercontribs-param-limit": "De hühßte Aanzahl vun Meddeilonge för zeröck ze jävve",
+       "api-help-param-default": "Schtandatt: $1",
+       "api-help-param-default-empty": "Schtandatt: <span class=\"apihelp-empty\">(läddesch)</span>",
+       "api-help-param-limited-in-miser-mode": "<strong>opjepaß:</strong> Weil der  [[mw:Manual:$wgMiserMode|miser mode]] enjeschalld es, künne heh winnijer wi <var lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$1limit</var> Äjehpneße ußjejejovve wähde, vör em Wigger_Mache. En Jränzfäll künne et Noll sin.",
+       "api-help-param-direction": "En wälsche Reihjefollsch opleßte:\n;newer:List oldest first. Note: $1start has to be before $1end.\n;older:List newest first (default). Note: $1start has to be later than $1end.\n<!-- \nhttps://translatewiki.net/wiki/Thread:Support/About_MediaWiki:Api-help-param-direction/ksh\n-->",
+       "api-help-param-continue": "Wann mih ze holle es, nemm dat för wigger ze maache.",
+       "api-help-param-no-description": "<span class=\"apihelp-empty\">(nix drövver bikannt)</span>",
+       "api-help-examples": "{{PLURAL:$1|Beijschpell|Beijschpelle|Beijschpell}}:",
+       "api-help-permissions": "{{PLURAL:$1|Rääsch|Rääschde|Rääsch}}:",
+       "api-help-permissions-granted-to": "Jejovve aan: $2{{PLURAL:$1|}}",
+       "api-help-right-apihighlimits": "Donn de Beschängkonge vun Opdrähscht aan de <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Application Programming Interface\">API</i> kleiner maache (langsamme Opdrähscht: $1; flöcke Opdrähscht: $2). De Beschränkonge för lahme Opdrähscht jällde och för Parramehtere met vill Wähte.",
+       "api-credits-header": "Aanäkännong för Beijdrähsch",
+       "api-credits": "Dä <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Application Programming Interface\">API</i> ier Äntweklere:\n* Roan Kattouw (Aanföhrer zigg em Säptämber 2007 bes 2009)\n* Victor Vasiliev\n* Bryan Tong Minh\n* Sam Reed\n* Yuri Astrakhan (Bejenner un Aanföhrer vum Säptämber 2006 bes Säptämber 2007)\n* Brad Jorsch (Aanföhrer vun 2013 bes hük)\n\nDoht Ühr Aanmärkonge, Vörschlähsch un Frohre aan de Meijlengleß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">mediawiki-api@lists.wikimedia.org</code> scheke, Ühr Vörschlähsch un Fählermälldong doht op <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">https://phabricator.wikimedia.org/</code> ennjävve."
 }
index c54e089..ac2a1d3 100644 (file)
@@ -11,6 +11,7 @@
        "apihelp-block-param-nocreate": "Opmaache vun engem Benotzerkont verhënneren.",
        "apihelp-block-param-reblock": "Wann de Benotzer scho gespaart ass, déi aktuell Spär iwwerschreiwen.",
        "apihelp-block-param-watchuser": "Dem Benotzer oder der IP-Adress hier Benotzer- an Diskussiouns-Säiten iwwerwaachen.",
+       "apihelp-compare-param-fromtitle": "Éischten Titel fir ze vergläichen.",
        "apihelp-createaccount-description": "En neie Benotzerkont uleeën.",
        "apihelp-createaccount-param-name": "Benotzernumm.",
        "apihelp-createaccount-param-email": "E-Mail-Adress vum Benotzer (fakultativ).",
index e4e25a3..72816b9 100644 (file)
@@ -7,7 +7,8 @@
                        "Mar(c)",
                        "Valhallasw",
                        "Sikjes",
-                       "Macofe"
+                       "Macofe",
+                       "SPQRobin"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Documentatie]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api E-maillijst]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-aankondigingen]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bugs & verzoeken]\n</div>\n<strong>Status:</strong> Alle functies die op deze pagina worden weergegeven horen te werken. Aan de API wordt actief gewerkt, en deze kan gewijzigd worden. Abonneer u op  de [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ e-maillijst mediawiki-api-announce] voor meldingen over aanpassingen.\n\n<strong>Foutieve verzoeken:</strong> als de API foutieve verzoeken ontvangt, wordt er geantwoord met een HTTP-header met de sleutel \"MediaWiki-API-Error\" en daarna worden de waarde van de header en de foutcode op dezelfde waarde ingesteld. Zie [[mw:API:Errors_and_warnings|API: Errors and warnings]] voor meer informatie.",
@@ -24,6 +25,7 @@
        "apihelp-block-param-reason": "Reden voor blokkade.",
        "apihelp-block-param-autoblock": "Blokkeer automatisch het laatst gebruikte IP-adres en ieder volgend IP-adres van waaruit ze proberen in te loggen.",
        "apihelp-block-param-reblock": "De huidige blokkade aanpassen als de gebruiker al geblokkeerd is.",
+       "apihelp-createaccount-param-name": "Gebruikersnaam.",
        "apihelp-delete-description": "Verwijder een pagina.",
        "apihelp-delete-example-simple": "Verwijder <kbd>Hoofdpagina</kbd>.",
        "apihelp-delete-example-reason": "Verwijder <kbd>Hoofdpagina</kbd> met als reden <kbd>Voorbereiding voor verplaatsing</kbd>.",
index 098f974..0a5987e 100644 (file)
@@ -6,7 +6,8 @@
                        "Pan Cube",
                        "Alan ffm",
                        "Devwebtel",
-                       "Macofe"
+                       "Macofe",
+                       "Pio387"
                ]
        },
        "apihelp-main-param-action": "Wybierz akcję do wykonania.",
@@ -14,6 +15,7 @@
        "apihelp-main-param-maxlag": "Maksymalne opóźnienie mogą być używane kiedy MediaWiki jest zainstalowana w klastrze zreplikowanej bazy danych. By zapisać działania powodujące większe opóźnienie replikacji, ten parametr może wymusić czekanie u klienta, dopóki opóźnienie replikacji jest mniejsze niż określona wartość. W przypadku nadmiernego opóźnienia, kod błędu <samp>maxlag</samp> jest zwracany z wiadomością jak <samp>Oczekiwanie na $host: $lag sekund opóźnienia</samp>.<br />Zobacz [[mw:Manual:Maxlag_parameter|Podręcznik:Parametr Maxlag]] by uzyskać więcej informacji.",
        "apihelp-main-param-assert": "Sprawdź, czy użytkownik jest zalogowany jeżeli jest ustawiony na <kbd>użytkownik</kbd>, lub ma prawa bota jeśli <kbd>bot</kbd>.",
        "apihelp-block-description": "Zablokuj użytkownika.",
+       "apihelp-block-param-user": "Nazwa użytkownika, adres IP lub zakres adresów IP, które chcesz zablokować.",
        "apihelp-block-param-reason": "Powód blokady.",
        "apihelp-block-param-nocreate": "Zapobiegnij utworzeniu konta.",
        "apihelp-block-param-watchuser": "Obserwuj stronę użytkownika i jego IP oraz jego stronę dyskusji.",
index 3f5084d..3ecb7a5 100644 (file)
        "apihelp-parse-param-onlypst": "{{doc-apihelp-param|parse|onlypst}}",
        "apihelp-parse-param-effectivelanglinks": "{{doc-apihelp-param|parse|effectivelanglinks}}",
        "apihelp-parse-param-section": "{{doc-apihelp-param|parse|section}}",
+       "apihelp-parse-param-sectiontitle": "{{doc-apihelp-param|parse|sectiontitle}}",
        "apihelp-parse-param-disablepp": "{{doc-apihelp-param|parse|disablepp}}",
        "apihelp-parse-param-disableeditsection": "{{doc-apihelp-param|parse|disableeditsection}}",
        "apihelp-parse-param-generatexml": "{{doc-apihelp-param|parse|generatexml|params=* $1 - Value of the constant CONTENT_MODEL_WIKITEXT|paramstart=2}}",
index 56d34ef..e533d79 100644 (file)
@@ -3,28 +3,33 @@
                "authors": [
                        "Mahairod",
                        "Okras",
-                       "Eakarpov"
+                       "Eakarpov",
+                       "Kaganer"
                ]
        },
+       "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Документация]]\n* [[mw:API:FAQ|ЧаВО]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api Почтовая рассылка]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce Новости API]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Ошибки и запросы]\n</div>\n<strong>Статус:</strong> Все отображаемые на этой странице функции должны работать, однако API находится в статусе активной разработки, и может измениться в любой момент. Подпишитесь на  [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ почтовую рассылку mediawiki-api-announce], чтобы быть в курсе обновлений.\n\n<strong>Ошибочные запросы:</strong> Если API получает запрос с ошибкой, вернётся заголовок HTTP с ключом \"MediaWiki-API-Error\", после чего значение заголовка и код ошибки будут отправлены обратно и установлены в то же значение. Более подробную информацию см. [[mw:API:Errors_and_warnings|API: Ошибки и предупреждения]].",
        "apihelp-main-param-action": "Действие, которое следует выполнить.",
        "apihelp-main-param-format": "Формат вывода.",
        "apihelp-main-param-smaxage": "Устанавливает заголовок <code>s-maxage</code> в заданное число секунд. Ошибки никогда не кэшируются.",
        "apihelp-main-param-maxage": "Устанавливает заголовок <code>max-age</code> в заданное число секунд. Ошибки никогда не кэшируются.",
-       "apihelp-main-param-assert": "Удостовериться, что пользователь авторизован, если задано \"user\", или что имеет права бота, если задано \"bot\".",
-       "apihelp-main-param-requestid": "Ð\9bÑ\8eбое Ð·Ð½Ð°Ñ\87ение, Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ Ð·Ð´ÐµÑ\81Ñ\8c, будет включено в ответ. Может быть использовано для различения запросов.",
+       "apihelp-main-param-assert": "Удостовериться, что пользователь авторизован, если задано <kbd>user</kbd>, или что имеет права бота, если задано <kbd>bot</kbd>.",
+       "apihelp-main-param-requestid": "Ð\9bÑ\8eбое Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ Ð·Ð´ÐµÑ\81Ñ\8c Ð·Ð½Ð°Ñ\87ение будет включено в ответ. Может быть использовано для различения запросов.",
        "apihelp-main-param-servedby": "Включить в результаты имя хоста, обработавшего запрос.",
        "apihelp-main-param-curtimestamp": "Включить в результаты временную метку.",
-       "apihelp-main-param-origin": "При обращении к API, используя кросс-доменный AJAX запрос (CORS), задайте параметру значение исходного домена. Он должен быть включён в любой предварительный запрос и таким образом должен быть частью URI запроса (не тела POST). Он должен точно соответствовать одному из источников в заголовке Origin:, так что он должен быть задан наподобие http://en.wikipedia.org или https://meta.wikimedia.org. Если параметр не соответствует заголовку Origin:, будет возвращён ответ с кодом ошибки 403. Если параметр соответствует заголовку Origin: и источник в белом списке, будет установлен заголовок Access-Control-Allow-Origin.",
+       "apihelp-main-param-origin": "При обращении к API, используя кросс-доменный AJAX-запрос (CORS), задайте параметру значение исходного домена. Он должен быть включён в любой предварительный запрос и таким образом должен быть частью URI-запроса (не тела POST). Он должен точно соответствовать одному из источников в заголовке <code>Origin<code>, так что он должен быть задан наподобие <kbd>https://ru.wikipedia.org</kbd> или <kbd>https://meta.wikimedia.org</kbd>. Если параметр не соответствует заголовку <code>Origin<code>, будет возвращён ответ с кодом ошибки 403. Если параметр соответствует заголовку <code>Origin</code>, и источник находится в белом списке, будет установлен заголовок <code>Access-Control-Allow-Origin</code>.",
        "apihelp-block-description": "Блокировка участника.",
        "apihelp-block-param-user": "Имя участника, IP-адрес или диапазон IP-адресов, которые вы хотите заблокировать.",
        "apihelp-block-param-reason": "Причина блокировки.",
        "apihelp-block-param-nocreate": "Запретить создание учётных записей.",
        "apihelp-createaccount-param-name": "Имя участника.",
        "apihelp-delete-description": "Удалить страницу.",
-       "apihelp-delete-param-watch": "Ð\94обавиÑ\82Ñ\8c Ñ\8dÑ\82Ñ\83 Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 Ð² Ñ\81пиÑ\81ок Ð½Ð°Ð±Ð»Ñ\8eдения.",
+       "apihelp-delete-param-watch": "Ð\94обавиÑ\82Ñ\8c Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\83 Ðº Ñ\82екÑ\83Ñ\89емÑ\83 Ñ\81пиÑ\81кÑ\83 Ð½Ð°Ð±Ð»Ñ\8eдениÑ\8f Ð¿Ð¾Ð»Ñ\8cзоваÑ\82еля.",
        "apihelp-disabled-description": "Этот модуль был отключен.",
        "apihelp-edit-param-sectiontitle": "Заголовок для нового раздела.",
        "apihelp-edit-param-text": "Содержание страницы.",
+       "apihelp-edit-param-minor": "Незначительное изменение (малая правка).",
+       "apihelp-edit-param-notminor": "Значительное изменение (обычная, не «малая», правка).",
+       "apihelp-edit-param-bot": "Пометить правку как сделанную ботом.",
        "apihelp-edit-param-watch": "Добавить страницу к текущему списку наблюдения пользователя.",
        "apihelp-edit-example-edit": "Редактировать страницу",
        "apihelp-expandtemplates-param-title": "Заголовок страницы.",
index 963bd5c..aa88484 100644 (file)
@@ -10,7 +10,8 @@
                        "Stens51",
                        "Boom",
                        "Jenniesarina",
-                       "Marfuas"
+                       "Marfuas",
+                       "VickyC"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|Dokumentation]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api E-postlista]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API-aviseringar]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R|Buggar & förslag]\n</div>\n<strong>Status:</strong> Alla funktioner som visas på denna sida borde fungera. API:et är dock fortfarande under aktiv utveckling och kan ändras när som helst. Prenumerera på [https://lists.wikimedia.org/pipermail/mediawiki-api-announce/mediawiki-api-announce e-postlistan] för att få aviseringar om uppdateringar.\n\n<strong>Felaktiga förfrågningar:</strong> När felaktiga förfrågningar skickas till API:et skickas en HTTP-header med nyckeln \"MediaWiki-API-Error\" och sedan sätts både värdet på headern och den felkoden som returneras till samma värde. För mer information läs [[mw:API:Errors_and_warnings|API: Fel och varningar]].",
        "apihelp-options-example-complex": "Återställ alla inställningar, ställ sedan in <kbd>skin</kbd> och <kbd>nickname</kbd>.",
        "apihelp-paraminfo-description": "Få information om API moduler.",
        "apihelp-paraminfo-param-helpformat": "Format för hjälpsträngar.",
+       "apihelp-paraminfo-param-mainmodule": "Få information om huvud-modulen (top-level) också. Använd <kbd>$1modules=main</kbd> istället.",
        "apihelp-parse-param-summary": "Sammanfattning att tolka.",
        "apihelp-parse-param-page": "Tolka innehållet av denna sida. Kan inte användas tillsammans med <var>$1text</var> och <var>$1title</var>.",
        "apihelp-parse-param-pageid": "Tolka innehållet på denna sida. Åsidosätter <var>$1sidan</var>.",
index 4bd5c26..13ce490 100644 (file)
@@ -7,6 +7,10 @@
        },
        "apihelp-main-param-action": "Яку дію виконати.",
        "apihelp-main-param-format": "Формат виводу.",
+       "apihelp-block-description": "Заблокувати користувача.",
+       "apihelp-block-param-user": "Ім'я користувача, IP-адреса або діапазон IP-адрес для блокування.",
+       "apihelp-block-param-reason": "Причина блокування.",
+       "apihelp-block-param-nocreate": "Заборонити створення облікових записів.",
        "apihelp-createaccount-param-name": "Ім'я користувача.",
        "apihelp-createaccount-param-password": "Пароль (ігнорується, якщо встановлено <var>$1mailpassword</var>).",
        "apihelp-createaccount-param-domain": "Домен для зовнішньої аутентифікації (опціонально).",
index ff00e7c..4fc49e6 100644 (file)
@@ -53,6 +53,8 @@
        "apihelp-edit-param-nocreate": "Gây lỗi nếu trang không tồn tại.",
        "apihelp-edit-param-watch": "Thêm trang vào danh sách theo dõi của bạn.",
        "apihelp-edit-param-unwatch": "Bỏ trang này khỏi danh sách theo dõi của bạn.",
+       "apihelp-edit-param-undo": "Hoàn tác sửa đổi này. Ghi đè $1text, $1prependtext và $ 1appendtext.",
+       "apihelp-edit-param-undoafter": "Hoàn tác tất cả các sửa đổi từ $1undo cho tới sửa đổi này. Nếu không được thiết lập, chỉ cần lùi lại một sửa đổi.",
        "apihelp-edit-example-edit": "Sửa đổi trang",
        "apihelp-edit-example-prepend": "Đưa <kbd>_&#95;NOTOC_&#95;</kbd> vào đầu trang",
        "apihelp-edit-example-undo": "Lùi sửa các thay đổi 13579–13585 và tự động tóm lược",
index c0d6a8c..bf50728 100644 (file)
@@ -8,7 +8,9 @@
                        "LNDDYL",
                        "Shizhao",
                        "Yfdyh000",
-                       "JuneAugsut"
+                       "JuneAugsut",
+                       "EagerLin",
+                       "Simon xianyu"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|文档]]\n* [[mw:API:FAQ|常见问题]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api 邮件列表]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API公告]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R 程序错误与功能请求]\n</div>\n<strong>状态信息:</strong>本页所展示的所有特性都应正常工作,但是API仍在开发当中,将会随时变化。请订阅[https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ mediawiki-api-announce 邮件列表]以便获得更新通知。\n\n<strong>错误请求:</strong>当API收到错误请求时,HTTP header将会返回一个包含\"MediaWiki-API-Error\"的值,随后header的值与error code将会送回并设置为相同的值。详细信息请参阅[[mw:API:Errors_and_warnings|API: 错误与警告]]。",
        "apihelp-opensearch-example-te": "查找以<kbd>Te</kbd>开头的页面。",
        "apihelp-options-description": "更改当前用户的偏好设置。\n\n只有注册在核心或者已安装扩展中的选项,或者具有\"userjs-\"键值前缀(旨在被用户脚本使用)的选项可被设置。",
        "apihelp-options-param-reset": "重置偏好设置到网站默认设置。",
+       "apihelp-options-param-resetkinds": "当<var>$1reset</var>选项被设置时,要重置的选项类型列表。",
+       "apihelp-options-param-change": "更改列表,以name=value格式化(例如skin=vector)。值不能包含管道字符。如果没提供值(甚至没有等号),例如optionname|otheroption|...,选项将重置为默认值。",
+       "apihelp-options-param-optionname": "应设置为由<var>$1optionvalue</var>提供值的选项名称。",
+       "apihelp-options-param-optionvalue": "使用<var>$1选项名</var>指定的选项值中,可以包含管道字符",
        "apihelp-options-example-reset": "重置所有用户设置",
        "apihelp-options-example-change": "更改<kbd>skin</kbd>和<kbd>hideminor</kbd>设置。",
        "apihelp-options-example-complex": "重置所有设置,然后设置<kbd>皮肤</kbd>和<kbd>昵称</kbd>。",
        "apihelp-parse-param-pageid": "解析此页的内容。覆盖<var>$1page</var>。",
        "apihelp-parse-param-redirects": "如果<var>$1page</var>或<var>$1pageid</var>被设置为一个重定向,则解析它。",
        "apihelp-parse-param-oldid": "解析该修订版本的内容。覆盖<var>$1page</var>和<var>$1pageid</var>。",
+       "apihelp-parse-param-pst": "在解析输入前,对输入做一次保存前变换处理。仅当使用文本时有效。",
+       "apihelp-parse-param-effectivelanglinks": "包含由扩展提供的语言链接(用于与<kbd>$1prop=langlinks</kbd>一起使用)。",
+       "apihelp-parse-param-section": "只检索此段数的内容,或只当<kbd>new</kbd>生成新的段落时检索。\n\n<kbd>new</kbd>段落只当指定<var>text</var>时受尊重。",
+       "apihelp-parse-param-sectiontitle": "当<var>section</var>为<kbd>new</kbd>时新段落标题。\n\n不像页面编辑,当省略或为空时将不会备选为<var>summary</var>。",
        "apihelp-parse-param-disablepp": "从解析器输出中禁用PP报告。",
        "apihelp-parse-param-disableeditsection": "从解析器输出中禁用编辑段落链接。",
        "apihelp-parse-param-generatexml": "生成XML解析树(需要内容模型<code>$1</code>)。",
        "apihelp-protect-param-protections": "保护等级列表,格式:<kbd>action=level</kbd>(例如<kbd>edit=sysop</kbd>)。\n\n<strong>注意:</strong>未列出的操作将移除限制。",
        "apihelp-protect-param-expiry": "到期时间戳。如果只有一个时间戳被设置,它将被用于所有保护。使用<kbd>infinite</kbd>、<kbd>indefinite</kbd>、<kbd>infinity</kbd>或<kbd>never</kbd>用于永不过期的保护。",
        "apihelp-protect-param-reason": "(解除)保护的原因。",
+       "apihelp-protect-param-cascade": "启用级联保护(也就是保护包含于此页面的页面)。如果所有提供的保护等级不支持级联,就将其忽略。",
        "apihelp-protect-param-watch": "如果设置,就加入已开始(解除)保护的页面至当前用户的监视列表。",
        "apihelp-protect-param-watchlist": "无条件地将页面加入至当前用户的监视列表或将其移除,使用设置或不更改监视。",
        "apihelp-protect-example-protect": "保护一个页面",
        "apihelp-protect-example-unprotect": "通过设置限制为<kbd>all</kbd>解除保护一个页面。",
        "apihelp-protect-example-unprotect2": "通过设置没有限制解除保护一个页面",
+       "apihelp-purge-description": "为指定标题刷新缓存。\n\n如果用户尚未登录的话,就需要POST请求。",
        "apihelp-purge-param-forcelinkupdate": "更新链接表。",
        "apihelp-purge-param-forcerecursivelinkupdate": "更新链接表中,并更新任何使用此页作为模板的页面的链接表。",
        "apihelp-purge-example-simple": "刷新<kbd>Main Page</kbd>和<kbd>API</kbd>页面。",
        "apihelp-purge-example-generator": "刷新主名字空间的前10个页面",
        "apihelp-query-description": "获取来自和有关MediaWiki的数据。\n\n所有数据修改将首先要使用查询以获得令牌以阻止来自恶意网站的滥用破坏。",
+       "apihelp-query-param-prop": "要为已查询页面获取的属性。",
        "apihelp-query-param-list": "要获取的列表。",
        "apihelp-query-param-meta": "要获取的元数据。",
        "apihelp-query-param-rawcontinue": "目前被忽略。将来<var>$1continue</var>将成为默认,且这里将需要得到原始的<samp>query-continue</samp>数据。",
        "apihelp-query+allcategories-param-to": "要作为枚举终止点的类别。",
        "apihelp-query+allcategories-param-prefix": "搜索此值开头的所有分类标题。",
        "apihelp-query+allcategories-param-dir": "排序方向。",
+       "apihelp-query+allcategories-param-min": "只返回至少带这么多成员的分类。",
+       "apihelp-query+allcategories-param-max": "只返回最多带这么多成员的分类。",
        "apihelp-query+allcategories-param-limit": "要返回多少个类别。",
+       "apihelp-query+allcategories-param-prop": "要获取的属性:\n;size:在分类中添加页面数。\n;hidden:标记由_&#95;HIDDENCAT_&#95;隐藏的分类。",
        "apihelp-query+allcategories-example-size": "列出分类及其含有多少页面的信息。",
        "apihelp-query+alldeletedrevisions-paraminfo-useronly": "只可以与<var>$3user</var>一起使用。",
        "apihelp-query+alldeletedrevisions-paraminfo-nonuseronly": "不能与<var>$3user</var>一起使用。",
+       "apihelp-query+alldeletedrevisions-param-start": "枚举的起始时间戳。",
+       "apihelp-query+alldeletedrevisions-param-end": "枚举的结束时间戳。",
        "apihelp-query+alldeletedrevisions-param-from": "从此标题开始列出。",
        "apihelp-query+alldeletedrevisions-param-to": "列出至此标题为止。",
+       "apihelp-query+alldeletedrevisions-param-tag": "只列出被此标签标记的修订。",
        "apihelp-query+alldeletedrevisions-param-user": "只列出此用户做出的修订。",
        "apihelp-query+alldeletedrevisions-param-excludeuser": "不要列出此用户做出的修订。",
        "apihelp-query+alldeletedrevisions-param-namespace": "只列出此名字空间的页面。",
        "apihelp-query+alldeletedrevisions-example-user": "列出由<kbd>Example<kbd>作出的最近50次已删除贡献。",
        "apihelp-query+alldeletedrevisions-example-ns-main": "列出前50次已删除的主名字空间修订。",
        "apihelp-query+allfileusages-description": "列出所有文件用途,包括不存在的。",
+       "apihelp-query+allfileusages-param-from": "文件的标题开始枚举于.",
        "apihelp-query+allfileusages-param-prefix": "搜索此值开头的所有文件标题。",
+       "apihelp-query+allfileusages-param-prop": "要包含的信息束:\n;ids:添加使用中的页面的页面ID(不能与$1unique一起使用)。\n;title:添加文件的标题。",
        "apihelp-query+allfileusages-param-limit": "要返回的总计项目。",
        "apihelp-query+allfileusages-param-dir": "罗列所采用的方向。",
        "apihelp-query+allfileusages-example-unique": "列出唯一性的文件标题",
        "apihelp-query+allimages-param-minsize": "限于至少这么多字节的图像。",
        "apihelp-query+allimages-param-maxsize": "限于顶多这么多字节的图像。",
        "apihelp-query+allimages-param-sha1": "图像的 SHA1 哈希。覆盖$1sha1base36。",
+       "apihelp-query+allimages-param-sha1base36": "基于base 36的图片的SHA1哈希值(用于MediaWiki)。",
        "apihelp-query+allimages-param-mime": "要搜索的MIME类型,例如<kbd>image/jpeg</kbd>。",
        "apihelp-query+allimages-param-limit": "共计要返回多少图像。",
        "apihelp-query+allimages-example-B": "显示以字母<kbd>B</kbd>开始的文件列表。",
        "apihelp-query+allmessages-param-prop": "要获取的属性。",
        "apihelp-query+allmessages-param-customised": "只返回在此定制情形下的消息。",
        "apihelp-query+allmessages-param-lang": "返回这种语言的信息。",
+       "apihelp-query+allmessages-param-from": "从此消息开始返回消息。",
+       "apihelp-query+allmessages-param-to": "返回消息至此消息为止。",
        "apihelp-query+allmessages-param-prefix": "返回带有该前缀的消息。",
        "apihelp-query+allmessages-example-ipb": "显示以<kbd>ipb-</kbd>开始的消息。",
        "apihelp-query+allmessages-example-de": "显示德语版的<kbd>august</kbd>和<kbd>mainpage</kbd>消息。",
        "apihelp-query+allredirects-example-generator": "获得包含重定向的页面",
        "apihelp-query+alltransclusions-description": "列出所有嵌入页面(使用&#123;&#123;x&#125;&#125;嵌入的页面),包括不存在的。",
        "apihelp-query+alltransclusions-param-namespace": "要列举的名字空间。",
+       "apihelp-query+alltransclusions-param-limit": "要返回的总计项目。",
        "apihelp-query+alltransclusions-param-dir": "罗列所采用的方向。",
        "apihelp-query+alltransclusions-example-unique": "列出孤立嵌入标题",
        "apihelp-query+alltransclusions-example-generator": "获得包含嵌入内容的页面。",
        "apihelp-query+allusers-description": "列举所有注册用户。",
+       "apihelp-query+allusers-param-from": "枚举的起始用户名。",
+       "apihelp-query+allusers-param-to": "枚举的结束用户名。",
        "apihelp-query+allusers-param-dir": "排序方向。",
        "apihelp-query+allusers-param-group": "只包含指定组中的用户。",
        "apihelp-query+allusers-param-excludegroup": "排除指定组中的用户。",
+       "apihelp-query+allusers-param-limit": "返回的总计用户数。",
        "apihelp-query+allusers-param-witheditsonly": "只列出有编辑的用户。",
        "apihelp-query+allusers-param-activeusers": "只列出最近$1天内活跃的用户。",
        "apihelp-query+allusers-example-Y": "列出以<kbd>Y</kbd>开头的用户。",
+       "apihelp-query+backlinks-description": "查找所有链接至指定页面的页面。",
        "apihelp-query+backlinks-param-title": "要搜索的标题。不能与<var>$1pageid</var>一起使用。",
        "apihelp-query+backlinks-param-pageid": "要搜索的页面ID。不能与<var>$1title</var>一起使用。",
        "apihelp-query+backlinks-param-namespace": "要列举的名字空间。",
        "apihelp-query+blocks-description": "列出所有被封禁的用户和IP地址。",
        "apihelp-query+blocks-param-ids": "要列出的封禁ID列表(可选)。",
        "apihelp-query+blocks-param-users": "要搜索的用户列表(可选)。",
+       "apihelp-query+blocks-param-prop": "要获取的属性:\n;id:添加封禁ID。\n;user:添加被封禁用户的用户名。\n;userid:添加被封禁用户的用户ID。\n;by:添加执行封禁的用户的用户名。\n;byid:添加执行封禁的用户的用户ID。\n;timestamp:添加封禁生效时的时间戳。\n;expiry:添加封禁截止时的时间戳。\n;reason:添加封禁原因。\n;range:添加受封禁影响的IP地址段。\n;flags:标记编辑禁止(自动封禁、仅限匿名用户等)。",
        "apihelp-query+blocks-example-simple": "封禁列表",
        "apihelp-query+blocks-example-users": "列出用户<kbd>Alice</kbd>和<kbd>Bob</kbd>的封禁。",
        "apihelp-query+categories-description": "页面属于的所有分类列表。",
+       "apihelp-query+categories-param-prop": "要为每个分类获取的额外属性:\n;sortkey:为每个分类添加关键词(十六进制字符串)和关键词前缀(人类可读部分)。\n;timestamp:添加分类添加时的时间戳。\n;hidden:标记由_&#95;HIDDENCAT_&#95;隐藏的分类。",
        "apihelp-query+categories-param-show": "显示何种分类。",
        "apihelp-query+categories-param-limit": "返回多少分类。",
        "apihelp-query+categories-param-dir": "罗列所采用的方向。",
        "apihelp-query+categories-example-simple": "获取属于<kbd>Albert Einstein</kbd>的分类列表。",
        "apihelp-query+categories-example-generator": "获得有关用于<kbd>Albert Einstein</kbd>的分类的信息。",
+       "apihelp-query+categoryinfo-description": "返回有关给定分类的信息。",
        "apihelp-query+categoryinfo-example-simple": "获取有关<kbd>Category:Foo</kbd>和<kbd>Category:Bar</kbd>的信息。",
        "apihelp-query+categorymembers-description": "在指定的分类中列出所有页面。",
        "apihelp-query+categorymembers-param-title": "要列举的分类(必需)。必须包括<kbd>{{ns:category}}:</kbd>前缀。不能与<var>$1pageid</var>一起使用。",
+       "apihelp-query+categorymembers-param-pageid": "要枚举的分类的页面 ID。不能与<var>$1title</var>一起使用。",
        "apihelp-query+categorymembers-param-namespace": "仅包含这些名字空间的页面。注意<kbd>$1type=subcat</kbd>或<kbd>$1type=file</kbd>可能被使用,而不是<kbd>$1namespace=14</kbd>或<kbd>6</kbd>。",
        "apihelp-query+categorymembers-param-type": "包含的分类成员类型。当<kbd>$1sort=timestamp</kbd>被设置时会忽略。",
+       "apihelp-query+categorymembers-param-limit": "返回页面的最大数量。",
        "apihelp-query+categorymembers-param-sort": "要作为排序方式的属性。",
        "apihelp-query+categorymembers-param-dir": "排序的方向。",
        "apihelp-query+categorymembers-param-start": "开始列举的时间戳。只能与<kbd>$1sort=timestamp</kbd>一起使用。",
        "apihelp-query+categorymembers-param-end": "列举的结尾时间戳。只能与<kbd>$1sort=timestamp</kbd>一起使用。",
+       "apihelp-query+categorymembers-param-starthexsortkey": "开始列举的关键词,由<kbd>$1prop=sortkey</kbd>返回。不能与<kbd>$1sort=sortkey</kbd>一起使用。",
+       "apihelp-query+categorymembers-param-endhexsortkey": "结束列举的关键词,由<kbd>$1prop=sortkey</kbd>返回。不能与<kbd>$1sort=sortkey</kbd>一起使用。",
        "apihelp-query+categorymembers-param-startsortkey": "请改用$1starthexsortkey。",
        "apihelp-query+categorymembers-param-endsortkey": "请改用$1endhexsortkey。",
        "apihelp-query+categorymembers-example-simple": "获得<kbd>Category:Physics</kbd>中的前10个页面。",
        "apihelp-query+deletedrevisions-param-tag": "只列出被此标签标记的修订。",
        "apihelp-query+deletedrevisions-param-user": "只列出此用户做出的修订。",
        "apihelp-query+deletedrevisions-param-excludeuser": "不要列出此用户做出的修订。",
+       "apihelp-query+deletedrevisions-param-limit": "要列出的修订的最高数额。",
        "apihelp-query+deletedrevisions-example-titles": "列出页面<kbd>Main Page</kbd>和<kbd>Talk:Main Page</kbd>的已删除修订,包含内容。",
        "apihelp-query+deletedrevisions-example-revids": "列出已删除修订<kbd>123456</kbd>的信息。",
        "apihelp-query+deletedrevs-paraminfo-modes": "{{PLURAL:$1|模式}}:$2",
        "apihelp-query+embeddedin-example-generator": "获得有关显示嵌入<kbd>Template:Stub</kbd>的页面的信息。",
        "apihelp-query+extlinks-param-limit": "返回多少链接。",
        "apihelp-query+extlinks-example-simple": "获取<kbd>首页</kbd>的外部链接列表。",
+       "apihelp-query+exturlusage-param-protocol": "URL协议。如果为空并且<var>$1query</var>被设置,协议为<kbd>http</kbd>。将此和<var>$1query</var>都留空以列举所有外部链接。",
+       "apihelp-query+exturlusage-param-query": "不包括协议的搜索字符串。参见[[Special:LinkSearch]]。留空以列出所有外部链接。",
        "apihelp-query+exturlusage-param-namespace": "要列举的页面名字空间。",
        "apihelp-query+exturlusage-param-limit": "返回多少页面。",
        "apihelp-query+exturlusage-example-simple": "显示链接至<kbd>http://www.mediawiki.org</kbd>的页面。",
        "apihelp-query+imageinfo-paramvalue-prop-dimensions": "大小别名。",
        "apihelp-query+imageinfo-paramvalue-prop-sha1": "为文件加入SHA-1哈希值。",
        "apihelp-query+imageinfo-paramvalue-prop-mime": "添加文件的MIME类型。",
+       "apihelp-query+imageinfo-paramvalue-prop-mediatype": "添加文件媒体类型。",
+       "apihelp-query+imageinfo-param-start": "开始列举的时间戳。",
+       "apihelp-query+imageinfo-param-end": "列举的结束时间戳。",
        "apihelp-query+imageinfo-param-urlheight": "与$1urlwidth类似。",
+       "apihelp-query+imageinfo-param-metadataversion": "要使用的元数据版本。如果<kbd>latest</kbd>被指定,则使用最新版本。默认为<kbd>1</kbd>以便向下兼容。",
        "apihelp-query+imageinfo-param-localonly": "只看本地存储库的文件。",
        "apihelp-query+imageinfo-example-simple": "获取有关[[:File:Albert Einstein Head.jpg]]的当前版本的信息",
        "apihelp-query+imageinfo-example-dated": "获取有关[[:File:Albert Einstein Head.jpg]]自2008年以来版本的信息",
        "apihelp-query+images-param-dir": "罗列所采用的方向。",
        "apihelp-query+images-example-simple": "获取[[首页]]使用的文件列表",
        "apihelp-query+images-example-generator": "获取有关[[首页]]使用的文件的信息",
+       "apihelp-query+imageusage-description": "查找所有使用指定图片标题的页面。",
        "apihelp-query+imageusage-param-title": "要搜索的标题。不能与$1pageid一起使用。",
        "apihelp-query+imageusage-param-pageid": "要搜索的页面ID。不能与$1title一起使用。",
        "apihelp-query+imageusage-param-namespace": "要列举的名字空间。",
        "apihelp-query+imageusage-example-generator": "获取有关使用[[:File:Albert Einstein Head.jpg]]的页面的信息",
        "apihelp-query+info-description": "获取基本页面信息。",
        "apihelp-query+info-param-prop": "要获取的额外属性:",
+       "apihelp-query+info-paramvalue-prop-protection": "列出每个页面的保护等级。",
+       "apihelp-query+info-paramvalue-prop-watched": "列出每个页面的被监视状态。",
        "apihelp-query+info-paramvalue-prop-watchers": "监视人员数,如果允许。",
+       "apihelp-query+info-paramvalue-prop-readable": "用户是否可以阅读此页面。",
+       "apihelp-query+info-param-testactions": "测试当前用户是否可以在页面上执行某种操作。",
        "apihelp-query+info-param-token": "请改用[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]。",
        "apihelp-query+info-example-simple": "获得有关页面<kbd>Main Page</kbd>的信息。",
        "apihelp-query+info-example-protection": "获取<kbd>首页</kbd>相关的常规和保护信息。",
        "apihelp-query+pagepropnames-example-simple": "获取前10个属性名称。",
        "apihelp-query+pageprops-example-simple": "获得用于<kbd>Category:Foo</kbd>的属性。",
        "apihelp-query+pageswithprop-description": "列出所有使用指定页面属性的页面。",
+       "apihelp-query+pageswithprop-param-limit": "返回页面的最大数量。",
        "apihelp-query+pageswithprop-param-dir": "排序的方向。",
        "apihelp-query+pageswithprop-example-simple": "列出前10个使用<code>&#123;&#123;DISPLAYTITLE:&#125;&#125;</code>的页面。",
        "apihelp-query+pageswithprop-example-generator": "获取有关前10个使用<code>_&#95;NOTOC_&#95;</code>的页面的信息。",
        "apihelp-query+prefixsearch-param-search": "搜索字符串。",
        "apihelp-query+prefixsearch-param-namespace": "搜索的名字空间。",
+       "apihelp-query+prefixsearch-param-limit": "要返回的结果最大数。",
        "apihelp-query+prefixsearch-param-offset": "跳过的结果数。",
        "apihelp-query+prefixsearch-example-simple": "搜索以<kbd>meaning</kbd>开头的页面标题。",
        "apihelp-query+protectedtitles-param-namespace": "只列出这些名字空间的标题。",
        "apihelp-query+random-param-redirect": "加载一个随机重定向而不是一个随机页面。",
        "apihelp-query+random-example-simple": "从主名字空间返回两个随机页面。",
        "apihelp-query+recentchanges-description": "枚举最近更改。",
+       "apihelp-query+recentchanges-param-start": "枚举的起始时间戳。",
+       "apihelp-query+recentchanges-param-end": "枚举的结束时间戳。",
        "apihelp-query+recentchanges-param-user": "只列出此用户的更改。",
        "apihelp-query+recentchanges-param-excludeuser": "不要列出此用户的更改。",
        "apihelp-query+recentchanges-param-tag": "只列出带此标签的更改。",
        "apihelp-query+recentchanges-param-token": "请改用<kbd>[[Special:ApiHelp/query+tokens|action=query&meta=tokens]]</kbd>。",
-       "apihelp-query+recentchanges-param-limit": "返回总计更新数。",
+       "apihelp-query+recentchanges-param-limit": "返回总计更新数。",
        "apihelp-query+recentchanges-param-type": "显示的更改类型。",
        "apihelp-query+recentchanges-example-simple": "最近更改列表",
        "apihelp-query+redirects-description": "返回至指定页面的所有重定向。",
        "apihelp-query+siteinfo-example-replag": "检查当前的响应延迟。",
        "apihelp-query+stashimageinfo-example-simple": "返回藏匿文件的信息。",
        "apihelp-query+tags-description": "列出更改标签。",
+       "apihelp-query+tags-param-limit": "列出标签的最大数量。",
        "apihelp-query+tags-param-prop": "要获取哪个属性:\n;name:添加标签名称。\n;displayname:为标签添加系统消息。\n;description:为标签添加描述。\n;hitcount:已添加此标签的修订版本与日志数量。\n;defined:标识标签是否已定义。\n;source:获得标签来源,它可能包括用于扩展定义的标签的<samp>extension</samp>,以及用于可被用户手动应用的标签的<samp>manual</samp>。\n;active:标签是否仍可被应用。",
        "apihelp-query+tags-example-simple": "可用标签列表",
        "apihelp-query+templates-param-namespace": "只显示此名字空间的模板。",
        "apihelp-rollback-example-summary": "回退由IP用户<kbd>192.0.2.5</kbd>对页面<kbd>Main Page</kbd>做出的最近编辑,带编辑摘要<kbd>Reverting vandalism</kbd>,并将这些编辑和回退标记为机器人编辑。",
        "apihelp-rsd-description": "导出一个RSD(Really Simple Discovery)架构",
        "apihelp-rsd-example-simple": "导出RSD架构",
+       "apihelp-setnotificationtimestamp-param-entirewatchlist": "工作于所有已监视页面。",
        "apihelp-setnotificationtimestamp-example-all": "重置整个监视列表的通知状态。",
        "apihelp-setnotificationtimestamp-example-pagetimestamp": "设置<kbd>Main page</kbd>的通知时间戳,这样所有从2012年1月1日起的编辑都会是未复核的。",
        "apihelp-setnotificationtimestamp-example-allpages": "重置在<kbd>{{ns:user}}</kbd>名字空间中的页面的通知状态。",
        "apihelp-upload-param-ignorewarnings": "忽略任何警告。",
        "apihelp-upload-param-file": "文件内容。",
        "apihelp-upload-param-stash": "如果设置,服务器将临时藏匿文件而不是加入存储库。",
+       "apihelp-upload-param-offset": "块的偏移量(字节)。",
        "apihelp-upload-param-chunk": "大块内容。",
        "apihelp-upload-example-url": "从URL上传",
        "apihelp-upload-example-filekey": "完成一次由于警告而失败的上传。",
index c6aa730..261186f 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Cwlin0416",
                        "Liuxinyu970226",
-                       "LNDDYL"
+                       "LNDDYL",
+                       "EagerLin"
                ]
        },
        "apihelp-main-description": "<div class=\"hlist plainlinks api-main-links\">\n* [[mw:API:Main_page|文件]]\n* [[mw:API:FAQ|FAQ]]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api 郵件清單]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce API公告]\n* [https://phabricator.wikimedia.org/maniphest/query/GebfyV4uCaLd/#R Bug與請求]\n</div>\n<strong>狀態資訊:</strong>本頁所展示的所有功能都應正常工作,但是 API 仍在開發當中,將會隨時變化。請訂閱[https://lists.wikimedia.org/pipermail/mediawiki-api-announce/ mediawiki-api-announce 郵件清單]以便得到更新通知。\n\n<strong>錯誤請求:</strong>當 API 收到錯誤請求時, HTTP header 將會返回一個包含「MediaWiki-API-Error」的值,隨後 header 的值與錯誤碼將會送回並設定為相同的值。詳細資訊請參閱[[mw:API:Errors_and_warnings|API: 錯誤與警告]]。",
        "apihelp-block-description": "封鎖使用者。",
        "apihelp-block-param-user": "您要封鎖的使用者名稱、IP 位址或 IP 範圍。",
        "apihelp-block-param-reason": "封鎖原因。",
-       "apihelp-block-param-anononly": "僅封鎖匿名使用者 (禁止這個 IP 的匿名使用者編輯)。",
+       "apihelp-block-param-anononly": "僅封鎖匿名使用者 (禁止這個 IP 位址的匿名使用者編輯)。",
        "apihelp-block-param-nocreate": "禁止建立帳號。",
        "apihelp-block-param-autoblock": "自動封鎖最後使用的 IP 位址,以及在這之後嘗試登入的 IP 位址。",
-       "apihelp-block-param-noemail": "禁止使用者透過 Wiki 寄送電子郵件。 (需要 \"blockemail\" 權限)。",
-       "apihelp-block-param-hidename": "隱藏封鎖日誌的使用者名稱。 (需要 \"hideuser\" 權限)。",
+       "apihelp-block-param-noemail": "禁止使用者透過 Wiki 寄送電子郵件。 (需要 <code>blockemail</code> 權限)。",
+       "apihelp-block-param-hidename": "隱藏封鎖日誌的使用者名稱。 (需要 <code>hideuser</code> 權限)。",
        "apihelp-block-param-allowusertalk": "允許使用者編輯自己的對話頁面 (依據 <var>[[mw:Manual:$wgBlockAllowsUTEdit|$wgBlockAllowsUTEdit]]</var> 的設定)。",
        "apihelp-block-param-reblock": "若使用者已被封鎖,覆寫既有的封鎖設定值。",
-       "apihelp-block-param-watchuser": "監視使用者或 IP 的使用者頁面與對話頁面。",
+       "apihelp-block-param-watchuser": "監視使用者或 IP 位址的使用者頁面與對話頁面。",
+       "apihelp-checktoken-param-type": "已開始測試的標記類型。",
+       "apihelp-checktoken-param-token": "標記測試。",
+       "apihelp-checktoken-param-maxtokenage": "以秒計算標記的最大允許年限。",
+       "apihelp-checktoken-example-simple": "測試 <kbd>csrf</kbd> 標記的有效性。",
+       "apihelp-clearhasmsg-description": "清除目前單一使用者的 <code>hasmsg</code> 標記。",
+       "apihelp-clearhasmsg-example-1": "清除目前使用者的 <code>hasmsg</code> 標記。",
+       "apihelp-compare-description": "取得2個葉面之間的差别。\n\n用於“from”和“to”的修訂版編號、頁面標題或頁面 ID 必須取得認證。",
        "apihelp-compare-param-fromtitle": "要比對的第一個標題。",
        "apihelp-compare-param-fromid": "要比對的第一個頁面 ID。",
        "apihelp-compare-param-fromrev": "要比對的第一個修訂。",
        "apihelp-createaccount-param-password": "密碼 (若有設定 <var>$1mailpassword</var> 則可略過)。",
        "apihelp-createaccount-param-domain": "外部認証使用的網域 (選填)。",
        "apihelp-createaccount-param-token": "已取得帳號建立密鑰於第一次請求。",
-       "apihelp-createaccount-param-email": "使用者的電子郵件位址 (選填)。",
+       "apihelp-createaccount-param-email": "使用者的電子郵件地址 (選填) 。",
        "apihelp-createaccount-param-realname": "使用者的真實姓名 (選填)。",
        "apihelp-createaccount-param-mailpassword": "若設為其他值,將會以電子郵件寄送隨機密碼給使用者。",
        "apihelp-createaccount-param-reason": "建立帳號時選填的原因,會被記錄到日誌當中。",
        "apihelp-createaccount-param-language": "要設定的使用者預設語言代碼 (選填,預設依據內容語言)。",
-       "apihelp-createaccount-example-pass": "建立使用者 \"testuser\" 使用密碼 \"test123\"",
-       "apihelp-createaccount-example-mail": "建立使用者 \"testmailuser\" 並且電子郵件通知隨機產生的密碼",
+       "apihelp-createaccount-example-pass": "建立使用者 <kbd>testuser</kbd> 使用密碼 <kbd>test123</kbd>",
+       "apihelp-createaccount-example-mail": "建立使用者 <kbd>testmailuser</kbd> 並且電子郵件通知隨機產生的密碼。",
        "apihelp-delete-description": "刪除頁面。",
-       "apihelp-delete-param-title": "您欲刪除的頁面標題。 無法與 $1pageid 同時使用。",
-       "apihelp-delete-param-pageid": "您欲刪除頁面的頁面 ID。 無法與 $1title 同時使用。",
+       "apihelp-delete-param-title": "您欲刪除的頁面標題。 無法與 <var>$1pageid</var> 同時使用。",
+       "apihelp-delete-param-pageid": "您欲刪除頁面的頁面 ID。 無法與 <var>$1title</var> 同時使用。",
        "apihelp-delete-param-reason": "刪除的原因。 若未設定,將會使用自動產生的原因。",
-       "apihelp-delete-param-watch": "加入頁面至您的監視清單。",
-       "apihelp-delete-param-unwatch": "從您的監視清單中移除頁面。",
-       "apihelp-delete-example-simple": "刪除主頁面",
-       "apihelp-delete-example-reason": "刪除主頁面使用原因 \"準備移至它處\"",
+       "apihelp-delete-param-watch": "加入目前頁面至您的監視清單。",
+       "apihelp-delete-param-watchlist": "無條件使用設置將頁面加入或移除目前使用者的監視清單或者是不更改監視清單。",
+       "apihelp-delete-param-unwatch": "從您的監視清單中移除目前頁面。",
+       "apihelp-delete-param-oldimage": "來自[[Special:ApiHelp/query+imageinfo|action=query&prop=imageinfo&iiprop=archivename]]提供要删除的舊圖片名稱。",
+       "apihelp-delete-example-simple": "刪除<kbd>主頁面</kbd>",
+       "apihelp-delete-example-reason": "刪除<kbd>主頁面</kbd>使用原因 <kbd>準備移至它處</kbd>",
        "apihelp-disabled-description": "已停用此模組。",
        "apihelp-edit-description": "建立與編輯頁面。",
-       "apihelp-edit-param-title": "您欲編輯的頁面標題。 無法與 $1pageid 同時使用。",
-       "apihelp-edit-param-pageid": "您欲編輯頁面的頁面 ID。 無法與 $1title 同時使用。",
-       "apihelp-edit-param-section": "章節編號。 0 代表最上層章節,\"new\" 代表新章節。",
+       "apihelp-edit-param-title": "您欲編輯的頁面標題。 無法與 <var>$1pageid</var> 同時使用。",
+       "apihelp-edit-param-pageid": "您欲編輯頁面的頁面 ID。 無法與 <var>$1title</var> 同時使用。",
+       "apihelp-edit-param-section": "章節編號。 <kbd>0</kbd> 代表最上層章節,<kbd>new</kbd> 代表新章節。",
        "apihelp-edit-param-sectiontitle": "新章節的標題。",
        "apihelp-edit-param-text": "頁面內容。",
        "apihelp-edit-param-summary": "編輯摘要。 當未設定 $1section=new 與 $1sectiontitle 時也會當做章節標題。",
        "apihelp-edit-param-minor": "小編輯。",
        "apihelp-edit-param-notminor": "非小編輯。",
+       "apihelp-edit-param-bot": "標記此編輯為機器人編輯。",
+       "apihelp-edit-param-basetimestamp": "基於修訂的時間戳記,用來檢測編輯衝突。也许可以取得[[Special:ApiHelp/query+revisions|action=query&prop=revisions&rvprop=timestamp]]認可。",
        "apihelp-edit-param-createonly": "若頁面已存在,則不編輯頁面。",
        "apihelp-edit-param-nocreate": "若頁面不存在,則產生錯誤。",
-       "apihelp-edit-param-watch": "加入頁面至您的監視清單。",
-       "apihelp-edit-param-unwatch": "從您的監視清單中移除頁面。",
+       "apihelp-edit-param-watch": "加入目前頁面至您的監視清單。",
+       "apihelp-edit-param-unwatch": "從您的監視清單中移除目前頁面。",
        "apihelp-edit-example-edit": "編輯頁面",
        "apihelp-emailuser-description": "寄送電子郵件給使用者。",
        "apihelp-emailuser-param-target": "電子郵件的收件使用者。",
        "apihelp-emailuser-param-subject": "郵件主旨。",
        "apihelp-emailuser-param-text": "郵件內容。",
        "apihelp-emailuser-param-ccme": "寄送一份此郵件的複本給我。",
-       "apihelp-emailuser-example-email": "寄送電子郵件給使用者 \"WikiSysop\" 使用內容 \"Content\"",
+       "apihelp-emailuser-example-email": "寄送電子郵件給使用者 <kbd>WikiSysop</kbd> 使用內容 <kbd>Content</kbd>",
        "apihelp-expandtemplates-description": "展開所有於 wikitext 中模板。",
        "apihelp-expandtemplates-param-title": "頁面標題。",
        "apihelp-expandtemplates-param-text": "要轉換的 Wikitext。",
+       "apihelp-feedcontributions-param-showsizediff": "顯示修訂版本之間的差異大小。",
+       "apihelp-feedcontributions-example-simple": "返回使用者<kbd>Example</kbd>的貢獻。",
+       "apihelp-feedrecentchanges-description": "返回近期邊更摘要。",
+       "apihelp-feedrecentchanges-param-feedformat": "摘要格式。",
+       "apihelp-feedrecentchanges-param-namespace": "用於限制結果的命名空間。",
+       "apihelp-feedrecentchanges-param-invert": "除所選定者外的所有命名空間。",
        "apihelp-feedrecentchanges-example-simple": "顯示近期變動",
        "apihelp-feedrecentchanges-example-30days": "顯示近期30天內的變動",
        "apihelp-feedwatchlist-description": "返回監視清單 feed。",
        "apihelp-opensearch-param-search": "搜尋字串。",
        "apihelp-opensearch-param-namespace": "搜尋的命名空間。",
        "apihelp-options-example-reset": "重設所有偏好設定",
+       "apihelp-query+recentchanges-description": "列舉出近期變動。",
+       "apihelp-query+recentchanges-example-simple": "近期變動清單",
        "apihelp-userrights-param-user": "使用者名稱。",
        "apihelp-userrights-param-userid": "使用者 ID。",
        "apihelp-format-example-generic": "格式化查詢結果為 $1 格式",
-       "apihelp-dbg-description": "使用 PHP 的 var_export() 格式輸出資料。",
-       "apihelp-dbgfm-description": "使用 PHP 的 var_export() 格式輸出資料 (使用 HTML 格式顯示)。",
-       "apihelp-dump-description": "使用 PHP 的 var_dump() 格式輸出資料。",
-       "apihelp-dumpfm-description": "使用 PHP 的 var_dump() 格式輸出資料 (使用 HTML 格式顯示)。",
+       "apihelp-dbg-description": "使用 PHP 的 <code>var_export()</code> 格式輸出資料。",
+       "apihelp-dbgfm-description": "使用 PHP 的 <code>var_export()</code> 格式輸出資料 (使用 HTML 格式顯示)。",
+       "apihelp-dump-description": "使用 PHP 的 <code>var_dump()</code> 格式輸出資料。",
+       "apihelp-dumpfm-description": "使用 PHP 的 <code>var_dump()</code> 格式輸出資料 (使用 HTML 格式顯示)。",
        "apihelp-json-description": "使用 JSON 格式輸出資料。",
        "apihelp-jsonfm-description": "使用 JSON 格式輸出資料 (使用 HTML 格式顯示)。",
        "apihelp-none-description": "不輸出。",
        "apihelp-php-description": "使用序列化 PHP 格式輸出資料。",
        "apihelp-phpfm-description": "使用序列化 PHP 格式輸出資料 (使用 HTML 格式顯示)。",
        "apihelp-rawfm-description": "使用 JSON 格式的除錯元素輸出資料 (使用 HTML 格式顯示)。",
-       "apihelp-txt-description": "使用 PHP 的 print_r() 格式輸出資料。",
-       "apihelp-txtfm-description": "使用 PHP 的 print_r() 格式輸出資料 (使用 HTML 格式顯示)。",
+       "apihelp-txt-description": "使用 PHP 的 <code>print_r()</code> 格式輸出資料。",
+       "apihelp-txtfm-description": "使用 PHP 的 <code>print_r()</code> 格式輸出資料 (使用 HTML 格式顯示)。",
        "apihelp-wddx-description": "使用 WDDX 格式輸出資料。",
        "apihelp-wddxfm-description": "使用 WDDX 格式輸出資料 (使用 HTML 格式顯示)。",
        "apihelp-xml-description": "使用 XML 格式輸出資料。",
index c3f455e..10b4fb0 100644 (file)
@@ -38,8 +38,6 @@
  * of memory.
  *
  * Introduced by r47317
- *
- * @internal documentation reviewed on 18 Mar 2011 by hashar
  */
 class BacklinkCache {
        /** @var ProcessCacheLRU */
index 2cee726..19277f1 100644 (file)
@@ -181,14 +181,12 @@ class EnhancedChangesList extends ChangesList {
                $isnew = false;
                $allBots = true;
                $allMinors = true;
-               $curId = $currentRevision = 0;
+               $curId = 0;
                # Some catalyst variables...
                $namehidden = true;
                $allLogs = true;
-               $oldid = '';
                $RCShowChangedSize = $this->getConfig()->get( 'RCShowChangedSize' );
                foreach ( $block as $rcObj ) {
-                       $oldid = $rcObj->mAttribs['rc_last_oldid'];
                        if ( $rcObj->mAttribs['rc_type'] == RC_NEW ) {
                                $isnew = true;
                        }
@@ -212,9 +210,6 @@ class EnhancedChangesList extends ChangesList {
                        if ( !$curId && $rcObj->mAttribs['rc_cur_id'] ) {
                                $curId = $rcObj->mAttribs['rc_cur_id'];
                        }
-                       if ( !$currentRevision && $rcObj->mAttribs['rc_this_oldid'] ) {
-                               $currentRevision = $rcObj->mAttribs['rc_this_oldid'];
-                       }
 
                        if ( !$rcObj->mAttribs['rc_bot'] ) {
                                $allBots = false;
@@ -275,87 +270,7 @@ class EnhancedChangesList extends ChangesList {
 
                $queryParams['curid'] = $curId;
 
-               # Changes message
-               static $nchanges = array();
-               static $sinceLastVisitMsg = array();
-
-               $n = count( $block );
-               if ( !isset( $nchanges[$n] ) ) {
-                       $nchanges[$n] = $this->msg( 'nchanges' )->numParams( $n )->escaped();
-               }
-
-               $sinceLast = 0;
-               $unvisitedOldid = null;
-               /** @var $rcObj RCCacheEntry */
-               foreach ( $block as $rcObj ) {
-                       // Same logic as below inside main foreach
-                       if ( $rcObj->watched && $rcObj->mAttribs['rc_timestamp'] >= $rcObj->watched ) {
-                               $sinceLast++;
-                               $unvisitedOldid = $rcObj->mAttribs['rc_last_oldid'];
-                       }
-               }
-               if ( !isset( $sinceLastVisitMsg[$sinceLast] ) ) {
-                       $sinceLastVisitMsg[$sinceLast] =
-                               $this->msg( 'enhancedrc-since-last-visit' )->numParams( $sinceLast )->escaped();
-               }
-
-               # Total change link
-               $r .= ' ';
-               $logtext = '';
-               /** @var $block0 RecentChange */
-               $block0 = $block[0];
-               if ( !$allLogs ) {
-                       if ( !ChangesList::userCan( $rcObj, Revision::DELETED_TEXT, $this->getUser() ) ) {
-                               $logtext .= $nchanges[$n];
-                       } elseif ( $isnew ) {
-                               $logtext .= $nchanges[$n];
-                       } else {
-                               $logtext .= Linker::link(
-                                       $block0->getTitle(),
-                                       $nchanges[$n],
-                                       array(),
-                                       $queryParams + array(
-                                               'diff' => $currentRevision,
-                                               'oldid' => $oldid,
-                                       ),
-                                       array( 'known', 'noclasses' )
-                               );
-                               if ( $sinceLast > 0 && $sinceLast < $n ) {
-                                       $logtext .= $this->message['pipe-separator'] . Linker::link(
-                                               $block0->getTitle(),
-                                               $sinceLastVisitMsg[$sinceLast],
-                                               array(),
-                                               $queryParams + array(
-                                                       'diff' => $currentRevision,
-                                                       'oldid' => $unvisitedOldid,
-                                               ),
-                                               array( 'known', 'noclasses' )
-                                       );
-                               }
-                       }
-               }
-
-               # History
-               if ( $allLogs ) {
-                       // don't show history link for logs
-               } elseif ( $namehidden || !$block0->getTitle()->exists() ) {
-                       $logtext .= $this->message['pipe-separator'] . $this->message['enhancedrc-history'];
-               } else {
-                       $params = $queryParams;
-                       $params['action'] = 'history';
-
-                       $logtext .= $this->message['pipe-separator'] .
-                               Linker::linkKnown(
-                                       $block0->getTitle(),
-                                       $this->message['enhancedrc-history'],
-                                       array(),
-                                       $params
-                               );
-               }
-
-               if ( $logtext !== '' ) {
-                       $r .= $this->msg( 'parentheses' )->rawParams( $logtext )->escaped();
-               }
+               $r .= $this->getLogText( $block, $queryParams, $allLogs, $isnew, $namehidden );
 
                $r .= ' <span class="mw-changeslist-separator">. .</span> ';
 
@@ -381,7 +296,7 @@ class EnhancedChangesList extends ChangesList {
                }
 
                $r .= $users;
-               $r .= $this->numberofWatchingusers( $block0->numberofWatchingusers );
+               $r .= $this->numberofWatchingusers( $block[0]->numberofWatchingusers );
                $r .= '</td></tr>';
 
                # Sub-entries
@@ -468,6 +383,114 @@ class EnhancedChangesList extends ChangesList {
                return $r;
        }
 
+       /**
+        * Generates amount of changes (linking to diff ) & link to history.
+        *
+        * @param array $block
+        * @param array $queryParams
+        * @param bool $allLogs
+        * @param bool $isnew
+        * @param bool $namehidden
+        * @return string
+        */
+       protected function getLogText( $block, $queryParams, $allLogs, $isnew, $namehidden ) {
+               # Changes message
+               static $nchanges = array();
+               static $sinceLastVisitMsg = array();
+
+               $n = count( $block );
+               if ( !isset( $nchanges[$n] ) ) {
+                       $nchanges[$n] = $this->msg( 'nchanges' )->numParams( $n )->escaped();
+               }
+
+               $sinceLast = 0;
+               $unvisitedOldid = null;
+               /** @var $rcObj RCCacheEntry */
+               foreach ( $block as $rcObj ) {
+                       // Same logic as below inside main foreach
+                       if ( $rcObj->watched && $rcObj->mAttribs['rc_timestamp'] >= $rcObj->watched ) {
+                               $sinceLast++;
+                               $unvisitedOldid = $rcObj->mAttribs['rc_last_oldid'];
+                       }
+               }
+               if ( !isset( $sinceLastVisitMsg[$sinceLast] ) ) {
+                       $sinceLastVisitMsg[$sinceLast] =
+                               $this->msg( 'enhancedrc-since-last-visit' )->numParams( $sinceLast )->escaped();
+               }
+
+               $currentRevision = 0;
+               foreach ( $block as $rcObj ) {
+                       if ( !$currentRevision ) {
+                               $currentRevision = $rcObj->mAttribs['rc_this_oldid'];
+                       }
+               }
+
+               # Total change link
+               $links = array();
+               /** @var $block0 RecentChange */
+               $block0 = $block[0];
+               $last = $block[count( $block ) - 1];
+               if ( !$allLogs ) {
+                       if ( !ChangesList::userCan( $rcObj, Revision::DELETED_TEXT, $this->getUser() ) ) {
+                               $links['total-changes'] = $nchanges[$n];
+                       } elseif ( $isnew ) {
+                               $links['total-changes'] = $nchanges[$n];
+                       } else {
+                               $links['total-changes'] = Linker::link(
+                                       $block0->getTitle(),
+                                       $nchanges[$n],
+                                       array(),
+                                       $queryParams + array(
+                                               'diff' => $currentRevision,
+                                               'oldid' => $last->mAttribs['rc_last_oldid'],
+                                       ),
+                                       array( 'known', 'noclasses' )
+                               );
+                               if ( $sinceLast > 0 && $sinceLast < $n ) {
+                                       $links['total-changes-since-last'] = Linker::link(
+                                                       $block0->getTitle(),
+                                                       $sinceLastVisitMsg[$sinceLast],
+                                                       array(),
+                                                       $queryParams + array(
+                                                               'diff' => $currentRevision,
+                                                               'oldid' => $unvisitedOldid,
+                                                       ),
+                                                       array( 'known', 'noclasses' )
+                                               );
+                               }
+                       }
+               }
+
+               # History
+               if ( $allLogs ) {
+                       // don't show history link for logs
+               } elseif ( $namehidden || !$block0->getTitle()->exists() ) {
+                       $links['history'] = $this->message['enhancedrc-history'];
+               } else {
+                       $params = $queryParams;
+                       $params['action'] = 'history';
+
+                       $links['history'] = Linker::linkKnown(
+                                       $block0->getTitle(),
+                                       $this->message['enhancedrc-history'],
+                                       array(),
+                                       $params
+                               );
+               }
+
+               # Allow others to alter, remove or add to these links
+               Hooks::run( 'EnhancedChangesList::getLogText',
+                       array( $this, &$links, $block ) );
+
+               if ( !$links ) {
+                       return '';
+               }
+
+               $logtext = implode( $this->message['pipe-separator'], $links );
+               $logtext = $this->msg( 'parentheses' )->rawParams( $logtext )->escaped();
+               return ' ' . $logtext;
+       }
+
        /**
         * Enhanced RC ungrouped line.
         *
index 75cd5ee..3b3ba9d 100644 (file)
@@ -25,5 +25,5 @@
  *
  * @since 1.23
  */
-class ConfigException extends MWException {
+class ConfigException extends Exception {
 }
index d8fca4d..6542d7d 100644 (file)
@@ -393,7 +393,7 @@ abstract class AbstractContent implements Content {
         *
         * @see Content::prepareSave
         */
-       public function prepareSave( WikiPage $page, $flags, $baseRevId, User $user ) {
+       public function prepareSave( WikiPage $page, $flags, $parentRevId, User $user ) {
                if ( $this->isValid() ) {
                        return Status::newGood();
                } else {
index 5823a9a..8ed761f 100644 (file)
@@ -464,7 +464,7 @@ interface Content {
         *
         * @param WikiPage $page The page to be saved.
         * @param int $flags Bitfield for use with EDIT_XXX constants, see WikiPage::doEditContent()
-        * @param int $baseRevId The ID of the current revision
+        * @param int $parentRevId The ID of the current revision
         * @param User $user
         *
         * @return Status A status object indicating whether the content was
@@ -473,7 +473,7 @@ interface Content {
         *
         * @see WikiPage::doEditContent()
         */
-       public function prepareSave( WikiPage $page, $flags, $baseRevId, User $user );
+       public function prepareSave( WikiPage $page, $flags, $parentRevId, User $user );
 
        /**
         * Returns a list of updates to perform when this content is deleted.
index 1d9ee33..bf3a25b 100644 (file)
@@ -68,7 +68,7 @@ class JsonContent extends TextContent {
         * @return string
         */
        public function beautifyJSON() {
-               return FormatJson::encode( $this->getData()->getValue(), true );
+               return FormatJson::encode( $this->getData()->getValue(), true, FormatJson::UTF8_OK );
        }
 
        /**
index 076504e..d526d84 100644 (file)
@@ -1,7 +1,5 @@
 <?php
 /**
- * Request-dependant objects containers.
- *
  * 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
@@ -17,8 +15,6 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
- * @since 1.18
- *
  * @author Happy-melon
  * @file
  */
@@ -26,6 +22,8 @@
 /**
  * The simplest way of implementing IContextSource is to hold a RequestContext as a
  * member variable and provide accessors to it.
+ *
+ * @since 1.18
  */
 abstract class ContextSource implements IContextSource {
        /**
@@ -154,6 +152,17 @@ abstract class ContextSource implements IContextSource {
                return $this->getContext()->getSkin();
        }
 
+       /**
+        * Get the Stats object
+        *
+        * @since 1.25
+        * @return BufferingStatsdDataFactory
+        */
+       public function getStats() {
+               return $this->getContext()->getStats();
+       }
+
+
        /**
         * Get a Message object with context set
         * Parameters are the same as wfMessage()
index b8966f0..00323ca 100644 (file)
@@ -1,7 +1,5 @@
 <?php
 /**
- * Request-dependant objects containers.
- *
  * 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
@@ -17,8 +15,6 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  * http://www.gnu.org/copyleft/gpl.html
  *
- * @since 1.19
- *
  * @author Daniel Friesen
  * @file
  */
@@ -28,6 +24,7 @@
  * but allow individual pieces of context to be changed locally
  * eg: A ContextSource that can inherit from the main RequestContext but have
  *     a different Title instance set on it.
+ * @since 1.19
  */
 class DerivativeContext extends ContextSource {
        /**
@@ -100,6 +97,19 @@ class DerivativeContext extends ContextSource {
                }
        }
 
+       /**
+        * Get the stats object
+        *
+        * @return BufferingStatsdDataFactory
+        */
+       public function getStats() {
+               if ( !is_null( $this->stats ) ) {
+                       return $this->stats;
+               } else {
+                       return $this->getContext()->getStats();
+               }
+       }
+
        /**
         * Set the WebRequest object
         *
index f718103..713c5cb 100644 (file)
@@ -1,7 +1,5 @@
 <?php
 /**
- * Request-dependant objects containers.
- *
  * 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
  */
 
 /**
- * Interface for objects which can provide a context on request.
+ * Interface for objects which can provide a MediaWiki context on request
+ *
+ * Context objects contain request-dependent objects that manage the core
+ * web request/response logic for essentially all requests to MediaWiki.
+ * The contained objects include:
+ *   a) Key objects that depend (for construction/loading) on the HTTP request
+ *   b) Key objects used for response building and PHP session state control
+ *   c) Performance metric deltas accumulated from request execution
+ *   d) The site configuration object
+ * All of the objects are useful for the vast majority of MediaWiki requests.
+ * The site configuration object is included on grounds of extreme
+ * utility, even though it should not actually depend on the web request.
+ *
+ * More specifically, the scope of the context includes:
+ *   a) Objects that represent the HTTP request/response and PHP session state
+ *   b) Object representing the MediaWiki user (as determined by the HTTP request)
+ *   c) Primary MediaWiki output builder objects (OutputPage, user skin object)
+ *   d) The language object for the user/request
+ *   e) The title and wiki page objects requested via URL (if any)
+ *   f) Performance metric deltas accumulated from request execution
+ *   g) The site configuration object
+ *
+ * This class is not intended as a service-locator nor a service singleton.
+ * Objects that only depend on site configuration do not belong here (aside
+ * from Config itself). Objects that represent persistent data stores do not
+ * belong here either. Session state changes should only be propagated on
+ * shutdown by separate persistence handler objects, for example.
  */
 interface IContextSource {
        /**
@@ -99,6 +123,14 @@ interface IContextSource {
         */
        public function getConfig();
 
+       /**
+        * Get the stats object
+        *
+        * @since 1.25
+        * @return BufferingStatsdDataFactory
+        */
+       public function getStats();
+
        /**
         * Get a Message object with context set
         *
index 89ccd0b..4e790c0 100644 (file)
@@ -1,7 +1,5 @@
 <?php
 /**
- * Request-dependant objects containers.
- *
  * 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
@@ -63,6 +61,11 @@ class RequestContext implements IContextSource {
         */
        private $skin;
 
+       /**
+        * @var StatsdDataFactory
+        */
+       private $stats;
+
        /**
         * @var Config
         */
@@ -120,6 +123,22 @@ class RequestContext implements IContextSource {
                return $this->request;
        }
 
+       /**
+        * Get the Stats object
+        *
+        * @return BufferingStatsdDataFactory
+        */
+       public function getStats() {
+               if ( $this->stats === null ) {
+                       $config = $this->getConfig();
+                       $prefix = $config->has( 'StatsdMetricPrefix' )
+                               ? rtrim( $config->get( 'StatsdMetricPrefix' ), '.' )
+                               : 'MediaWiki';
+                       $this->stats = new BufferingStatsdDataFactory( $prefix );
+               }
+               return $this->stats;
+       }
+
        /**
         * Set the Title object
         *
index ee1722e..b3c81f9 100644 (file)
@@ -153,6 +153,9 @@ abstract class DatabaseBase implements IDatabase {
         */
        protected $allViews = null;
 
+       /** @var TransactionProfiler */
+       protected $trxProfiler;
+
        /**
         * A string describing the current software version, and possibly
         * other details in a user-friendly way. Will be listed on Special:Version, etc.
@@ -345,6 +348,15 @@ abstract class DatabaseBase implements IDatabase {
        public function setFakeMaster( $enabled = true ) {
        }
 
+       /**
+        * @return TransactionProfiler
+        */
+       protected function getTransactionProfiler() {
+               return $this->trxProfiler
+                       ? $this->trxProfiler
+                       : Profiler::instance()->getTransactionProfiler();
+       }
+
        /**
         * Returns true if this database supports (and uses) cascading deletes
         *
@@ -798,13 +810,13 @@ abstract class DatabaseBase implements IDatabase {
 
                $this->mForeign = $foreign;
 
+               if ( isset( $params['trxProfiler'] ) ) {
+                       $this->trxProfiler = $params['trxProfiler']; // override
+               }
+
                if ( $user ) {
                        $this->open( $server, $user, $password, $dbName );
                }
-
-               $isMaster = !is_null( $this->getLBInfo( 'master' ) );
-               $trxProf = Profiler::instance()->getTransactionProfiler();
-               $trxProf->recordConnection( $this->mServer, $this->mDBname, $isMaster );
        }
 
        /**
@@ -1103,7 +1115,7 @@ abstract class DatabaseBase implements IDatabase {
                # Keep track of whether the transaction has write queries pending
                if ( $this->mTrxLevel && !$this->mTrxDoneWrites && $isWriteQuery ) {
                        $this->mTrxDoneWrites = true;
-                       Profiler::instance()->getTransactionProfiler()->transactionWritingIn(
+                       $this->getTransactionProfiler()->transactionWritingIn(
                                $this->mServer, $this->mDBname, $this->mTrxShortId );
                }
 
@@ -1149,7 +1161,7 @@ abstract class DatabaseBase implements IDatabase {
                $startTime = microtime( true );
                $ret = $this->doQuery( $commentedSql );
                # Log the query time and feed it into the DB trx profiler
-               $profiler->getTransactionProfiler()->recordQueryCompletion(
+               $this->getTransactionProfiler()->recordQueryCompletion(
                        $queryProf, $startTime, $isWriteQuery, $this->affectedRows() );
 
                MWDebug::queryTime( $queryId );
@@ -1180,7 +1192,7 @@ abstract class DatabaseBase implements IDatabase {
                                        $startTime = microtime( true );
                                        $ret = $this->doQuery( $commentedSql );
                                        # Log the query time and feed it into the DB trx profiler
-                                       $profiler->getTransactionProfiler()->recordQueryCompletion(
+                                       $this->getTransactionProfiler()->recordQueryCompletion(
                                                $queryProf, $startTime, $isWriteQuery, $this->affectedRows() );
                                }
                        } else {
@@ -3599,7 +3611,7 @@ abstract class DatabaseBase implements IDatabase {
                        $this->runOnTransactionPreCommitCallbacks();
                        $this->doCommit( $fname );
                        if ( $this->mTrxDoneWrites ) {
-                               Profiler::instance()->getTransactionProfiler()->transactionWritingOut(
+                               $this->getTransactionProfiler()->transactionWritingOut(
                                        $this->mServer, $this->mDBname, $this->mTrxShortId );
                        }
                        $this->runOnTransactionIdleCallbacks();
@@ -3679,7 +3691,7 @@ abstract class DatabaseBase implements IDatabase {
                $this->runOnTransactionPreCommitCallbacks();
                $this->doCommit( $fname );
                if ( $this->mTrxDoneWrites ) {
-                       Profiler::instance()->getTransactionProfiler()->transactionWritingOut(
+                       $this->getTransactionProfiler()->transactionWritingOut(
                                $this->mServer, $this->mDBname, $this->mTrxShortId );
                }
                $this->runOnTransactionIdleCallbacks();
@@ -3738,7 +3750,7 @@ abstract class DatabaseBase implements IDatabase {
                $this->mTrxPreCommitCallbacks = array(); // cancel
                $this->mTrxAtomicLevels = new SplStack;
                if ( $this->mTrxDoneWrites ) {
-                       Profiler::instance()->getTransactionProfiler()->transactionWritingOut(
+                       $this->getTransactionProfiler()->transactionWritingOut(
                                $this->mServer, $this->mDBname, $this->mTrxShortId );
                }
        }
index c1f2969..aac95a8 100644 (file)
@@ -1188,7 +1188,8 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
  */
 class MySQLField implements Field {
        private $name, $tablename, $default, $max_length, $nullable,
-               $is_pk, $is_unique, $is_multiple, $is_key, $type, $binary;
+               $is_pk, $is_unique, $is_multiple, $is_key, $type, $binary,
+               $is_numeric, $is_blob, $is_unsigned, $is_zerofill;
 
        function __construct( $info ) {
                $this->name = $info->name;
@@ -1201,8 +1202,11 @@ class MySQLField implements Field {
                $this->is_multiple = $info->multiple_key;
                $this->is_key = ( $this->is_pk || $this->is_unique || $this->is_multiple );
                $this->type = $info->type;
-               $this->flags = $info->flags;
                $this->binary = isset( $info->binary ) ? $info->binary : false;
+               $this->is_numeric = isset( $info->numeric ) ? $info->numeric : false;
+               $this->is_blob = isset( $info->blob ) ? $info->blob : false;
+               $this->is_unsigned = isset( $info->unsigned ) ? $info->unsigned : false;
+               $this->is_zerofill = isset( $info->zerofill ) ? $info->zerofill : false;
        }
 
        /**
@@ -1252,15 +1256,39 @@ class MySQLField implements Field {
        }
 
        /**
-        * @return int
+        * @return bool
         */
-       function flags() {
-               return $this->flags;
-       }
-
        function isBinary() {
                return $this->binary;
        }
+
+       /**
+        * @return bool
+        */
+       function isNumeric() {
+               return $this->is_numeric;
+       }
+
+       /**
+        * @return bool
+        */
+       function isBlob() {
+               return $this->is_blob;
+       }
+
+       /**
+        * @return bool
+        */
+       function isUnsigned() {
+               return $this->is_unsigned;
+       }
+
+       /**
+        * @return bool
+        */
+       function isZerofill() {
+               return $this->is_zerofill;
+       }
 }
 
 class MySQLMasterPos implements DBMasterPos {
index e9c4b39..ad12e19 100644 (file)
@@ -224,11 +224,18 @@ class DatabaseMysqli extends DatabaseMysqlBase {
         */
        protected function mysqlFetchField( $res, $n ) {
                $field = $res->fetch_field_direct( $n );
+
+               // Add missing properties to result (using flags property)
+               // which will be part of function mysql-fetch-field for backward compatibility
                $field->not_null = $field->flags & MYSQLI_NOT_NULL_FLAG;
                $field->primary_key = $field->flags & MYSQLI_PRI_KEY_FLAG;
                $field->unique_key = $field->flags & MYSQLI_UNIQUE_KEY_FLAG;
                $field->multiple_key = $field->flags & MYSQLI_MULTIPLE_KEY_FLAG;
                $field->binary = $field->flags & MYSQLI_BINARY_FLAG;
+               $field->numeric = $field->flags & MYSQLI_NUM_FLAG;
+               $field->blob = $field->flags & MYSQLI_BLOB_FLAG;
+               $field->unsigned = $field->flags & MYSQLI_UNSIGNED_FLAG;
+               $field->zerofill = $field->flags & MYSQLI_ZEROFILL_FLAG;
 
                return $field;
        }
index 0b51972..ed86bab 100644 (file)
@@ -29,8 +29,11 @@ class DatabaseSqlite extends DatabaseBase {
        /** @var bool Whether full text is enabled */
        private static $fulltextEnabled = null;
 
+       /** @var string Directory */
+       protected $dbDir;
+
        /** @var string File name for SQLite database file */
-       public $mDatabaseFile;
+       protected $dbPath;
 
        /** @var string Transaction mode */
        protected $trxMode;
@@ -49,30 +52,61 @@ class DatabaseSqlite extends DatabaseBase {
 
        /**
         * Additional params include:
-        *   - trxMode : one of (deferred, immediate, exclusive)
+        *   - dbDirectory : directory containing the DB and the lock file directory
+        *                   [defaults to $wgSQLiteDataDir]
+        *   - dbFilePath  : use this to force the path of the DB file
+        *   - trxMode     : one of (deferred, immediate, exclusive)
         * @param array $p
         */
        function __construct( array $p ) {
                global $wgSharedDB, $wgSQLiteDataDir;
 
-               $this->mDBname = $p['dbname'];
-               parent::__construct( $p );
-               // parent doesn't open when $user is false, but we can work with $dbName
-               if ( $p['dbname'] && !$this->isOpen() ) {
-                       if ( $this->open( $p['host'], $p['user'], $p['password'], $p['dbname'] ) ) {
-                               if ( $wgSharedDB ) {
-                                       $this->attachDatabase( $wgSharedDB );
+               $this->dbDir = isset( $p['dbDirectory'] ) ? $p['dbDirectory'] : $wgSQLiteDataDir;
+
+               if ( isset( $p['dbFilePath'] ) ) {
+                       $this->mFlags = isset( $p['flags'] ) ? $p['flags'] : 0;
+                       // Standalone .sqlite file mode
+                       $this->openFile( $p['dbFilePath'] );
+                       // @FIXME: clean up base constructor so this can call super instead
+                       $this->mTrxAtomicLevels = new SplStack;
+               } else {
+                       $this->mDBname = $p['dbname'];
+                       // Stock wiki mode using standard file names per DB
+                       parent::__construct( $p );
+                       // parent doesn't open when $user is false, but we can work with $dbName
+                       if ( $p['dbname'] && !$this->isOpen() ) {
+                               if ( $this->open( $p['host'], $p['user'], $p['password'], $p['dbname'] ) ) {
+                                       if ( $wgSharedDB ) {
+                                               $this->attachDatabase( $wgSharedDB );
+                                       }
                                }
                        }
                }
 
                $this->trxMode = isset( $p['trxMode'] ) ? strtoupper( $p['trxMode'] ) : null;
-               if ( $this->trxMode && !in_array( $this->trxMode, array( 'IMMEDIATE', 'EXCLUSIVE' ) ) ) {
+               if ( $this->trxMode &&
+                       !in_array( $this->trxMode, array( 'DEFERRED', 'IMMEDIATE', 'EXCLUSIVE' ) )
+               ) {
                        $this->trxMode = null;
                        wfWarn( "Invalid SQLite transaction mode provided." );
                }
 
-               $this->lockMgr = new FSLockManager( array( 'lockDirectory' => "$wgSQLiteDataDir/locks" ) );
+               $this->lockMgr = new FSLockManager( array( 'lockDirectory' => "{$this->dbDir}/locks" ) );
+       }
+
+       /**
+        * @param string $filename
+        * @param array $p Options map; supports:
+        *   - flags       : (same as __construct counterpart)
+        *   - trxMode     : (same as __construct counterpart)
+        *   - dbDirectory : (same as __construct counterpart)
+        * @return DatabaseSqlite
+        * @since 1.25
+        */
+       public static function newStandaloneInstance( $filename, array $p = array() ) {
+               $p['dbFilePath'] = $filename;
+
+               return new self( $p );
        }
 
        /**
@@ -103,10 +137,8 @@ class DatabaseSqlite extends DatabaseBase {
         * @return PDO
         */
        function open( $server, $user, $pass, $dbName ) {
-               global $wgSQLiteDataDir;
-
                $this->close();
-               $fileName = self::generateFileName( $wgSQLiteDataDir, $dbName );
+               $fileName = self::generateFileName( $this->dbDir, $dbName );
                if ( !is_readable( $fileName ) ) {
                        $this->mConn = false;
                        throw new DBConnectionError( $this, "SQLite database not accessible" );
@@ -123,10 +155,10 @@ class DatabaseSqlite extends DatabaseBase {
         * @throws DBConnectionError
         * @return PDO|bool SQL connection or false if failed
         */
-       function openFile( $fileName ) {
+       protected function openFile( $fileName ) {
                $err = false;
 
-               $this->mDatabaseFile = $fileName;
+               $this->dbPath = $fileName;
                try {
                        if ( $this->mFlags & DBO_PERSISTENT ) {
                                $this->mConn = new PDO( "sqlite:$fileName", '', '',
@@ -156,6 +188,14 @@ class DatabaseSqlite extends DatabaseBase {
                return false;
        }
 
+       /**
+        * @return string SQLite DB file path
+        * @since 1.25
+        */
+       public function getDbFilePath() {
+               return $this->dbPath;
+       }
+
        /**
         * Does not actually close the connection, just destroys the reference for GC to do its work
         * @return bool
@@ -206,8 +246,7 @@ class DatabaseSqlite extends DatabaseBase {
                $cachedResult = false;
                $table = 'dummy_search_test';
 
-               $db = new DatabaseSqliteStandalone( ':memory:' );
-
+               $db = self::newStandaloneInstance( ':memory:' );
                if ( $db->query( "CREATE VIRTUAL TABLE $table USING FTS3(dummy_field)", __METHOD__, true ) ) {
                        $cachedResult = 'FTS3';
                }
@@ -223,14 +262,13 @@ class DatabaseSqlite extends DatabaseBase {
         * @param string $name Database name to be used in queries like
         *   SELECT foo FROM dbname.table
         * @param bool|string $file Database file name. If omitted, will be generated
-        *   using $name and $wgSQLiteDataDir
+        *   using $name and configured data directory
         * @param string $fname Calling function name
         * @return ResultWrapper
         */
        function attachDatabase( $name, $file = false, $fname = __METHOD__ ) {
-               global $wgSQLiteDataDir;
                if ( !$file ) {
-                       $file = self::generateFileName( $wgSQLiteDataDir, $name );
+                       $file = self::generateFileName( $this->dbDir, $name );
                }
                $file = $this->addQuotes( $file );
 
@@ -863,11 +901,9 @@ class DatabaseSqlite extends DatabaseBase {
        }
 
        public function lock( $lockName, $method, $timeout = 5 ) {
-               global $wgSQLiteDataDir;
-
-               if ( !is_dir( "$wgSQLiteDataDir/locks" ) ) { // create dir as needed
-                       if ( !is_writable( $wgSQLiteDataDir ) || !mkdir( "$wgSQLiteDataDir/locks" ) ) {
-                               throw new DBError( "Cannot create directory \"$wgSQLiteDataDir/locks\"." );
+               if ( !is_dir( "{$this->dbDir}/locks" ) ) { // create dir as needed
+                       if ( !is_writable( $this->dbDir ) || !mkdir( "{$this->dbDir}/locks" ) ) {
+                               throw new DBError( "Cannot create directory \"{$this->dbDir}/locks\"." );
                        }
                }
 
@@ -961,23 +997,6 @@ class DatabaseSqlite extends DatabaseBase {
        }
 } // end DatabaseSqlite class
 
-/**
- * This class allows simple acccess to a SQLite database independently from main database settings
- * @ingroup Database
- */
-class DatabaseSqliteStandalone extends DatabaseSqlite {
-       public function __construct( $fileName, $flags = 0 ) {
-               global $wgSQLiteDataDir;
-
-               $this->mTrxAtomicLevels = new SplStack;
-               $this->lockMgr = new FSLockManager( array( 'lockDirectory' => "$wgSQLiteDataDir/locks" ) );
-
-               $this->mFlags = $flags;
-               $this->tablePrefix( null );
-               $this->openFile( $fileName );
-       }
-}
-
 /**
  * @ingroup Database
  */
index 4e5ed08..9a520ff 100644 (file)
  * @ingroup Database
  */
 
-/**
- * Utility class.
- * @ingroup Database
- */
-class DBObject {
-       public $mData;
-
-       function __construct( $data ) {
-               $this->mData = $data;
-       }
-
-       /**
-        * @return bool
-        */
-       function isLOB() {
-               return false;
-       }
-
-       function data() {
-               return $this->mData;
-       }
-}
-
 /**
  * Utility class
  * @ingroup Database
index 917d703..4e0a5b9 100644 (file)
@@ -471,6 +471,9 @@ class LoadBalancer {
                        ? array( false ) // check one "group": the generic pool
                        : (array)$groups;
 
+               $masterOnly = ( $i == DB_MASTER || $i == $this->getWriterIndex() );
+               $oldConnsOpened = $this->connsOpened; // connections open now
+
                if ( $i == DB_MASTER ) {
                        $i = $this->getWriterIndex();
                } else {
@@ -506,6 +509,14 @@ class LoadBalancer {
                        return $this->reportConnectionError();
                }
 
+               # Profile any new connections that happen
+               if ( $this->connsOpened > $oldConnsOpened ) {
+                       $host = $conn->getServer();
+                       $dbname = $conn->getDBname();
+                       $trxProf = Profiler::instance()->getTransactionProfiler();
+                       $trxProf->recordConnection( $host, $dbname, $masterOnly );
+               }
+
                return $conn;
        }
 
index c4c6cf3..7a4a3b6 100644 (file)
@@ -309,11 +309,24 @@ class MWDebug {
         *
         * @since 1.19
         * @param string $str
+        * @param array $context
         */
-       public static function debugMsg( $str ) {
+       public static function debugMsg( $str, $context = array() ) {
                global $wgDebugComments, $wgShowDebug;
 
                if ( self::$enabled || $wgDebugComments || $wgShowDebug ) {
+                       if ( $context ) {
+                               $prefix = '';
+                               if ( isset( $context['prefix'] ) ) {
+                                       $prefix = $context['prefix'];
+                               } elseif ( isset( $context['channel'] ) && $context['channel'] !== 'wfDebug' ) {
+                                       $prefix = "[{$context['channel']}] ";
+                               }
+                               if ( isset( $context['seconds_elapsed'] ) && isset( $context['memory_used'] ) ) {
+                                       $prefix .= "{$context['seconds_elapsed']} {$context['memory_used']}  ";
+                               }
+                               $str = $prefix . $str;
+                       }
                        self::$debug[] = rtrim( UtfNormal::cleanUp( $str ) );
                }
        }
index be46c27..610635d 100644 (file)
@@ -84,6 +84,8 @@ class MWLoggerLegacyLogger extends AbstractLogger {
                        $destination = self::destination( $this->channel, $message, $context );
                        self::emit( $text, $destination );
                }
+               // Add to debug toolbar
+               MWDebug::debugMsg( $message, array( 'channel' => $this->channel ) + $context );
        }
 
 
@@ -288,6 +290,7 @@ class MWLoggerLegacyLogger extends AbstractLogger {
         *
         * @param string $message
         * @param array $context
+        * @return string Interpolated message
         */
        public static function interpolate( $message, array $context ) {
                if ( strpos( $message, '{' ) !== false ) {
index a872d84..9e7678d 100644 (file)
@@ -30,7 +30,8 @@
  * - HOST: IPv4, IPv6 or hostname
  * - PORT: server port
  * - PREFIX: optional (but recommended) prefix telling udp2log how to route
- * the log event
+ * the log event. The special prefix "{channel}" will use the log event's
+ * channel as the prefix value.
  *
  * When not targeting a udp2log stream this class will act as a drop-in
  * replacement for Monolog's StreamHandler.
@@ -194,7 +195,9 @@ class MWLoggerMonologHandler extends \Monolog\Handler\AbstractProcessingHandler
 
                        // Clean it up for the multiplexer
                        if ( $this->prefix !== '' ) {
-                               $text = preg_replace( '/^/m', "{$this->prefix} ", $text );
+                               $leader = ( $this->prefix === '{channel}' ) ?
+                                       $record['channel'] : $this->prefix;
+                               $text = preg_replace( '/^/m', "{$leader} ", $text );
 
                                // Limit to 64KB
                                if ( strlen( $text ) > 65506 ) {
diff --git a/includes/debug/logger/monolog/SamplingHandler.php b/includes/debug/logger/monolog/SamplingHandler.php
deleted file mode 100644 (file)
index a9f83b0..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-<?php
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- */
-
-use Monolog\Handler\HandlerInterface;
-use Monolog\Formatter\FormatterInterface;
-
-/**
- * Wrapper for another HandlerInterface that will only handle a percentage of
- * records offered to it.
- *
- * When HandlerInterface::handle() is called for a given record, it will be
- * handled or ignored with a one in N chance based on the sample factor given
- * for the handler.
- *
- * Usage with MWLoggerMonologSpi:
- * @code
- * $wgMWLoggerDefaultSpi = array(
- *   'class' => 'MWLoggerMonologSpi',
- *   'args' => array( array(
- *     'handlers' => array(
- *       'some-handler' => array( ... ),
- *       'sampled-some-handler' => array(
- *         'class' => 'MWLoggerMonologSamplingHandler',
- *         'args' => array(
- *           function() {
- *             return MWLoggerFactory::getProvider()->getHandler( 'some-handler');
- *           },
- *           2, // emit logs with a 1:2 chance
- *         ),
- *       ),
- *     ),
- *   ) ),
- * );
- * @endcode
- *
- * A sampled event stream can be useful for logging high frequency events in
- * a production environment where you only need an idea of what is happening
- * and are not concerned with capturing every occurence. Since the decision to
- * handle or not handle a particular event is determined randomly, the
- * resulting sampled log is not guaranteed to contain 1/N of the events that
- * occurred in the application but based on [[Law of large numbers]] it will
- * tend to be close to this ratio with a large number of attempts.
- *
- * @since 1.25
- * @author Bryan Davis <bd808@wikimedia.org>
- * @copyright © 2014 Bryan Davis and Wikimedia Foundation.
- */
-class MWLoggerMonologSamplingHandler implements HandlerInterface {
-
-       /**
-        * @var HandlerInterface $delegate
-        */
-       protected $delegate;
-
-       /**
-        * @var int $factor
-        */
-       protected $factor;
-
-       /**
-        * @param HandlerInterface $handler Wrapped handler
-        * @param int $factor Sample factor
-        */
-       public function __construct( HandlerInterface $handler, $factor ) {
-               $this->delegate = $handler;
-               $this->factor = $factor;
-       }
-
-       public function isHandling( array $record ) {
-               return $this->delegate->isHandling( $record );
-       }
-
-       public function handle( array $record ) {
-               if ( $this->isHandling( $record )
-                       && mt_rand( 1, $this->factor ) === 1
-               ) {
-                       return $this->delegate->handle( $record );
-               }
-               return false;
-       }
-
-       public function handleBatch( array $records ) {
-               foreach ( $records as $record ) {
-                       $this->handle( $record );
-               }
-       }
-
-       public function pushProcessor( $callback ) {
-               $this->delegate->pushProcessor( $callback );
-               return $this;
-       }
-
-       public function popProcessor() {
-               return $this->delegate->popProcessor();
-       }
-
-       public function setFormatter( FormatterInterface $formatter ) {
-               $this->delegate->setFormatter( $formatter );
-               return $this;
-       }
-
-       public function getFormatter() {
-               return $this->delegate->getFormatter();
-       }
-
-}
index 862ac27..79a10e6 100644 (file)
@@ -47,6 +47,7 @@ class HTMLCacheUpdate implements DeferrableUpdate {
                        $this->mTitle,
                        array(
                                'table' => $this->mTable,
+                               'recursive' => true
                        ) + Job::newRootJobParams( // "overall" refresh links job info
                                "htmlCacheUpdate:{$this->mTable}:{$this->mTitle->getPrefixedText()}"
                        )
index a0e1a96..de8dd43 100644 (file)
@@ -550,7 +550,7 @@ class DifferenceEngine extends ContextSource {
                $out = $this->getOutput();
                $revHeader = $this->getRevisionHeader( $this->mNewRev );
                # Add "current version as of X" title
-               $out->addHTML( "<hr class='diff-hr' />
+               $out->addHTML( "<hr class='diff-hr' id='mw-oldid' />
                <h2 class='diff-currentversion-title'>{$revHeader}</h2>\n" );
                # Page content may be handled by a hooked call instead...
                # @codingStandardsIgnoreStart Ignoring long lines.
@@ -1233,6 +1233,12 @@ class DifferenceEngine extends ContextSource {
                // Load the new revision object
                if ( $this->mNewid ) {
                        $this->mNewRev = Revision::newFromId( $this->mNewid );
+
+                       if ( !$this->mNewRev && wfGetLB()->getServerCount() > 1 ) {
+                               // Try harder… This is being hit after a rollback where we show the
+                               // diff immediately after the edit happened. T93866
+                               $this->mNewRev = Revision::newFromId( $this->mNewid, Revision::READ_LATEST );
+                       }
                } else {
                        $this->mNewRev = Revision::newFromTitle(
                                $this->getTitle(),
index e5155bf..5d0183f 100644 (file)
@@ -62,7 +62,7 @@ class TableDiffFormatter extends DiffFormatter {
        protected function blockHeader( $xbeg, $xlen, $ybeg, $ylen ) {
                // '<!--LINE \d+ -->' get replaced by a localised line number
                // in DifferenceEngine::localiseLineNumbers
-               $r = '<tr><td colspan="2" class="diff-lineno"><!--LINE ' . $xbeg . "--></td>\n" .
+               $r = '<tr><td colspan="2" class="diff-lineno" id="L' . $xbeg . '" ><!--LINE ' . $xbeg . "--></td>\n" .
                        '<td colspan="2" class="diff-lineno"><!--LINE ' . $ybeg . "--></td></tr>\n";
 
                return $r;
index 6ab6e03..0515566 100644 (file)
@@ -42,6 +42,19 @@ class HttpError extends MWException {
                $this->content = $content;
        }
 
+       /**
+        * We don't want the default exception logging as we got our own logging set
+        * up in self::report.
+        *
+        * @see MWException::isLoggable
+        *
+        * @since 1.24
+        * @return bool
+        */
+       public function isLoggable() {
+               return false;
+       }
+
        /**
         * Returns the HTTP status code supplied to the constructor.
         *
@@ -52,11 +65,13 @@ class HttpError extends MWException {
        }
 
        /**
-        * Report the HTTP error.
+        * Report and log the HTTP error.
         * Sends the appropriate HTTP status code and outputs an
         * HTML page with an error message.
         */
        public function report() {
+               $this->doLog();
+
                $httpMessage = HttpStatus::getMessage( $this->httpCode );
 
                header( "Status: {$this->httpCode} {$httpMessage}", true, $this->httpCode );
@@ -65,6 +80,29 @@ class HttpError extends MWException {
                print $this->getHTML();
        }
 
+       private function doLog() {
+               $logger = MWLoggerFactory::getInstance( 'HttpError' );
+               $content = $this->content;
+
+               if ( $content instanceof Message ) {
+                       $content = $content->text();
+               }
+
+               $context = array(
+                       'file' => $this->getFile(),
+                       'line' => $this->getLine(),
+                       'http_code' => $this->httpCode,
+               );
+
+               $logMsg = "$content ({http_code}) from {file}:{line}";
+
+               if ( $this->getStatusCode() < 500 ) {
+                       $logger->info( $logMsg, $context );
+               } else {
+                       $logger->error( $logMsg, $context );
+               }
+       }
+
        /**
         * Returns HTML for reporting the HTTP error.
         * This will be a minimal but complete HTML document.
index 097c043..478fead 100644 (file)
@@ -119,7 +119,8 @@ class MWException extends Exception {
                if ( $this->useMessageCache() ) {
                        try {
                                return wfMessage( $key, $args )->text();
-                       } catch ( Exception $e ) {}
+                       } catch ( Exception $e ) {
+                       }
                }
                return wfMsgReplaceArgs( $fallback, $args );
        }
index 77ab6ad..5644231 100644 (file)
@@ -246,6 +246,7 @@ class MWExceptionHandler {
                        if ( preg_match( "/Class (undefined: \w+|'\w+' not found)/",
                                $lastError['message']
                        ) ) {
+                               // @codingStandardsIgnoreStart Generic.Files.LineLength.TooLong
                                $msg = <<<TXT
 {$msg}
 
@@ -253,6 +254,7 @@ MediaWiki or an installed extension requires this class but it is not embedded d
 
 Please see <a href="https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries">mediawiki.org</a> for help on installing the required components.
 TXT;
+                               // @codingStandardsIgnoreEnd
                        }
                        $e = new ErrorException( $msg, 0, $lastError['type'] );
                        self::logError( $e );
index 345c17b..00030d8 100644 (file)
@@ -31,7 +31,7 @@ class ExternalStoreHttp extends ExternalStoreMedium {
         * @see ExternalStoreMedium::fetchFromURL()
         */
        public function fetchFromURL( $url ) {
-               return Http::get( $url );
+               return Http::get( $url, array(), __METHOD__ );
        }
 
        /**
index c00fb81..07370ad 100644 (file)
@@ -681,6 +681,11 @@ class FSFileBackend extends FileBackendStore {
                return false;
        }
 
+       /**
+        * @param FileBackendStoreOpHandle[] $fileOpHandles
+        *
+        * @return Status[]
+        */
        protected function doExecuteOpHandlesInternal( array $fileOpHandles ) {
                $statuses = array();
 
index de189ec..25e87d4 100644 (file)
@@ -1188,9 +1188,9 @@ abstract class FileBackendStore extends FileBackend {
         * The resulting Status object fields will correspond
         * to the order in which the handles where given.
         *
-        * @param array $fileOpHandles
+        * @param FileBackendStoreOpHandle[] $fileOpHandles
+        *
         * @throws FileBackendError
-        * @internal param array $handles List of FileBackendStoreOpHandle objects
         * @return array Map of Status objects
         */
        final public function executeOpHandlesInternal( array $fileOpHandles ) {
@@ -1213,9 +1213,11 @@ abstract class FileBackendStore extends FileBackend {
 
        /**
         * @see FileBackendStore::executeOpHandlesInternal()
-        * @param array $fileOpHandles
+        *
+        * @param FileBackendStoreOpHandle[] $fileOpHandles
+        *
         * @throws FileBackendError
-        * @return array List of corresponding Status objects
+        * @return Status[] List of corresponding Status objects
         */
        protected function doExecuteOpHandlesInternal( array $fileOpHandles ) {
                if ( count( $fileOpHandles ) ) {
index 836fd49..5f406c9 100644 (file)
@@ -1171,6 +1171,11 @@ class SwiftFileBackend extends FileBackendStore {
                return $hdrs;
        }
 
+       /**
+        * @param FileBackendStoreOpHandle[] $fileOpHandles
+        *
+        * @return Status[]
+        */
        protected function doExecuteOpHandlesInternal( array $fileOpHandles ) {
                $statuses = array();
 
index d1a16b5..5b42c2c 100644 (file)
@@ -406,6 +406,7 @@ class FileRepo {
         *   private:        If true, return restricted (deleted) files if the current
         *                   user is allowed to view them. Otherwise, such files will not
         *                   be found. If a User object, use that user instead of the current.
+        *   latest:         If true, load from the latest available data into File objects
         * @return File|bool False on failure
         */
        public function findFile( $title, $options = array() ) {
@@ -413,18 +414,24 @@ class FileRepo {
                if ( !$title ) {
                        return false;
                }
+               if ( isset( $options['bypassCache'] ) ) {
+                       $options['latest'] = $options['bypassCache']; // b/c
+               }
                $time = isset( $options['time'] ) ? $options['time'] : false;
+               $flags = !empty( $options['latest'] ) ? File::READ_LATEST : 0;
                # First try the current version of the file to see if it precedes the timestamp
                $img = $this->newFile( $title );
                if ( !$img ) {
                        return false;
                }
+               $img->load( $flags );
                if ( $img->exists() && ( !$time || $img->getTimestamp() == $time ) ) {
                        return $img;
                }
                # Now try an old version of the file
                if ( $time !== false ) {
                        $img = $this->newFile( $title, $time );
+                       $img->load( $flags );
                        if ( $img && $img->exists() ) {
                                if ( !$img->isDeleted( File::DELETED_FILE ) ) {
                                        return $img; // always OK
@@ -445,6 +452,7 @@ class FileRepo {
                $redir = $this->checkRedirect( $title );
                if ( $redir && $title->getNamespace() == NS_FILE ) {
                        $img = $this->newFile( $redir );
+                       $img->load( $flags );
                        if ( !$img ) {
                                return false;
                        }
index daf26ba..67080b6 100644 (file)
@@ -26,4 +26,5 @@
  * @ingroup FileRepo
  * @deprecated 1.25
  */
-class FileRepoStatus extends Status {}
+class FileRepoStatus extends Status {
+}
index 6924f0a..7ead968 100644 (file)
@@ -514,7 +514,7 @@ class ForeignAPIRepo extends FileRepo {
                        $options['timeout'] = 'default';
                }
 
-               $req = MWHttpRequest::factory( $url, $options );
+               $req = MWHttpRequest::factory( $url, $options, __METHOD__ );
                $req->setUserAgent( ForeignAPIRepo::getUserAgent() );
                $status = $req->execute();
 
index fab4216..050c429 100644 (file)
@@ -114,7 +114,7 @@ class RepoGroup {
         *   private:        If true, return restricted (deleted) files if the current
         *                   user is allowed to view them. Otherwise, such files will not
         *                   be found.
-        *   bypassCache:    If true, do not use the process-local cache of File objects
+        *   latest:         If true, load from the latest available data into File objects
         * @return File|bool False if title is not found
         */
        function findFile( $title, $options = array() ) {
@@ -122,6 +122,10 @@ class RepoGroup {
                        // MW 1.15 compat
                        $options = array( 'time' => $options );
                }
+               if ( isset( $options['bypassCache'] ) ) {
+                       $options['latest'] = $options['bypassCache']; // b/c
+               }
+
                if ( !$this->reposInitialised ) {
                        $this->initialiseRepos();
                }
index 6ca61b2..6edd6fc 100644 (file)
@@ -47,7 +47,7 @@
  *
  * @ingroup FileAbstraction
  */
-abstract class File {
+abstract class File implements IDBAccessObject {
        // Bitfield values akin to the Revision deletion constants
        const DELETED_FILE = 1;
        const DELETED_COMMENT = 2;
@@ -836,6 +836,18 @@ abstract class File {
                return false;
        }
 
+       /**
+        * Load any lazy-loaded file object fields from source
+        *
+        * This is only useful when setting $flags
+        *
+        * Overridden by LocalFile to actually query the DB
+        *
+        * @param integer $flags Bitfield of File::READ_* constants
+        */
+       public function load( $flags = 0 ) {
+       }
+
        /**
         * Returns true if file exists in the repository.
         *
@@ -1765,14 +1777,15 @@ abstract class File {
        }
 
        /**
+        * @param bool|IContextSource $context Context to use (optional)
         * @return bool
         */
-       function formatMetadata() {
+       function formatMetadata( $context = false ) {
                if ( !$this->getHandler() ) {
                        return false;
                }
 
-               return $this->getHandler()->formatMetadata( $this, $this->getMetadata() );
+               return $this->getHandler()->formatMetadata( $this, $context );
        }
 
        /**
@@ -2008,7 +2021,7 @@ abstract class File {
                                wfDebug( "miss\n" );
                        }
                        wfDebug( "Fetching shared description from $renderUrl\n" );
-                       $res = Http::get( $renderUrl );
+                       $res = Http::get( $renderUrl, array(), __METHOD__ );
                        if ( $res && $this->repo->descriptionCacheExpiry > 0 ) {
                                $wgMemc->set( $key, $res, $this->repo->descriptionCacheExpiry );
                        }
index 699c915..b4cced3 100644 (file)
@@ -124,13 +124,8 @@ class LocalFile extends File {
        /** @var bool True if file is not present in file system. Not to be cached in memcached */
        private $missing;
 
-       /** @var int UNIX timestamp of last markVolatile() call */
-       private $lastMarkedVolatile = 0;
-
-       const LOAD_ALL = 1; // integer; load all the lazy fields too (like metadata)
-       const LOAD_VIA_SLAVE = 2; // integer; use a slave to load the data
-
-       const VOLATILE_TTL = 300; // integer; seconds
+       // @note: higher than IDBAccessObject constants
+       const LOAD_ALL = 16; // integer; load all the lazy fields too (like metadata)
 
        /**
         * Create a LocalFile from a title
@@ -387,9 +382,9 @@ class LocalFile extends File {
                $this->dataLoaded = true;
                $this->extraDataLoaded = true;
 
-               $dbr = ( $flags & self::LOAD_VIA_SLAVE )
-                       ? $this->repo->getSlaveDB()
-                       : $this->repo->getMasterDB();
+               $dbr = ( $flags & self::READ_LATEST )
+                       ? $this->repo->getMasterDB()
+                       : $this->repo->getSlaveDB();
 
                $row = $dbr->selectRow( 'image', $this->getCacheFields( 'img_' ),
                        array( 'img_name' => $this->getName() ), $fname );
@@ -530,13 +525,14 @@ class LocalFile extends File {
         */
        function load( $flags = 0 ) {
                if ( !$this->dataLoaded ) {
-                       if ( !$this->loadFromCache() ) {
-                               $this->loadFromDB( $this->isVolatile() ? 0 : self::LOAD_VIA_SLAVE );
+                       if ( ( $flags & self::READ_LATEST ) || !$this->loadFromCache() ) {
+                               $this->loadFromDB( $flags );
                                $this->saveToCache();
                        }
                        $this->dataLoaded = true;
                }
                if ( ( $flags & self::LOAD_ALL ) && !$this->extraDataLoaded ) {
+                       // @note: loads on name/timestamp to reduce race condition problems
                        $this->loadExtraFromDB();
                }
        }
@@ -846,7 +842,7 @@ class LocalFile extends File {
         * Refresh metadata in memcached, but don't touch thumbnails or squid
         */
        function purgeMetadataCache() {
-               $this->loadFromDB();
+               $this->loadFromDB( File::READ_LATEST );
                $this->saveToCache();
                $this->purgeHistory();
        }
@@ -1788,7 +1784,10 @@ class LocalFile extends File {
                // itself gets it from elsewhere. To avoid repeating the DB lookups in such a case, we
                // need to differentiate between null (uninitialized) and false (failed to load).
                if ( $this->descriptionTouched === null ) {
-                       $cond = array( 'page_namespace' => $this->title->getNamespace(), 'page_title' => $this->title->getDBkey() );
+                       $cond = array(
+                               'page_namespace' => $this->title->getNamespace(),
+                               'page_title' => $this->title->getDBkey()
+                       );
                        $touched = $this->repo->getSlaveDB()->selectField( 'page', 'page_touched', $cond, __METHOD__ );
                        $this->descriptionTouched = $touched ? wfTimestamp( TS_MW, $touched ) : false;
                }
@@ -1861,8 +1860,6 @@ class LocalFile extends File {
                        } );
                }
 
-               $this->markVolatile(); // file may change soon
-
                return $this->lockedOwnTrx;
        }
 
@@ -1881,48 +1878,6 @@ class LocalFile extends File {
                }
        }
 
-       /**
-        * Mark a file as about to be changed
-        *
-        * This sets a cache key that alters master/slave DB loading behavior
-        *
-        * @return bool Success
-        */
-       protected function markVolatile() {
-               global $wgMemc;
-
-               $key = $this->repo->getSharedCacheKey( 'file-volatile', md5( $this->getName() ) );
-               if ( $key ) {
-                       $this->lastMarkedVolatile = time();
-                       return $wgMemc->set( $key, $this->lastMarkedVolatile, self::VOLATILE_TTL );
-               }
-
-               return true;
-       }
-
-       /**
-        * Check if a file is about to be changed or has been changed recently
-        *
-        * @see LocalFile::isVolatile()
-        * @return bool Whether the file is volatile
-        */
-       protected function isVolatile() {
-               global $wgMemc;
-
-               $key = $this->repo->getSharedCacheKey( 'file-volatile', md5( $this->getName() ) );
-               if ( !$key ) {
-                       // repo unavailable; bail.
-                       return false;
-               }
-
-               if ( $this->lastMarkedVolatile === 0 ) {
-                       $this->lastMarkedVolatile = $wgMemc->get( $key ) ?: 0;
-               }
-
-               $volatileDuration = time() - $this->lastMarkedVolatile;
-               return $volatileDuration <= self::VOLATILE_TTL;
-       }
-
        /**
         * Roll back the DB transaction and mark the image unlocked
         */
index 73c614a..fd92e11 100644 (file)
@@ -175,10 +175,12 @@ class OldLocalFile extends LocalFile {
        }
 
        function loadFromDB( $flags = 0 ) {
-
                $this->dataLoaded = true;
 
-               $dbr = $this->repo->getSlaveDB();
+               $dbr = ( $flags & self::READ_LATEST )
+                       ? $this->repo->getMasterDB()
+                       : $this->repo->getSlaveDB();
+
                $conds = array( 'oi_name' => $this->getName() );
                if ( is_null( $this->requestedTime ) ) {
                        $conds['oi_archive_name'] = $this->archive_name;
index ac61067..7a0206c 100644 (file)
@@ -133,6 +133,8 @@ class TraditionalImageGallery extends ImageGalleryBase {
 
                                $this->adjustImageParameters( $thumb, $imageParameters );
 
+                               Linker::processResponsiveImages( $img, $thumb, $transformOptions );
+
                                # Set both fixed width and min-height.
                                $thumbhtml = "\n\t\t\t"
                                        . '<div class="thumb" style="width: '
index 8765407..0f00540 100644 (file)
@@ -56,7 +56,7 @@ class HTMLRadioField extends HTMLFormField {
 
                                $html .= ' ' . Html::rawElement(
                                        'div',
-                                       array( 'class' => 'mw-htmlform-flatlist-item' ),
+                                       array( 'class' => 'mw-htmlform-flatlist-item mw-ui-radio' ),
                                        $radio
                                );
                        }
index dc52554..c29b462 100644 (file)
@@ -186,7 +186,6 @@ abstract class Installer {
                'wgUseInstantCommons',
                'wgUpgradeKey',
                'wgDefaultSkin',
-               'wgResourceLoaderMaxQueryLength',
        );
 
        /**
@@ -285,15 +284,15 @@ abstract class Installer {
         */
        public $licenses = array(
                'cc-by' => array(
-                       'url' => 'http://creativecommons.org/licenses/by/3.0/',
+                       'url' => 'https://creativecommons.org/licenses/by/3.0/',
                        'icon' => '{$wgResourceBasePath}/resources/assets/licenses/cc-by.png',
                ),
                'cc-by-sa' => array(
-                       'url' => 'http://creativecommons.org/licenses/by-sa/3.0/',
+                       'url' => 'https://creativecommons.org/licenses/by-sa/3.0/',
                        'icon' => '{$wgResourceBasePath}/resources/assets/licenses/cc-by-sa.png',
                ),
                'cc-by-nc-sa' => array(
-                       'url' => 'http://creativecommons.org/licenses/by-nc-sa/3.0/',
+                       'url' => 'https://creativecommons.org/licenses/by-nc-sa/3.0/',
                        'icon' => '{$wgResourceBasePath}/resources/assets/licenses/cc-by-nc-sa.png',
                ),
                'cc-0' => array(
@@ -305,7 +304,7 @@ abstract class Installer {
                        'icon' => '{$wgResourceBasePath}/resources/assets/licenses/public-domain.png',
                ),
                'gfdl' => array(
-                       'url' => 'http://www.gnu.org/copyleft/fdl.html',
+                       'url' => 'https://www.gnu.org/copyleft/fdl.html',
                        'icon' => '{$wgResourceBasePath}/resources/assets/licenses/gnu-fdl.png',
                ),
                'none' => array(
@@ -1376,7 +1375,7 @@ abstract class Installer {
                                }
 
                                try {
-                                       $text = Http::get( $url . $file, array( 'timeout' => 3 ) );
+                                       $text = Http::get( $url . $file, array( 'timeout' => 3 ), __METHOD__ );
                                } catch ( Exception $e ) {
                                        // Http::get throws with allow_url_fopen = false and no curl extension.
                                        $text = null;
@@ -1724,7 +1723,7 @@ abstract class Installer {
 
                if ( MWHttpRequest::canMakeRequests() ) {
                        $res = MWHttpRequest::factory( $this->mediaWikiAnnounceUrl,
-                               array( 'method' => 'POST', 'postData' => $params ) )->execute();
+                               array( 'method' => 'POST', 'postData' => $params ), __METHOD__ )->execute();
                        if ( !$res->isOK() ) {
                                $s->warning( 'config-install-subscribe-fail', $res->getMessage() );
                        }
index c0ba300..8724e0d 100644 (file)
@@ -63,7 +63,7 @@ class LocalSettingsGenerator {
                                'wgRightsText', 'wgMainCacheType', 'wgEnableUploads',
                                'wgMainCacheType', '_MemCachedServers', 'wgDBserver', 'wgDBuser',
                                'wgDBpassword', 'wgUseInstantCommons', 'wgUpgradeKey', 'wgDefaultSkin',
-                               'wgMetaNamespace', 'wgResourceLoaderMaxQueryLength', 'wgLogo',
+                               'wgMetaNamespace', 'wgLogo',
                        ),
                        $db->getGlobalNames()
                );
index 63e8611..3af08d6 100644 (file)
@@ -47,7 +47,7 @@ class MysqlInstaller extends DatabaseInstaller {
 
        public $supportedEngines = array( 'InnoDB', 'MyISAM' );
 
-       public $minimumVersion = '5.0.2';
+       public $minimumVersion = '5.0.3';
 
        public $webUserPrivs = array(
                'DELETE',
index eada44a..36d2c1d 100644 (file)
@@ -271,6 +271,8 @@ class MysqlUpdater extends DatabaseUpdater {
                        array( 'dropField', 'site_stats', 'ss_total_views', 'patch-drop-ss_total_views.sql' ),
                        array( 'dropField', 'page', 'page_counter', 'patch-drop-page_counter.sql' ),
                        array( 'doUserNewTalkUseridUnsigned' ),
+                       // note this patch covers other _comment and _description fields too
+                       array( 'modifyField', 'recentchanges', 'rc_comment', 'patch-editsummary-length.sql' ),
                );
        }
 
@@ -1073,7 +1075,7 @@ class MysqlUpdater extends DatabaseUpdater {
                if ( $info === false ) {
                        return true;
                }
-               if ( ( $info->flags() & 32 /*MYSQLI_UNSIGNED_FLAG*/ ) ) {
+               if ( $info->isUnsigned() ) {
                        $this->output( "...user_id is already unsigned int.\n" );
 
                        return true;
index 1e7e969..f990ddf 100644 (file)
@@ -55,7 +55,7 @@ class SqliteInstaller extends DatabaseInstaller {
        public function checkPrerequisites() {
                $result = Status::newGood();
                // Bail out if SQLite is too old
-               $db = new DatabaseSqliteStandalone( ':memory:' );
+               $db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
                if ( version_compare( $db->getServerVersion(), self::MINIMUM_VERSION, '<' ) ) {
                        $result->fatal( 'config-outdated-sqlite', $db->getServerVersion(), self::MINIMUM_VERSION );
                }
index 81304c4..2693be0 100644 (file)
@@ -142,6 +142,7 @@ class SqliteUpdater extends DatabaseUpdater {
                        array( 'dropTable', 'hitcounter' ),
                        array( 'dropField', 'site_stats', 'ss_total_views', 'patch-drop-ss_total_views.sql' ),
                        array( 'dropField', 'page', 'page_counter', 'patch-drop-page_counter.sql' ),
+                       array( 'modifyField', 'filearchive', 'fa_deleted_reason', 'patch-editsummary-length.sql' ),
                );
        }
 
index 038c2be..6e41514 100644 (file)
@@ -1183,7 +1183,7 @@ class WebInstallerOptions extends WebInstallerPage {
                ) );
                $styleUrl = $server . dirname( dirname( $this->parent->getUrl() ) ) .
                        '/mw-config/config-cc.css';
-               $iframeUrl = 'http://creativecommons.org/license/?' .
+               $iframeUrl = 'https://creativecommons.org/license/?' .
                        wfArrayToCgi( array(
                                'partner' => 'MediaWiki',
                                'exit_url' => $exitUrl,
index df7184f..62f0f03 100644 (file)
        "config-env-good": "Comprobóse l'entornu.\nPue instalar MediaWiki.",
        "config-env-bad": "Comprobóse l'entornu.\nNun pue instalar MediaWiki.",
        "config-env-php": "PHP $1 ta instaláu.",
-       "config-env-php-toolow": "PHP $1 ta instaláu.\nSicasí, MediaWiki necesita PHP $2 o superior.",
+       "config-env-hhvm": "HHVM $1 ta instaláu.",
        "config-unicode-using-utf8": "Usando utf8_normalize.so de Brion Vibber pa la normalización Unicode.",
        "config-unicode-using-intl": "Usando la [http://pecl.php.net/intl estensión intl PECL] pa la normalización Unicode.",
        "config-unicode-pure-php-warning": "'''Avisu:''' La [http://pecl.php.net/intl estensión intl PECL] nun ta disponible pa xestionar la normalización Unicode; volviendo a la implementación lenta en PHP puru.\nSi xestiona un sitiu con un tráficu altu, tendría de lleer una migaya sobro la [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalización Unicode].",
        "config-unicode-update-warning": "'''Avisu:''' La versión instalada del envoltoriu de normalización Unicode usa una versión antigua de la biblioteca [http://site.icu-project.org/ de los proyeutos ICU].\nTendría [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations d'anovala] si ye importante pa vusté usar Unicode.",
-       "config-no-db": "¡Nun pudo alcontrase un controlador de base de datos afayadizu! Necesita instalar un controlador de base de datos pa PHP.\nTienen sofitu los tipos de base de datos siguientes: $1.\n\nSi compiló PHP vusté mesmu, reconfigúrelu con un cliente de base de datos activáu, por exemplu, usando <code>./configure --with-mysqli</code>.\nSi instaló PHP dende un paquete de Debian o Ubuntu, necesita instalar tamién,por exemplu, el paquete <code>php5-mysql</code>.",
+       "config-no-db": "¡Nun pudo alcontrase un controlador de base de datos afayadizu! Necesites instalar un controlador de base de datos pa PHP.\n{{PLURAL:$2|Tien sofitu el tipu de base de datos siguiente|Tienen sofitu los tipos de base de datos siguientes}}: $1.\n\nSi compilasti PHP tu mesmu, reconfigúralu con un cliente de base de datos activáu, por exemplu, usando <code>./configure --with-mysqli</code>.\nSi instalasti PHP dende un paquete de Debian o Ubuntu, necesites instalar tamién,por exemplu, el paquete <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Avisu:''' tien SQLite $1, que ye inferior a la versión mínima necesaria $2. SQLite nun tará disponible.",
        "config-no-fts3": "'''Avisu:''' SQLite ta compiláu ensin el [//sqlite.org/fts3.html módulu FTS3]; les funciones de gueta nun tarán disponibles nesti sistema.",
-       "config-register-globals": "'''Avisu: La opción de PHP <code>[http://php.net/register_globals register_globals]</code> ta activada.'''\n'''Desactívela si ye posible.'''\nMediaWiki funcionará, pero'l so sirvidor queda albentestate ente posibles vulnerabilidaes de seguridá.",
+       "config-register-globals-error": "<strong>Error: la opción de PHP <code>[http://php.net/register_globals register_globals]</code> ta activada.\nTien de desactivase pa siguir cola instalación.</strong>\nVisita [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] p'alcontrar ayuda tocante a cómo facelo.",
+       "config-diff3-bad": "Nun s'alcontró GNU diff3.",
+       "config-git": "Alcontróse'l software de control de versiones Git: <code>$1</code>.",
+       "config-git-bad": "Nun s'alcontró el software de control de versiones Git.",
        "config-site-name": "Nome de la wiki:",
        "config-site-name-help": "Esto apaecerá na barra de títulos del navegador y en dellos sitios más.",
        "config-site-name-blank": "Escriba un nome pal sitiu.",
index 7b3b5a5..f68a540 100644 (file)
@@ -8,7 +8,8 @@
                        "Fitoschido",
                        "Jmarchn",
                        "Alvaro Vidal-Abarca",
-                       "ESM"
+                       "ESM",
+                       "Xavier Dengra"
                ]
        },
        "config-desc": "L'instal·lador del MediaWiki",
        "config-cache-options": "Configuració per a la memòria cau dels objectes:",
        "config-cache-help": "L'encauament d'objectes s'utilitza per a millorar la rapidesa del MediaWiki afegint a la memòria cau les dades que s'utilitzen de forma freqüent. És recomanable que els llocs web mitjans o grans ho habilitin. També els llocs web petits en veuran els beneficis.",
        "config-cache-none": "Sense encauament (no se suprimeix cap funcionalitat, però la velocitat pot veure's afectada en els llocs wiki més grans)",
+       "config-cache-memcached": "Utilitza Memcached (requereix una instal·lació i configuració addicionals)",
        "config-memcached-servers": "Servidors de Memcache:",
        "config-memcache-badip": "Heu introduït una adreça IP no vàlida per al Memcached: $1.",
        "config-memcache-noport": "No heu especificat un port per utilitzar el servidor Memcached: $1.\nSi no coneixeu el port, per defecte és 11211.",
        "config-install-pg-schema-not-exist": "No existeix un esquema PostgreSQL.",
        "config-install-pg-schema-failed": "La creació de les taules ha fallat.\nAssegureu-vos que l'usuari «$1» pot escriure a l'esquema «$2».",
        "config-install-pg-commit": "S'estan trametent els canvis",
+       "config-pg-no-plpgsql": "Necessiteu instal·lar l'idioma PL/pgSQL a la base de dades $1",
        "config-pg-no-create-privs": "El compte que heu especificat per a la instal·lació no té suficients permisos per crear un compte.",
        "config-install-user": "S'està creant l'usuari de la base de dades",
        "config-install-user-alreadyexists": "L'usuari «$1» ja existeix",
index a783cfe..da2de84 100644 (file)
@@ -57,7 +57,7 @@
        "config-unicode-using-intl": "Pro normalizaci Unicode se používá [http://pecl.php.net/intl PECL rozšíření intl].",
        "config-unicode-pure-php-warning": "'''Upozornění''': Není dostupné [http://pecl.php.net/intl PECL rozšíření intl] pro normalizaci Unicode, bude se využívat pomalá implementace v čistém PHP.\nPokud provozujete wiki s velkou návštěvností, měli byste si přečíst něco o [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalizaci Unicode].",
        "config-unicode-update-warning": "'''Upozornění''': Nainstalovaná verze vrstvy pro normalizaci Unicode používá starší verzi knihovny [http://site.icu-project.org/ projektu ICU].\nPokud vám aspoň trochu záleží na používání Unicode, měli byste [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations ji aktualizovat].",
-       "config-no-db": "Nepodařilo se nalézt vhodný databázový ovladač! Musíte do PHP nainstalovat databázový ovladač.\nJsou podporovány následující typy databází: $1.\n\nPokud jste si PHP přeložili sami, překonfigurujte ho se zapnutým databázovým klientem, například pomocí <code>./configure --with-mysql</code>.\nPokud jste PHP nainstalovali z balíčku Debian či Ubuntu, potřebujete nainstalovat také modul php5-mysql.",
+       "config-no-db": "Nepodařilo se nalézt vhodný databázový ovladač! Musíte nainstalovat databázový ovladač pro PHP.\n{{PLURAL:$2|Je podporován následující typ databáze|Jsou podporovány následující typy databází}}: $1.\n\nPokud jste si PHP přeložili sami, překonfigurujte ho se zapnutým databázovým klientem, například pomocí <code>./configure --with-mysql</code>.\nPokud jste PHP nainstalovali z balíčku Debian či Ubuntu, potřebujete nainstalovat také modul <code>php5-mysql</code>.",
        "config-outdated-sqlite": "'''Upozornění''': Máte SQLite $1, které je starší než minimálně vyžadovaná verze $2. SQLite nebude dostupné.",
        "config-no-fts3": "'''Upozornění''': SQLite bylo přeloženo bez [//sqlite.org/fts3.html modulu FTS3], funkce pro vyhledávání zde nebudou dostupné.",
        "config-register-globals-error": "<strong>Chyba: PHP nastavení <code>[http://php.net/register_globals register_globals]</code> je zapnuto. Pro pokračování v instalaci musí být vypnuto.</strong>\nRady, jak toho dosáhnout, najdete na [https://www.mediawiki.org/wiki/Register_globals https://www.mediawiki.org/wiki/register_globals].",
index adf128e..9959f29 100644 (file)
@@ -1,9 +1,17 @@
 {
        "@metadata": {
                "authors": [
-                       "Seb35"
+                       "Seb35",
+                       "Chuvash2014"
                ]
        },
+       "config-information": "Информаци",
+       "config-your-language": "Сирĕн чĕлхӳ:",
+       "config-wiki-language": "Вики чĕлхе:",
+       "config-back": "← Кутăн",
+       "config-continue": "Малалла →",
+       "config-page-language": "Чĕлхе",
+       "config-page-name": "Ят",
        "mainpagetext": "'''«MediaWiki» вики-движока лартасси ăнăçлă вĕçленчĕ.'''",
        "mainpagedocfooter": "Ку википе ĕçлеме пулăшакан информацине [//meta.wikimedia.org/wiki/Help:Contents/ru усăç руководствинче] тупма пултаратăр.\n\n== Пулăшма пултарĕç ==\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Ĕнерлевсен списокĕ];\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki тăрăх час-часах ыйтакан ыйтусемпе хуравсем];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki çĕнĕ верси тухнине пĕлтерекен рассылка].\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]"
 }
index b0b2ebe..b45b8f2 100644 (file)
        "config-db-install-account": "Benutzerkonto für die Installation",
        "config-db-username": "Name des Datenbankbenutzers:",
        "config-db-password": "Passwort des Datenbankbenutzers:",
-       "config-db-password-empty": "Bitte ein Passwort für den neuen Datenbankbenutzer angeben: $1\nObwohl es möglich ist, Datenbankbenutzer ohne Passwort anzulegen, so ist dies nicht sicher.",
+       "config-db-password-empty": "Bitte ein Passwort für den neuen Datenbankbenutzer angeben: $1.\nObwohl es möglich ist, Datenbankbenutzer ohne Passwort anzulegen, so ist dies nicht sicher.",
        "config-db-username-empty": "Du musst einen Wert für „{{int:config-db-username}}“ eingeben",
        "config-db-install-username": "Den Benutzernamen angeben, der für die Verbindung mit der Datenbank während des Installationsvorgangs genutzt werden soll. Es handelt sich dabei nicht um den Benutzernamen für das MediaWiki-Konto, sondern um den Benutzernamen der vorgesehenen Datenbank.",
        "config-db-install-password": "Das Passwort angeben, das für die Verbindung mit der Datenbank während des Installationsvorgangs genutzt werden soll. Es handelt sich dabei nicht um das Passwort für das MediaWiki-Konto, sondern um das Passwort der vorgesehenen Datenbank.",
index 6b9f590..a79282a 100644 (file)
@@ -1,9 +1,13 @@
 {
        "@metadata": {
                "authors": [
-                       "Shirayuki"
+                       "Shirayuki",
+                       "Caliburn"
                ]
        },
+       "config-desc": "The installer for MediaWiki",
+       "config-title": "MediaWiki $1 installation",
+       "config-information": "Information",
        "config-copyright": "=== Copyright and Terms ===\n\n$1\n\nThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public Licence as published by the Free Software Foundation; either version 2 of the Licence, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but '''without any warranty'''; without even the implied warranty of '''merchantability''' or '''fitness for a particular purpose'''.\nSee the GNU General Public Licence for more details.\n\nYou should have received <doclink href=Copying>a copy of the GNU General Public Licence</doclink> along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. or [http://www.gnu.org/copyleft/gpl.html read it online].",
        "config-unicode-using-utf8": "Using Brion Vibber's utf8_normalize.so for Unicode normalisation.",
        "config-unicode-using-intl": "Using the [http://pecl.php.net/intl intl PECL extension] for Unicode normalisation.",
index ee1a2f4..35fe2d8 100644 (file)
        "config-desc": "El instalador de MediaWiki",
        "config-title": "Instalación de MediaWiki $1",
        "config-information": "Información",
-       "config-localsettings-upgrade": "Se ha encontrado un archivo <code>LocalSettings.php</code>.\nPara actualizar esta instalación, por favor ingresa el valor de <code>$wgUpgradeKey</code> en el cuadro de abajo.\nLo encontrarás en <code>LocalSettings.php</code>.",
-       "config-localsettings-cli-upgrade": "Se ha detectado un archivo <code>LocalSettings.php</code>.\nPara actualizar la instalación, vuelva a ejecutar <code>update.php</code>",
+       "config-localsettings-upgrade": "Se ha encontrado un archivo <code>LocalSettings.php</code>.\nPara actualizar esta instalación, escribe el valor de <code>$wgUpgradeKey</code> en el cuadro de abajo.\nLo encontrarás en <code>LocalSettings.php</code>.",
+       "config-localsettings-cli-upgrade": "Se ha detectado un archivo <code>LocalSettings.php</code>.\nPara actualizar la instalación, en su lugar ejecuta <code>update.php</code>",
        "config-localsettings-key": "Clave de actualización:",
        "config-localsettings-badkey": "La clave proporcionada es incorrecta.",
-       "config-upgrade-key-missing": "Se ha detectado una instalación existente de MediaWiki.\nPara actualizar la instalación, por favor, ponga la siguiente línea al final de su archivo <code>LocalSettings.php</code>:\n\n$1",
-       "config-localsettings-incomplete": "El archivo <code>LocalSettings.php</code> existente parece estar incompleto.\nLa variable $1 no está definida.\nCambie el archivo <code>LocalSettings.php</code> para que esta variable quede establecida y haga clic en \"{{int:Config-continue}}\".",
-       "config-localsettings-connection-error": "Se ha producido un error al conectar a la base de datos utilizando la configuración especificada en <code>LocalSettings.php</code> . Por favor arreglar estos ajustes e inténtelo de nuevo.\n\n$1",
+       "config-upgrade-key-missing": "Se ha detectado una instalación existente de MediaWiki.\nPara actualizar la instalación, añade la siguiente línea al final de tu  <code>LocalSettings.php</code>:\n\n$1",
+       "config-localsettings-incomplete": "El archivo <code>LocalSettings.php</code> existente parece estar incompleto.\nLa variable $1 no está definida.\nCambia <code>LocalSettings.php</code> para que esta variable quede establecida y haz clic en \"{{int:Config-continue}}\".",
+       "config-localsettings-connection-error": "Se ha producido un error al conectar a la base de datos utilizando la configuración especificada en <code>LocalSettings.php</code>. Corrige estos ajustes e inténtalo de nuevo.\n\n$1",
        "config-session-error": "Error al iniciar la sesión: $1",
        "config-session-expired": "Tus datos de sesión parecen haber expirado.\nLas sesiones están configuradas por una duración de $1.\nPuedes incrementar esto configurando <code>session.gc_maxlifetime</code> en php.ini.\nReiniciar el proceso de instalación.",
        "config-no-session": "Se han perdido los datos de sesión.\nVerifica tu php.ini y comprueba que <code>session.save_path</code> está establecido en un directorio apropiado.",
        "config-page-restart": "Reiniciar instalación",
        "config-page-readme": "Léeme",
        "config-page-releasenotes": "Notas de la versión",
-       "config-page-copying": "Copiando",
-       "config-page-upgradedoc": "Actualizando",
+       "config-page-copying": "Copia",
+       "config-page-upgradedoc": "Actualización",
        "config-page-existingwiki": "Wiki existente",
-       "config-help-restart": "¿Deseas borrar todos los datos que has ingresado hasta ahora y reiniciar el proceso de instalación desde el principio?",
+       "config-help-restart": "¿Deseas borrar todos los datos guardados que has escrito y reiniciar el proceso de instalación?",
        "config-restart": "Sí, reiniciarlo",
        "config-welcome": "=== Comprobación del entorno ===\nAhora se van a realizar comprobaciones básicas para ver si el entorno es adecuado para la instalación de MediaWiki.\nRecuerda suministrar los resultados de tales comprobaciones si necesitas ayuda para completar la instalación.",
        "config-copyright": "=== Derechos de autor y Términos de uso ===\n\n$1\n\nEste programa es software libre; puedes redistribuirlo y/o modificarlo en los términos de la Licencia Pública General de GNU, tal como aparece publicada por la Fundación para el Software Libre, tanto la versión 2 de la Licencia, como cualquier versión posterior (según prefiera).\n\nEste programa es distribuido en la esperanza de que sea útil, pero '''sin cualquier garantía'''; inclusive, sin la garantía implícita de la '''posibilidad de ser comercializado''' o de '''idoneidad para cualquier finalidad específica'''.\nConsulte la licencia *GNU General *Public *License para más detalles.\n\nEn conjunto con este programa debe haber recibido <doclink href=Copying>una copia de la Licencia Pública General de GNU</doclink>; si no la recibió, pídala por escrito a Fundación para el Software Libre, Inc., 51 Franklin Street, Fifth Floor, Boston, ME La 02110-1301, USA o [http://www.gnu.org/copyleft/gpl.html léala en internet].",
        "config-env-hhvm": "HHVM $1 está instalado.",
        "config-unicode-using-utf8": "Usando utf8_normalize.so de Brion Vibber para la normalización Unicode.",
        "config-unicode-using-intl": "Usando la [http://pecl.php.net/intl extensión intl PECL] para la normalización Unicode.",
-       "config-unicode-pure-php-warning": "'''Advertencia''': La [http://pecl.php.net/intl extensión intl] no está disponible para efectuar la normalización Unicode. Utilizando la implementación más lenta en PHP.\nSi tu web tiene mucho tráfico, te recomendamos leer acerca de la [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalización Unicode].",
-       "config-unicode-update-warning": "'''Warning''': La versión instalada del contenedor de normalización Unicode usa una versión anterior de la biblioteca del [http://site.icu-project.org/ proyecto ICU].\nDeberás [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations actualizar] si realmente deseas usar Unicode.",
-       "config-no-db": "¡No fue posible encontrar un controlador adecuado para la base de datos! Necesitas instalar un controlador de base de datos para PHP.\nLos siguientes sistemas gestores de bases de datos están soportados: $1.\n\nSi compilaste PHP tú mismo, debes reconfigurarlo habilitando un cliente de base de datos, por ejemplo, usando <code>./configure --with-mysqli</code>.\nSi instalaste PHP desde un paquete Debian o Ubuntu, entonces también necesitas instalar, por ejemplo, el paquete <code>php5-mysql</code>.",
-       "config-outdated-sqlite": "''' Advertencia ''': tiene la versión SQLite $1, que es inferior a la mínima versión requerida: $2 . SQLite no estará disponible.",
-       "config-no-fts3": "'''Advertencia''': SQLite está compilado sin el [//sqlite.org/fts3.html módulo FTS3]. Las funcionalidades de búsqueda no estarán disponibles en esta instalación.",
-       "config-register-globals-error": "<strong>Error: la opción de PHP <code>[http://php.net/register_globals register_globals]</code> está activada.\nDebe estar desactivada para continuar con la instalación.</strong>\nVea [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] para obtener ayuda sobre cómo hacerlo.",
+       "config-unicode-pure-php-warning": "<strong>Advertencia:</strong> la [http://pecl.php.net/intl extensión intl] no está disponible para efectuar la normalización Unicode. Se utilizará la implementación más lenta en PHP puro.\nSi tu web tiene mucho tráfico, te recomendamos leer acerca de la [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalización Unicode].",
+       "config-unicode-update-warning": "<strong>Warning:</strong> la versión instalada del contenedor de normalización Unicode usa una versión antigua de la biblioteca del [http://site.icu-project.org/ proyecto ICU].\nDeberás [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations actualizar] si realmente deseas usar Unicode.",
+       "config-no-db": "No se encontró un controlador adecuado para la base de datos. Necesitas instalar un controlador de base de datos para PHP.\n{{PLURAL:$2|El siguiente gestor de bases de datos está soportado|Los siguientes gestores de bases de datos están soportados}}: $1.\n\nSi compilaste PHP tú mismo, debes reconfigurarlo habilitando un cliente de base de datos, por ejemplo, usando <code>./configure --with-mysqli</code>.\nSi instalaste PHP desde un paquete Debian o Ubuntu, entonces también necesitas instalar, por ejemplo, el paquete <code>php5-mysql</code>.",
+       "config-outdated-sqlite": "<strong>Advertencia:</strong> tienes SQLite $1, que es inferior a la mínima versión requerida: $2. SQLite no estará disponible.",
+       "config-no-fts3": "<strong>Advertencia:</strong> SQLite está compilado sin el [//sqlite.org/fts3.html módulo FTS3]. Las funcionalidades de búsqueda no estarán disponibles en esta instalación.",
+       "config-register-globals-error": "<strong>Error: la opción de PHP <code>[http://php.net/register_globals register_globals]</code> está activada.\nDebe estar desactivada para continuar con la instalación.</strong>\nVéase [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] para obtener ayuda sobre cómo hacerlo.",
        "config-magic-quotes-gpc": "<strong>Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc] está activa!</strong>\nEsta opción corrompe la entrada de datos de forma impredecible.\nUsted no puede instalar o utilizar MediaWiki a menos que esta opción esté deshabilitada.",
        "config-magic-quotes-runtime": "'''Fatal: ¡[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] está activada!'''\nEsta opción causa la imprevisible corrupción de la entrada de datos.\nNo puedes instalar o utilizar MediaWiki a menos que esta opción esté inhabilitada.",
        "config-magic-quotes-sybase": "'''Fatal: ¡[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] está activada!'''\nEsta opción causa la imprevisible corrupción de la entrada de datos.\nNo puedes instalar o utilizar MediaWiki a menos que esta opción esté inhabilitada.",
        "config-mbstring": "'''Fatal: La opción [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] está activada!'''\nEsta opción causa errores y puede corromper los datos de una forma imprevisible.\nNo se puede instalar o usar MediaWiki a menos que esta opción sea desactivada.",
-       "config-safe-mode": "'''Advertencia:''' El [http://www.php.net/features.safe-mode modo seguro] de PHP está activado.\nEste modo puede causar problemas, especialmente en la carga de archivosy en compatibilidad con <code>math</code>.",
-       "config-xml-bad": "Falta el módulo XML de PHP.\nMediaWiki necesita funciones en este módulo y no funcionará con esta configuración.\nSi está ejecutando Mandrake, instale el paquete php-xml.",
+       "config-safe-mode": "<strong>Advertencia:</strong> el [http://www.php.net/features.safe-mode modo seguro] de PHP está activado.\nEste modo puede causar problemas, especialmente en la carga de archivos y en compatibilidad con <code>math</code>.",
+       "config-xml-bad": "Falta el módulo XML de PHP.\nMediaWiki necesita funciones en este módulo y no funcionará con esta configuración.\nSi estás usando Mandrake, instala el paquete php-xml.",
        "config-pcre-old": "'''Fatal:''' Se requiere PCRE $1 o posterior.\nSu PHP binario está enlazado con PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Más información].",
        "config-pcre-no-utf8": "'''Error fatal ''': Parece que el módulo PCRE de PHP fue compilado sin el soporte PCRE_UTF8.\nMediaWiki requiere compatibilidad con UTF-8 para funcionar correctamente.",
        "config-memory-raised": "el parámetro <code>memory_limit</code> de PHP es $1, aumentada a $2.",
-       "config-memory-bad": "'''Advertencia:''' El parámetro <code>memory_limit</code> de PHP es $1.\nProbablemente este valor es demasiado bajo.\n¡La instalación podrá fallar!",
+       "config-memory-bad": "<strong>Advertencia:</strong> el parámetro <code>memory_limit</code> de PHP es $1.\nProbablemente sea demasiado bajo.\n¡La instalación puede fallar!",
        "config-ctype": "'''Fatal''': Se necesita compilar PHP con compatibilidad para la [http://www.php.net/manual/en/ctype.installation.php extensión Ctype].",
        "config-iconv": "<strong>Fatal:</strong> PHP debe ser compilado con soporte para la [http://www.php.net/manual/en/iconv.installation.php extensión iconv].",
        "config-json": "'''Fatal:''' PHP fue compilado sin soporte para JSON.\nDebes instalar la extensión JSON o la extensión [http://pecl.php.net/package/jsonc PECL jsonc] antes de instalar MediaWiki.\n* La extensión PHP se incluye en Red Hat Enterprise Linux (CentOS) 5 y 6, aunque debe habilitarse en <code>/etc/php.ini</code> o <code>/etc/php.d/json.ini</code>.\n* Algunas distribuciones Linux liberadas después de mayo del 2013 omiten la extensión PHP, y en su lugar disponen de la extensión PECL en el paquete <code>php5-json</code> o <code>php-pecl-jsonc</code>.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] está instalado",
        "config-apc": "[http://www.php.net/apc APC] está instalado",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] está instalado",
-       "config-no-cache": "'''Advertencia:''' No pudo encontrarse [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache].\nEl caché de objetos no está habilitado.",
-       "config-mod-security": "''' Advertencia ''': Su servidor web tiene [http://modsecurity.org/ mod_security] habilitado. Si la configuración es incorrecta, puede causar problemas a MediaWiki u otro software que permita a los usuarios publicar contenido arbitrarios.\nConsulte la [http://modsecurity.org/documentation/ documentación de mod_security] o contacte con el soporte de su servidor (''host'') si encuentra errores aleatorios.",
+       "config-no-cache": "<strong>Advertencia:</strong> no pudo encontrarse [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache].\nEl caché de objetos no está activado.",
+       "config-mod-security": "<strong>Advertencia:</strong> tu servidor web tiene activado [http://modsecurity.org/ mod_security]/mod_security2. Muchas de sus configuraciones comunes pueden causar problemas a MediaWiki u otro software que permita a los usuarios publicar contenido arbitrario. De ser posible, deberías desactivarlo. Si no, consulta la [http://modsecurity.org/documentation/ documentación de mod_security] o contacta con el administrador de tu servidor si encuentras errores aleatorios.",
        "config-diff3-bad": "GNU diff3 no se encuentra.",
        "config-git": "Se encontró el software de control de versiones Git: <code>$1</code>.",
        "config-git-bad": "No se encontró el software de control de versiones Git.",
        "config-imagemagick": "ImageMagick encontrado: <code>$1</code>.\nLa miniaturización de imágenes se habilitará si habilitas las cargas.",
        "config-gd": "Se ha encontrado una biblioteca de gráficos GD integrada.\nLa miniaturización de imágenes se habilitará si habilitas las subidas.",
-       "config-no-scaling": "No se ha encontrado ninguma biblioteca GD o ImageMagik.\nSe inhabilitará la miniaturización de imágenes.",
+       "config-no-scaling": "No se ha encontrado la biblioteca GD o ImageMagik.\nSe desactivará la miniaturización de imágenes.",
        "config-no-uri": "<strong>Error:</strong> no se pudo determinar el URI actual.\nSe interrumpió la instalación.",
        "config-no-cli-uri": "<strong>Aviso:</strong> No se especificó <code>--scriptpath</code>; se usa el valor predeterminado: <code>$1</code>.",
        "config-using-server": "Utilizando el nombre de servidor \"<nowiki>$1</nowiki>\".",
        "config-using-uri": "Utilizando la URL del servidor \"<nowiki>$1$2</nowiki>\".",
-       "config-uploads-not-safe": "'''Atención:''' Su directorio por defecto para las cargas, <code>$1</code>, es vulnerable a la ejecución de scripts arbitrarios.\nAunque MediaWiki comprueba todos los archivos cargados por si hubiese amenazas de seguridad, es altamente recomendable [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security cerrar esta vulnerabilidad de seguridad] antes de activar las cargas.",
-       "config-no-cli-uploads-check": "'''Atención:''' Su directorio predeterminado para cargas (<code>$1</code>) no está comprobado para la vulnerabilidad\n de ejecución arbitraria de comandos script durante la instalación de CLI.",
+       "config-uploads-not-safe": "<strong>Advertencia:</strong> tu directorio predeterminado para las cargas, <code>$1</code>, es vulnerable a la ejecución de scripts arbitrarios.\nAunque MediaWiki comprueba todos los archivos cargados por si hubiese amenazas de seguridad, es altamente recomendable [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Security#Upload_security cerrar esta vulnerabilidad de seguridad] antes de activar las cargas.",
+       "config-no-cli-uploads-check": "<strong>Advertencia:</strong> tu directorio predeterminado para cargas (<code>$1</code>) no está comprobado contra la vulnerabilidad\n de ejecución arbitraria de \"scripts\" durante la instalación por línea de comandos.",
        "config-brokenlibxml": "El sistema tiene una combinación de versiones de PHP y de libxml2 que es poco confiable y puede provocar corrupción oculta en los datos de MediaWiki y otras aplicaciones web.\nActualizar a PHP 5.2.9 o posterior y a libxml2 2.7.3 o posterior ([//bugs.php.net/bug.php?id=45996 bug reportado con PHP]).\nInstalación abortada.",
        "config-suhosin-max-value-length": "Suhosin está instalado y limita el parámetro <code>length</code> GET a $1 bytes.\nEl componente ResourceLoader (gestor de recursos) de MediaWiki trabajará en este límite, pero eso perjudicará el rendimiento.\nSi es posible, deberías establecer <code>suhosin.get.max_value_length</code> en el valor 1024 o superior en <code>php.ini</code> y establecer <code>$wgResourceLoaderMaxQueryLength</code> en el mismo valor en <code>php.ini</code>.",
        "config-db-type": "Tipo de base de datos:",
        "config-db-host": "Servidor de la base de datos:",
-       "config-db-host-help": "Si su servidor de base de datos está en otro servidor, escriba el nombre del host o su dirección IP aquí.\nSi está utilizando alojamiento web compartido, su proveedor de alojamiento debería darle el nombre correcto del servidor de alojamiento (host) en su documentación.\nSi va a instalarlo en un servidor Windows y utiliza MySQL, el uso de \"localhost\" como nombre del servidor puede no funcionar. Si no es así, intente poner \"127.0.0.1\" como dirección IP local.\nSi utiliza PostgreSQL, deje este campo en blanco para conectarse a través de un socket de Unix.",
+       "config-db-host-help": "Si tu servidor de base de datos está en otro servidor, escribe el nombre del equipo o su dirección IP aquí.\n\nSi estás utilizando alojamiento web compartido, tu proveedor debería darte el nombre correcto del servidor en su documentación.\n\nSi vas a instalar en un servidor Windows y a utilizar MySQL, el uso de \"localhost\" como nombre del servidor puede no funcionar. Si es así, intenta poner \"127.0.0.1\" como dirección IP local.\n\nSi utilizas PostgreSQL, deja este campo vacío para conectarse a través de un socket de Unix.",
        "config-db-host-oracle": "TNS de la base de datos:",
        "config-db-host-oracle-help": "Introduzca un [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm nombre de conexión local] válido; un archivo tnsnames.ora debe ser visible para esta instalación.<br />Si está utilizando bibliotecas de cliente 10g o más recientes también puede utilizar el método de asignación de nombres [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
        "config-db-wiki-settings": "Identifica este wiki",
        "config-db-name": "Nombre de la base de datos:",
-       "config-db-name-help": "Elija un nombre que identifique su wiki.\nNo debe contener espacios.\n\nSi está utilizando alojamiento web compartido, su proveedor de alojamiento le dará un nombre específico de base de datos para que lo utilice, o bien le permitirá crear bases de datos a través de un panel de control.",
+       "config-db-name-help": "Elige un nombre que identifique tu wiki.\nNo debe contener espacios.\n\nSi estás utilizando alojamiento web compartido, tu proveedor te dará un nombre específico de base de datos para que lo utilices, o bien te permitirá crear bases de datos a través de un panel de control.",
        "config-db-name-oracle": "Esquema de la base de datos:",
        "config-db-account-oracle-warn": "Hay tres escenarios compatibles para la instalación de Oracle como base de datos back-end:\n\nSi desea crear una cuenta de base de datos como parte del proceso de instalación, por favor suministre una cuenta con función SYSDBA como cuenta de base de datos para la instalación y especifique las credenciales deseadas de la cuenta de acceso al web, de lo contrario puede crear manualmente la cuenta de acceso al web y suministrar sólo esa cuenta (si tiene los permisos necesarios para crear los objetos de esquema) o suministrar dos cuentas diferentes, una con privilegios de creación y otra con acceso restringido a la web\n\nLa secuencia de comandos (script) para crear una cuenta con los privilegios necesarios puede encontrarse en el directorio \"maintenance/oracle/\" de esta instalación. Tenga en cuenta que utilizando una cuenta restringida desactivará todas las capacidades de mantenimiento con la cuenta predeterminada.",
        "config-db-install-account": "Cuenta de usuario para instalación",
        "config-db-username": "Nombre de usuario de la base de datos:",
        "config-db-password": "Contraseña de la base de datos:",
-       "config-db-password-empty": "Introduzca una contraseña para el nuevo usuario de base de datos:  $1.\nAunque es posible crear usuarios sin contraseña, esto no es seguro.",
-       "config-db-username-empty": "Debe introducir un valor para \"{{int:config-db-username}}\"",
-       "config-db-install-username": "Introduzca el nombre de usuario que se utilizará para conectarse a la base de datos durante el proceso de instalación.\nEste no es el nombre de usuario de la cuenta de MediaWiki; Este es el nombre de usuario para la base de datos.",
-       "config-db-install-password": "Introduzca la contraseña que se utilizará para conectarse a la base de datos durante el proceso de instalación.\nEsta no es la contraseña para la cuenta de MediaWiki; esta es la contraseña para la base de datos.",
-       "config-db-install-help": "Ingresar el nombre de usuario y la contraseña que será usada para conectar a la base de datos durante el proceso de instalación.",
+       "config-db-password-empty": "Escribe una contraseña para el nuevo usuario de base de datos: $1.\nAunque es posible crear usuarios sin contraseña, esto no es seguro.",
+       "config-db-username-empty": "Debes introducir un valor para \"{{int:config-db-username}}\"",
+       "config-db-install-username": "Escribe el nombre de usuario que se utilizará para conectarse a la base de datos durante el proceso de instalación.\nEste no es el nombre de usuario de la cuenta de MediaWiki, sino el nombre de usuario para la base de datos.",
+       "config-db-install-password": "Escribe la contraseña que se utilizará para conectarse a la base de datos durante el proceso de instalación.\nEsta no es la contraseña para la cuenta de MediaWiki, sino la contraseña para la base de datos.",
+       "config-db-install-help": "Escribe el nombre de usuario y la contraseña que se utilizarán para conectarse a la base de datos durante el proceso de instalación.",
        "config-db-account-lock": "Usar el mismo nombre de usuario y contraseña durante operación normal",
        "config-db-wiki-account": "Cuenta de usuario para operación normal",
-       "config-db-wiki-help": "Introduce el nombre de usuario y la contraseña que serán usados para acceder a la base de datos durante la operación normal del wiki.\nSi esta cuenta no existe y la cuenta de instalación tiene suficientes privilegios, se creará esta cuenta de usuario con los privilegios mínimos necesarios para la operación normal del wiki.",
+       "config-db-wiki-help": "Escribe el nombre de usuario y la contraseña que se utilizarán para acceder a la base de datos durante la operación normal del wiki.\nSi esta cuenta no existe y la cuenta de instalación tiene suficientes privilegios, se creará esta cuenta de usuario con los privilegios mínimos necesarios para la operación normal del wiki.",
        "config-db-prefix": "Prefijo de tablas de la base de datos:",
-       "config-db-prefix-help": "Si necesita compartir una base de datos entre múltiples wikis, o entre MediaWiki y otra aplicación web, puede optar por agregar un prefijo a todos los nombres de tabla para evitar conflictos.\nNo utilice espacios.\n\nNormalmente se deja este campo vacío.",
+       "config-db-prefix-help": "Si necesitas compartir una base de datos entre múltiples wikis, o entre MediaWiki y otra aplicación web, puedes optar por agregar un prefijo a todos los nombres de tabla para evitar conflictos.\nNo utilices espacios.\n\nNormalmente se deja este campo vacío.",
        "config-db-charset": "Conjunto de caracteres de la base de datos",
        "config-charset-mysql5-binary": "MySQL 4.1/5.0 binario",
        "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
        "config-mysql-old": "Se necesita MySQL $1 o posterior. Tienes $2.",
        "config-db-port": "Puerto de la base de datos:",
        "config-db-schema": "Esquema para MediaWiki",
-       "config-db-schema-help": "Estos esquemas usualmente estarán bien.\nAltéralos sólo si tienes la seguridad de que necesitas hacerlo.",
-       "config-pg-test-error": "No se puede conectar a la base de datos '''$1''': $2",
+       "config-db-schema-help": "Este esquema usualmente estará bien.\nCámbialos solo si lo necesitas.",
+       "config-pg-test-error": "No se puede conectar a la base de datos <strong>$1</strong>: $2",
        "config-sqlite-dir": "Directorio de datos SQLite:",
-       "config-sqlite-dir-help": "SQLite almacena todos los datos en un único archivo.\n\nEl directorio que proporcione debe ser escribible por el servidor Web durante la instalación.\n\n'''No''' debería ser accesible a través de Internet, por eso no vamos a ponerlo en el sitio donde están los archivos PHP.\n\nEl instalador escribirá un archivo <code>.htaccess</code> junto con él, pero si falla alguien podría tener acceso a la base de datos en bloque.\nEso incluye los datos de usuario en bloque (direcciones de correo electrónico, las contraseñas con hash) así como revisiones eliminadas y otros datos restringidos del wiki.\n\nConsidere la posibilidad de poner la base de datos en algún otro sitio, por ejemplo en <code>/var/lib/mediawiki/yourwiki</code> .",
-       "config-oracle-def-ts": "Espacio de tablas por defecto:",
+       "config-sqlite-dir-help": "SQLite almacena todos los datos en un único archivo.\n\nEl directorio que proporciones debe poder escribirse por el servidor web durante la instalación.\n\n'''No''' debería ser accesible a través de Internet. Por eso no vamos a ponerlo en el sitio donde están los archivos PHP.\n\nEl instalador escribirá un archivo <code>.htaccess</code> junto con él, pero si falla alguien podría tener acceso a la base de datos en bloque.\nEso incluye los datos de usuario en bloque (direcciones de correo electrónico, las contraseñas con hash) así como revisiones eliminadas y otros datos restringidos del wiki.\n\nConsidera poner la base de datos en algún otro sitio, por ejemplo en <code>/var/lib/mediawiki/tuwiki</code> .",
+       "config-oracle-def-ts": "Espacio de tablas predeterminado:",
        "config-oracle-temp-ts": "Espacio de tablas temporal:",
        "config-type-mysql": "MySQL (o compatible)",
        "config-type-postgres": "PostgreSQL",
        "config-type-sqlite": "SQLite",
        "config-type-oracle": "Oracle",
        "config-type-mssql": "Microsoft SQL Server",
-       "config-support-info": "MediaWiki es compatible con los siguientes sistemas de bases de datos:\n\n$1\n\nSi no encuentras en el listado el sistema de base de datos que estás intentando utilizar, sigue las instrucciones vinculadas arriba para habilitar la compatibilidad.",
+       "config-support-info": "MediaWiki es compatible con los siguientes sistemas de bases de datos:\n\n$1\n\nSi no encuentras en el listado el sistema de base de datos que estás intentando utilizar, sigue las instrucciones enlazadas arriba para activar la compatibilidad.",
        "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] es la base de datos mayoritaria para MediaWiki y la que goza de mayor compatibilidad. MediaWiki también funciona con [{{int:version-db-mariadb-url}} MariaDB] y [{{int:version-db-percona-url}} Percona Server], que son compatibles con MySQL. ([http://www.php.net/manual/es/mysql.installation.php Cómo compilar PHP con compatibilidad MySQL])",
        "config-dbsupport-postgres": "[{{int:version-db-postgres-url}} PostgreSQL] es un sistema de base de datos popular de código abierto, alternativa a MySQL. Pueden haber algunos fallos menores destacables, y no es recomendable para su uso en un entorno de producción. ([http://www.php.net/manual/es/pgsql.installation.php Cómo compilar PHP con compatibilidad PostgreSQL]).",
        "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] es un sistema de base de datos ligero con gran compatibilidad con MediaWiki. ([http://www.php.net/manual/es/pdo.installation.php Cómo compilar PHP con compatibilidad SQLite], usando PDO)",
        "config-header-oracle": "Configuración de Oracle",
        "config-header-mssql": "Configuración de Microsoft SQL Server",
        "config-invalid-db-type": "El tipo de base de datos no es válido",
-       "config-missing-db-name": "Debe introducir un valor para \"{{int:config-db-nombre}}\".",
-       "config-missing-db-host": "Debe introducir un valor para \"{{int:config-db-host}}\".",
-       "config-missing-db-server-oracle": "Debe introducir un valor para \"{{int:config-db-host-oracle}}\".",
+       "config-missing-db-name": "Debes escribir un valor para \"{{int:config-db-nombre}}\".",
+       "config-missing-db-host": "Debes escribir un valor para \"{{int:config-db-host}}\".",
+       "config-missing-db-server-oracle": "Debes escribir un valor para \"{{int:config-db-host-oracle}}\".",
        "config-invalid-db-server-oracle": "El TNS de la base de datos «$1» es inválido.\nDebes usar un \"TNS Name\" o una cadena \"Easy Connect\" ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Nomenclatura de Oracle]).",
-       "config-invalid-db-name": "El nombre de la base de datos \"$1\"  es inválido.\nUsa sólo caracteres ASCII: letras (a-z, A-Z), números (0-9), guiones bajos (_)y guiones (-).",
-       "config-invalid-db-prefix": "El prefijo de la base de datos \"$1\"  es inválido.\nUse sólo carateres ASCII: letras (a-z, A-Z), números (0-9), guiones bajos (_) y guiones (-).",
-       "config-connection-error": "$1.\n\nVerifique el servidor, el nombre de usuario y la contraseña, e intente de nuevo.",
+       "config-invalid-db-name": "El nombre de la base de datos \"$1\" no es válido.\nUsa sólo caracteres ASCII: letras (a-z, A-Z), números (0-9), guiones bajos (_) y guiones (-).",
+       "config-invalid-db-prefix": "El prefijo de la base de datos \"$1\" no es válido.\nUsa sólo caracteres ASCII: letras (a-z, A-Z), números (0-9), guiones bajos (_) y guiones (-).",
+       "config-connection-error": "$1.\n\nVerifica el servidor, el nombre de usuario y la contraseña, e intenta de nuevo.",
        "config-invalid-schema": "El esquema de la base de datos \"$1\"  es inválido.\nUse sólo carateres ASCII: letras (a-z, A-Z), guarismos (0-9) y guiones bajos (_).",
        "config-db-sys-create-oracle": "El instalador sólo admite el empleo de cuentas SYSDBA como método para crear una cuenta nueva.",
        "config-db-sys-user-exists-oracle": "La cuenta de usuario \"$1\" ya existe. ¡SYSDBA sólo puede utilizarse para crear una nueva cuenta!",
-       "config-postgres-old": "Se necesita PostgreSQL $1 o una versión más reciente; tienes la versión $2.",
-       "config-mssql-old": "Microsoft SQL Server  $1  o posterior es necesario. Tienes  $2 .",
-       "config-sqlite-name-help": "Elige el nombre que identificará tu wiki.\nNo uses espacios o guiones.\nEste nombre será usado como nombre del archivo de datos de SQLite.",
+       "config-postgres-old": "Se requiere PostgreSQL $1 o posterior. Tienes la versión $2.",
+       "config-mssql-old": "Se requiere Microsoft SQL Server $1 o posterior. Tienes la versión $2.",
+       "config-sqlite-name-help": "Elige el nombre que identificará a tu wiki.\nNo uses espacios o guiones.\nEste nombre se usará como nombre del archivo de datos de SQLite.",
        "config-sqlite-parent-unwritable-group": "No se puede crear el directorio de datos <code><nowiki>$1</nowiki></code> , porque el directorio padre <code><nowiki>$2</nowiki></code> no es accesible en escritura por el servidor Web.\n\nEl instalador ha determinado el usuario cuyo servidor Web se está ejecutando.\nConceda permisos de escritura en el directorio <code><nowiki>$3</nowiki></code> para continuar.\nEn un sistema Unix/Linux haga:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
        "config-sqlite-parent-unwritable-nogroup": "No se puede crear el directorio de datos <code><nowiki>$1</nowiki></code> , porque el directorio padre <code><nowiki>$2</nowiki></code> no es accesible en escritura por el servidor Web.\n\nEl programa de instalación no pudo determinar el usuario que se ejecuta en el servidor Web\nConceda permisos de escritura en el directorio <code><nowiki>$3</nowiki></code> para continuar.\nEn un sistema Unix/Linux haga:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
        "config-sqlite-mkdir-error": "Error al crear el directorio de datos \"$1\".\nComprueba la ubicación e inténtalo de nuevo.",
-       "config-sqlite-dir-unwritable": "No se puede escribir en el directorio \"$1\".\nModifica los permisos para que el servidor web pueda escribir en él y vuelve a intentarlo.",
-       "config-sqlite-connection-error": "$1.\n\nVerifique el directório de datos y el nombre de la base de datos mostrada a continuación e inténtalo nuevamente.",
+       "config-sqlite-dir-unwritable": "No se puede escribir en el directorio \"$1\".\nModifica sus permisos para que el servidor web pueda escribir en él, y vuelve a intentarlo.",
+       "config-sqlite-connection-error": "$1.\n\nVerifica el directorio de datos y el nombre de la base de datos mostrada a continuación, e inténtalo nuevamente.",
        "config-sqlite-readonly": "El archivo <code>$1</code> no se puede escribir.",
        "config-sqlite-cant-create-db": "No fue posible crear el archivo de la base de datos <code>$1</code>.",
        "config-sqlite-fts3-downgrade": "El PHP no tiene compatibilidad FTS3. actualizando tablas a una versión anterior",
-       "config-can-upgrade": "Esta base de datos contiene tablas de MediaWiki.\nPara actualizarlas a MediaWiki $1, haz clic en '''Continuar'''.",
-       "config-upgrade-done": "Actualización completa.\n\nUsted puede ahora [ $1  empezar a usar su wiki].\n\nSi desea regenerar su archivo <code>LocalSettings.php</code> de archivo, haga clic en el botón de abajo.\nEsto '''no se recomienda''' a menos que esté teniendo problemas con su wiki.",
-       "config-upgrade-done-no-regenerate": "Actualización completa.\n\nUsted puede ahora [$1  empezar a usar su wiki].",
+       "config-can-upgrade": "Esta base de datos contiene tablas de MediaWiki.\nPara actualizarlas a MediaWiki $1, haz clic en <strong>Continuar</strong>.",
+       "config-upgrade-done": "Actualización completa.\n\nYa puedes [$1 empezar a usar tu wiki].\n\nSi quieres regenerar tu archivo <code>LocalSettings.php</code>, haz clic en el botón de abajo.\nEsto <strong>no se recomienda</strong> a menos que estés teniendo problemas con tu wiki.",
+       "config-upgrade-done-no-regenerate": "Actualización completa.\n\nYa puedes [$1 empezar a usar tu wiki].",
        "config-regenerate": "Regenerar LocalSettings.php →",
        "config-show-table-status": "¡Falló la consulta <code>SHOW TABLE STATUS</code>!",
-       "config-unknown-collation": "'''Advertencia:''' La base de datos está utilizando una intercalación no reconocida.",
+       "config-unknown-collation": "<strong>Advertencia:</strong> la base de datos está utilizando una intercalación no reconocida.",
        "config-db-web-account": "Cuenta de la base de datos para acceso web",
-       "config-db-web-help": "Elige el usuario y contraseña que el servidor Web usará para conectarse al servidor de la base de datos durante el fincionamiento normal del wiki.",
+       "config-db-web-help": "Elige el usuario y contraseña que el servidor web usará para conectarse al servidor de la base de datos durante el funcionamiento normal del wiki.",
        "config-db-web-account-same": "Utilizar la misma cuenta que en la instalación",
        "config-db-web-create": "Crear la cuenta si no existe",
-       "config-db-web-no-create-privs": "La cuenta que has especificado para la instalación no tiene privilegios suficientes para crear una cuenta.\nLa cuenta que especifiques aquí debe existir.",
+       "config-db-web-no-create-privs": "La cuenta que has especificado para la instalación no tiene privilegios suficientes para crear una cuenta.\nLa cuenta que especifiques aquí ya debe existir.",
        "config-mysql-engine": "Motor de almacenamiento:",
        "config-mysql-innodb": "InnoDB",
        "config-mysql-myisam": "MyISAM",
-       "config-mysql-myisam-dep": "'''Atención''': Ha seleccionado MyISAM como motor de almacenamiento de MySQL, el cual no está recomendado para su uso con MediaWiki, porque:\n * apenas soporta accesos simultáneos debido al bloqueo de tablas\n * es más propenso a la corrupción que otros motores\n * el código MediaWiki no siempre controla MyISAM como debiera\n\nSi su instalación de MySQL soporta InnoDB, es muy recomendable que lo elija en su lugar.\nSi la instalación de MySQL no admite InnoDB, quizás es el momento de una actualización.",
-       "config-mysql-only-myisam-dep": "'''Advertencia:''' Solo se ha encontrado el motor de almacenamiento MyISAM para MySQL en esta máquina, y no se recomienda su uso con MediaWiki, porque:\n* apenas soporta concurrencia debido a los bloqueos de tablas\n* es más propenso a sufrir corrupción de datos que otros motores\n* el código MediaWiki no siempre maneja MyISAM como debería\n\nTu instalación de MySQL no soporta InnoDB, quizá vaya siendo hora de actualizarla.",
-       "config-mysql-engine-help": "'''InnoDB''' es casi siempre la mejor opción, dado que soporta bien los accesos simultáneos.\n\n'''MyISAM''' es más rápido en instalaciones de usuario único o de sólo lectura.\nLas bases de datos MyISAM tienden a corromperse más a menudo que las bases de datos InnoDB.",
+       "config-mysql-myisam-dep": "<strong>Advertencia:</strong> has seleccionado MyISAM como motor de almacenamiento de MySQL, el cual no está recomendado para usarse con MediaWiki, porque:\n* apenas soporta concurrencia debido al bloqueo de tablas\n* es más propenso a la corrupción que otros motores\n* el código MediaWiki no siempre controla MyISAM como debiera\n\nSi tu instalación de MySQL soporta InnoDB, es muy recomendable que lo elijas en su lugar.\nSi tu instalación de MySQL no soporta InnoDB, quizás es el momento de una actualización.",
+       "config-mysql-only-myisam-dep": "<strong>Advertencia:</strong> solo se ha encontrado el motor de almacenamiento MyISAM para MySQL en esta máquina, y no se recomienda su uso con MediaWiki, porque:\n* apenas soporta concurrencia debido al bloqueo de tablas\n* es más propenso a la corrupción que otros motores\n* el código MediaWiki no siempre controla MyISAM como debiera\n\nTu instalación de MySQL no soporta InnoDB, quizás es el momento de una actualización.",
+       "config-mysql-engine-help": "<strong>InnoDB</strong> es casi siempre la mejor opción, dado que soporta bien los accesos simultáneos.\n\n<strong>MyISAM</strong> puede ser más rápido en instalaciones con usuario único o de sólo lectura.\nLas bases de datos MyISAM tienden a corromperse más a menudo que las bases de datos InnoDB.",
        "config-mysql-charset": "Conjunto de caracteres de la base de datos:",
        "config-mysql-binary": "Binario",
        "config-mysql-utf8": "UTF-8",
        "config-mssql-windowsauth": "Autentificación de Windows",
        "config-site-name": "Nombre del wiki:",
        "config-site-name-help": "Esto aparecerá en la barra de título del navegador y en varios otros lugares.",
-       "config-site-name-blank": "Ingresar un nombre de sitio.",
-       "config-project-namespace": "Espacio de nombre de proyecto:",
+       "config-site-name-blank": "Escribe un nombre de sitio.",
+       "config-project-namespace": "Espacio de nombres del proyecto:",
        "config-ns-generic": "Proyecto",
        "config-ns-site-name": "Igual al nombre del wiki: $1",
        "config-ns-other": "Otro (especificar)",
        "config-ns-other-default": "MiWiki",
        "config-project-namespace-help": "Siguiendo el ejemplo de  Wikipedia, muchos wikis mantienen sus páginas de políticas separadas de sus páginas de contenido, en un \"'''espacio de nombres del proyecto'''\".\n\nTodos los títulos de página en este espacio de nombres comienzan con un determinado prefijo, que usted puede especificar aquí.\nTradicionalmente, este prefijo se deriva del nombre del wiki, pero no puede contener caracteres de puntuación como \"#\" o \":\".",
-       "config-ns-invalid": "El espacio de nombre especificado \"<nowiki>$1</nowiki>\" no es válido.\nEspecifica un espacio de nombre de proyecto diferente.",
-       "config-ns-conflict": "El espacio de nombres especificado \"<nowiki>$1</nowiki>\" entra en conflicto con un espacio de nombres predeterminado de MediaWiki.\nEspecifique un espacio de nombres de proyecto diferente.",
+       "config-ns-invalid": "El espacio de nombres especificado \"<nowiki>$1</nowiki>\" no es válido.\nEspecifica uno diferente.",
+       "config-ns-conflict": "El espacio de nombres especificado \"<nowiki>$1</nowiki>\" entra en conflicto con uno predeterminado de MediaWiki.\nEspecifica uno diferente.",
        "config-admin-box": "Cuenta de administrador",
        "config-admin-name": "Tu nombre de usuario:",
        "config-admin-password": "Contraseña:",
        "config-admin-password-confirm": "Repite la contraseña:",
        "config-admin-help": "Escribe aquí el nombre de usuario que desees, como por ejemplo \"Pedro Bloggs\".\nEste es el nombre que usarás para entrar al wiki.",
-       "config-admin-name-blank": "Introduce un nombre de usuario de administrador.",
-       "config-admin-name-invalid": "El nombre de usuario especificado \"<nowiki>$1</nowiki>\" no es válido.\nEspecifique un nombre de usuario diferente.",
-       "config-admin-password-blank": "Introduzca una contraseña para la cuenta de administrador.",
+       "config-admin-name-blank": "Escribe un nombre de usuario de administrador.",
+       "config-admin-name-invalid": "El nombre de usuario especificado \"<nowiki>$1</nowiki>\" no es válido.\nEspecifica un nombre de usuario diferente.",
+       "config-admin-password-blank": "Escribe una contraseña para la cuenta de administrador.",
        "config-admin-password-mismatch": "Las dos contraseñas que ingresaste no coinciden.",
        "config-admin-email": "Dirección de correo electrónico:",
-       "config-admin-email-help": "Introduce aquí un correo electrónico que te permita recibir mensajes de otros usuarios del wiki, vuelve a configurar tu contraseña y recibe notificaciones de cambios realizados a tus páginas vigiladas. Puedes dejar este campo vacío.",
+       "config-admin-email-help": "Escribe aquí una dirección de correo electrónico para que te permita recibir mensajes de otros usuarios del wiki, restablecer tu contraseña y recibir notificaciones de cambios a tus páginas vigiladas. Puedes dejar este campo vacío.",
        "config-admin-error-user": "Error interno al crear un administrador con el nombre \"<nowiki>$1</nowiki>\".",
-       "config-admin-error-password": "Error interno al establecer una contraseña para el administrador \" <nowiki>$1</nowiki> \": <pre>$2</pre>",
-       "config-admin-error-bademail": "Ha introducido una dirección de correo electrónico inválida.",
-       "config-subscribe": "Suscribirse para recibir [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce avisos de nuevas versiones].",
+       "config-admin-error-password": "Error interno al establecer una contraseña para el administrador \"<nowiki>$1</nowiki>\": <pre>$2</pre>",
+       "config-admin-error-bademail": "Has escrito una dirección de correo electrónico no válida.",
+       "config-subscribe": "Suscribirse a la [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce lista de correo de anuncios de versiones].",
        "config-subscribe-help": "Esta es una lista de divulgación de bajo volumen para anuncios de lanzamiento de versiones nuevas, incluyendo anuncios de seguridad importantes.\nTe recomendamos suscribirte y actualizar tu instalación MediaWiki cada vez que se lance una nueva versión.",
        "config-subscribe-noemail": "Ha intentado suscribirse a la lista de correo de anuncios de nuevos lanzamientos sin proporcionar una dirección de correo electrónico.\nProporcione una dirección de correo electrónico si desea suscribirse a la lista de correo.",
-       "config-almost-done": "¡Ya casi has terminado!\nAhora puedes saltarte el resto de pasos e instalar el wiki con valores predeterminados.",
+       "config-almost-done": "¡Ya casi has terminado!\nAhora puedes saltarte el resto de los pasos e instalar el wiki ya.",
        "config-optional-continue": "Hazme más preguntas.",
        "config-optional-skip": "Ya estoy aburrido, sólo instala el wiki.",
        "config-profile": "Perfil de derechos de usuario:",
index d29a3d4..a3732a8 100644 (file)
@@ -4,10 +4,12 @@
                        "Avjoska",
                        "Pikne",
                        "Boxmein",
-                       "Cumbril"
+                       "Cumbril",
+                       "Roland"
                ]
        },
        "config-information": "Teave",
+       "config-upgrade-key-missing": "Tuvastati olemasolev MediaWiki install.\nSelle installi täiendamiseks lisa palun järgmine rida faili <code>LocalSettings.php</code> lõppu:\n\n$1",
        "config-session-error": "Tõrge seansi alustamisel: $1",
        "config-your-language": "Oma keel:",
        "config-wiki-language": "Viki keel:",
        "config-page-complete": "Valmis!",
        "config-page-restart": "Alusta installimist uuesti",
        "config-page-readme": "Loe mind",
+       "config-page-releasenotes": "Redaktsioonimärkmed",
        "config-page-copying": "Kopeerimine",
        "config-page-upgradedoc": "Uuendamine",
        "config-page-existingwiki": "Olemasolev viki",
        "config-restart": "Jah, tee taaskäivitus",
+       "config-env-php": "PHP $1 on paigaldatud.",
        "config-env-hhvm": "HHVM $1 on installitud.",
+       "config-diff3-bad": "GNU diff3 ei leitud.",
+       "config-db-type": "Andmebaasi tüüp:",
        "config-db-name": "Andmebaasi nimi:",
+       "config-db-name-oracle": "Andmebaasi skeem:",
        "config-db-username": "Andmebaasi kasutajanimi:",
        "config-db-password": "Andmebaasi parool:",
        "config-db-port": "Andmebaasi port:",
index b3779e4..ea549a1 100644 (file)
@@ -2,10 +2,17 @@
        "@metadata": {
                "authors": [
                        "Smtchahal",
-                       "Vivek Rai"
+                       "Vivek Rai",
+                       "Phoenix303",
+                       "संजीव कुमार"
                ]
        },
+       "config-desc": "साँचा लिए इंस्टॉलर",
+       "config-title": "मीडियाविकी  $1 इंस्टॉलेशन",
        "config-information": "जानकारी",
+       "config-localsettings-upgrade": "<code>LocalSettings.php</code> फ़ाइल पाया गया है ।\nइस स्थापना को अपग्रेड करने के लिए, नीचे दिए गए बॉक्स में <code>$wgUpgradeKey</code>  का मान दर्ज करें।\nआपको <code>LocalSettings.php</code> में मिल जाएगा।",
+       "config-localsettings-cli-upgrade": "<code>LocalSettings.php</code> फ़ाइल पाया गया है ।\nइस स्थापना को अपग्रेड करने के लिए, बदले में कृपया करके ये चलाए <code>update.php</code>",
+       "config-localsettings-key": "नवीनीकरण कुंजी",
        "config-localsettings-badkey": "आपकी दी गई कुंजी ग़लत है।",
        "config-your-language": "आपकी भाषा:",
        "config-wiki-language": "विकी भाषा:",
        "config-page-language": "भाषा",
        "config-page-welcome": "मीडियाविकी पर आपका स्वागत है!",
        "config-page-dbconnect": "डेटाबेस से जुड़ें",
+       "config-page-upgrade": "मौजूदा स्थापना का नवीनीकरण",
+       "config-page-dbsettings": "डेटाबेस वरियतायें",
        "config-page-name": "नाम",
        "config-page-options": "विकल्प",
        "config-page-install": "स्थापित करें",
        "config-page-complete": "पूर्ण!",
        "config-page-restart": "स्थापना को पुनरारंभ करें",
        "config-page-readme": "मुझे पढ़ें",
+       "config-page-releasenotes": "रिलीज नोट्स",
+       "config-page-copying": "अनुकरण",
+       "config-page-upgradedoc": "उन्नयन",
        "config-page-existingwiki": "मौजूदा विकि",
        "config-restart": "हाँ, इसे पुनः आरंभ करें",
        "config-env-php": "PHP $1 स्थापित किया गया है।",
-       "config-env-php-toolow": "PHP $1 स्थापित किया गया है।\nतथापि, मीडियाविकि PHP $2 या उच्चतर की आवश्यकता है।",
        "config-mssql-auth": "प्रमाणन प्रकार:",
        "config-mssql-sqlauth": "SQL सर्वर प्रमाणन",
        "config-site-name": "विकि का नाम:",
index 47dea14..e85e735 100644 (file)
@@ -49,7 +49,7 @@
        "config-help-restart": "Apakah Anda ingin menghapus semua data tersimpan yang telah Anda masukkan dan mengulang proses instalasi?",
        "config-restart": "Ya, nyalakan ulang",
        "config-welcome": "=== Pengecekan lingkungan ===\nPengecekan dasar kini akan dilakukan untuk melihat apakah lingkungan ini memadai untuk instalasi MediaWiki.\nIngatlah untuk menyertakan informasi ini jika Anda mencari bantuan tentang cara menyelesaikan instalasi.",
-       "config-copyright": "=== Hak cipta dan persyaratan ===\n\n$1\n\nProgram ini adalah perangkat lunak bebas; Anda dapat mendistribusikan dan/atau memodifikasi di bawah persyaratan GNU General Public License seperti yang diterbitkan oleh Free Software Foundation; baik versi 2 lisensi, atau (sesuai pilihan Anda) versi yang lebih baru.\n\nProgram ini didistribusikan dengan harapan bahwa itu akan berguna, tetapi '''tanpa jaminan apa pun'''; bahkan tanpa jaminan tersirat untuk '''dapat diperjualbelikan ''' atau '''sesuai untuk tujuan tertentu'''.\nLihat GNU General Public License untuk lebih jelasnya.\n\nAnda seharusnya telah menerima <doclink href=\"Copying\">salinan dari GNU General Public License</doclink> bersama dengan program ini; jika tidak, kirimkan surat untuk Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. atau [http://www.gnu.org/copyleft/gpl.html baca versi daring].",
+       "config-copyright": "=== Hak cipta dan persyaratan ===\n\n$1\n\nProgram ini adalah perangkat lunak bebas; Anda dapat mendistribusikan dan/atau memodifikasi di bawah persyaratan GNU General Public License seperti yang diterbitkan oleh Free Software Foundation; baik versi 2 lisensi, atau (sesuai pilihan Anda) versi yang lebih baru.\n\nProgram ini didistribusikan dengan harapan bahwa itu akan berguna, tetapi <strong>tanpa jaminan apa pun</strong>; bahkan tanpa jaminan tersirat untuk <strong>dapat diperjualbelikan</strong> atau <strong>sesuai untuk tujuan tertentu</strong>.\nLihat GNU General Public License untuk lebih jelasnya.\n\nAnda seharusnya telah menerima <doclink href=\"Copying\">salinan dari GNU General Public License</doclink> bersama dengan program ini; jika tidak, kirimkan surat untuk Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, atau [http://www.gnu.org/copyleft/gpl.html baca versi daring].",
        "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki/id Situs MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents/id Pedoman Pengguna]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents/id Pedoman Administrator]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ/id FAQ]\n----\n* <doclink href=Readme>Read me</doclink>\n* <doclink href=ReleaseNotes>Release notes</doclink>\n* <doclink href=Copying>Copying</doclink>\n* <doclink href=UpgradeDoc>Upgrading</doclink>",
        "config-env-good": "Kondisi telah diperiksa.\nAnda dapat menginstal MediaWiki.",
        "config-env-bad": "Kondisi telah diperiksa.\nAnda tidak dapat menginstal MediaWiki.",
index 5fe2e81..10ca898 100644 (file)
@@ -56,7 +56,7 @@
        "config-unicode-using-intl": "유니코드 정규화에 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용합니다.",
        "config-unicode-pure-php-warning": "<strong>경고</strong>: 유니코드 정규화를 처리할 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용할 수 없기 때문에 느린 pure-PHP 구현을 대신 사용합니다.\n트래픽이 높은 사이트에서 실행하시려면 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 유니코드 정규화]를 읽어보셔야 합니다.",
        "config-unicode-update-warning": "<strong>경고</strong>: 유니코드 정규화 래퍼의 설치된 버전은 [http://site.icu-project.org/ ICU 프로젝트]의 라이브러리의 이전 버전을 사용합니다.\n만약 유니코드를 사용하는 것에 대해 우려가 된다면 [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations 업그레이드]해야합니다.",
-       "config-no-db": "적절한 데이터베이스 드라이버를 찾을 수 없습니다! PHP용 데이터베이스 드라이버를 설치해야 합니다.\n다음 데이터베이스 유형을 지원합니다: $1.\n\nPHP를 직접 컴파일했다면, 예를 들어 <code>./configure --with-mysql</code>을 사용하여, 데이터베이스 클라이언트를 활성화하도록 다시 설정하세요.\n데비안이나 우분투 패키지에서 PHP를 설치했다면 <code>php5-mysql</code> 모듈도 설치해야 합니다.",
+       "config-no-db": "적절한 데이터베이스 드라이버를 찾을 수 없습니다! PHP용 데이터베이스 드라이버를 설치해야 합니다.\n다음 데이터베이스 {{PLURAL:$2|유형을 지원합니다}}: $1.\n\nPHP를 직접 컴파일했다면, 예를 들어 <code>./configure --with-mysql</code>을 사용하여, 데이터베이스 클라이언트를 활성화하도록 다시 설정하세요.\n데비안이나 우분투 패키지에서 PHP를 설치했다면 <code>php5-mysql</code> 모듈도 설치해야 합니다.",
        "config-outdated-sqlite": "<strong>경고</strong>: 최소인 $2 버전보다 낮은 SQLite $1(이)가 있습니다. SQLite를 사용할 수 없습니다.",
        "config-no-fts3": "<strong>경고</strong>: SQLite를 [//sqlite.org/fts3.html FTS3 모듈] 없이 컴파일하며, 검색 기능은 백엔드에 사용할 수 없습니다.",
        "config-register-globals-error": "<strong>오류: PHP의 <code>[http://php.net/register_globals register_globals]</code> 옵션이 활성화되어 있습니다.\n설치를 계속하려면 비활성화해야 합니다.</strong>\n어떻게 하는지에 대한 도움말에 대해서는 [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals]를 보세요.",
index 671671b..cae3364 100644 (file)
@@ -17,7 +17,7 @@
        "config-localsettings-badkey": "La ciav ch'it l'has dàit a l'é pa giusta.",
        "config-upgrade-key-missing": "A l'é stàita trovà n'istalassion esistenta ëd MediaWiki.\nPër agiorné soa istalassion, për piasì ch'a buta la linia sì-sota al fond ëd sò <code>LocalSettings.php</code>:\n\n$1",
        "config-localsettings-incomplete": "L'esistent <code>LocalSettings.php</code> a smija esse ancomplet.\nLa variàbil $1 a l'é nen ampostà.\nPër piasì, ch'a modìfica <code>LocalSettings.php</code> ëd fasson che costa variàbil a sia ampostà, e ch'a sgnaca «{{int:Config-continue}}».",
-       "config-localsettings-connection-error": "A l'é ancapitaje n'eror an colegand-se a la base ëd dàit an dovrand j'ampostassion specificà an <code>LocalSettings.php</code> o <code>AdminSettings.php</code>. Për piasì, ch'a coregia cost'ampostassion e ch'a preuva torna.\n\n$1",
+       "config-localsettings-connection-error": "A l'é ancapitaje n'eror an colegand-se a la base ëd dàit an dovrand j'ampostassion specificà an <code>LocalSettings.php</code>. Për piasì, ch'a coregia cost'ampostassion e ch'a preuva torna.\n\n$1",
        "config-session-error": "Eror an fasend parte la session: $1",
        "config-session-expired": "Ij sò dat ëd session a smijo scadù.\nLe session a son configurà për na durà ëd $1.\nA peul aumenté sòn an ampostand <code>session.gc_maxlifetime</code> an php.ini.\nCh'a anandia torna ël process d'instalassion.",
        "config-no-session": "Ij sò dat ëd session a son përdù!\nCh'a contròla sò php.ini e ch'as sigura che <code>session.save_path</code> a sia ampostà ant ël dossié giust.",
        "config-page-existingwiki": "Wiki esistenta",
        "config-help-restart": "Veul-lo scancelé tùit ij dat salvà ch'a l'ha anserì e anandié torna ël process d'instalassion?",
        "config-restart": "É!, felo torna parte",
-       "config-welcome": "=== Contròj d'ambient ===\nDle verìfiche ëd base a son fàite për vëdde se st'ambient a va bin për l'instalassion ëd MediaWiki.\nS'a l'ha da manca d'agiut durant l'anstalassion, a dovrìa fornì j'arzultà dë sti contròj.",
+       "config-welcome": "=== Contròj d'ambient ===\nDle verìfiche ëd base a saran adess fàite për vëdde se st'ambient a va bin për l'instalassion ëd MediaWiki.\nCh'as visa d'anserì coste anformassion s'a sërca d'agiut su com completé l'instalassion.",
        "config-copyright": "=== Drit d'Autor e Condission ===\n\n$1\n\nCost-sì a l'é un programa lìber e a gràtis: a peul ridistribuilo e/o modifichelo sota le condission dla licensa pùblica general GNU com publicà da la Free Software Foundation; la version 2 dla Licensa, o (a toa sèrnìa) qualsëssìa version pi recenta.\n\nCost programa a l'é distribuì ant la speransa ch'a sia ùtil, ma '''sensa gnun-e garansìe'''; sensa gnanca la garansia implìssita ëd '''comersiabilità''' o '''d'esse adat a un but particolar'''.\n\nA dovrìa avèj arseivù <doclink href=Copying>na còpia ëd la licensa pùblica general GNU</doclink> ansema a sto programa; dësnò, ch'a scriva a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA opura [http://www.gnu.org/copyleft/gpl.html ch'a la lesa an linia].",
        "config-sidebar": "* [//www.mediawiki.org Intrada MediaWiki]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents Guida dl'Utent]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents Guida dl'Aministrator]\n* [//www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ Soens an ciamo]\n----\n* <doclink href=Readme>Ch'am lesa</doclink>\n* <doclink href=ReleaseNotes>Nòte ëd publicassion</doclink>\n* <doclink href=Copying>Còpia</doclink>\n* <doclink href=UpgradeDoc>Agiornament</doclink>",
        "config-env-good": "L'ambient a l'é stàit controlà.\nIt peule instalé MediaWiki.",
        "config-env-bad": "L'ambient a l'é stàit controlà.\nIt peule pa instalé MediaWiki.",
        "config-env-php": "PHP $1 a l'é instalà.",
-       "config-env-php-toolow": "PHP $1 a l'é instalà.\nAnt tùit ij cas, MediaWiki a ciama PHP $2 o pi neuv.",
+       "config-env-hhvm": "HHVM $1 a l'é instalà.",
        "config-unicode-using-utf8": "As deuvra utf8_normalize.so ëd Brion Vibber për la normalisassion Unicode.",
        "config-unicode-using-intl": "As deuvra l'[http://pecl.php.net/intl estension intl PECL] për la normalisassion Unicode.",
        "config-unicode-pure-php-warning": "'''Avis:''' L'[http://pecl.php.net/intl estension intl PECL] a l'é pa disponìbil për gestì la normalisassion Unicode, da già che l'implementassion an PHP pur a faliss për lentëssa.\nS'a gestiss un sit a àut tràfich, a dovrìa lese cheicòs an sla [//www.mediawiki.org/wiki/Special:MyLanguage/Unicode_normalization_considerations normalisassion Unicode].",
@@ -58,7 +58,6 @@
        "config-no-db": "Impossìbil trové un pilòta ëd base ëd dàit bon! A dev instalé un pilòta ëd base ëd dàit për PHP.\nLe sòrt ëd database ch'a ven-o a son apogià: $1.\n\nS'a l'é ansima a 'n servissi partagià, ch'a ciama a sò fornidor ëd servissi d'instalé un pilòta ëd base ëd dàit compatìbil.\nS'a l'é compilasse PHP chiel-midem, ch'a lo configura torna con un client ëd base ëd dàit abilità, për esempi an dovrand <code>./configure --with-mysql</code>.\nS'a l'ha instalà PHP dai pachèt Debian o Ubuntu, antlora a dev ëdcò istalé ël mòdul php5-mysql.",
        "config-outdated-sqlite": "'''Avis''': chiel a l'ha SQLite $1, che a l'é pi vej che la version mìnima dont a-i é damanca $2. SQLite a sarà pa disponìbil.",
        "config-no-fts3": "'''Avis''': SQLite a l'é compilà sensa ël mòdul [//sqlite.org/fts3.html FTS3], le funsion d'arserca a saran pa disponìbij su cost motor.",
-       "config-register-globals": "'''Avis: L'opsion <code>[http://php.net/register_globals register_globals]</code> ëd PHP a l'é abilità.'''\n'''Ch'a la disabìlita s'a peul.'''\nMediaWiki a marcërà, ma sò servent a l'é espòst a 'd possìbij vunerabilità ëd sicurëssa.",
        "config-magic-quotes-runtime": "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] a l'é ativ!'''\nCosta opsion a danegia ij dat d'intrada an manera pa prevedìbil.\nA peul pa instalé o dovré MediaWiki se st'opsion a l'é pa disabilità.",
        "config-magic-quotes-sybase": "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] a l'é ativ!'''\nCosta opsion a danegia ij dat d'intrada an manera pa prevedìbil.\nA peul pa instalé o dovré MediaWiki se st'opsion a l'é pa disabilità.",
        "config-mbstring": "'''Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] a l'é ativ!'''\nCosta opsion a càusa d'eror e a peul danegié ij dat d'intrada an manera pa prevedìbil.\nA peul pa instalé o dovré MediaWiki se st'opsion a l'é pa disabilità.",
index 13309b5..30342aa 100644 (file)
        "config-outdated-sqlite": "<strong>Chú ý:</strong> Bạn có SQLite $1, phiên bản này thấp hơn phiên bản yêu câu tối thiểu $2. SQLite sẽ không có tác dụng.",
        "config-no-fts3": "<strong>Chú ý:</strong> SQLite được biên dịch mà không có [//sqlite.org/fts3.html mô đun FTS3], nên các chức năng tìm kiếm sẽ bị vô hiệu trên hệ thống phía sau này.",
        "config-register-globals-error": "<strong>Lỗi: Tùy chọn <code>[http://php.net/register_globals register_globals]</code> của PHP đã được kích hoạt.\nNó phải bị vô hiệu để tiếp tục quá trình cài đặt.</strong>\nXem [https://www.mediawiki.org/wiki/register_globals https://www.mediawiki.org/wiki/register_globals] để biết cách thực hiện.",
-       "config-magic-quotes-gpc": "<strong>Sai lầm: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc] đang hoạt động!</strong>\nTùy chọn này sẽ làm hỏng dữ liệu nhập một cách không thể đoán trước.\nBạn không thể cài đặt hoặc sử dụng MediaWiki trừ phi tùy chọn này bị vô hiệu.",
-       "config-magic-quotes-runtime": "<strong>Sai lầm: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] đang hoạt động!</strong>\nTùy chọn này sẽ làm hỏng dữ liệu nhập một cách không thể đoán trước.\nBạn không thể cài đặt hoặc sử dụng MediaWiki trừ phi tùy chọn này bị vô hiệu.",
-       "config-magic-quotes-sybase": "<strong>Sai lầm: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] đang hoạt động!</strong>\nTùy chọn này sẽ làm hỏng dữ liệu nhập một cách không thể đoán trước.\nBạn không thể cài đặt hoặc sử dụng MediaWiki trừ phi tùy chọn này bị vô hiệu.",
-       "config-mbstring": "<strong>Sai lầm: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] được kích hoạt!</strong>\nTùy chọn này gây lỗi và có thể làm hỏng dữ liệu một cách không thể đoán trước.\nBạn không thể cài đặt hoặc sử dụng MediaWiki trừ phi tùy chọn này bị vô hiệu.",
+       "config-magic-quotes-gpc": "<strong>Lỗi chí tử: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-gpc magic_quotes_gpc] đang hoạt động!</strong>\nTùy chọn này sẽ làm hỏng dữ liệu nhập một cách không thể đoán trước.\nBạn không thể cài đặt hoặc sử dụng MediaWiki trừ phi tùy chọn này bị vô hiệu.",
+       "config-magic-quotes-runtime": "<strong>Lỗi chí tử: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] đang hoạt động!</strong>\nTùy chọn này sẽ làm hỏng dữ liệu nhập một cách không thể đoán trước.\nBạn không thể cài đặt hoặc sử dụng MediaWiki trừ phi tùy chọn này bị vô hiệu.",
+       "config-magic-quotes-sybase": "<strong>Lỗi chí tử: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] đang hoạt động!</strong>\nTùy chọn này sẽ làm hỏng dữ liệu nhập một cách không thể đoán trước.\nBạn không thể cài đặt hoặc sử dụng MediaWiki trừ phi tùy chọn này bị vô hiệu.",
+       "config-mbstring": "<strong>Lỗi chí tử: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] được kích hoạt!</strong>\nTùy chọn này gây lỗi và có thể làm hỏng dữ liệu một cách không thể đoán trước.\nBạn không thể cài đặt hoặc sử dụng MediaWiki trừ phi tùy chọn này bị vô hiệu.",
        "config-safe-mode": "<strong>Cảnh báo:</strong> [http://www.php.net/features.safe-mode Chế độ an toàn] của PHP đang được kích hoạt.\nNó có thể gây vấn đề, nhất là nếu dùng các chức năng tải lên tập tin và <code>math</code>.",
        "config-xml-bad": "Mô đun XML của PHP đang bị thiếu.\nMediaWiki yêu cầu các hàm trong mô đun này và sẽ không hoạt động trong cấu hình này.\nNếu bạn đang chạy Mandrake, hãy cài đặt gói php-xml.",
-       "config-pcre-old": "<strong>Sai lầm:</strong> PCRE $1 trở lên được yêu cầu phải có.\nBản nhị phân PHP của bạn dang được liên kết với PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Thông tin bổ sung].",
-       "config-pcre-no-utf8": "<strong>Sai lầm:</strong> Mô đun PCRE của PHP dường như được biên dịch mà không có hỗ trợ PCRE_UTF8.\nMediaWiki yêu cầu phải có hỗ trợ UTF-8 để hoạt động chính xác.",
+       "config-pcre-old": "<strong>Lỗi chí tử:</strong> PCRE $1 trở lên được yêu cầu phải có.\nBản nhị phân PHP của bạn dang được liên kết với PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE Thông tin bổ sung].",
+       "config-pcre-no-utf8": "<strong>Lỗi chí tử:</strong> Mô đun PCRE của PHP dường như được biên dịch mà không có hỗ trợ PCRE_UTF8.\nMediaWiki yêu cầu phải có hỗ trợ UTF-8 để hoạt động chính xác.",
        "config-memory-raised": "<code>memory_limit</code> của PHP là $1, tăng lên $2.",
        "config-memory-bad": "<strong>Cảnh báo:</strong> <code>memory_limit</code> của PHP là $1.\nGiá trị này có lẽ quá thấp.\nCài đặt có thể bị thất bại!",
-       "config-ctype": "<strong>Sai lầm:</strong> PHP phải được biên dịch với hỗ trợ cho [http://www.php.net/manual/en/ctype.installation.php phần mở rộng Ctype].",
-       "config-iconv": "<strong>Sai lầm:</strong> PHP phải được biên dịch với hỗ trợ cho [http://www.php.net/manual/en/iconv.installation.php phần mở rộng iconv].",
-       "config-json": "<strong>Sai lầm:</strong> PHP được biên dịch mà không có hỗ trợ cho JSON.\nBạn phải cài đặt hoặc phần mở rộng JSON PHP hoặc phần mở rộng [http://pecl.php.net/package/jsonc PECL jsonc] trước khi cài đặt MediaWiki.\n* Phần mở rộng PHP có sẵn trong Red Hat Enterprise Linux (CentOS) 5 và 6 nhưng phải được kích hoạt trong <code>/etc/php.ini</code> hoặc <code>/etc/php.d/json.ini</code>.\n* Một số phiên bản Linux được phát hành sau tháng 5 năm 2013 bỏ qua phần mở rộng PHP và gói lại phần mở rộng PECL là <code>php5-json</code> hoặc <code>php-pecl-jsonc</code> thay thế.",
+       "config-ctype": "<strong>Lỗi chí tử:</strong> PHP phải được biên dịch với hỗ trợ cho [http://www.php.net/manual/en/ctype.installation.php phần mở rộng Ctype].",
+       "config-iconv": "<strong>Lỗi chí tử:</strong> PHP phải được biên dịch với hỗ trợ cho [http://www.php.net/manual/en/iconv.installation.php phần mở rộng iconv].",
+       "config-json": "<strong>Lỗi chí tử:</strong> PHP được biên dịch mà không có hỗ trợ cho JSON.\nBạn phải cài đặt hoặc phần mở rộng JSON PHP hoặc phần mở rộng [http://pecl.php.net/package/jsonc PECL jsonc] trước khi cài đặt MediaWiki.\n* Phần mở rộng PHP có sẵn trong Red Hat Enterprise Linux (CentOS) 5 và 6 nhưng phải được kích hoạt trong <code>/etc/php.ini</code> hoặc <code>/etc/php.d/json.ini</code>.\n* Một số phiên bản Linux được phát hành sau tháng 5 năm 2013 bỏ qua phần mở rộng PHP và gói lại phần mở rộng PECL là <code>php5-json</code> hoặc <code>php-pecl-jsonc</code> thay thế.",
        "config-xcache": "[http://xcache.lighttpd.net/ XCache] đã được cài đặt",
        "config-apc": "[http://www.php.net/apc APC] đã được cài đặt",
        "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] đã được cài đặt",
        "config-license-gfdl": "Giấy pháp Tài liệu Tự do GNU 1.3 trở lên",
        "config-license-pd": "Phạm vi công cộng",
        "config-license-cc-choose": "Chọn một giấy phép Creative Commons tùy biến",
+       "config-license-help": "Nhiều wiki công khai phát hành tất cả các đóng góp theo một [http://freedomdefined.org/Definition/Vi?uselang=vi giấy phép tự do].\nĐiều này giúp tạo nên thái độ cộng đồng sở hữu và ủng hộ sự đóng góp lâu dài.\nNói chung, một wiki riêng tư hoặc của công ty không nhất thiết phải sử dụng một giấy phép tự do.\n\nNếu bạn muốn được phép sử dụng văn bản từ Wikipedia và muốn Wikipedia nhận được những văn bản được sao chép từ wiki của bạn, bạn nên chọn <strong>{{int:config-license-cc-by-sa}}</strong>.\n\nWikipedia từng sử dụng Giấy phép Tài liệu Tự do GNU.\nGFDL là một giấy phép hợp lệ nhưng khó hiểu trên thực tế.\nNội dung được phát hành theo GFDL cũng khó tái sử dụng.",
        "config-email-settings": "Thiết lập thư điện tử",
        "config-enable-email": "Cho phép gửi thư điện tử đi",
        "config-enable-email-help": "Nếu bạn muốn email để làm việc, [http://www.php.net/manual/en/mail.configuration.php thiết lập mail của PHP] cần phải được cấu hình đúng.\nNếu bạn không muốn sử dụng bất kỳ tính năng email nào, bạn có thể vô hiệu chúng ở đây.",
index 934b4b4..0f2d7be 100644 (file)
        "config-admin-name-invalid": "指定的使用者名稱 \"<nowiki>$1</nowiki>\" 無效,請改用其他使用者名稱。",
        "config-admin-password-blank": "輸入管理員帳號密碼。",
        "config-admin-password-mismatch": "兩次輸入的密碼並不相同。",
-       "config-admin-email": "電子郵件址:",
+       "config-admin-email": "電子郵件址:",
        "config-admin-email-help": "在此輸入的電子郵件信箱可用來接收 Wiki 上其他使用者所傳送的訊息、重設您的密碼與通知監視清單中頁面更動。您可將此欄位留空。",
        "config-admin-error-user": "建立管理員帳號 \"<nowiki>$1</nowiki>\" 時發送內部錯誤。",
        "config-admin-error-password": "設定管理員 \"<nowiki>$1</nowiki>\" 的密碼時發送內部錯誤:<pre>$2</pre>",
-       "config-admin-error-bademail": "您輸入了不正確的電子郵件址。",
+       "config-admin-error-bademail": "您輸入了不正確的電子郵件址。",
        "config-subscribe": "訂閱 [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce 發佈公告郵寄清單]。",
        "config-subscribe-help": "這是一個用於發佈公告的低郵件量郵寄清單,內容包括重要的安全公告。\n您應該訂閱它並在 MediaWiki 發佈新版的時候更新系統。",
-       "config-subscribe-noemail": "您正嘗試不填寫電子郵件位址訂閱發佈公告郵寄清單。 \n請如果您希望訂閱郵寄清單,請提供一個有效的電子郵件位址。",
+       "config-subscribe-noemail": "您正嘗試不填寫電子郵件地址訂閱發佈公告郵寄清單。 \n請如果您希望訂閱郵寄清單,請提供一個有效的電子郵件地址。",
        "config-almost-done": "您快要完成了!\n您現在可以跳過其餘的設定項目並且立即安裝 Wiki。",
        "config-optional-continue": "多問我一些問題吧。",
        "config-optional-skip": "我已經不耐煩了,請趕緊安裝 Wiki。",
        "config-email-watchlist-help": "若使用者在個人偏好開啟了此功能,允許使用者收到與其監視清單有關的通知。",
        "config-email-auth": "開啟電子郵件身份認證",
        "config-email-auth-help": "若開啟此選項,使用者不論設定或者更改電子郵件地址,都必須透過收信的方式確認沒有問題。\n只有驗證過的電子郵件地址可以收到來自其他使用者或修改通知的信件。\n公開的 Wiki 會 <strong>建議</strong> 設定此選項,以防使用者濫用電子郵件功能。",
-       "config-email-sender": "電子郵件回覆址:",
+       "config-email-sender": "電子郵件回覆址:",
        "config-email-sender-help": "請輸入要用來做為外寄郵件的電子郵件回覆地址。\n該郵件地址會收到被拒收的信件。\n許多郵件伺服器會要求使用有效的網域名稱。",
        "config-upload-settings": "圖片和檔案上傳",
        "config-upload-enable": "開啟檔案上傳",
index 334d374..f8de0b5 100644 (file)
@@ -188,6 +188,8 @@ abstract class Job implements IJobSpecification {
                        unset( $info['params']['rootJobTimestamp'] );
                        // Likewise for jobs with different delay times
                        unset( $info['params']['jobReleaseTimestamp'] );
+                       // Queues pack and hash this array, so normalize the order
+                       ksort( $info['params'] );
                }
 
                return $info;
index 53fcaee..91fe86c 100644 (file)
@@ -44,11 +44,10 @@ abstract class JobQueue {
        /** @var int Maximum number of times to try a job */
        protected $maxTries;
 
-       /** @var bool Allow delayed jobs */
-       protected $checkDelay;
-
        /** @var BagOStuff */
        protected $dupCache;
+       /** @var JobQueueAggregator */
+       protected $aggr;
 
        const QOS_ATOMIC = 1; // integer; "all-or-nothing" job insertions
 
@@ -71,11 +70,10 @@ abstract class JobQueue {
                if ( !in_array( $this->order, $this->supportedOrders() ) ) {
                        throw new MWException( __CLASS__ . " does not support '{$this->order}' order." );
                }
-               $this->checkDelay = !empty( $params['checkDelay'] );
-               if ( $this->checkDelay && !$this->supportsDelayedJobs() ) {
-                       throw new MWException( __CLASS__ . " does not support delayed jobs." );
-               }
                $this->dupCache = wfGetCache( CACHE_ANYTHING );
+               $this->aggr = isset( $params['aggregator'] )
+                       ? $params['aggregator']
+                       : new JobQueueAggregatorNull( array() );
        }
 
        /**
@@ -98,10 +96,6 @@ abstract class JobQueue {
         *                  but not acknowledged as completed after this many seconds. Recycling
         *                  of jobs simple means re-inserting them into the queue. Jobs can be
         *                  attempted up to three times before being discarded.
-        *   - checkDelay : If supported, respect Job::getReleaseTimestamp() in the push functions.
-        *                  This lets delayed jobs wait in a staging area until a given timestamp is
-        *                  reached, at which point they will enter the queue. If this is not enabled
-        *                  or not supported, an exception will be thrown on delayed job insertion.
         *
         * Queue classes should throw an exception if they do not support the options given.
         *
@@ -143,14 +137,6 @@ abstract class JobQueue {
                return $this->order;
        }
 
-       /**
-        * @return bool Whether delayed jobs are enabled
-        * @since 1.22
-        */
-       final public function delayedJobsEnabled() {
-               return $this->checkDelay;
-       }
-
        /**
         * Get the allowed queue orders for configuration validation
         *
@@ -174,6 +160,14 @@ abstract class JobQueue {
                return false; // not implemented
        }
 
+       /**
+        * @return bool Whether delayed jobs are enabled
+        * @since 1.22
+        */
+       final public function delayedJobsEnabled() {
+               return $this->supportsDelayedJobs();
+       }
+
        /**
         * Quickly check if the queue has no available (unacquired, non-delayed) jobs.
         * Queue classes should use caching if they are any slower without memcached.
@@ -298,7 +292,8 @@ abstract class JobQueue {
         * @throws JobQueueError
         */
        final public function push( $jobs, $flags = 0 ) {
-               $this->batchPush( is_array( $jobs ) ? $jobs : array( $jobs ), $flags );
+               $jobs = is_array( $jobs ) ? $jobs : array( $jobs );
+               $this->batchPush( $jobs, $flags );
        }
 
        /**
@@ -320,13 +315,14 @@ abstract class JobQueue {
                        if ( $job->getType() !== $this->type ) {
                                throw new MWException(
                                        "Got '{$job->getType()}' job; expected a '{$this->type}' job." );
-                       } elseif ( $job->getReleaseTimestamp() && !$this->checkDelay ) {
+                       } elseif ( $job->getReleaseTimestamp() && !$this->supportsDelayedJobs() ) {
                                throw new MWException(
                                        "Got delayed '{$job->getType()}' job; delays are not supported." );
                        }
                }
 
                $this->doBatchPush( $jobs, $flags );
+               $this->aggr->notifyQueueNonEmpty( $this->wiki, $this->type );
        }
 
        /**
@@ -356,6 +352,10 @@ abstract class JobQueue {
 
                $job = $this->doPop();
 
+               if ( !$job ) {
+                       $this->aggr->notifyQueueEmpty( $this->wiki, $this->type );
+               }
+
                // Flag this job as an old duplicate based on its "root" job...
                try {
                        if ( $job && $this->isRootJobOldDuplicate( $job ) ) {
@@ -615,6 +615,17 @@ abstract class JobQueue {
                return new ArrayIterator( array() ); // not implemented
        }
 
+       /**
+        * Get an iterator to traverse over all abandoned jobs in this queue
+        *
+        * @return Iterator
+        * @throws JobQueueError
+        * @since 1.25
+        */
+       public function getAllAbandonedJobs() {
+               return new ArrayIterator( array() ); // not implemented
+       }
+
        /**
         * Do not use this function outside of JobQueue/JobQueueGroup
         *
index 5e8399c..d5f47ff 100644 (file)
@@ -686,7 +686,9 @@ class JobQueueDB extends JobQueue {
                                        $affected = $dbw->affectedRows();
                                        $count += $affected;
                                        JobQueue::incrStats( 'job-recycle', $this->type, $affected, $this->wiki );
+                                       // The tasks recycled jobs or release delayed jobs into the queue
                                        $this->cache->set( $this->getCacheKey( 'empty' ), 'false', self::CACHE_TTL_LONG );
+                                       $this->aggr->notifyQueueNonEmpty( $this->wiki, $this->type );
                                }
                        }
 
index 4186204..d985d44 100644 (file)
 class JobQueueFederated extends JobQueue {
        /** @var HashRing */
        protected $partitionRing;
-       /** @var HashRing */
-       protected $partitionPushRing;
        /** @var array (partition name => JobQueue) reverse sorted by weight */
        protected $partitionQueues = array();
 
-       /** @var BagOStuff */
-       protected $cache;
-
        /** @var int Maximum number of partitions to try */
        protected $maxPartitionsTry;
 
-       const CACHE_TTL_SHORT = 30; // integer; seconds to cache info without re-validating
-       const CACHE_TTL_LONG = 300; // integer; seconds to cache info that is kept up to date
-
        /**
         * @param array $params Possible keys:
         *  - sectionsByWiki      : A map of wiki IDs to section names.
@@ -74,8 +66,6 @@ class JobQueueFederated extends JobQueue {
         *                          These configuration arrays are passed to JobQueue::factory().
         *                          The options set here are overridden by those passed to this
         *                          the federated queue itself (e.g. 'order' and 'claimTTL').
-        *  - partitionsNoPush    : List of partition names that can handle pop() but not push().
-        *                          This can be used to migrate away from a certain partition.
         *  - maxPartitionsTry    : Maximum number of times to attempt job insertion using
         *                          different partition queues. This improves availability
         *                          during failure, at the cost of added latency and somewhat
@@ -96,17 +86,10 @@ class JobQueueFederated extends JobQueue {
                // Get the full partition map
                $partitionMap = $params['partitionsBySection'][$section];
                arsort( $partitionMap, SORT_NUMERIC );
-               // Get the partitions jobs can actually be pushed to
-               $partitionPushMap = $partitionMap;
-               if ( isset( $params['partitionsNoPush'] ) ) {
-                       foreach ( $params['partitionsNoPush'] as $partition ) {
-                               unset( $partitionPushMap[$partition] );
-                       }
-               }
                // Get the config to pass to merge into each partition queue config
                $baseConfig = $params;
                foreach ( array( 'class', 'sectionsByWiki', 'maxPartitionsTry',
-                       'partitionsBySection', 'configByPartition', 'partitionsNoPush' ) as $o
+                       'partitionsBySection', 'configByPartition', ) as $o
                ) {
                        unset( $baseConfig[$o] ); // partition queue doesn't care about this
                }
@@ -120,14 +103,6 @@ class JobQueueFederated extends JobQueue {
                }
                // Ring of all partitions
                $this->partitionRing = new HashRing( $partitionMap );
-               // Get the ring of partitions to push jobs into
-               if ( count( $partitionPushMap ) === count( $partitionMap ) ) {
-                       $this->partitionPushRing = clone $this->partitionRing; // faster
-               } else {
-                       $this->partitionPushRing = new HashRing( $partitionPushMap );
-               }
-               // Aggregate cache some per-queue values if there are multiple partition queues
-               $this->cache = count( $partitionMap ) > 1 ? wfGetMainCache() : new EmptyBagOStuff();
        }
 
        protected function supportedOrders() {
@@ -140,19 +115,16 @@ class JobQueueFederated extends JobQueue {
        }
 
        protected function supportsDelayedJobs() {
-               return true; // defer checks to the partitions
+               foreach ( $this->partitionQueues as $queue ) {
+                       if ( !$queue->supportsDelayedJobs() ) {
+                               return false;
+                       }
+               }
+
+               return true;
        }
 
        protected function doIsEmpty() {
-               $key = $this->getCacheKey( 'empty' );
-
-               $isEmpty = $this->cache->get( $key );
-               if ( $isEmpty === 'true' ) {
-                       return true;
-               } elseif ( $isEmpty === 'false' ) {
-                       return false;
-               }
-
                $empty = true;
                $failed = 0;
                foreach ( $this->partitionQueues as $queue ) {
@@ -160,12 +132,11 @@ class JobQueueFederated extends JobQueue {
                                $empty = $empty && $queue->doIsEmpty();
                        } catch ( JobQueueError $e ) {
                                ++$failed;
-                               MWExceptionHandler::logException( $e );
+                               $this->logException( $e );
                        }
                }
                $this->throwErrorIfAllPartitionsDown( $failed );
 
-               $this->cache->add( $key, $empty ? 'true' : 'false', self::CACHE_TTL_LONG );
                return $empty;
        }
 
@@ -191,32 +162,24 @@ class JobQueueFederated extends JobQueue {
         * @return int
         */
        protected function getCrossPartitionSum( $type, $method ) {
-               $key = $this->getCacheKey( $type );
-
-               $count = $this->cache->get( $key );
-               if ( $count !== false ) {
-                       return $count;
-               }
-
+               $count = 0;
                $failed = 0;
                foreach ( $this->partitionQueues as $queue ) {
                        try {
                                $count += $queue->$method();
                        } catch ( JobQueueError $e ) {
                                ++$failed;
-                               MWExceptionHandler::logException( $e );
+                               $this->logException( $e );
                        }
                }
                $this->throwErrorIfAllPartitionsDown( $failed );
 
-               $this->cache->set( $key, $count, self::CACHE_TTL_SHORT );
-
                return $count;
        }
 
        protected function doBatchPush( array $jobs, $flags ) {
                // Local ring variable that may be changed to point to a new ring on failure
-               $partitionRing = $this->partitionPushRing;
+               $partitionRing = $this->partitionRing;
                // Try to insert the jobs and update $partitionsTry on any failures.
                // Retry to insert any remaning jobs again, ignoring the bad partitions.
                $jobsLeft = $jobs;
@@ -277,12 +240,9 @@ class JobQueueFederated extends JobQueue {
                                $queue->doBatchPush( $jobBatch, $flags | self::QOS_ATOMIC );
                        } catch ( JobQueueError $e ) {
                                $ok = false;
-                               MWExceptionHandler::logException( $e );
+                               $this->logException( $e );
                        }
-                       if ( $ok ) {
-                               $key = $this->getCacheKey( 'empty' );
-                               $this->cache->set( $key, 'false', self::CACHE_TTL_LONG );
-                       } else {
+                       if ( !$ok ) {
                                if ( !$partitionRing->ejectFromLiveRing( $partition, 5 ) ) { // blacklist
                                        throw new JobQueueError( "Could not insert job(s), no partitions available." );
                                }
@@ -299,12 +259,9 @@ class JobQueueFederated extends JobQueue {
                                $queue->doBatchPush( $jobBatch, $flags | self::QOS_ATOMIC );
                        } catch ( JobQueueError $e ) {
                                $ok = false;
-                               MWExceptionHandler::logException( $e );
+                               $this->logException( $e );
                        }
-                       if ( $ok ) {
-                               $key = $this->getCacheKey( 'empty' );
-                               $this->cache->set( $key, 'false', self::CACHE_TTL_LONG );
-                       } else {
+                       if ( !$ok ) {
                                if ( !$partitionRing->ejectFromLiveRing( $partition, 5 ) ) { // blacklist
                                        throw new JobQueueError( "Could not insert job(s), no partitions available." );
                                }
@@ -331,7 +288,7 @@ class JobQueueFederated extends JobQueue {
                                $job = $queue->pop();
                        } catch ( JobQueueError $e ) {
                                ++$failed;
-                               MWExceptionHandler::logException( $e );
+                               $this->logException( $e );
                                $job = false;
                        }
                        if ( $job ) {
@@ -344,9 +301,6 @@ class JobQueueFederated extends JobQueue {
                }
                $this->throwErrorIfAllPartitionsDown( $failed );
 
-               $key = $this->getCacheKey( 'empty' );
-               $this->cache->set( $key, 'true', self::CACHE_TTL_LONG );
-
                return false;
        }
 
@@ -361,12 +315,12 @@ class JobQueueFederated extends JobQueue {
        protected function doIsRootJobOldDuplicate( Job $job ) {
                $params = $job->getRootJobParams();
                $sigature = $params['rootJobSignature'];
-               $partition = $this->partitionPushRing->getLiveLocation( $sigature );
+               $partition = $this->partitionRing->getLiveLocation( $sigature );
                try {
                        return $this->partitionQueues[$partition]->doIsRootJobOldDuplicate( $job );
                } catch ( JobQueueError $e ) {
-                       if ( $this->partitionPushRing->ejectFromLiveRing( $partition, 5 ) ) {
-                               $partition = $this->partitionPushRing->getLiveLocation( $sigature );
+                       if ( $this->partitionRing->ejectFromLiveRing( $partition, 5 ) ) {
+                               $partition = $this->partitionRing->getLiveLocation( $sigature );
                                return $this->partitionQueues[$partition]->doIsRootJobOldDuplicate( $job );
                        }
                }
@@ -377,12 +331,12 @@ class JobQueueFederated extends JobQueue {
        protected function doDeduplicateRootJob( Job $job ) {
                $params = $job->getRootJobParams();
                $sigature = $params['rootJobSignature'];
-               $partition = $this->partitionPushRing->getLiveLocation( $sigature );
+               $partition = $this->partitionRing->getLiveLocation( $sigature );
                try {
                        return $this->partitionQueues[$partition]->doDeduplicateRootJob( $job );
                } catch ( JobQueueError $e ) {
-                       if ( $this->partitionPushRing->ejectFromLiveRing( $partition, 5 ) ) {
-                               $partition = $this->partitionPushRing->getLiveLocation( $sigature );
+                       if ( $this->partitionRing->ejectFromLiveRing( $partition, 5 ) ) {
+                               $partition = $this->partitionRing->getLiveLocation( $sigature );
                                return $this->partitionQueues[$partition]->doDeduplicateRootJob( $job );
                        }
                }
@@ -398,7 +352,7 @@ class JobQueueFederated extends JobQueue {
                                $queue->doDelete();
                        } catch ( JobQueueError $e ) {
                                ++$failed;
-                               MWExceptionHandler::logException( $e );
+                               $this->logException( $e );
                        }
                }
                $this->throwErrorIfAllPartitionsDown( $failed );
@@ -413,7 +367,7 @@ class JobQueueFederated extends JobQueue {
                                $queue->waitForBackups();
                        } catch ( JobQueueError $e ) {
                                ++$failed;
-                               MWExceptionHandler::logException( $e );
+                               $this->logException( $e );
                        }
                }
                $this->throwErrorIfAllPartitionsDown( $failed );
@@ -440,10 +394,6 @@ class JobQueueFederated extends JobQueue {
                        'abandonedcount'
                );
 
-               foreach ( $types as $type ) {
-                       $this->cache->delete( $this->getCacheKey( $type ) );
-               }
-
                /** @var JobQueue $queue */
                foreach ( $this->partitionQueues as $queue ) {
                        $queue->doFlushCaches();
@@ -472,6 +422,17 @@ class JobQueueFederated extends JobQueue {
                return $iterator;
        }
 
+       public function getAllAbandonedJobs() {
+               $iterator = new AppendIterator();
+
+               /** @var JobQueue $queue */
+               foreach ( $this->partitionQueues as $queue ) {
+                       $iterator->append( $queue->getAllAbandonedJobs() );
+               }
+
+               return $iterator;
+       }
+
        public function getCoalesceLocationInternal() {
                return "JobQueueFederated:wiki:{$this->wiki}" .
                        sha1( serialize( array_keys( $this->partitionQueues ) ) );
@@ -495,7 +456,7 @@ class JobQueueFederated extends JobQueue {
                                }
                        } catch ( JobQueueError $e ) {
                                ++$failed;
-                               MWExceptionHandler::logException( $e );
+                               $this->logException( $e );
                        }
                }
                $this->throwErrorIfAllPartitionsDown( $failed );
@@ -519,7 +480,7 @@ class JobQueueFederated extends JobQueue {
                                }
                        } catch ( JobQueueError $e ) {
                                ++$failed;
-                               MWExceptionHandler::logException( $e );
+                               $this->logException( $e );
                        }
                }
                $this->throwErrorIfAllPartitionsDown( $failed );
@@ -527,6 +488,10 @@ class JobQueueFederated extends JobQueue {
                return $result;
        }
 
+       protected function logException( Exception $e ) {
+               wfDebugLog( 'JobQueueFederated', $e->getMessage() . "\n" . $e->getTraceAsString() );
+       }
+
        /**
         * Throw an error if no partitions available
         *
@@ -546,14 +511,4 @@ class JobQueueFederated extends JobQueue {
                        $queue->setTestingPrefix( $key );
                }
        }
-
-       /**
-        * @param string $property
-        * @return string
-        */
-       private function getCacheKey( $property ) {
-               list( $db, $prefix ) = wfSplitWikiID( $this->wiki );
-
-               return wfForeignMemcKey( $db, $prefix, 'jobqueue', $this->type, $property );
-       }
 }
index dbb85d7..ebd547a 100644 (file)
@@ -94,6 +94,7 @@ class JobQueueGroup {
                } else {
                        $conf = $conf + $wgJobTypeConf['default'];
                }
+               $conf['aggregator'] = JobQueueAggregator::singleton();
 
                return JobQueue::factory( $conf );
        }
@@ -125,7 +126,6 @@ class JobQueueGroup {
 
                foreach ( $jobsByType as $type => $jobs ) {
                        $this->get( $type )->push( $jobs );
-                       JobQueueAggregator::singleton()->notifyQueueNonEmpty( $this->wiki, $type );
                }
 
                if ( $this->cache->has( 'queues-ready', 'list' ) ) {
@@ -153,9 +153,6 @@ class JobQueueGroup {
                if ( is_string( $qtype ) ) { // specific job type
                        if ( !in_array( $qtype, $blacklist ) ) {
                                $job = $this->get( $qtype )->pop();
-                               if ( !$job ) {
-                                       JobQueueAggregator::singleton()->notifyQueueEmpty( $this->wiki, $qtype );
-                               }
                        }
                } else { // any job in the "default" jobs types
                        if ( $flags & self::USE_CACHE ) {
@@ -179,7 +176,6 @@ class JobQueueGroup {
                                if ( $job ) { // found
                                        break;
                                } else { // not found
-                                       JobQueueAggregator::singleton()->notifyQueueEmpty( $this->wiki, $type );
                                        $this->cache->clear( 'queues-ready' );
                                }
                        }
@@ -381,10 +377,6 @@ class JobQueueGroup {
                                        }
                                }
                        }
-                       // The tasks may have recycled jobs or release delayed jobs into the queue
-                       if ( isset( $tasksRun[$type] ) && !$queue->isEmpty() ) {
-                               JobQueueAggregator::singleton()->notifyQueueNonEmpty( $this->wiki, $type );
-                       }
                }
 
                if ( $count === 0 ) {
index 243fec9..6c823fb 100644 (file)
@@ -93,7 +93,6 @@ class JobQueueRedis extends JobQueue {
                                "Non-daemonized mode is no longer supported. Please install the " .
                                "mediawiki/services/jobrunner service and update \$wgJobTypeConf as needed." );
                }
-               $this->checkDelay = true; // always enabled
        }
 
        protected function supportedOrders() {
@@ -517,6 +516,29 @@ LUA;
                }
        }
 
+       /**
+        * @see JobQueue::getAllAbandonedJobs()
+        * @return Iterator
+        */
+       public function getAllAbandonedJobs() {
+               $conn = $this->getConnection();
+               try {
+                       $that = $this;
+
+                       return new MappedIterator( // delayed jobs
+                               $conn->zRange( $this->getQueueKey( 'z-abandoned' ), 0, -1 ),
+                               function ( $uid ) use ( $that, $conn ) {
+                                       return $that->getJobFromUidInternal( $uid, $conn );
+                               },
+                               array( 'accept' => function ( $job ) {
+                                       return is_object( $job );
+                               } )
+                       );
+               } catch ( RedisException $e ) {
+                       $this->throwRedisException( $conn, $e );
+               }
+       }
+
        public function getCoalesceLocationInternal() {
                return "RedisServer:" . $this->server;
        }
index 091e648..edb4911 100644 (file)
@@ -87,6 +87,8 @@ class JobRunner implements LoggerAwareInterface {
         * @return array Summary response that can easily be JSON serialized
         */
        public function run( array $options ) {
+               global $wgJobClasses;
+
                $response = array( 'jobs' => array(), 'reached' => 'none-ready' );
 
                $type = isset( $options['type'] ) ? $options['type'] : false;
@@ -94,6 +96,11 @@ class JobRunner implements LoggerAwareInterface {
                $maxTime = isset( $options['maxTime'] ) ? $options['maxTime'] : false;
                $noThrottle = isset( $options['throttle'] ) && !$options['throttle'];
 
+               if ( $type !== false && !isset( $wgJobClasses[$type] ) ) {
+                       $response['reached'] = 'none-possible';
+                       return $response;
+               }
+
                $group = JobQueueGroup::singleton();
                // Handle any required periodic queue maintenance
                $count = $group->executeReadyPeriodicTasks();
index 9fa7747..42d2a39 100644 (file)
@@ -91,8 +91,8 @@ class JobSpecification implements IJobSpecification {
        /** @var Title */
        protected $title;
 
-       /** @var bool Expensive jobs may set this to true */
-       protected $ignoreDuplicates;
+       /** @var array */
+       protected $opts;
 
        /**
         * @param string $type
@@ -104,11 +104,12 @@ class JobSpecification implements IJobSpecification {
                $type, array $params, array $opts = array(), Title $title = null
        ) {
                $this->validateParams( $params );
+               $this->validateParams( $opts );
 
                $this->type = $type;
                $this->params = $params;
                $this->title = $title ?: Title::newMainPage();
-               $this->ignoreDuplicates = !empty( $opts['removeDuplicates'] );
+               $this->opts = $opts;
        }
 
        /**
@@ -158,7 +159,7 @@ class JobSpecification implements IJobSpecification {
         * @return bool Whether only one of each identical set of jobs should be run
         */
        public function ignoreDuplicates() {
-               return $this->ignoreDuplicates;
+               return !empty( $this->opts['removeDuplicates'] );
        }
 
        /**
@@ -186,4 +187,31 @@ class JobSpecification implements IJobSpecification {
 
                return $info;
        }
+
+       /**
+        * @return array Field/value map that can immediately be serialized
+        * @since 1.25
+        */
+       public function toSerializableArray() {
+               return array(
+                       'type'   => $this->type,
+                       'params' => $this->params,
+                       'opts'   => $this->opts,
+                       'title'  => array(
+                               'ns'  => $this->title->getNamespace(),
+                               'key' => $this->title->getDbKey()
+                       )
+               );
+       }
+
+       /**
+        * @param array $map Field/value map
+        * @return JobSpecification
+        * @since 1.25
+        */
+       public static function newFromArray( array $map ) {
+               $title = Title::makeTitle( $map['title']['ns'], $map['title']['key'] );
+
+               return new self( $map['type'], $map['params'], $map['opts'], $title );
+       }
 }
index bd5c40d..febc277 100644 (file)
@@ -34,7 +34,7 @@ abstract class JobQueueAggregator {
        /**
         * @param array $params
         */
-       protected function __construct( array $params ) {
+       public function __construct( array $params ) {
        }
 
        /**
@@ -152,3 +152,21 @@ abstract class JobQueueAggregator {
                return $pendingDBs;
        }
 }
+
+class JobQueueAggregatorNull extends JobQueueAggregator {
+       protected function doNotifyQueueEmpty( $wiki, $type ) {
+               return true;
+       }
+
+       protected function doNotifyQueueNonEmpty( $wiki, $type ) {
+               return true;
+       }
+
+       protected function doGetAllReadyWikiQueues() {
+               return array();
+       }
+
+       protected function doPurge() {
+               return true;
+       }
+}
\ No newline at end of file
diff --git a/includes/jobqueue/aggregator/JobQueueAggregatorMemc.php b/includes/jobqueue/aggregator/JobQueueAggregatorMemc.php
deleted file mode 100644 (file)
index ae266ef..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-/**
- * Job queue aggregator code that uses BagOStuff.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Aaron Schulz
- */
-
-/**
- * Class to handle tracking information about all queues using BagOStuff
- *
- * @ingroup JobQueue
- * @since 1.21
- */
-class JobQueueAggregatorMemc extends JobQueueAggregator {
-       /** @var BagOStuff */
-       protected $cache;
-
-       protected $cacheTTL; // integer; seconds
-
-       /**
-        * @param array $params Possible keys:
-        *   - objectCache : Name of an object cache registered in $wgObjectCaches.
-        *                   This defaults to the one specified by $wgMainCacheType.
-        *   - cacheTTL    : Seconds to cache the aggregate data before regenerating.
-        */
-       protected function __construct( array $params ) {
-               parent::__construct( $params );
-               $this->cache = isset( $params['objectCache'] )
-                       ? wfGetCache( $params['objectCache'] )
-                       : wfGetMainCache();
-               $this->cacheTTL = isset( $params['cacheTTL'] ) ? $params['cacheTTL'] : 180; // 3 min
-       }
-
-       /**
-        * @see JobQueueAggregator::doNotifyQueueEmpty()
-        */
-       protected function doNotifyQueueEmpty( $wiki, $type ) {
-               $key = $this->getReadyQueueCacheKey();
-               // Delist the queue from the "ready queue" list
-               if ( $this->cache->add( "$key:lock", 1, 60 ) ) { // lock
-                       $curInfo = $this->cache->get( $key );
-                       if ( is_array( $curInfo ) && isset( $curInfo['pendingDBs'][$type] ) ) {
-                               if ( in_array( $wiki, $curInfo['pendingDBs'][$type] ) ) {
-                                       $curInfo['pendingDBs'][$type] = array_diff(
-                                               $curInfo['pendingDBs'][$type], array( $wiki ) );
-                                       $this->cache->set( $key, $curInfo );
-                               }
-                       }
-                       $this->cache->delete( "$key:lock" ); // unlock
-               }
-
-               return true;
-       }
-
-       /**
-        * @see JobQueueAggregator::doNotifyQueueNonEmpty()
-        */
-       protected function doNotifyQueueNonEmpty( $wiki, $type ) {
-               return true; // updated periodically
-       }
-
-       /**
-        * @see JobQueueAggregator::doAllGetReadyWikiQueues()
-        */
-       protected function doGetAllReadyWikiQueues() {
-               $key = $this->getReadyQueueCacheKey();
-               // If the cache entry wasn't present, is stale, or in .1% of cases otherwise,
-               // regenerate the cache. Use any available stale cache if another process is
-               // currently regenerating the pending DB information.
-               $pendingDbInfo = $this->cache->get( $key );
-               if ( !is_array( $pendingDbInfo )
-                       || ( time() - $pendingDbInfo['timestamp'] ) > $this->cacheTTL
-                       || mt_rand( 0, 999 ) == 0
-               ) {
-                       if ( $this->cache->add( "$key:rebuild", 1, 1800 ) ) { // lock
-                               $pendingDbInfo = array(
-                                       'pendingDBs' => $this->findPendingWikiQueues(),
-                                       'timestamp' => time()
-                               );
-                               for ( $attempts = 1; $attempts <= 25; ++$attempts ) {
-                                       if ( $this->cache->add( "$key:lock", 1, 60 ) ) { // lock
-                                               $this->cache->set( $key, $pendingDbInfo );
-                                               $this->cache->delete( "$key:lock" ); // unlock
-                                               break;
-                                       }
-                               }
-                               $this->cache->delete( "$key:rebuild" ); // unlock
-                       }
-               }
-
-               return is_array( $pendingDbInfo )
-                       ? $pendingDbInfo['pendingDBs']
-                       : array(); // cache is both empty and locked
-       }
-
-       /**
-        * @see JobQueueAggregator::doPurge()
-        */
-       protected function doPurge() {
-               return $this->cache->delete( $this->getReadyQueueCacheKey() );
-       }
-
-       /**
-        * @return string
-        */
-       private function getReadyQueueCacheKey() {
-               return "jobqueue:aggregator:ready-queues:v1"; // global
-       }
-}
index db9e764..847dd6f 100644 (file)
@@ -44,7 +44,7 @@ class JobQueueAggregatorRedis extends JobQueueAggregator {
         *                    If a hostname is specified but no port, the standard port number
         *                    6379 will be used. Required.
         */
-       protected function __construct( array $params ) {
+       public function __construct( array $params ) {
                parent::__construct( $params );
                $this->servers = isset( $params['redisServers'] )
                        ? $params['redisServers']
index 1fa6cef..c5e3a23 100644 (file)
@@ -18,7 +18,7 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @ingroup Cache
+ * @ingroup JobQueue
  */
 
 /**
diff --git a/includes/jobqueue/jobs/EnqueueJob.php b/includes/jobqueue/jobs/EnqueueJob.php
new file mode 100755 (executable)
index 0000000..46fb2aa
--- /dev/null
@@ -0,0 +1,88 @@
+<?php
+/**
+ * Router job that takes jobs and enqueues them.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup JobQueue
+ */
+
+/**
+ * Router job that takes jobs and enqueues them to their proper queues
+ *
+ * This can be used for several things:
+ *   - a) Making multi-job enqueues more robust by atomically enqueueing
+ *        a single job that pushes the actual jobs (with retry logic)
+ *   - b) Masking the latency of pushing jobs to different queues/wikis
+ *   - c) Low-latency enqueues to push jobs from warm to hot datacenters
+ *
+ * @ingroup JobQueue
+ * @since 1.25
+ */
+final class EnqueueJob extends Job {
+       /**
+        * Callers should use the factory methods instead
+        *
+        * @param Title $title
+        * @param array $params Job parameters
+        */
+       function __construct( $title, $params ) {
+               parent::__construct( 'enqueue', $title, $params );
+       }
+
+       /**
+        * @param Job|JobSpecification|array $jobs
+        * @return JobRouteJob
+        */
+       public static function newFromLocalJobs( $jobs ) {
+               $jobs = is_array( $jobs ) ? $jobs : array( $jobs );
+
+               return self::newFromJobsByWiki( array( wfWikiID() => $jobs ) );
+       }
+
+       /**
+        * @param array $jobsByWiki Map of (wiki => JobSpecification list)
+        * @return JobRouteJob
+        */
+       public static function newFromJobsByWiki( array $jobsByWiki ) {
+               $jobMapsByWiki = array();
+               foreach ( $jobsByWiki as $wiki => $jobs ) {
+                       $jobMapsByWiki[$wiki] = array();
+                       foreach ( $jobs as $job ) {
+                               if ( $job instanceof JobSpecification ) {
+                                       $jobMapsByWiki[$wiki][] = $job->toSerializableArray();
+                               } else {
+                                       throw new InvalidArgumentException( "Jobs must be of type JobSpecification." );
+                               }
+                       }
+               }
+
+               return new self( Title::newMainPage(), array( 'jobsByWiki' => $jobMapsByWiki ) );
+       }
+
+       public function run() {
+               foreach ( $this->params['jobsByWiki'] as $wiki => $jobMaps ) {
+                       $jobSpecs = array();
+                       foreach ( $jobMaps as $jobMap ) {
+                               $jobSpecs[] = JobSpecification::newFromArray( $jobMap );
+                       }
+                       JobQueueGroup::singleton( $wiki )->push( $jobSpecs );
+               }
+
+               return true;
+       }
+}
index b4ddd11..e5e521c 100644 (file)
@@ -18,6 +18,7 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
+ * @ingroup JobQueue
  * @ingroup Cache
  */
 
@@ -42,17 +43,8 @@ class HTMLCacheUpdateJob extends Job {
        function run() {
                global $wgUpdateRowsPerJob, $wgUpdateRowsPerQuery;
 
-               static $expected = array( 'recursive', 'pages' ); // new jobs have one of these
-
-               $oldRangeJob = false;
-               if ( !array_intersect( array_keys( $this->params ), $expected ) ) {
-                       // B/C for older job params formats that lack these fields:
-                       // a) base jobs with just ("table") and b) range jobs with ("table","start","end")
-                       if ( isset( $this->params['start'] ) && isset( $this->params['end'] ) ) {
-                               $oldRangeJob = true;
-                       } else {
-                               $this->params['recursive'] = true; // base job
-                       }
+               if ( isset( $this->params['table'] ) && !isset( $this->params['pages'] ) ) {
+                       $this->params['recursive'] = true; // b/c; base job
                }
 
                // Job to purge all (or a range of) backlink pages for a page
@@ -70,26 +62,12 @@ class HTMLCacheUpdateJob extends Job {
                // Job to purge pages for a set of titles
                } elseif ( isset( $this->params['pages'] ) ) {
                        $this->invalidateTitles( $this->params['pages'] );
-               // B/C for job to purge a range of backlink pages for a given page
-               } elseif ( $oldRangeJob ) {
-                       $titleArray = $this->title->getBacklinkCache()->getLinks(
-                               $this->params['table'], $this->params['start'], $this->params['end'] );
-
-                       $pages = array(); // same format BacklinkJobUtils uses
-                       foreach ( $titleArray as $tl ) {
-                               $pages[$tl->getArticleId()] = array( $tl->getNamespace(), $tl->getDbKey() );
-                       }
-
-                       $jobs = array();
-                       foreach ( array_chunk( $pages, $wgUpdateRowsPerJob ) as $pageChunk ) {
-                               $jobs[] = new HTMLCacheUpdateJob( $this->title,
-                                       array(
-                                               'table' => $this->params['table'],
-                                               'pages' => $pageChunk
-                                       ) + $this->getRootJobParams() // carry over information for de-duplication
-                               );
-                       }
-                       JobQueueGroup::singleton()->push( $jobs );
+               // Job to update a single title
+               } else {
+                       $t = $this->title;
+                       $this->invalidateTitles( array(
+                               $t->getArticleID() => array( $t->getNamespace(), $t->getDBkey() )
+                       ) );
                }
 
                return true;
index 66291e9..f94d6eb 100644 (file)
@@ -18,7 +18,7 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @ingroup Cache
+ * @ingroup JobQueue
  */
 
 /**
index 3d4cfae..a922dd3 100644 (file)
  *
  * @file
  * @ingroup Upload
+ * @ingroup JobQueue
  */
 
 /**
  * Upload a file from the upload stash into the local file repo.
  *
  * @ingroup Upload
+ * @ingroup JobQueue
  */
 class PublishStashedFileJob extends Job {
        public function __construct( $title, $params ) {
index dbc4f23..ab38138 100644 (file)
@@ -37,6 +37,7 @@ class ThumbnailRenderJob extends Job {
                $transformParams = $this->params['transformParams'];
 
                $file = wfLocalFile( $this->title );
+               $file->load( File::READ_LATEST );
 
                if ( $file && $file->exists() ) {
                        if ( $wgUploadThumbnailRenderMethod === 'jobqueue' ) {
@@ -92,9 +93,10 @@ class ThumbnailRenderJob extends Job {
 
                wfDebug( __METHOD__ . ": hitting url {$thumbUrl}\n" );
 
-               $request = MWHttpRequest::factory( $thumbUrl, array(
-                       'method' => 'HEAD',
-                       'followRedirects' => true ) );
+               $request = MWHttpRequest::factory( $thumbUrl,
+                       array( 'method' => 'HEAD', 'followRedirects' => true ),
+                       __METHOD__
+               );
 
                if ( $wgUploadThumbnailRenderHttpCustomHost ) {
                        $request->setHeader( 'Host', $wgUploadThumbnailRenderHttpCustomHost );
index 74775b5..f27194a 100644 (file)
@@ -137,8 +137,9 @@ class FormatJson {
        }
 
        /**
-        * Decodes a JSON string. It is recommended to use FormatJson::parse(), which returns more comprehensive
-        * result in case of an error, and has more parsing options.
+        * Decodes a JSON string. It is recommended to use FormatJson::parse(),
+        * which returns more comprehensive result in case of an error, and has
+        * more parsing options.
         *
         * @param string $value The JSON string being decoded
         * @param bool $assoc When true, returned objects will be converted into associative arrays.
@@ -154,7 +155,8 @@ class FormatJson {
 
        /**
         * Decodes a JSON string.
-        * Unlike FormatJson::decode(), if $value represents null value, it will be properly decoded as valid.
+        * Unlike FormatJson::decode(), if $value represents null value, it will be
+        * properly decoded as valid.
         *
         * @param string $value The JSON string being decoded
         * @param int $options A bit field that allows FORCE_ASSOC, TRY_FIXING,
diff --git a/includes/libs/BufferingStatsdDataFactory.php b/includes/libs/BufferingStatsdDataFactory.php
new file mode 100644 (file)
index 0000000..ea5b09d
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Copyright 2015
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+use Liuggio\StatsdClient\Factory\StatsdDataFactory;
+
+/**
+ * A factory for application metric data.
+ *
+ * This class prepends a context-specific prefix to each metric key and keeps
+ * a reference to each constructed metric in an internal array buffer.
+ *
+ * @since 1.25
+ */
+class BufferingStatsdDataFactory extends StatsdDataFactory {
+       protected $buffer = array();
+
+       public function __construct( $prefix ) {
+               parent::__construct();
+               $this->prefix = $prefix;
+       }
+
+       public function produceStatsdData( $key, $value = 1, $metric = self::STATSD_METRIC_COUNT ) {
+               $this->buffer[] = $entity = $this->produceStatsdDataEntity();
+               if ( $key !== null ) {
+                       $prefixedKey = ltrim( $this->prefix . '.' . $key, '.' );
+                       $entity->setKey( $prefixedKey );
+               }
+               if ( $value !== null ) {
+                       $entity->setValue( $value );
+               }
+               if ( $metric !== null ) {
+                       $entity->setMetric( $metric );
+               }
+               return $entity;
+       }
+
+       public function getBuffer() {
+               return $this->buffer;
+       }
+}
index 03bdf0d..32a27f7 100644 (file)
@@ -34,13 +34,18 @@ class ParsoidVirtualRESTService extends VirtualRESTService {
         *   * body: array( 'wikitext' => ... ) or array( 'wikitext' => ..., 'body' => true/false )
         *   * $title is optional
         * @param array $params Key/value map
-        *   - URL            : Parsoid server URL
+        *   - url            : Parsoid server URL
         *   - prefix         : Parsoid prefix for this wiki
         *   - timeout        : Parsoid timeout (optional)
         *   - forwardCookies : Cookies to forward to Parsoid, or false. (optional)
         *   - HTTPProxy      : Parsoid HTTP proxy (optional)
         */
        public function __construct( array $params ) {
+               // for backwards compatibility:
+               if ( isset( $params['URL'] ) ) {
+                       $params['url'] = $params['URL'];
+                       unset( $params['URL'] );
+               }
                parent::__construct( $params );
        }
 
@@ -59,11 +64,11 @@ class ParsoidVirtualRESTService extends VirtualRESTService {
                                throw new Exception( "Only 'local' target wiki is currently supported" );
                        } elseif ( $version !== 'v1' ) {
                                throw new Exception( "Only version 1 exists" );
-                       } else if ( $reqType !== 'page' && $reqType !== 'transform' ) {
+                       } elseif ( $reqType !== 'page' && $reqType !== 'transform' ) {
                                throw new Exception( "Request type must be either 'page' or 'transform'" );
                        }
 
-                       $req['url'] = $this->params['URL'] . '/' . urlencode( $this->params['prefix'] ) . '/';
+                       $req['url'] = $this->params['url'] . '/' . urlencode( $this->params['prefix'] ) . '/';
 
                        if ( $reqType === 'page' ) {
                                $title = $parts[3];
diff --git a/includes/libs/virtualrest/RestbaseVirtualRESTService.php b/includes/libs/virtualrest/RestbaseVirtualRESTService.php
new file mode 100644 (file)
index 0000000..8fe5b92
--- /dev/null
@@ -0,0 +1,177 @@
+<?php
+/**
+ * Virtual HTTP service client for Restbase
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/**
+ * Virtual REST service for Restbase
+ * @since 1.25
+ */
+class RestbaseVirtualRESTService extends VirtualRESTService {
+       /**
+        * Example requests:
+        *  GET /local/v1/page/{title}/html{/revision}
+        *  POST /local/v1/transform/html/to/wikitext{/title}{/revision}
+        *   * body: array( 'html' => ... )
+        *  POST /local/v1/transform/wikitext/to/html{/title}{/revision}
+        *   * body: array( 'wikitext' => ... ) or array( 'wikitext' => ..., 'bodyOnly' => true/false )
+        *
+        * @param array $params Key/value map
+        *   - url            : Restbase server URL
+        *   - domain         : Wiki domain to use
+        *   - timeout        : request timeout in seconds (optional)
+        *   - forwardCookies : cookies to forward to Restbase/Parsoid (as a Cookie
+        *                       header string) or false (optional)
+        *                       Note: forwardCookies will in the future be a boolean
+        *                       only, signifing request cookies should be forwarded
+        *                       to the service; the current state is due to the way
+        *                       VE handles this particular parameter
+        *   - HTTPProxy      : HTTP proxy to use (optional)
+        *   - parsoidCompat  : whether to parse URL as if they were meant for Parsoid
+        *                       boolean (optional)
+        */
+       public function __construct( array $params ) {
+               // set up defaults and merge them with the given params
+               $mparams = array_merge( array(
+                       'url' => 'http://localhost:7231',
+                       'domain' => 'localhost',
+                       'timeout' => 100,
+                       'forwardCookies' => false,
+                       'HTTPProxy' => null,
+                       'parsoidCompat' => false
+               ), $params );
+               // ensure the correct domain format
+               $mparams['domain'] = preg_replace(
+                               '/^(https?:\/\/)?([^\/:]+?)(\/|:\d+\/?)?$/',
+                               '$2',
+                               $mparams['domain']
+               );
+               parent::__construct( $mparams );
+       }
+
+       public function onRequests( array $reqs, Closure $idGenFunc ) {
+
+               if ( $this->params['parsoidCompat'] ) {
+                       return $this->onParsoidRequests( $reqs, $idGenFunc );
+               }
+
+               $result = array();
+               foreach ( $reqs as $key => $req ) {
+                       // replace /local/ with the current domain
+                       $req['url'] = preg_replace( '/^\/local\//', '/' . $this->params['domain'] . '/', $req['url'] );
+                       // and prefix it with the service URL
+                       $req['url'] = $this->params['url'] . $req['url'];
+                       // set the appropriate proxy, timeout and headers
+                       if ( $this->params['HTTPProxy'] ) {
+                               $req['proxy'] = $this->params['HTTPProxy'];
+                       }
+                       if ( $this->params['timeout'] != null ) {
+                               $req['reqTimeout'] = $this->params['timeout'];
+                       }
+                       if ( $this->params['forwardCookies'] ) {
+                               $req['headers']['Cookie'] = $this->params['forwardCookies'];
+                       }
+                       $result[$key] = $req;
+               }
+
+               return $result;
+
+       }
+
+       /**
+        * Remaps Parsoid requests to Restbase paths
+        */
+       public function onParsoidRequests( array $reqs, Closure $idGeneratorFunc ) {
+
+               $result = array();
+               foreach ( $reqs as $key => $req ) {
+                       $parts = explode( '/', $req['url'] );
+                       list(
+                               $targetWiki, // 'local'
+                               $version, // 'v1'
+                               $reqType // 'page' or 'transform'
+                       ) = $parts;
+                       if ( $targetWiki !== 'local' ) {
+                               throw new Exception( "Only 'local' target wiki is currently supported" );
+                       } elseif ( $reqType !== 'page' && $reqType !== 'transform' ) {
+                               throw new Exception( "Request type must be either 'page' or 'transform'" );
+                       }
+                       $req['url'] = $this->params['url'] . '/' . $this->params['domain'] . '/v1/' . $reqType . '/';
+                       if ( $reqType === 'page' ) {
+                               $title = $parts[3];
+                               if ( $parts[4] !== 'html' ) {
+                                       throw new Exception( "Only 'html' output format is currently supported" );
+                               }
+                               $req['url'] .= 'html/' . $title;
+                               if ( isset( $parts[5] ) ) {
+                                       $req['url'] .= '/' . $parts[5];
+                               } elseif ( isset( $req['query']['oldid'] ) && $req['query']['oldid'] ) {
+                                       $req['url'] .= '/' . $req['query']['oldid'];
+                                       unset( $req['query']['oldid'] );
+                               }
+                       } elseif ( $reqType === 'transform' ) {
+                               // from / to transform
+                               $req['url'] .= $parts[3] . '/to/' . $parts[5];
+                               // the title
+                               if ( isset( $parts[6] ) ) {
+                                       $req['url'] .= '/' . $parts[6];
+                               }
+                               // revision id
+                               if ( isset( $parts[7] ) ) {
+                                       $req['url'] .= '/' . $parts[7];
+                               } elseif ( isset( $req['body']['oldid'] ) && $req['body']['oldid'] ) {
+                                       $req['url'] .= '/' . $req['body']['oldid'];
+                                       unset( $req['body']['oldid'] );
+                               }
+                               if ( $parts[4] !== 'to' ) {
+                                       throw new Exception( "Part index 4 is not 'to'" );
+                               }
+                               if ( $parts[3] === 'html' & $parts[5] === 'wikitext' ) {
+                                       if ( !isset( $req['body']['html'] ) ) {
+                                               throw new Exception( "You must set an 'html' body key for this request" );
+                                       }
+                               } elseif ( $parts[3] == 'wikitext' && $parts[5] == 'html' ) {
+                                       if ( !isset( $req['body']['wikitext'] ) ) {
+                                               throw new Exception( "You must set a 'wikitext' body key for this request" );
+                                       }
+                                       if ( isset( $req['body']['body'] ) ) {
+                                               $req['body']['bodyOnly'] = $req['body']['body'];
+                                               unset( $req['body']['body'] );
+                                       }
+                               } else {
+                                       throw new Exception( "Transformation unsupported" );
+                               }
+                       }
+                       // set the appropriate proxy, timeout and headers
+                       if ( $this->params['HTTPProxy'] ) {
+                               $req['proxy'] = $this->params['HTTPProxy'];
+                       }
+                       if ( $this->params['timeout'] != null ) {
+                               $req['reqTimeout'] = $this->params['timeout'];
+                       }
+                       if ( $this->params['forwardCookies'] ) {
+                               $req['headers']['Cookie'] = $this->params['forwardCookies'];
+                       }
+                       $result[$key] = $req;
+               }
+
+               return $result;
+
+       }
+
+}
index 995b809..436fed8 100644 (file)
@@ -48,6 +48,10 @@ class BlockLogFormatter extends LogFormatter {
 
                $subtype = $this->entry->getSubtype();
                if ( $subtype === 'block' || $subtype === 'reblock' ) {
+                       if ( !isset( $params[4] ) ) {
+                               // Very old log entry without duration: means infinite
+                               $params[4] = 'infinite';
+                       }
                        // Localize the duration, and add a tooltip
                        // in English to help visitors from other wikis.
                        // The lrm is needed to make sure that the number
index 85a3052..e9b479b 100644 (file)
@@ -370,6 +370,9 @@ class ManualLogEntry extends LogEntryBase {
        /** @var int ID of the log entry */
        protected $id;
 
+       /** @var bool Whether this is a legacy log entry */
+       protected $legacy = false;
+
        /**
         * Constructor.
         *
@@ -459,6 +462,16 @@ class ManualLogEntry extends LogEntryBase {
                $this->comment = $comment;
        }
 
+       /**
+        * Set the 'legacy' flag
+        *
+        * @since 1.25
+        * @param bool $legacy
+        */
+       public function setLegacy( $legacy ) {
+               $this->legacy = $legacy;
+       }
+
        /**
         * TODO: document
         *
@@ -641,6 +654,14 @@ class ManualLogEntry extends LogEntryBase {
                return $this->comment;
        }
 
+       /**
+        * @since 1.25
+        * @return bool
+        */
+       public function isLegacy() {
+               return $this->legacy;
+       }
+
        public function getDeleted() {
                return (int)$this->deleted;
        }
index 16cf5a1..267a319 100644 (file)
@@ -336,8 +336,17 @@ class LogFormatter {
                                switch ( $entry->getSubtype() ) {
                                        case 'block':
                                                global $wgContLang;
-                                               $duration = $wgContLang->translateBlockExpiry( $parameters['5::duration'] );
-                                               $flags = BlockLogFormatter::formatBlockFlags( $parameters['6::flags'], $wgContLang );
+                                               // Keep compatibility with extensions by checking for
+                                               // new key (5::duration/6::flags) or old key (0/optional 1)
+                                               if ( $entry->isLegacy() ) {
+                                                       $rawDuration = $parameters[0];
+                                                       $rawFlags = isset( $parameters[1] ) ? $parameters[1] : '';
+                                               } else {
+                                                       $rawDuration = $parameters['5::duration'];
+                                                       $rawFlags = $parameters['6::flags'];
+                                               }
+                                               $duration = $wgContLang->translateBlockExpiry( $rawDuration );
+                                               $flags = BlockLogFormatter::formatBlockFlags( $rawFlags, $wgContLang );
                                                $text = wfMessage( 'blocklogentry' )
                                                        ->rawParams( $target, $duration, $flags )->inContentLanguage()->escaped();
                                                break;
@@ -354,6 +363,19 @@ class LogFormatter {
                                                break;
                                }
                                break;
+
+                       case 'import':
+                               switch ( $entry->getSubtype() ) {
+                                       case 'upload':
+                                               $text = wfMessage( 'import-logentry-upload' )
+                                                       ->rawParams( $target )->inContentLanguage()->escaped();
+                                               break;
+                                       case 'interwiki':
+                                               $text = wfMessage( 'import-logentry-interwiki' )
+                                                       ->rawParams( $target )->inContentLanguage()->escaped();
+                                               break;
+                               }
+                               break;
                        // case 'suppress' --private log -- aaron  (so we know who to blame in a few years :-D)
                        // default:
                }
index 30dee81..82e5808 100644 (file)
@@ -422,6 +422,10 @@ class LogPage {
                $logEntry->setTarget( $target );
                $logEntry->setPerformer( $doer );
                $logEntry->setParameters( $params );
+               // All log entries using the LogPage to insert into the logging table
+               // are using the old logging system and therefore the legacy flag is
+               // needed to say the LogFormatter the parameters have numeric keys
+               $logEntry->setLegacy( true );
 
                $formatter = LogFormatter::newFromEntry( $logEntry );
                $context = RequestContext::newExtraneousContext( $target );
index b7657cb..f56a947 100644 (file)
@@ -125,15 +125,16 @@ class ExifBitmapHandler extends BitmapHandler {
 
        /**
         * @param File $image
+        * @param bool|IContextSource $context Context to use (optional)
         * @return array|bool
         */
-       function formatMetadata( $image ) {
+       function formatMetadata( $image, $context = false ) {
                $meta = $this->getCommonMetaArray( $image );
                if ( count( $meta ) === 0 ) {
                        return false;
                }
 
-               return $this->formatMetadataHelper( $meta );
+               return $this->formatMetadataHelper( $meta, $context );
        }
 
        public function getCommonMetaArray( File $file ) {
index 5992be1..e3621fb 100644 (file)
@@ -44,15 +44,16 @@ class GIFHandler extends BitmapHandler {
 
        /**
         * @param File $image
+        * @param bool|IContextSource $context Context to use (optional)
         * @return array|bool
         */
-       function formatMetadata( $image ) {
+       function formatMetadata( $image, $context = false ) {
                $meta = $this->getCommonMetaArray( $image );
                if ( count( $meta ) === 0 ) {
                        return false;
                }
 
-               return $this->formatMetadataHelper( $meta );
+               return $this->formatMetadataHelper( $meta, $context );
        }
 
        /**
index 787f21e..968e424 100644 (file)
@@ -245,11 +245,11 @@ abstract class ImageHandler extends MediaHandler {
                if ( $pages === false || $pages <= 1 ) {
                        $msg = wfMessage( 'file-info-size' )->numParams( $file->getWidth(),
                                $file->getHeight() )->params( $size,
-                                       $file->getMimeType() )->parse();
+                                       '<span class="mime-type">' . $file->getMimeType() . '</span>' )->parse();
                } else {
                        $msg = wfMessage( 'file-info-size-pages' )->numParams( $file->getWidth(),
                                $file->getHeight() )->params( $size,
-                                       $file->getMimeType() )->numParams( $pages )->parse();
+                                       '<span class="mime-type">' . $file->getMimeType() . '</span>' )->numParams( $pages )->parse();
                }
 
                return $msg;
index b88a1b1..33aed34 100644 (file)
@@ -507,9 +507,10 @@ abstract class MediaHandler {
         * to some standard. That makes it possible to do things like visual
         * indication of grouped and chained streams in ogg container files.
         * @param File $image
+        * @param bool|IContextSource $context Context to use (optional)
         * @return array|bool
         */
-       function formatMetadata( $image ) {
+       function formatMetadata( $image, $context = false ) {
                return false;
        }
 
@@ -520,15 +521,16 @@ abstract class MediaHandler {
         * This is used by the media handlers that use the FormatMetadata class
         *
         * @param array $metadataArray Metadata array
+        * @param bool|IContextSource $context Context to use (optional)
         * @return array Array for use displaying metadata.
         */
-       function formatMetadataHelper( $metadataArray ) {
+       function formatMetadataHelper( $metadataArray, $context = false ) {
                $result = array(
                        'visible' => array(),
                        'collapsed' => array()
                );
 
-               $formatted = FormatMetadata::getFormattedData( $metadataArray );
+               $formatted = FormatMetadata::getFormattedData( $metadataArray, $context );
                // Sort fields into visible and collapsed
                $visibleFields = $this->visibleMetadataFields();
                foreach ( $formatted as $name => $value ) {
@@ -637,7 +639,7 @@ abstract class MediaHandler {
         */
        static function getGeneralLongDesc( $file ) {
                return wfMessage( 'file-info' )->sizeParams( $file->getSize() )
-                       ->params( $file->getMimeType() )->parse();
+                       ->params( '<span class="mime-type">' . $file->getMimeType() . '</span>' )->parse();
        }
 
        /**
@@ -859,4 +861,26 @@ abstract class MediaHandler {
        public function sanitizeParamsForBucketing( $params ) {
                return $params;
        }
+
+       /**
+        * Gets configuration for the file warning message. Return value of
+        * the following structure:
+        *   array(
+        *     'module' => 'example.filewarning.messages', // Required, module with messages loaded for the client
+        *     'messages' => array( // Required, array of names of messages
+        *       'main' => 'example-filewarning-main', // Required, main warning message
+        *       'header' => 'example-filewarning-header', // Optional, header for warning dialog
+        *       'footer' => 'example-filewarning-footer', // Optional, footer for warning dialog
+        *       'info' => 'example-filewarning-info', // Optional, text for more-information link (see below)
+        *     ),
+        *     'link' => 'http://example.com', // Optional, link for more information
+        *   )
+        *
+        * Returns null if no warning is necessary.
+        * @param File $file
+        * @return array|null
+        */
+       public function getWarningConfig( $file ) {
+               return null;
+       }
 }
index 3cf8488..5f1aca5 100644 (file)
@@ -49,15 +49,16 @@ class PNGHandler extends BitmapHandler {
 
        /**
         * @param File $image
+        * @param bool|IContextSource $context Context to use (optional)
         * @return array|bool
         */
-       function formatMetadata( $image ) {
+       function formatMetadata( $image, $context = false ) {
                $meta = $this->getCommonMetaArray( $image );
                if ( count( $meta ) === 0 ) {
                        return false;
                }
 
-               return $this->formatMetadataHelper( $meta );
+               return $this->formatMetadataHelper( $meta, $context );
        }
 
        /**
index 53abfef..8fdfa47 100644 (file)
@@ -410,9 +410,10 @@ class SvgHandler extends ImageHandler {
 
        /**
         * @param File $file
+        * @param bool|IContextSource $context Context to use (optional)
         * @return array|bool
         */
-       function formatMetadata( $file ) {
+       function formatMetadata( $file, $context = false ) {
                $result = array(
                        'visible' => array(),
                        'collapsed' => array()
@@ -486,7 +487,7 @@ class SvgHandler extends ImageHandler {
        function makeParamString( $params ) {
                $lang = '';
                if ( isset( $params['lang'] ) && $params['lang'] !== 'en' ) {
-                       $params['lang'] = mb_strtolower( $params['lang'] );
+                       $params['lang'] = strtolower( $params['lang'] );
                        $lang = "lang{$params['lang']}-";
                }
                if ( !isset( $params['width'] ) ) {
index 24d2a22..789f1e3 100644 (file)
@@ -117,7 +117,7 @@ class ObjectCacheSessionHandler {
         * Callback when writing session data.
         *
         * @param string $id Session id
-        * @param mixed $data Session data
+        * @param string $data Session data
         * @return bool Success
         */
        static function write( $id, $data ) {
index 7aa2cc3..34affc7 100644 (file)
@@ -26,7 +26,7 @@
  * those that writes go to. This can easily be used with redis for example.
  *
  * In the WAN scenario (e.g. multi-datacenter case), this is useful when
- * writes are rare or usually takes place on the primary datacenter.
+ * writes are rare or they usually take place in the primary datacenter.
  *
  * @ingroup Cache
  * @since 1.25
index 2fb9ff9..82eeb84 100644 (file)
@@ -145,6 +145,8 @@ class SqlBagOStuff extends BagOStuff {
                                $type = isset( $info['type'] ) ? $info['type'] : 'mysql';
                                $host = isset( $info['host'] ) ? $info['host'] : '[unknown]';
                                $this->logger->debug( __CLASS__ . ": connecting to $host" );
+                               // Use a blank trx profiler to ignore expections as this is a cache
+                               $info['trxProfiler'] = new TransactionProfiler();
                                $db = DatabaseBase::factory( $type, $info );
                                $db->clearFlag( DBO_TRX );
                        } else {
index 817b4b6..eb597d2 100644 (file)
@@ -30,8 +30,6 @@
  * See design.txt for an overview.
  * Note: edit user interface and cache support functions have been
  * moved to separate EditPage and HTMLFileCache classes.
- *
- * @internal documentation reviewed 15 Mar 2010
  */
 class Article implements Page {
        /** @var IContextSource The context this Article is executed in */
@@ -574,7 +572,7 @@ class Article implements Page {
                $useParserCache = $this->mPage->isParserCacheUsed( $parserOptions, $oldid );
                wfDebug( 'Article::view using parser cache: ' . ( $useParserCache ? 'yes' : 'no' ) . "\n" );
                if ( $user->getStubThreshold() ) {
-                       wfIncrStats( 'pcache_miss_stub' );
+                       $this->getContext()->getStats()->increment( 'pcache_miss_stub' );
                }
 
                $this->showRedirectedFromHeader();
@@ -1634,7 +1632,7 @@ class Article implements Page {
                                $context->msg( 'historywarning' )->numParams( $revisions )->parse() .
                                $context->msg( 'word-separator' )->escaped() . Linker::linkKnown( $title,
                                        $context->msg( 'history' )->escaped(),
-                                       array( 'rel' => 'archives' ),
+                                       array(),
                                        array( 'action' => 'history' ) ) .
                                '</strong>'
                        );
index 855f233..8f635cf 100644 (file)
@@ -140,7 +140,7 @@ class ImagePage extends Article {
 
                if ( $wgShowEXIF && $this->displayImg->exists() ) {
                        // @todo FIXME: Bad interface, see note on MediaHandler::formatMetadata().
-                       $formattedMetadata = $this->displayImg->formatMetadata();
+                       $formattedMetadata = $this->displayImg->formatMetadata( $this->getContext() );
                        $showmeta = $formattedMetadata !== false;
                } else {
                        $showmeta = false;
@@ -505,6 +505,22 @@ class ImagePage extends Article {
 
                        $longDesc = $this->getContext()->msg( 'parentheses', $this->displayImg->getLongDesc() )->text();
 
+                       $handler = $this->displayImg->getHandler();
+
+                       // If this is a filetype with potential issues, warn the user.
+                       if ( $handler ) {
+                               $warningConfig = $handler->getWarningConfig( $this->displayImg );
+
+                               if ( $warningConfig !== null ) {
+                                       // The warning will be displayed via CSS and JavaScript.
+                                       // We just need to tell the client side what message to use.
+                                       $output = $this->getContext()->getOutput();
+                                       $output->addJsConfigVars( 'wgFileWarning', $warningConfig );
+                                       $output->addModules( $warningConfig['module'] );
+                                       $output->addModules( 'mediawiki.filewarning' );
+                               }
+                       }
+
                        $medialink = "[[Media:$filename|$linktext]]";
 
                        if ( !$this->displayImg->isSafeFile() ) {
index fe61f6f..0452c41 100644 (file)
@@ -31,8 +31,6 @@ interface Page {
  *
  * Some fields are public only for backwards-compatibility. Use accessors.
  * In the past, this class was part of Article.php and everything was public.
- *
- * @internal documentation reviewed 15 Mar 2010
  */
 class WikiPage implements Page, IDBAccessObject {
        // Constants for $mDataLoadedFrom and related
@@ -604,13 +602,23 @@ class WikiPage implements Page, IDBAccessObject {
                        return; // page doesn't exist or is missing page_latest info
                }
 
-               // Bug 37225: if session S1 loads the page row FOR UPDATE, the result always includes the
-               // latest changes committed. This is true even within REPEATABLE-READ transactions, where
-               // S1 normally only sees changes committed before the first S1 SELECT. Thus we need S1 to
-               // also gets the revision row FOR UPDATE; otherwise, it may not find it since a page row
-               // UPDATE and revision row INSERT by S2 may have happened after the first S1 SELECT.
-               // http://dev.mysql.com/doc/refman/5.0/en/set-transaction.html#isolevel_repeatable-read.
-               $flags = ( $this->mDataLoadedFrom == self::READ_LOCKING ) ? Revision::READ_LOCKING : 0;
+               if ( $this->mDataLoadedFrom == self::READ_LOCKING ) {
+                       // Bug 37225: if session S1 loads the page row FOR UPDATE, the result always
+                       // includes the latest changes committed. This is true even within REPEATABLE-READ
+                       // transactions, where S1 normally only sees changes committed before the first S1
+                       // SELECT. Thus we need S1 to also gets the revision row FOR UPDATE; otherwise, it
+                       // may not find it since a page row UPDATE and revision row INSERT by S2 may have
+                       // happened after the first S1 SELECT.
+                       // http://dev.mysql.com/doc/refman/5.0/en/set-transaction.html#isolevel_repeatable-read.
+                       $flags = Revision::READ_LOCKING;
+               } elseif ( $this->mDataLoadedFrom == self::READ_LATEST ) {
+                       // Bug T93976: if page_latest was loaded from the master, fetch the
+                       // revision from there as well, as it may not exist yet on a slave DB.
+                       // Also, this keeps the queries in the same REPEATABLE-READ snapshot.
+                       $flags = Revision::READ_LATEST;
+               } else {
+                       $flags = 0;
+               }
                $revision = Revision::newFromPageId( $this->getId(), $latest, $flags );
                if ( $revision ) { // sanity
                        $this->setLastEdit( $revision );
@@ -1608,7 +1616,9 @@ class WikiPage implements Page, IDBAccessObject {
         * error will be returned. These two conditions are also possible with
         * auto-detection due to MediaWiki's performance-optimised locking strategy.
         *
-        * @param bool|int $baseRevId The revision ID this edit was based off, if any
+        * @param bool|int $baseRevId The revision ID this edit was based off, if any.
+        *   This is not the parent revision ID, rather the revision ID for older
+        *   content used as the source for a rollback, for example.
         * @param User $user The user doing the edit
         *
         * @throws MWException
@@ -1668,7 +1678,9 @@ class WikiPage implements Page, IDBAccessObject {
         * error will be returned. These two conditions are also possible with
         * auto-detection due to MediaWiki's performance-optimised locking strategy.
         *
-        * @param bool|int $baseRevId The revision ID this edit was based off, if any
+        * @param bool|int $baseRevId The revision ID this edit was based off, if any.
+        *   This is not the parent revision ID, rather the revision ID for older
+        *   content used as the source for a rollback, for example.
         * @param User $user The user doing the edit
         * @param string $serialFormat Format for storing the content in the
         *   database.
@@ -1802,7 +1814,7 @@ class WikiPage implements Page, IDBAccessObject {
                                $dbw->begin( __METHOD__ );
                                try {
 
-                                       $prepStatus = $content->prepareSave( $this, $flags, $baseRevId, $user );
+                                       $prepStatus = $content->prepareSave( $this, $flags, $oldid, $user );
                                        $status->merge( $prepStatus );
 
                                        if ( !$status->isOK() ) {
@@ -1881,7 +1893,7 @@ class WikiPage implements Page, IDBAccessObject {
                        $dbw->begin( __METHOD__ );
                        try {
 
-                               $prepStatus = $content->prepareSave( $this, $flags, $baseRevId, $user );
+                               $prepStatus = $content->prepareSave( $this, $flags, $oldid, $user );
                                $status->merge( $prepStatus );
 
                                if ( !$status->isOK() ) {
@@ -1980,6 +1992,7 @@ class WikiPage implements Page, IDBAccessObject {
                // Promote user to any groups they meet the criteria for
                $dbw->onTransactionIdle( function () use ( $user ) {
                        $user->addAutopromoteOnceGroups( 'onEdit' );
+                       $user->addAutopromoteOnceGroups( 'onView' ); // b/c
                } );
 
                return $status;
@@ -3061,7 +3074,7 @@ class WikiPage implements Page, IDBAccessObject {
                }
 
                // Generate the edit summary if necessary
-               $target = Revision::newFromId( $s->rev_id );
+               $target = Revision::newFromId( $s->rev_id, Revision::READ_LATEST );
                if ( empty( $summary ) ) {
                        if ( $from == '' ) { // no public user name
                                $summary = wfMessage( 'revertpage-nouser' );
@@ -3402,7 +3415,9 @@ class WikiPage implements Page, IDBAccessObject {
 
                // Check if the last link refresh was before page_touched
                if ( $this->getLinksTimestamp() < $this->getTouched() ) {
-                       JobQueueGroup::singleton()->push( new RefreshLinksJob( $this->mTitle, $params ) );
+                       JobQueueGroup::singleton()->push( EnqueueJob::newFromLocalJobs(
+                               new JobSpecification( 'refreshLinks', $params, array(), $this->mTitle )
+                       ) );
                        return true;
                }
 
index e382cf3..950c0d4 100644 (file)
@@ -35,7 +35,6 @@ class CacheTime {
        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 uncacheable. Used in ParserCache.
-               $mContainsOldMagic,           # Boolean variable indicating if the input contained variables like {{CURRENTDAY}}
                $mCacheRevisionId = null;     # Revision ID that was parsed
 
        /**
@@ -45,21 +44,6 @@ class CacheTime {
                return wfTimestamp( TS_MW, $this->mCacheTime );
        }
 
-       /**
-        * @return bool
-        */
-       public function containsOldMagic() {
-               return $this->mContainsOldMagic;
-       }
-
-       /**
-        * @param bool $com
-        * @return bool
-        */
-       public function setContainsOldMagic( $com ) {
-               return wfSetVar( $this->mContainsOldMagic, $com );
-       }
-
        /**
         * setCacheTime() sets the timestamp expressing when the page has been rendered.
         * This does not control expiry, see updateCacheExpiry() for that!
@@ -133,10 +117,6 @@ class CacheTime {
                        $expire = min( $expire, $wgParserCacheExpireTime );
                }
 
-               if ( $this->containsOldMagic() ) { //compatibility hack
-                       $expire = min( $expire, 3600 ); # 1 hour
-               }
-
                if ( $expire <= 0 ) {
                        return 0; // not cacheable
                } else {
index a9b0c82..2f443c0 100644 (file)
@@ -4096,7 +4096,7 @@ class Parser {
                        return $obj->tc_contents;
                }
 
-               $req = MWHttpRequest::factory( $url );
+               $req = MWHttpRequest::factory( $url, array(), __METHOD__ );
                $status = $req->execute(); // Status object
                if ( $status->isOK() ) {
                        $text = $req->getContent();
index ad131f4..bc8e4a6 100644 (file)
@@ -257,8 +257,6 @@ class ParserCache {
                        $optionsKey->setCacheRevisionId( $revId );
                        $parserOutput->setCacheRevisionId( $revId );
 
-                       $optionsKey->setContainsOldMagic( $parserOutput->containsOldMagic() );
-
                        $parserOutputKey = $this->getParserOutputKey( $page,
                                $popts->optionsHash( $optionsKey->mUsedOptions, $page->getTitle() ) );
 
index b09fe76..9e06ee2 100644 (file)
@@ -25,7 +25,7 @@
  * @brief Set options of the Parser
  *
  * All member variables are supposed to be private in theory, although in
- * practise this is not the case.
+ * practice this is not the case.
  *
  * @ingroup Parser
  */
index f249017..bae3eaa 100644 (file)
@@ -62,12 +62,11 @@ class ParserOutput extends CacheTime {
                '#<(?:mw:)?editsection page="(.*?)" section="(.*?)"(?:/>|>(.*?)(</(?:mw:)?editsection>))#';
 
        public function __construct( $text = '', $languageLinks = array(), $categoryLinks = array(),
-               $containsOldMagic = false, $titletext = ''
+               $unused = false, $titletext = ''
        ) {
                $this->mText = $text;
                $this->mLanguageLinks = $languageLinks;
                $this->mCategories = $categoryLinks;
-               $this->mContainsOldMagic = $containsOldMagic;
                $this->mTitleText = $titletext;
        }
 
index 54cbb27..a702d2e 100644 (file)
@@ -154,7 +154,7 @@ class PoolWorkArticleView extends PoolCounterWork {
                // Make sure file cache is not used on uncacheable content.
                // Output that has magic words in it can still use the parser cache
                // (if enabled), though it will generally expire sooner.
-               if ( !$this->parserOutput->isCacheable() || $this->parserOutput->containsOldMagic() ) {
+               if ( !$this->parserOutput->isCacheable() ) {
                        $wgUseFileCache = false;
                }
 
index 4b74206..1c9824a 100644 (file)
@@ -46,6 +46,7 @@ abstract class Profiler {
                'db' => 'ProfilerOutputDb',
                'text' => 'ProfilerOutputText',
                'udp' => 'ProfilerOutputUdp',
+               'dump' => 'ProfilerOutputDump',
        );
 
        /** @var Profiler */
@@ -133,7 +134,7 @@ abstract class Profiler {
        /**
         * @param ScopedCallback $section
         */
-       public function scopedProfileOut( ScopedCallback &$section ) {
+       public function scopedProfileOut( ScopedCallback &$section = null ) {
                $section = null;
        }
 
@@ -167,7 +168,7 @@ abstract class Profiler {
                if ( !is_array( $output ) ) {
                        $output = array( $output );
                }
-
+               $stats = null;
                foreach ( $output as $outType ) {
                        if ( !isset( self::$outputTypes[$outType] ) ) {
                                throw new MWException( "'$outType' is an invalid output type" );
@@ -177,7 +178,10 @@ abstract class Profiler {
                        /** @var ProfilerOutput $profileOut */
                        $profileOut = new $class( $this, $this->params );
                        if ( $profileOut->canUse() ) {
-                               $profileOut->log( $this->getFunctionStats() );
+                               if ( is_null( $stats ) ) {
+                                       $stats = $this->getFunctionStats();
+                               }
+                               $profileOut->log( $stats );
                        }
                }
        }
index 5580f94..1d04536 100644 (file)
@@ -28,7 +28,7 @@
  */
 class ProfilerStub extends Profiler {
        public function scopedProfileIn( $section ) {
-               return new ScopedCallback( null ); // no-op
+               return null; // no-op
        }
 
        public function getFunctionStats() {
index 7a50497..f36cdc1 100644 (file)
@@ -183,4 +183,12 @@ class ProfilerXhprof extends Profiler {
                }
                return implode( "\n", $out );
        }
+
+       /**
+        * Retrieve raw data from xhprof
+        * @return array
+        */
+       public function getRawData() {
+               return $this->xhprof->getRawData();
+       }
 }
diff --git a/includes/profiler/output/ProfilerOutputDump.php b/includes/profiler/output/ProfilerOutputDump.php
new file mode 100644 (file)
index 0000000..bf4b85c
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Profiler dumping output in xhprof dump file
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @ingroup Profiler
+ */
+
+/**
+ * Profiler dumping output in xhprof dump file
+ * @ingroup Profiler
+ *
+ * @since 1.25
+ */
+class ProfilerOutputDump extends ProfilerOutput {
+
+       protected $suffix = ".xhprof";
+
+       /**
+        * Can this output type be used?
+        *
+        * @return bool
+        */
+       public function canUse() {
+               if ( empty( $this->params['outputDir'] ) ) {
+                       return false;
+               }
+               return true;
+       }
+
+       public function log( array $stats ) {
+               $data = $this->collector->getRawData();
+               $filename = sprintf( "%s/%s.%s%s", $this->params['outputDir'], uniqid(), $this->collector->getProfileID(), $this->suffix );
+               file_put_contents( $filename, serialize( $data ) );
+       }
+}
index a2dcd59..f85b878 100644 (file)
@@ -44,6 +44,7 @@ class ExtensionProcessor implements Processor {
                'APIMetaModules',
                'APIPropModules',
                'APIListModules',
+               'ValidSkinNames',
        );
 
        /**
index 5b18e72..52e860c 100644 (file)
@@ -142,8 +142,8 @@ class ExtensionRegistry {
                foreach ( $info['globals'] as $key => $val ) {
                        if ( !isset( $GLOBALS[$key] ) || !$GLOBALS[$key] ) {
                                $GLOBALS[$key] = $val;
-                       } elseif ( $key === 'wgHooks' ) {
-                               // Special case $wgHooks, which requires a recursive merge.
+                       } elseif ( $key === 'wgHooks' || $key === 'wgExtensionCredits' ) {
+                               // Special case $wgHooks and $wgExtensionCredits, which require a recursive merge.
                                // Ideally it would have been taken care of in the first if block though.
                                $GLOBALS[$key] = array_merge_recursive( $GLOBALS[$key], $val );
                        } elseif ( $key === 'wgGroupPermissions' ) {
index 1922999..5eab3cb 100644 (file)
@@ -461,6 +461,17 @@ class ResourceLoader {
                }
        }
 
+       /**
+        * Check whether a ResourceLoader module is registered
+        *
+        * @since 1.25
+        * @param string $name
+        * @return bool
+        */
+       public function isModuleRegistered( $name ) {
+               return isset( $this->moduleInfos[$name] );
+       }
+
        /**
         * Get the ResourceLoaderModule object for a given module name.
         *
@@ -854,9 +865,11 @@ class ResourceLoader {
                $states = array();
 
                if ( !count( $modules ) && !count( $missing ) ) {
-                       return "/* This file is the Web entry point for MediaWiki's ResourceLoader:
+                       return <<<MESSAGE
+/* This file is the Web entry point for MediaWiki's ResourceLoader:
    <https://www.mediawiki.org/wiki/ResourceLoader>. In this request,
-   no modules were requested. Max made me put this here. */";
+   no modules were requested. Max made me put this here. */
+MESSAGE;
                }
 
                $image = $context->getImageObj();
index fbca08e..a46c931 100644 (file)
@@ -295,6 +295,18 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                }
                if ( $hasTemplates ) {
                        $this->dependencies[] = 'mediawiki.template';
+                       // Ensure relevant template compiler module gets loaded
+                       foreach ( $this->templates as $alias => $templatePath ) {
+                               if ( is_int( $alias ) ) {
+                                       $alias = $templatePath;
+                               }
+                               $suffix = explode( '.', $alias );
+                               $suffix = end( $suffix );
+                               $compilerModule = 'mediawiki.template.' . $suffix;
+                               if ( $suffix !== 'html' && !in_array( $compilerModule, $this->dependencies ) ) {
+                                       $this->dependencies[] = $compilerModule;
+                               }
+                       }
                }
        }
 
@@ -587,9 +599,7 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
         * @return array
         */
        public function getDefinitionSummary( ResourceLoaderContext $context ) {
-               $summary = array(
-                       'class' => get_class( $this ),
-               );
+               $summary = parent::getDefinitionSummary( $context );
                foreach ( array(
                        'scripts',
                        'debugScripts',
diff --git a/includes/resourceloader/ResourceLoaderFilePageModule.php b/includes/resourceloader/ResourceLoaderFilePageModule.php
deleted file mode 100644 (file)
index 8c7fbe7..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * Resource loader module for MediaWiki:Filepage.css
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- */
-
-/**
- * ResourceLoader definition for MediaWiki:Filepage.css
- */
-class ResourceLoaderFilePageModule extends ResourceLoaderWikiModule {
-
-       /**
-        * @param ResourceLoaderContext $context
-        * @return array
-        */
-       protected function getPages( ResourceLoaderContext $context ) {
-               return array(
-                       'MediaWiki:Filepage.css' => array( 'type' => 'style' ),
-               );
-       }
-}
index c6e345f..4a1f409 100644 (file)
@@ -349,7 +349,12 @@ class ResourceLoaderImage {
                        }
 
                        $handler = new SvgHandler;
-                       $res = $handler->rasterize( $tempFilenameSvg, $tempFilenamePng, $metadata['width'], $metadata['height'] );
+                       $res = $handler->rasterize(
+                               $tempFilenameSvg,
+                               $tempFilenamePng,
+                               $metadata['width'],
+                               $metadata['height']
+                       );
                        unlink( $tempFilenameSvg );
 
                        $png = null;
index 67806ff..5be4419 100644 (file)
@@ -59,11 +59,13 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         *         'prefix' => [CSS class prefix],
         *         // List of variants that may be used for the image files
         *         'variants' => array(
-        *             // ([image type] is a string, used in generated CSS class names and to match variants to images)
+        *             // ([image type] is a string, used in generated CSS class
+        *             //  names and to match variants to images)
         *             [image type] => array(
         *                 [variant name] => array(
         *                     'color' => [color string, e.g. '#ffff00'],
-        *                     'global' => [boolean, if true, this variant is available for all images of this type],
+        *                     'global' => [boolean, if true, this variant is available
+        *                                  for all images of this type],
         *                 ),
         *             )
         *         ),
@@ -73,7 +75,8 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
         *                 [file path string],
         *                 [file path string] => array(
         *                     'name' => [image name string, defaults to file name],
-        *                     'variants' => [array of variant name strings, variants available for this image],
+        *                     'variants' => [array of variant name strings, variants
+        *                                    available for this image],
         *                 ),
         *             )
         *         ),
@@ -167,7 +170,13 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
                                                $variantConfig = array();
                                        }
 
-                                       $image = new ResourceLoaderImage( $name, $this->getName(), $imageDesc, $this->localBasePath, $variantConfig );
+                                       $image = new ResourceLoaderImage(
+                                               $name,
+                                               $this->getName(),
+                                               $imageDesc,
+                                               $this->localBasePath,
+                                               $variantConfig
+                                       );
                                        $this->imageObjects[ $image->getName() ] = $image;
                                }
                        }
@@ -255,18 +264,23 @@ class ResourceLoaderImageModule extends ResourceLoaderModule {
        }
 
        /**
+        * SVG support using a transparent gradient to guarantee cross-browser
+        * compatibility (browsers able to understand gradient syntax support also SVG).
+        * http://pauginer.tumblr.com/post/36614680636/invisible-gradient-technique
+        *
+        * Keep synchronized with the .background-image-svg LESS mixin in
+        * /resources/src/mediawiki.less/mediawiki.mixins.less.
+        *
         * @param string $primary Primary URI
         * @param string $fallback Fallback URI
         * @return string[] CSS declarations to use given URIs as background-image
         */
        protected function getCssDeclarations( $primary, $fallback ) {
-               // SVG support using a transparent gradient to guarantee cross-browser
-               // compatibility (browsers able to understand gradient syntax support also SVG).
-               // http://pauginer.tumblr.com/post/36614680636/invisible-gradient-technique
                return array(
                        "background-image: url($fallback);",
                        "background-image: -webkit-linear-gradient(transparent, transparent), url($primary);",
                        "background-image: linear-gradient(transparent, transparent), url($primary);",
+                       "background-image: -o-linear-gradient(transparent, transparent), url($fallback);",
                );
        }
 
diff --git a/includes/resourceloader/ResourceLoaderNoscriptModule.php b/includes/resourceloader/ResourceLoaderNoscriptModule.php
deleted file mode 100644 (file)
index 61927d7..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-/**
- * Resource loader for site customizations for users without JavaScript enabled.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Trevor Parscal
- * @author Roan Kattouw
- */
-
-/**
- * Module for site customizations
- */
-class ResourceLoaderNoscriptModule extends ResourceLoaderWikiModule {
-
-       /* Protected Methods */
-
-       /**
-        * Gets list of pages used by this module.  Obviously, it makes absolutely no
-        * sense to include JavaScript files here... :D
-        *
-        * @param ResourceLoaderContext $context
-        *
-        * @return array List of pages
-        */
-       protected function getPages( ResourceLoaderContext $context ) {
-               return array( 'MediaWiki:Noscript.css' => array( 'type' => 'style' ) );
-       }
-
-       /* Methods */
-
-       /**
-        * Gets group name
-        *
-        * @return string Name of group
-        */
-       public function getGroup() {
-               return 'noscript';
-       }
-}
index 1d9721a..19e0bae 100644 (file)
  */
 class ResourceLoaderSiteModule extends ResourceLoaderWikiModule {
 
-       /* Protected Methods */
-
        /**
-        * Gets list of pages used by this module
+        * Get list of pages used by this module
         *
         * @param ResourceLoaderContext $context
-        *
         * @return array List of pages
         */
        protected function getPages( ResourceLoaderContext $context ) {
@@ -45,18 +42,16 @@ class ResourceLoaderSiteModule extends ResourceLoaderWikiModule {
                if ( $this->getConfig()->get( 'UseSiteCss' ) ) {
                        $pages['MediaWiki:Common.css'] = array( 'type' => 'style' );
                        $pages['MediaWiki:' . ucfirst( $context->getSkin() ) . '.css'] = array( 'type' => 'style' );
+                       $pages['MediaWiki:Print.css'] = array( 'type' => 'style', 'media' => 'print' );
 
                }
-               $pages['MediaWiki:Print.css'] = array( 'type' => 'style', 'media' => 'print' );
                return $pages;
        }
 
-       /* Methods */
-
        /**
-        * Gets group name
+        * Get group name
         *
-        * @return string Name of group
+        * @return string
         */
        public function getGroup() {
                return 'site';
index 9835932..3ba63e6 100644 (file)
@@ -31,11 +31,33 @@ class ResourceLoaderSkinModule extends ResourceLoaderFileModule {
         */
        public function getStyles( ResourceLoaderContext $context ) {
                $logo = $this->getConfig()->get( 'Logo' );
+               $logoHD = $this->getConfig()->get( 'LogoHD' );
                $styles = parent::getStyles( $context );
                $styles['all'][] = '.mw-wiki-logo { background-image: ' .
                        CSSMin::buildUrlValue( $logo ) .
                        '; }';
-
+               if ( $logoHD ) {
+                       if ( isset( $logoHD['1.5x'] ) ) {
+                               $styles[
+                                       '(-webkit-min-device-pixel-ratio: 1.5), ' .
+                                       '(min--moz-device-pixel-ratio: 1.5), ' .
+                                       '(min-resolution: 1.5dppx), ' .
+                                       '(min-resolution: 144dpi)'
+                               ][] = '.mw-wiki-logo { background-image: ' .
+                               CSSMin::buildUrlValue( $logoHD['1.5x'] ) .';' .
+                               'background-size: 135px auto; }';
+                       }
+                       if ( isset( $logoHD['2x'] ) ) {
+                               $styles[
+                                       '(-webkit-min-device-pixel-ratio: 2), ' .
+                                       '(min--moz-device-pixel-ratio: 2),'.
+                                       '(min-resolution: 2dppx), ' .
+                                       '(min-resolution: 192dpi)'
+                               ][] = '.mw-wiki-logo { background-image: ' .
+                               CSSMin::buildUrlValue( $logoHD['2x'] ) . ';' .
+                               'background-size: 135px auto; }';
+                       }
+               }
                return $styles;
        }
 
@@ -64,6 +86,7 @@ class ResourceLoaderSkinModule extends ResourceLoaderFileModule {
         */
        public function getModifiedHash( ResourceLoaderContext $context ) {
                $logo = $this->getConfig()->get( 'Logo' );
-               return md5( parent::getModifiedHash( $context ) . $logo );
+               $logoHD = $this->getConfig()->get( 'LogoHD' );
+               return md5( parent::getModifiedHash( $context ) . $logo . json_encode( $logoHD ) );
        }
 }
diff --git a/includes/resourceloader/ResourceLoaderSpecialCharacterDataModule.php b/includes/resourceloader/ResourceLoaderSpecialCharacterDataModule.php
new file mode 100644 (file)
index 0000000..3dea44d
--- /dev/null
@@ -0,0 +1,107 @@
+<?php
+/**
+ * Resource loader module for populating special characters data for some
+ * editing extensions to use.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * Resource loader module for populating special characters data for some
+ * editing extensions to use.
+ */
+class ResourceLoaderSpecialCharacterDataModule extends ResourceLoaderModule {
+       private $path = "resources/src/mediawiki.language/specialcharacters.json";
+       protected $targets = array( 'desktop', 'mobile' );
+
+       /**
+        * Get all the dynamic data.
+        *
+        * @return array
+        */
+       protected function getData() {
+               return json_decode( file_get_contents( $this->path ) );
+       }
+
+       /**
+        * @param ResourceLoaderContext $context
+        * @return string JavaScript code
+        */
+       public function getScript( ResourceLoaderContext $context ) {
+               return Xml::encodeJsCall(
+                       'mw.language.setSpecialCharacters',
+                       array(
+                               $this->getData()
+                       ),
+                       ResourceLoader::inDebugMode()
+               );
+       }
+
+       /**
+        * @param ResourceLoaderContext $context
+        * @return int UNIX timestamp
+        */
+       public function getModifiedTime( ResourceLoaderContext $context ) {
+               return static::safeFilemtime( $this->path );
+       }
+
+       /**
+        * @param ResourceLoaderContext $context
+        * @return string Hash
+        */
+       public function getModifiedHash( ResourceLoaderContext $context ) {
+               return md5( serialize( $this->getData() ) );
+       }
+
+       /**
+        * @return array
+        */
+       public function getDependencies() {
+               return array( 'mediawiki.language.init' );
+       }
+
+       /**
+        * @return array
+        */
+       public function getMessages() {
+               return array(
+                       'special-characters-group-latin',
+                       'special-characters-group-latinextended',
+                       'special-characters-group-ipa',
+                       'special-characters-group-symbols',
+                       'special-characters-group-greek',
+                       'special-characters-group-cyrillic',
+                       'special-characters-group-arabic',
+                       'special-characters-group-arabicextended',
+                       'special-characters-group-persian',
+                       'special-characters-group-hebrew',
+                       'special-characters-group-bangla',
+                       'special-characters-group-tamil',
+                       'special-characters-group-telugu',
+                       'special-characters-group-sinhala',
+                       'special-characters-group-devanagari',
+                       'special-characters-group-gujarati',
+                       'special-characters-group-thai',
+                       'special-characters-group-lao',
+                       'special-characters-group-khmer',
+                       'special-characters-title-endash',
+                       'special-characters-title-emdash',
+                       'special-characters-title-minus'
+               );
+       }
+}
index ee350cf..417cfce 100644 (file)
  */
 class ResourceLoaderUserGroupsModule extends ResourceLoaderWikiModule {
 
-       /* Protected Members */
-
        protected $origin = self::ORIGIN_USER_SITEWIDE;
        protected $targets = array( 'desktop', 'mobile' );
 
-       /* Protected Methods */
-
        /**
         * @param ResourceLoaderContext $context
         * @return array
@@ -63,9 +59,9 @@ class ResourceLoaderUserGroupsModule extends ResourceLoaderWikiModule {
                return $pages;
        }
 
-       /* Methods */
-
        /**
+        * Get group name
+        *
         * @return string
         */
        public function getGroup() {
index 1b6d1de..a097844 100644 (file)
  */
 class ResourceLoaderUserModule extends ResourceLoaderWikiModule {
 
-       /* Protected Members */
-
        protected $origin = self::ORIGIN_USER_INDIVIDUAL;
 
-       /* Protected Methods */
-
        /**
+        * Get list of pages used by this module
+        *
         * @param ResourceLoaderContext $context
-        * @return array
+        * @return array List of pages
         */
        protected function getPages( ResourceLoaderContext $context ) {
-               $username = $context->getUser();
-
-               if ( $username === null ) {
-                       return array();
-               }
-
                $allowUserJs = $this->getConfig()->get( 'AllowUserJs' );
                $allowUserCss = $this->getConfig()->get( 'AllowUserCss' );
-
                if ( !$allowUserJs && !$allowUserCss ) {
                        return array();
                }
 
-               // Get the normalized title of the user's user page
-               $userpageTitle = Title::makeTitleSafe( NS_USER, $username );
-
-               if ( !$userpageTitle instanceof Title ) {
+               $user = $context->getUserObj();
+               if ( !$user || $user->isAnon() ) {
                        return array();
                }
 
-               $userpage = $userpageTitle->getPrefixedDBkey(); // Needed so $excludepages works
+               // Needed so $excludepages works
+               $userPage = $user->getUserPage()->getPrefixedDBkey();
 
                $pages = array();
                if ( $allowUserJs ) {
-                       $pages["$userpage/common.js"] = array( 'type' => 'script' );
-                       $pages["$userpage/" . $context->getSkin() . '.js'] = array( 'type' => 'script' );
+                       $pages["$userPage/common.js"] = array( 'type' => 'script' );
+                       $pages["$userPage/" . $context->getSkin() . '.js'] = array( 'type' => 'script' );
                }
                if ( $allowUserCss ) {
-                       $pages["$userpage/common.css"] = array( 'type' => 'style' );
-                       $pages["$userpage/" . $context->getSkin() . '.css'] = array( 'type' => 'style' );
+                       $pages["$userPage/common.css"] = array( 'type' => 'style' );
+                       $pages["$userPage/" . $context->getSkin() . '.css'] = array( 'type' => 'style' );
                }
 
                // Hack for bug 26283: if we're on a preview page for a CSS/JS page,
@@ -82,9 +72,9 @@ class ResourceLoaderUserModule extends ResourceLoaderWikiModule {
                return $pages;
        }
 
-       /* Methods */
-
        /**
+        * Get group name
+        *
         * @return string
         */
        public function getGroup() {
index 1a1a6d0..7b44cc6 100644 (file)
  * because of its dependence on the functionality of
  * Title::isCssJsSubpage.
  */
-abstract class ResourceLoaderWikiModule extends ResourceLoaderModule {
+class ResourceLoaderWikiModule extends ResourceLoaderModule {
 
-       /* Protected Members */
-
-       # Origin is user-supplied code
+       // Origin defaults to users with sitewide authority
        protected $origin = self::ORIGIN_USER_SITEWIDE;
 
        // In-object cache for title info
        protected $titleInfo = array();
 
-       /* Abstract Protected Methods */
+       // List of page names that contain CSS
+       protected $styles = array();
+
+       // List of page names that contain JavaScript
+       protected $scripts = array();
+
+       // Group of module
+       protected $group;
+
+       /**
+        * @param array $options For back-compat, this can be omitted in favour of overwriting getPages.
+        */
+       public function __construct( array $options = null ) {
+               if ( isset( $options['styles'] ) ) {
+                       $this->styles = $options['styles'];
+               }
+               if ( isset( $options['scripts'] ) ) {
+                       $this->scripts = $options['scripts'];
+               }
+               if ( isset( $options['group'] ) ) {
+                       $this->group = $options['group'];
+               }
+       }
 
        /**
         * Subclasses should return an associative array of resources in the module.
@@ -57,9 +77,34 @@ abstract class ResourceLoaderWikiModule extends ResourceLoaderModule {
         * @param ResourceLoaderContext $context
         * @return array
         */
-       abstract protected function getPages( ResourceLoaderContext $context );
+       protected function getPages( ResourceLoaderContext $context ) {
+               $config = $this->getConfig();
+               $pages = array();
+
+               // Filter out pages from origins not allowed by the current wiki configuration.
+               if ( $config->get( 'UseSiteJs' ) ) {
+                       foreach ( $this->scripts as $script ) {
+                               $pages[$script] = array( 'type' => 'script' );
+                       }
+               }
+
+               if ( $config->get( 'UseSiteCss' ) ) {
+                       foreach ( $this->styles as $style ) {
+                               $pages[$style] = array( 'type' => 'style' );
+                       }
+               }
+
+               return $pages;
+       }
 
-       /* Protected Methods */
+       /**
+        * Get group name
+        *
+        * @return string
+        */
+       public function getGroup() {
+               return $this->group;
+       }
 
        /**
         * Get the Database object used in getTitleMTimes(). Defaults to the local slave DB
@@ -105,8 +150,6 @@ abstract class ResourceLoaderWikiModule extends ResourceLoaderModule {
                return $content->serialize( $format );
        }
 
-       /* Methods */
-
        /**
         * @param ResourceLoaderContext $context
         * @return string
diff --git a/includes/site/CachingSiteStore.php b/includes/site/CachingSiteStore.php
new file mode 100644 (file)
index 0000000..9243f12
--- /dev/null
@@ -0,0 +1,195 @@
+<?php
+
+/**
+ * Represents the site configuration of a wiki.
+ * Holds a list of sites (ie SiteList), with a caching layer.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @since 1.25
+ *
+ * @file
+ * @ingroup Site
+ *
+ * @license GNU GPL v2+
+ * @author Jeroen De Dauw < jeroendedauw@gmail.com >
+ * @author Katie Filbert < aude.wiki@gmail.com >
+ */
+class CachingSiteStore implements SiteStore {
+
+       /**
+        * @var SiteList|null
+        */
+       private $sites = null;
+
+       /**
+        * @var string|null
+        */
+       private $cacheKey;
+
+       /**
+        * @var int
+        */
+       private $cacheTimeout;
+
+       /**
+        * @var BagOStuff
+        */
+       private $cache;
+
+       /**
+        * @var SiteStore
+        */
+       private $siteStore;
+
+       /**
+        * @param SiteStore $siteStore
+        * @param BagOStuff $cache
+        * @param string|null $cacheKey
+        * @param int $cacheTimeout
+        */
+       public function __construct(
+               SiteStore $siteStore,
+               BagOStuff $cache,
+               $cacheKey = null,
+               $cacheTimeout = 3600
+       ) {
+               $this->siteStore = $siteStore;
+               $this->cache = $cache;
+               $this->cacheKey = $cacheKey;
+               $this->cacheTimeout = $cacheTimeout;
+       }
+
+       /**
+        * Constructs a cache key to use for caching the list of sites.
+        *
+        * This includes the concrete class name of the site list as well as a version identifier
+        * for the list's serialization, to avoid problems when unserializing site lists serialized
+        * by an older version, e.g. when reading from a cache.
+        *
+        * The cache key also includes information about where the sites were loaded from, e.g.
+        * the name of a database table.
+        *
+        * @see SiteList::getSerialVersionId
+        *
+        * @return string The cache key.
+        */
+       private function getCacheKey() {
+               if ( $this->cacheKey === null ) {
+                       $type = 'SiteList#' . SiteList::getSerialVersionId();
+                       $this->cacheKey = wfMemcKey( "sites/$type" );
+               }
+
+               return $this->cacheKey;
+       }
+
+       /**
+        * @see SiteStore::getSites
+        *
+        * @since 1.25
+        *
+        * @return SiteList
+        */
+       public function getSites() {
+               if ( $this->sites === null ) {
+                       $this->sites = $this->cache->get( $this->getCacheKey() );
+
+                       if ( !is_object( $this->sites ) ) {
+                               $this->sites = $this->siteStore->getSites();
+
+                               $this->cache->set( $this->getCacheKey(), $this->sites, $this->cacheTimeout );
+                       }
+               }
+
+               return $this->sites;
+       }
+
+       /**
+        * @see SiteStore::getSite
+        *
+        * @since 1.25
+        *
+        * @param string $globalId
+        *
+        * @return Site|null
+        */
+       public function getSite( $globalId ) {
+               $sites = $this->getSites();
+
+               return $sites->hasSite( $globalId ) ? $sites->getSite( $globalId ) : null;
+       }
+
+       /**
+        * @see SiteStore::saveSite
+        *
+        * @since 1.25
+        *
+        * @param Site $site
+        *
+        * @return bool Success indicator
+        */
+       public function saveSite( Site $site ) {
+               return $this->saveSites( array( $site ) );
+       }
+
+       /**
+        * @see SiteStore::saveSites
+        *
+        * @since 1.25
+        *
+        * @param Site[] $sites
+        *
+        * @return bool Success indicator
+        */
+       public function saveSites( array $sites ) {
+               if ( empty( $sites ) ) {
+                       return true;
+               }
+
+               $success = $this->siteStore->saveSites( $sites );
+
+               // purge cache
+               $this->reset();
+
+               return $success;
+       }
+
+       /**
+        * Purges the internal and external cache of the site list, forcing the list
+        * of sites to be reloaded.
+        *
+        * @since 1.25
+        */
+       public function reset() {
+               // purge cache
+               $this->cache->delete( $this->getCacheKey() );
+               $this->sites = null;
+       }
+
+       /**
+        * Clears the list of sites stored.
+        *
+        * @see SiteStore::clear()
+        *
+        * @return bool Success
+        */
+       public function clear() {
+               $this->reset();
+
+               return $this->siteStore->clear();
+       }
+
+}
diff --git a/includes/site/DBSiteStore.php b/includes/site/DBSiteStore.php
new file mode 100644 (file)
index 0000000..f167584
--- /dev/null
@@ -0,0 +1,345 @@
+<?php
+
+/**
+ * Represents the site configuration of a wiki.
+ * Holds a list of sites (ie SiteList), stored in the database.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @since 1.25
+ *
+ * @file
+ * @ingroup Site
+ *
+ * @license GNU GPL v2+
+ * @author Jeroen De Dauw < jeroendedauw@gmail.com >
+ */
+class DBSiteStore implements SiteStore {
+
+       /**
+        * @var SiteList|null
+        */
+       protected $sites = null;
+
+       /**
+        * @var ORMTable
+        */
+       protected $sitesTable;
+
+       /**
+        * @since 1.25
+        *
+        * @param ORMTable|null $sitesTable
+        */
+       public function __construct( ORMTable $sitesTable = null ) {
+               if ( $sitesTable === null ) {
+                       $sitesTable = $this->newSitesTable();
+               }
+
+               $this->sitesTable = $sitesTable;
+       }
+
+       /**
+        * @see SiteStore::getSites
+        *
+        * @since 1.25
+        *
+        * @return SiteList
+        */
+       public function getSites() {
+               $this->loadSites();
+
+               return $this->sites;
+       }
+
+       /**
+        * Returns a new Site object constructed from the provided ORMRow.
+        *
+        * @since 1.25
+        *
+        * @param ORMRow $siteRow
+        *
+        * @return Site
+        */
+       protected function siteFromRow( ORMRow $siteRow ) {
+
+               $site = Site::newForType( $siteRow->getField( 'type', Site::TYPE_UNKNOWN ) );
+
+               $site->setGlobalId( $siteRow->getField( 'global_key' ) );
+
+               $site->setInternalId( $siteRow->getField( 'id' ) );
+
+               if ( $siteRow->hasField( 'forward' ) ) {
+                       $site->setForward( $siteRow->getField( 'forward' ) );
+               }
+
+               if ( $siteRow->hasField( 'group' ) ) {
+                       $site->setGroup( $siteRow->getField( 'group' ) );
+               }
+
+               if ( $siteRow->hasField( 'language' ) ) {
+                       $site->setLanguageCode( $siteRow->getField( 'language' ) === ''
+                               ? null
+                               : $siteRow->getField( 'language' )
+                       );
+               }
+
+               if ( $siteRow->hasField( 'source' ) ) {
+                       $site->setSource( $siteRow->getField( 'source' ) );
+               }
+
+               if ( $siteRow->hasField( 'data' ) ) {
+                       $site->setExtraData( $siteRow->getField( 'data' ) );
+               }
+
+               if ( $siteRow->hasField( 'config' ) ) {
+                       $site->setExtraConfig( $siteRow->getField( 'config' ) );
+               }
+
+               return $site;
+       }
+
+       /**
+        * Get a new ORMRow from a Site object
+        *
+        * @since 1.25
+        *
+        * @param Site $site
+        *
+        * @return ORMRow
+        */
+       protected function getRowFromSite( Site $site ) {
+               $fields = array(
+                       // Site data
+                       'global_key' => $site->getGlobalId(), // TODO: check not null
+                       'type' => $site->getType(),
+                       'group' => $site->getGroup(),
+                       'source' => $site->getSource(),
+                       'language' => $site->getLanguageCode() === null ? '' : $site->getLanguageCode(),
+                       'protocol' => $site->getProtocol(),
+                       'domain' => strrev( $site->getDomain() ) . '.',
+                       'data' => $site->getExtraData(),
+
+                       // Site config
+                       'forward' => $site->shouldForward(),
+                       'config' => $site->getExtraConfig(),
+               );
+
+               if ( $site->getInternalId() !== null ) {
+                       $fields['id'] = $site->getInternalId();
+               }
+
+               return new ORMRow( $this->sitesTable, $fields );
+       }
+
+       /**
+        * Fetches the site from the database and loads them into the sites field.
+        *
+        * @since 1.25
+        */
+       protected function loadSites() {
+               $this->sites = new SiteList();
+
+               foreach ( $this->sitesTable->select() as $siteRow ) {
+                       $this->sites[] = $this->siteFromRow( $siteRow );
+               }
+
+               // Batch load the local site identifiers.
+               $ids = wfGetDB( $this->sitesTable->getReadDb() )->select(
+                       'site_identifiers',
+                       array(
+                               'si_site',
+                               'si_type',
+                               'si_key',
+                       ),
+                       array(),
+                       __METHOD__
+               );
+
+               foreach ( $ids as $id ) {
+                       if ( $this->sites->hasInternalId( $id->si_site ) ) {
+                               $site = $this->sites->getSiteByInternalId( $id->si_site );
+                               $site->addLocalId( $id->si_type, $id->si_key );
+                               $this->sites->setSite( $site );
+                       }
+               }
+       }
+
+       /**
+        * @see SiteStore::getSite
+        *
+        * @since 1.25
+        *
+        * @param string $globalId
+        *
+        * @return Site|null
+        */
+       public function getSite( $globalId ) {
+               if ( $this->sites === null ) {
+                       $this->sites = $this->getSites();
+               }
+
+               return $this->sites->hasSite( $globalId ) ? $this->sites->getSite( $globalId ) : null;
+       }
+
+       /**
+        * @see SiteStore::saveSite
+        *
+        * @since 1.25
+        *
+        * @param Site $site
+        *
+        * @return bool Success indicator
+        */
+       public function saveSite( Site $site ) {
+               return $this->saveSites( array( $site ) );
+       }
+
+       /**
+        * @see SiteStore::saveSites
+        *
+        * @since 1.25
+        *
+        * @param Site[] $sites
+        *
+        * @return bool Success indicator
+        */
+       public function saveSites( array $sites ) {
+               if ( empty( $sites ) ) {
+                       return true;
+               }
+
+               $dbw = $this->sitesTable->getWriteDbConnection();
+
+               $dbw->startAtomic( __METHOD__ );
+
+               $success = true;
+
+               $internalIds = array();
+               $localIds = array();
+
+               foreach ( $sites as $site ) {
+                       if ( $site->getInternalId() !== null ) {
+                               $internalIds[] = $site->getInternalId();
+                       }
+
+                       $siteRow = $this->getRowFromSite( $site );
+                       $success = $siteRow->save( __METHOD__ ) && $success;
+
+                       foreach ( $site->getLocalIds() as $idType => $ids ) {
+                               foreach ( $ids as $id ) {
+                                       $localIds[] = array( $siteRow->getId(), $idType, $id );
+                               }
+                       }
+               }
+
+               if ( $internalIds !== array() ) {
+                       $dbw->delete(
+                               'site_identifiers',
+                               array( 'si_site' => $internalIds ),
+                               __METHOD__
+                       );
+               }
+
+               foreach ( $localIds as $localId ) {
+                       $dbw->insert(
+                               'site_identifiers',
+                               array(
+                                       'si_site' => $localId[0],
+                                       'si_type' => $localId[1],
+                                       'si_key' => $localId[2],
+                               ),
+                               __METHOD__
+                       );
+               }
+
+               $dbw->endAtomic( __METHOD__ );
+
+               $this->reset();
+
+               return $success;
+       }
+
+       /**
+        * Resets the SiteList
+        *
+        * @since 1.25
+        */
+       public function reset() {
+               $this->sites = null;
+       }
+
+       /**
+        * Clears the list of sites stored in the database.
+        *
+        * @see SiteStore::clear()
+        *
+        * @return bool Success
+        */
+       public function clear() {
+               $dbw = $this->sitesTable->getWriteDbConnection();
+
+               $dbw->startAtomic( __METHOD__ );
+               $ok = $dbw->delete( 'sites', '*', __METHOD__ );
+               $ok = $dbw->delete( 'site_identifiers', '*', __METHOD__ ) && $ok;
+               $dbw->endAtomic( __METHOD__ );
+
+               $this->reset();
+
+               return $ok;
+       }
+
+       /**
+        * @since 1.25
+        *
+        * @return ORMTable
+        */
+       protected function newSitesTable() {
+               return new ORMTable(
+                       'sites',
+                       array(
+                               'id' => 'id',
+
+                               // Site data
+                               'global_key' => 'str',
+                               'type' => 'str',
+                               'group' => 'str',
+                               'source' => 'str',
+                               'language' => 'str',
+                               'protocol' => 'str',
+                               'domain' => 'str',
+                               'data' => 'array',
+
+                               // Site config
+                               'forward' => 'bool',
+                               'config' => 'array',
+                       ),
+                       array(
+                               'type' => Site::TYPE_UNKNOWN,
+                               'group' => Site::GROUP_NONE,
+                               'source' => Site::SOURCE_LOCAL,
+                               'data' => array(),
+
+                               'forward' => false,
+                               'config' => array(),
+                               'language' => '',
+                       ),
+                       'ORMRow',
+                       'site_'
+               );
+       }
+
+}
diff --git a/includes/site/FileBasedSiteLookup.php b/includes/site/FileBasedSiteLookup.php
new file mode 100644 (file)
index 0000000..9654440
--- /dev/null
@@ -0,0 +1,139 @@
+<?php
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ *
+ * @license GNU GPL v2+
+ */
+
+/**
+ * Provides a file-based cache of a SiteStore. The sites are stored in
+ * a json file. (see docs/sitescache.txt regarding format)
+ *
+ * The cache can be built with the rebuildSitesCache.php maintenance script,
+ * and a MediaWiki instance can be setup to use this by setting the
+ * 'wgSitesCacheFile' configuration to the cache file location.
+ *
+ * @since 1.25
+ */
+class FileBasedSiteLookup implements SiteLookup {
+
+       /**
+        * @var SiteList
+        */
+       private $sites = null;
+
+       /**
+        * @var string
+        */
+       private $cacheFile;
+
+       /**
+        * @param string $cacheFile
+        */
+       public function __construct( $cacheFile ) {
+               $this->cacheFile = $cacheFile;
+       }
+
+       /**
+        * @since 1.25
+        *
+        * @return SiteList
+        */
+       public function getSites() {
+               if ( $this->sites === null ) {
+                       $this->sites = $this->loadSitesFromCache();
+               }
+
+               return $this->sites;
+       }
+
+       /**
+        * @param string $globalId
+        *
+        * @since 1.25
+        *
+        * @return Site|null
+        */
+       public function getSite( $globalId ) {
+               $sites = $this->getSites();
+
+               return $sites->hasSite( $globalId ) ? $sites->getSite( $globalId ) : null;
+       }
+
+       /**
+        * @return SiteList
+        */
+       private function loadSitesFromCache() {
+               $data = $this->loadJsonFile();
+
+               $sites = new SiteList();
+
+               // @todo lazy initialize the site objects in the site list (e.g. only when needed to access)
+               foreach ( $data['sites'] as $siteArray ) {
+                       $sites[] = $this->newSiteFromArray( $siteArray );
+               }
+
+               return $sites;
+       }
+
+       /**
+        * @throws MWException
+        * @return array see docs/sitescache.txt for format of the array.
+        */
+       private function loadJsonFile() {
+               if ( !is_readable( $this->cacheFile ) ) {
+                       throw new MWException( 'SiteList cache file not found.' );
+               }
+
+               $contents = file_get_contents( $this->cacheFile );
+               $data = json_decode( $contents, true );
+
+               if ( !is_array( $data ) || !is_array( $data['sites'] )
+                       || !array_key_exists( 'sites', $data )
+               ) {
+                       throw new MWException( 'SiteStore json cache data is invalid.' );
+               }
+
+               return $data;
+       }
+
+       /**
+        * @param array $data
+        *
+        * @return Site
+        */
+       private function newSiteFromArray( array $data ) {
+               $siteType = array_key_exists( 'type', $data ) ? $data['type'] : Site::TYPE_UNKNOWN;
+               $site = Site::newForType( $siteType );
+
+               $site->setGlobalId( $data['globalid'] );
+               $site->setForward( $data['forward'] );
+               $site->setGroup( $data['group'] );
+               $site->setLanguageCode( $data['language'] );
+               $site->setSource( $data['source'] );
+               $site->setExtraData( $data['data'] );
+               $site->setExtraConfig( $data['config'] );
+
+               foreach ( $data['identifiers'] as $identifier ) {
+                       $site->addLocalId( $identifier['type'], $identifier['key'] );
+               }
+
+               return $site;
+       }
+
+}
diff --git a/includes/site/HashSiteStore.php b/includes/site/HashSiteStore.php
new file mode 100644 (file)
index 0000000..2c25472
--- /dev/null
@@ -0,0 +1,123 @@
+<?php
+/**
+ * In-memory implementation of SiteStore.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+/**
+ * In-memory SiteStore implementation, storing sites in an associative array.
+ *
+ * @author Daniel Kinzler
+ * @author Katie Filbert < aude.wiki@gmail.com >
+ *
+ * @since 1.25
+ * @ingroup Site
+ */
+class HashSiteStore implements SiteStore {
+
+       /**
+        * @var Site[]
+        */
+       private $sites = array();
+
+       /**
+        * @param array $sites
+        */
+       public function __construct( $sites = array() ) {
+               $this->saveSites( $sites );
+       }
+
+       /**
+        * Saves the provided site.
+        *
+        * @since 1.25
+        *
+        * @param Site $site
+        *
+        * @return boolean Success indicator
+        */
+       public function saveSite( Site $site ) {
+               $this->sites[$site->getGlobalId()] = $site;
+
+               return true;
+       }
+
+       /**
+        * Saves the provided sites.
+        *
+        * @since 1.25
+        *
+        * @param Site[] $sites
+        *
+        * @return boolean Success indicator
+        */
+       public function saveSites( array $sites ) {
+               foreach ( $sites as $site ) {
+                       $this->saveSite( $site );
+               }
+
+               return true;
+       }
+
+       /**
+        * Returns the site with provided global id, or null if there is no such site.
+        *
+        * @since 1.25
+        *
+        * @param string $globalId
+        * @param string $source either 'cache' or 'recache'.
+        *                       If 'cache', the values can (but not obliged) come from a cache.
+        *
+        * @return Site|null
+        */
+       public function getSite( $globalId, $source = 'cache' ) {
+               if ( isset( $this->sites[$globalId] ) ) {
+                       return $this->sites[$globalId];
+               } else {
+                       return null;
+               }
+       }
+
+       /**
+        * Returns a list of all sites. By default this site is
+        * fetched from the cache, which can be changed to loading
+        * the list from the database using the $useCache parameter.
+        *
+        * @since 1.25
+        *
+        * @param string $source either 'cache' or 'recache'.
+        *                       If 'cache', the values can (but not obliged) come from a cache.
+        *
+        * @return SiteList
+        */
+       public function getSites( $source = 'cache' ) {
+               return new SiteList( $this->sites );
+       }
+
+       /**
+        * Deletes all sites from the database. After calling clear(), getSites() will return an empty
+        * list and getSite() will return null until saveSite() or saveSites() is called.
+        */
+       public function clear() {
+               $this->sites = array();
+
+               return true;
+       }
+
+}
index 9711f04..739d018 100644 (file)
@@ -137,7 +137,7 @@ class MediaWikiSite extends Site {
 
                        // Go on call the external site
                        // @todo we need a good way to specify a timeout here.
-                       $ret = Http::get( $url );
+                       $ret = Http::get( $url, array(), __METHOD__ );
                }
 
                if ( $ret === false ) {
index 02c3ca4..a05bad5 100644 (file)
@@ -90,7 +90,9 @@ class SiteImporter {
 
                        foreach ( $errors as $error ) {
                                /** @var LibXMLError $error */
-                               throw new InvalidArgumentException( 'Malformed XML: ' . $error->message . ' in line ' . $error->line );
+                               throw new InvalidArgumentException(
+                                       'Malformed XML: ' . $error->message . ' in line ' . $error->line
+                               );
                        }
 
                        throw new InvalidArgumentException( 'Malformed XML!' );
@@ -202,7 +204,9 @@ class SiteImporter {
                        if ( $default !== false ) {
                                return $default;
                        } else {
-                               throw new MWException( 'Required ' . $name . ' attribute not found in <' . $element->tagName . '> tag' );
+                               throw new MWException(
+                                       'Required ' . $name . ' attribute not found in <' . $element->tagName . '> tag'
+                               );
                        }
                }
 
@@ -224,7 +228,9 @@ class SiteImporter {
                        if ( $default !== false ) {
                                return $default;
                        } else {
-                               throw new MWException( 'Required <' . $name . '> tag not found inside <' . $element->tagName . '> tag' );
+                               throw new MWException(
+                                       'Required <' . $name . '> tag not found inside <' . $element->tagName . '> tag'
+                               );
                        }
                }
 
diff --git a/includes/site/SiteListFileCache.php b/includes/site/SiteListFileCache.php
deleted file mode 100644 (file)
index e48a187..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- *
- * @license GNU GPL v2+
- */
-
-/**
- * Provides a file-based cache of a SiteStore, stored as a json file.
- * The cache can be built with the rebuildSitesCache.php maintenance script,
- * and a MediaWiki instance can be setup to use this by setting the
- * 'wgSitesCacheFile' configuration to the cache file location.
- *
- * @since 1.25
- */
-class SiteListFileCache {
-
-       /**
-        * @var SiteList
-        */
-       private $sites = null;
-
-       /**
-        * @var string
-        */
-       private $cacheFile;
-
-       /**
-        * @param string $cacheFile
-        */
-       public function __construct( $cacheFile ) {
-               $this->cacheFile = $cacheFile;
-       }
-
-       /**
-        * @since 1.25
-        *
-        * @return SiteList
-        */
-       public function getSites() {
-               if ( $this->sites === null ) {
-                       $this->sites = $this->loadSitesFromCache();
-               }
-
-               return $this->sites;
-       }
-
-       /**
-        * @param string $globalId
-        *
-        * @since 1.25
-        *
-        * @return Site|null
-        */
-       public function getSite( $globalId ) {
-               $sites = $this->getSites();
-
-               return $sites->hasSite( $globalId ) ? $sites->getSite( $globalId ) : null;
-       }
-
-       /**
-        * @return SiteList
-        */
-       private function loadSitesFromCache() {
-               $data = $this->loadJsonFile();
-
-               $sites = new SiteList();
-
-               // @todo lazy initialize the site objects in the site list (e.g. only when needed to access)
-               foreach ( $data['sites'] as $siteArray ) {
-                       $sites[] = $this->newSiteFromArray( $siteArray );
-               }
-
-               return $sites;
-       }
-
-       /**
-        * @throws MWException
-        * @return array
-        */
-       private function loadJsonFile() {
-               if ( !is_readable( $this->cacheFile ) ) {
-                       throw new MWException( 'SiteList cache file not found.' );
-               }
-
-               $contents = file_get_contents( $this->cacheFile );
-               $data = json_decode( $contents, true );
-
-               if ( !is_array( $data ) || !array_key_exists( 'sites', $data ) ) {
-                       throw new MWException( 'SiteStore json cache data is invalid.' );
-               }
-
-               return $data;
-       }
-
-       /**
-        * @param array $data
-        *
-        * @return Site
-        */
-       private function newSiteFromArray( array $data ) {
-               $siteType = array_key_exists( 'type', $data ) ? $data['type'] : Site::TYPE_UNKNOWN;
-               $site = Site::newForType( $siteType );
-
-               $site->setGlobalId( $data['globalid'] );
-               $site->setInternalId( $data['internalid'] );
-               $site->setForward( $data['forward'] );
-               $site->setGroup( $data['group'] );
-               $site->setLanguageCode( $data['language'] );
-               $site->setSource( $data['source'] );
-               $site->setExtraData( $data['data'] );
-               $site->setExtraConfig( $data['config'] );
-
-               foreach ( $data['identifiers'] as $identifier ) {
-                       $site->addLocalId( $identifier['type'], $identifier['key'] );
-               }
-
-               return $site;
-       }
-
-}
diff --git a/includes/site/SiteListFileCacheBuilder.php b/includes/site/SiteListFileCacheBuilder.php
deleted file mode 100644 (file)
index 7307a6f..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-<?php
-
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @since 1.25
- *
- * @file
- *
- * @license GNU GPL v2+
- */
-class SiteListFileCacheBuilder {
-
-       /**
-        * @var SiteStore
-        */
-       private $siteStore;
-
-       /**
-        * @var string
-        */
-       private $cacheFile;
-
-       /**
-        * @param SiteStore $siteStore
-        * @param string $cacheFile
-        */
-       public function __construct( SiteStore $siteStore, $cacheFile ) {
-               $this->siteStore = $siteStore;
-               $this->cacheFile = $cacheFile;
-       }
-
-       public function build() {
-               $this->sites = $this->siteStore->getSites( 'recache' );
-               $this->cacheSites( $this->sites->getArrayCopy() );
-       }
-
-       /**
-        * @param Site[] $sites
-        *
-        * @throws MWException if in manualRecache mode
-        * @return bool
-        */
-       private function cacheSites( array $sites ) {
-               $sitesArray = array();
-
-               foreach ( $sites as $site ) {
-                       $globalId = $site->getGlobalId();
-                       $sitesArray[$globalId] = $this->getSiteAsArray( $site );
-               }
-
-               $json = json_encode( array(
-                       'sites' => $sitesArray
-               ) );
-
-               $result = file_put_contents( $this->cacheFile, $json );
-
-               return $result !== false;
-       }
-
-       /**
-        * @param Site $site
-        *
-        * @return array
-        */
-       private function getSiteAsArray( Site $site ) {
-               $siteEntry = unserialize( $site->serialize() );
-               $siteIdentifiers = $this->buildLocalIdentifiers( $site );
-               $identifiersArray = array();
-
-               foreach ( $siteIdentifiers as $identifier ) {
-                       $identifiersArray[] = $identifier;
-               }
-
-               $siteEntry['identifiers'] = $identifiersArray;
-
-               return $siteEntry;
-       }
-
-       /**
-        * @param Site $site
-        *
-        * @return array Site local identifiers
-        */
-       private function buildLocalIdentifiers( Site $site ) {
-               $localIds = array();
-
-               foreach ( $site->getLocalIds() as $idType => $ids ) {
-                       foreach ( $ids as $id ) {
-                               $localIds[] = array(
-                                       'type' => $idType,
-                                       'key' => $id
-                               );
-                       }
-               }
-
-               return $localIds;
-       }
-
-}
diff --git a/includes/site/SiteLookup.php b/includes/site/SiteLookup.php
new file mode 100644 (file)
index 0000000..610bf0b
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+
+/**
+ * Interface for service objects providing a lookup of Site objects.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @since 1.25
+ *
+ * @file
+ * @ingroup Site
+ *
+ * @license GNU GPL v2+
+ */
+interface SiteLookup {
+
+       /**
+        * Returns the site with provided global id, or null if there is no such site.
+        *
+        * @since 1.25
+        *
+        * @param string $globalId
+        *
+        * @return Site|null
+        */
+       public function getSite( $globalId );
+
+       /**
+        * Returns a list of all sites.
+        *
+        * @since 1.25
+        *
+        * @return SiteList
+        */
+       public function getSites();
+
+}
index 8f25c76..d77f07b 100644 (file)
  * @license GNU GPL v2+
  * @author Jeroen De Dauw < jeroendedauw@gmail.com >
  */
-class SiteSQLStore implements SiteStore {
-       /**
-        * @since 1.21
-        *
-        * @var SiteList|null
-        */
-       protected $sites = null;
-
-       /**
-        * @var ORMTable
-        */
-       protected $sitesTable;
-
-       /**
-        * @var string|null
-        */
-       private $cacheKey = null;
-
-       /**
-        * @var int
-        */
-       private $cacheTimeout = 3600;
-
-       /**
-        * @var BagOStuff
-        */
-       private $cache;
+class SiteSQLStore extends CachingSiteStore {
 
        /**
         * @since 1.21
+        * @deprecated 1.25 Construct a SiteStore instance directly instead.
         *
         * @param ORMTable|null $sitesTable
         * @param BagOStuff|null $cache
@@ -69,370 +44,9 @@ class SiteSQLStore implements SiteStore {
                        $cache = wfGetMainCache();
                }
 
-               return new static( $cache, $sitesTable );
-       }
-
-       /**
-        * Constructor.
-        *
-        * @since 1.21
-        *
-        * @param BagOStuff $cache
-        * @param ORMTable|null $sitesTable
-        */
-       protected function __construct( BagOStuff $cache, ORMTable $sitesTable = null ) {
-               if ( $sitesTable === null ) {
-                       $sitesTable = $this->newSitesTable();
-               }
-
-               $this->cache = $cache;
-               $this->sitesTable = $sitesTable;
-       }
-
-       /**
-        * Constructs a cache key to use for caching the list of sites.
-        *
-        * This includes the concrete class name of the site list as well as a version identifier
-        * for the list's serialization, to avoid problems when unserializing site lists serialized
-        * by an older version, e.g. when reading from a cache.
-        *
-        * The cache key also includes information about where the sites were loaded from, e.g.
-        * the name of a database table.
-        *
-        * @see SiteList::getSerialVersionId
-        *
-        * @return string The cache key.
-        */
-       protected function getCacheKey() {
-
-               if ( $this->cacheKey === null ) {
-                       $type = 'SiteList#' . SiteList::getSerialVersionId();
-                       $source = $this->sitesTable->getName();
-
-                       if ( $this->sitesTable->getTargetWiki() !== false ) {
-                               $source = $this->sitesTable->getTargetWiki() . '.' . $source;
-                       }
-
-                       $this->cacheKey = wfMemcKey( "$source/$type" );
-               }
-
-               return $this->cacheKey;
-       }
-
-       /**
-        * @see SiteStore::getSites
-        *
-        * @since 1.21
-        *
-        * @param string $source Either 'cache' or 'recache'
-        *
-        * @return SiteList
-        */
-       public function getSites( $source = 'cache' ) {
-
-               if ( $source === 'cache' ) {
-                       if ( $this->sites === null ) {
-                               $sites = $this->cache->get( $this->getCacheKey() );
-
-                               if ( is_object( $sites ) ) {
-                                       $this->sites = $sites;
-                               } else {
-                                       $this->loadSites();
-                               }
-                       }
-               }
-               else {
-                       $this->loadSites();
-               }
-
-               return $this->sites;
-       }
-
-       /**
-        * Returns a new Site object constructed from the provided ORMRow.
-        *
-        * @since 1.21
-        *
-        * @param ORMRow $siteRow
-        *
-        * @return Site
-        */
-       protected function siteFromRow( ORMRow $siteRow ) {
-
-               $site = Site::newForType( $siteRow->getField( 'type', Site::TYPE_UNKNOWN ) );
-
-               $site->setGlobalId( $siteRow->getField( 'global_key' ) );
-
-               $site->setInternalId( $siteRow->getField( 'id' ) );
-
-               if ( $siteRow->hasField( 'forward' ) ) {
-                       $site->setForward( $siteRow->getField( 'forward' ) );
-               }
-
-               if ( $siteRow->hasField( 'group' ) ) {
-                       $site->setGroup( $siteRow->getField( 'group' ) );
-               }
-
-               if ( $siteRow->hasField( 'language' ) ) {
-                       $site->setLanguageCode( $siteRow->getField( 'language' ) === ''
-                               ? null
-                               : $siteRow->getField( 'language' )
-                       );
-               }
-
-               if ( $siteRow->hasField( 'source' ) ) {
-                       $site->setSource( $siteRow->getField( 'source' ) );
-               }
-
-               if ( $siteRow->hasField( 'data' ) ) {
-                       $site->setExtraData( $siteRow->getField( 'data' ) );
-               }
-
-               if ( $siteRow->hasField( 'config' ) ) {
-                       $site->setExtraConfig( $siteRow->getField( 'config' ) );
-               }
-
-               return $site;
-       }
-
-       /**
-        * Get a new ORMRow from a Site object
-        *
-        * @since 1.22
-        *
-        * @param Site $site
-        *
-        * @return ORMRow
-        */
-       protected function getRowFromSite( Site $site ) {
-               $fields = array(
-                       // Site data
-                       'global_key' => $site->getGlobalId(), // TODO: check not null
-                       'type' => $site->getType(),
-                       'group' => $site->getGroup(),
-                       'source' => $site->getSource(),
-                       'language' => $site->getLanguageCode() === null ? '' : $site->getLanguageCode(),
-                       'protocol' => $site->getProtocol(),
-                       'domain' => strrev( $site->getDomain() ) . '.',
-                       'data' => $site->getExtraData(),
-
-                       // Site config
-                       'forward' => $site->shouldForward(),
-                       'config' => $site->getExtraConfig(),
-               );
-
-               if ( $site->getInternalId() !== null ) {
-                       $fields['id'] = $site->getInternalId();
-               }
-
-               return new ORMRow( $this->sitesTable, $fields );
-       }
-
-       /**
-        * Fetches the site from the database and loads them into the sites field.
-        *
-        * @since 1.21
-        */
-       protected function loadSites() {
-
-               $this->sites = new SiteList();
-
-               foreach ( $this->sitesTable->select() as $siteRow ) {
-                       $this->sites[] = $this->siteFromRow( $siteRow );
-               }
-
-               // Batch load the local site identifiers.
-               $ids = wfGetDB( $this->sitesTable->getReadDb() )->select(
-                       'site_identifiers',
-                       array(
-                               'si_site',
-                               'si_type',
-                               'si_key',
-                       ),
-                       array(),
-                       __METHOD__
-               );
-
-               foreach ( $ids as $id ) {
-                       if ( $this->sites->hasInternalId( $id->si_site ) ) {
-                               $site = $this->sites->getSiteByInternalId( $id->si_site );
-                               $site->addLocalId( $id->si_type, $id->si_key );
-                               $this->sites->setSite( $site );
-                       }
-               }
-
-               $this->cache->set( $this->getCacheKey(), $this->sites, $this->cacheTimeout );
-
-       }
-
-       /**
-        * @see SiteStore::getSite
-        *
-        * @since 1.21
-        *
-        * @param string $globalId
-        * @param string $source
-        *
-        * @return Site|null
-        */
-       public function getSite( $globalId, $source = 'cache' ) {
-
-               $sites = $this->getSites( $source );
-
-               return $sites->hasSite( $globalId ) ? $sites->getSite( $globalId ) : null;
-       }
-
-       /**
-        * @see SiteStore::saveSite
-        *
-        * @since 1.21
-        *
-        * @param Site $site
-        *
-        * @return bool Success indicator
-        */
-       public function saveSite( Site $site ) {
-               return $this->saveSites( array( $site ) );
-       }
-
-       /**
-        * @see SiteStore::saveSites
-        *
-        * @since 1.21
-        *
-        * @param Site[] $sites
-        *
-        * @return bool Success indicator
-        */
-       public function saveSites( array $sites ) {
-
-               if ( empty( $sites ) ) {
-                       return true;
-               }
-
-               $dbw = $this->sitesTable->getWriteDbConnection();
-
-               $dbw->startAtomic( __METHOD__ );
-
-               $success = true;
-
-               $internalIds = array();
-               $localIds = array();
-
-               foreach ( $sites as $site ) {
-                       if ( $site->getInternalId() !== null ) {
-                               $internalIds[] = $site->getInternalId();
-                       }
-
-                       $siteRow = $this->getRowFromSite( $site );
-                       $success = $siteRow->save( __METHOD__ ) && $success;
-
-                       foreach ( $site->getLocalIds() as $idType => $ids ) {
-                               foreach ( $ids as $id ) {
-                                       $localIds[] = array( $siteRow->getId(), $idType, $id );
-                               }
-                       }
-               }
-
-               if ( $internalIds !== array() ) {
-                       $dbw->delete(
-                               'site_identifiers',
-                               array( 'si_site' => $internalIds ),
-                               __METHOD__
-                       );
-               }
-
-               foreach ( $localIds as $localId ) {
-                       $dbw->insert(
-                               'site_identifiers',
-                               array(
-                                       'si_site' => $localId[0],
-                                       'si_type' => $localId[1],
-                                       'si_key' => $localId[2],
-                               ),
-                               __METHOD__
-                       );
-               }
-
-               $dbw->endAtomic( __METHOD__ );
-
-               // purge cache
-               $this->reset();
-
-               return $success;
-       }
-
-       /**
-        * Purges the internal and external cache of the site list, forcing the list
-        * of sites to be re-read from the database.
-        *
-        * @since 1.21
-        */
-       public function reset() {
-               // purge cache
-               $this->cache->delete( $this->getCacheKey() );
-               $this->sites = null;
-
-       }
-
-       /**
-        * Clears the list of sites stored in the database.
-        *
-        * @see SiteStore::clear()
-        *
-        * @return bool Success
-        */
-       public function clear() {
-               $dbw = $this->sitesTable->getWriteDbConnection();
-
-               $dbw->startAtomic( __METHOD__ );
-               $ok = $dbw->delete( 'sites', '*', __METHOD__ );
-               $ok = $dbw->delete( 'site_identifiers', '*', __METHOD__ ) && $ok;
-               $dbw->endAtomic( __METHOD__ );
-
-               $this->reset();
-
-               return $ok;
-       }
-
-       /**
-        * @since 1.21
-        *
-        * @return ORMTable
-        */
-       protected function newSitesTable() {
-               return new ORMTable(
-                       'sites',
-                       array(
-                               'id' => 'id',
-
-                               // Site data
-                               'global_key' => 'str',
-                               'type' => 'str',
-                               'group' => 'str',
-                               'source' => 'str',
-                               'language' => 'str',
-                               'protocol' => 'str',
-                               'domain' => 'str',
-                               'data' => 'array',
-
-                               // Site config
-                               'forward' => 'bool',
-                               'config' => 'array',
-                       ),
-                       array(
-                               'type' => Site::TYPE_UNKNOWN,
-                               'group' => Site::GROUP_NONE,
-                               'source' => Site::SOURCE_LOCAL,
-                               'data' => array(),
+               $siteStore = new DBSiteStore();
 
-                               'forward' => false,
-                               'config' => array(),
-                               'language' => '',
-                       ),
-                       'ORMRow',
-                       'site_'
-               );
+               return new static( $siteStore, $cache );
        }
 
 }
index 537f1cc..10e0c1b 100644 (file)
@@ -26,7 +26,7 @@
  * @license GNU GPL v2+
  * @author Jeroen De Dauw < jeroendedauw@gmail.com >
  */
-interface SiteStore {
+interface SiteStore extends SiteLookup {
 
        /**
         * Saves the provided site.
@@ -50,33 +50,6 @@ interface SiteStore {
         */
        public function saveSites( array $sites );
 
-       /**
-        * Returns the site with provided global id, or null if there is no such site.
-        *
-        * @since 1.21
-        *
-        * @param string $globalId
-        * @param string $source Either 'cache' or 'recache'.
-        * If 'cache', the values are allowed (but not obliged) to come from a cache.
-        *
-        * @return Site|null
-        */
-       public function getSite( $globalId, $source = 'cache' );
-
-       /**
-        * Returns a list of all sites. By default this site is
-        * fetched from the cache, which can be changed to loading
-        * the list from the database using the $useCache parameter.
-        *
-        * @since 1.21
-        *
-        * @param string $source Either 'cache' or 'recache'.
-        * If 'cache', the values are allowed (but not obliged) to come from a cache.
-        *
-        * @return SiteList
-        */
-       public function getSites( $source = 'cache' );
-
        /**
         * Deletes all sites from the database. After calling clear(), getSites() will return an empty
         * list and getSite() will return null until saveSite() or saveSites() is called.
diff --git a/includes/site/SitesCacheFileBuilder.php b/includes/site/SitesCacheFileBuilder.php
new file mode 100644 (file)
index 0000000..2e42040
--- /dev/null
@@ -0,0 +1,113 @@
+<?php
+
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @since 1.25
+ *
+ * @file
+ *
+ * @license GNU GPL v2+
+ */
+class SitesCacheFileBuilder {
+
+       /**
+        * @var SiteLookup
+        */
+       private $siteLookup;
+
+       /**
+        * @var string
+        */
+       private $cacheFile;
+
+       /**
+        * @param SiteLookup $siteLookup
+        * @param string $cacheFile
+        */
+       public function __construct( SiteLookup $siteLookup, $cacheFile ) {
+               $this->siteLookup = $siteLookup;
+               $this->cacheFile = $cacheFile;
+       }
+
+       public function build() {
+               $this->sites = $this->siteLookup->getSites();
+               $this->cacheSites( $this->sites->getArrayCopy() );
+       }
+
+       /**
+        * @param Site[] $sites
+        *
+        * @throws MWException if in manualRecache mode
+        * @return bool
+        */
+       private function cacheSites( array $sites ) {
+               $sitesArray = array();
+
+               foreach ( $sites as $site ) {
+                       $globalId = $site->getGlobalId();
+                       $sitesArray[$globalId] = $this->getSiteAsArray( $site );
+               }
+
+               $json = json_encode( array(
+                       'sites' => $sitesArray
+               ) );
+
+               $result = file_put_contents( $this->cacheFile, $json );
+
+               return $result !== false;
+       }
+
+       /**
+        * @param Site $site
+        *
+        * @return array
+        */
+       private function getSiteAsArray( Site $site ) {
+               $siteEntry = unserialize( $site->serialize() );
+               $siteIdentifiers = $this->buildLocalIdentifiers( $site );
+               $identifiersArray = array();
+
+               foreach ( $siteIdentifiers as $identifier ) {
+                       $identifiersArray[] = $identifier;
+               }
+
+               $siteEntry['identifiers'] = $identifiersArray;
+
+               return $siteEntry;
+       }
+
+       /**
+        * @param Site $site
+        *
+        * @return array Site local identifiers
+        */
+       private function buildLocalIdentifiers( Site $site ) {
+               $localIds = array();
+
+               foreach ( $site->getLocalIds() as $idType => $ids ) {
+                       foreach ( $ids as $id ) {
+                               $localIds[] = array(
+                                       'type' => $idType,
+                                       'key' => $id
+                               );
+                       }
+               }
+
+               return $localIds;
+       }
+
+}
index eedd2a1..25df0f9 100644 (file)
@@ -634,7 +634,8 @@ abstract class BaseTemplate extends QuickTemplate {
         * debug stuff. This should be called right before outputting the closing
         * body and html tags.
         */
-       function printTrail() { ?>
+       function printTrail() {
+?>
 <?php echo MWDebug::getDebugHTML( $this->getSkin()->getContext() ); ?>
 <?php $this->html( 'bottomscripts' ); /* JS call to runBodyOnloadHook */ ?>
 <?php $this->html( 'reporttime' ) ?>
index 530338a..48bce67 100644 (file)
@@ -837,9 +837,15 @@ abstract class Skin extends ContextSource {
        function getPoweredBy() {
                global $wgResourceBasePath;
 
-               $url1 = htmlspecialchars( "$wgResourceBasePath/resources/assets/poweredby_mediawiki_88x31.png" );
-               $url1_5 = htmlspecialchars( "$wgResourceBasePath/resources/assets/poweredby_mediawiki_132x47.png" );
-               $url2 = htmlspecialchars( "$wgResourceBasePath/resources/assets/poweredby_mediawiki_176x62.png" );
+               $url1 = htmlspecialchars(
+                       "$wgResourceBasePath/resources/assets/poweredby_mediawiki_88x31.png"
+               );
+               $url1_5 = htmlspecialchars(
+                       "$wgResourceBasePath/resources/assets/poweredby_mediawiki_132x47.png"
+               );
+               $url2 = htmlspecialchars(
+                       "$wgResourceBasePath/resources/assets/poweredby_mediawiki_176x62.png"
+               );
                $text = '<a href="//www.mediawiki.org/"><img src="' . $url1
                        . '" srcset="' . $url1_5 . ' 1.5x, ' . $url2 . ' 2x" '
                        . 'height="31" width="88" alt="Powered by MediaWiki" /></a>';
@@ -1618,8 +1624,12 @@ abstract class Skin extends ContextSource {
                );
 
                $result .= '<span class="mw-editsection-bracket">]</span></span>';
-
-               Hooks::run( 'DoEditSectionLink', array( $this, $nt, $section, $tooltip, &$result, $lang ) );
+               // Deprecated, use SkinEditSectionLinks hook instead
+               Hooks::run(
+                       'DoEditSectionLink',
+                       array( $this, $nt, $section, $tooltip, &$result, $lang ),
+                       '1.25'
+               );
                return $result;
        }
 
index 98a1b03..b0390e9 100644 (file)
@@ -948,7 +948,6 @@ class SkinTemplate extends Skin {
                                                'text' => wfMessageFallback( "$skname-view-history", 'history_short' )
                                                        ->setContext( $this->getContext() )->text(),
                                                'href' => $title->getLocalURL( 'action=history' ),
-                                               'rel' => 'archives',
                                        );
 
                                        if ( $title->quickUserCan( 'delete', $user ) ) {
index b1ed63c..b913235 100644 (file)
@@ -315,7 +315,9 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                );
        }
 
-       protected function runMainQueryHook( &$tables, &$fields, &$conds, &$query_options, &$join_conds, $opts ) {
+       protected function runMainQueryHook( &$tables, &$fields, &$conds,
+               &$query_options, &$join_conds, $opts
+       ) {
                return Hooks::run(
                        'ChangesListSpecialPageQuery',
                        array( $this->getName(), &$tables, &$fields, &$conds, &$query_options, &$join_conds, $opts )
index f727c05..9056761 100644 (file)
@@ -89,9 +89,12 @@ abstract class FormSpecialPage extends SpecialPage {
         * @return HTMLForm|null
         */
        protected function getForm() {
-               $this->fields = $this->getFormFields();
-
-               $form = HTMLForm::factory( $this->getDisplayFormat(), $this->fields, $this->getContext(), $this->getMessagePrefix() );
+               $form = HTMLForm::factory(
+                       $this->getDisplayFormat(),
+                       $this->getFormFields(),
+                       $this->getContext(),
+                       $this->getMessagePrefix()
+               );
                $form->setSubmitCallback( array( $this, 'onSubmit' ) );
                $form->setWrapperLegendMsg( $this->getMessagePrefix() . '-legend' );
 
index 31d679a..f9d1e8a 100644 (file)
@@ -356,6 +356,7 @@ class SpecialPage {
                if ( $this->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
                        $out->addModuleStyles( array(
                                'mediawiki.ui.input',
+                               'mediawiki.ui.radio',
                                'mediawiki.ui.checkbox',
                        ) );
                }
index 175b0cb..c262519 100644 (file)
@@ -249,8 +249,8 @@ class SpecialPageFactory {
                        // Add extension special pages
                        self::$list = array_merge( self::$list, $wgSpecialPages );
 
-                       // Run hooks
-                       // This hook can be used to remove undesired built-in special pages
+                       // This hook can be used to disable unwanted core special pages
+                       // or conditionally register special pages.
                        Hooks::run( 'SpecialPage_initList', array( &self::$list ) );
 
                }
index 0008b10..5211e30 100644 (file)
@@ -59,6 +59,7 @@ class SpecialAllMessages extends SpecialPage {
 
                $this->outputHeader( 'allmessagestext' );
                $out->addModuleStyles( 'mediawiki.special' );
+               $out->addHelpLink( 'Help:System message' );
 
                $this->table = new AllmessagesTablePager(
                        $this,
index 08b8761..74b1f7b 100644 (file)
@@ -101,7 +101,10 @@ class SpecialAllPages extends IncludableSpecialPage {
                $t = $this->getPageTitle();
 
                $out = Xml::openElement( 'div', array( 'class' => 'namespaceoptions' ) );
-               $out .= Xml::openElement( 'form', array( 'method' => 'get', 'action' => $this->getConfig()->get( 'Script' ) ) );
+               $out .= Xml::openElement(
+                       'form',
+                       array( 'method' => 'get', 'action' => $this->getConfig()->get( 'Script' ) )
+               );
                $out .= Html::hidden( 'title', $t->getPrefixedText() );
                $out .= Xml::openElement( 'fieldset' );
                $out .= Xml::element( 'legend', null, $this->msg( 'allpages' )->text() );
index c672817..c237401 100644 (file)
@@ -103,6 +103,8 @@ class SpecialBlock extends FormSpecialPage {
                $msg = $this->alreadyBlocked ? 'ipb-change-block' : 'ipbsubmit';
                $form->setSubmitTextMsg( $msg );
 
+               $this->getOutput()->addHelpLink( 'Help:Blocking users' );
+
                # Don't need to do anything if the form has been posted
                if ( !$this->getRequest()->wasPosted() && $this->preErrors ) {
                        $s = $form->formatErrors( $this->preErrors );
@@ -679,7 +681,7 @@ class SpecialBlock extends FormSpecialPage {
                        # Recheck params here...
                        if ( $type != Block::TYPE_USER ) {
                                $data['HideUser'] = false; # IP users should not be hidden
-                       } elseif ( !in_array( $data['Expiry'], array( 'infinite', 'infinity', 'indefinite' ) ) ) {
+                       } elseif ( !wfIsInfinity( $data['Expiry'] ) ) {
                                # Bad expiry.
                                return array( 'ipb_expiry_temp' );
                        } elseif ( $wgHideUserContribLimit !== false
@@ -854,7 +856,7 @@ class SpecialBlock extends FormSpecialPage {
                        $infinity = wfGetDB( DB_SLAVE )->getInfinity();
                }
 
-               if ( $expiry == 'infinite' || $expiry == 'indefinite' ) {
+               if ( wfIsInfinity( $expiry ) ) {
                        $expiry = $infinity;
                } else {
                        $expiry = strtotime( $expiry );
index 91a148d..7028fdc 100644 (file)
@@ -135,7 +135,7 @@ class SpecialBookSources extends SpecialPage {
                        'isbn',
                        20,
                        $this->isbn,
-                       array( 'autofocus' => true, 'class' => 'mw-ui-input-inline' )
+                       array( 'autofocus' => '', 'class' => 'mw-ui-input-inline' )
                );
 
                $form .= '&#160;' . Html::submitButton(
index 674cbc8..eca307d 100644 (file)
@@ -141,7 +141,8 @@ class SpecialChangeEmail extends FormSpecialPage {
                        # Notify user that a confirmation email has been sent...
                        $this->getOutput()->wrapWikiMsg( "<div class='error' style='clear: both;'>\n$1\n</div>",
                                'eauthentsent', $this->getUser()->getName() );
-                       $this->getOutput()->addReturnTo( $titleObj, wfCgiToArray( $query ) ); // just show the link to go back
+                       // just show the link to go back
+                       $this->getOutput()->addReturnTo( $titleObj, wfCgiToArray( $query ) );
                }
        }
 
index 77d2317..799e526 100644 (file)
@@ -53,6 +53,7 @@ class SpecialDiff extends RedirectSpecialPage {
                        $this->mAddedRedirectParams['diff'] = $parts[1];
                } else {
                        // Wrong number of parameters, bail out
+                       $this->getOutput()->addHelpLink( 'Help:Diff' );
                        throw new ErrorPageError( 'nopagetitle', 'nopagetext' );
                }
 
index 891ea01..b7582e6 100644 (file)
@@ -154,7 +154,7 @@ class SpecialExpandTemplates extends SpecialPage {
                        'contexttitle',
                        60,
                        $title,
-                       array( 'autofocus' => true, 'class' => 'mw-ui-input-inline' )
+                       array( 'autofocus' => '', 'class' => 'mw-ui-input-inline' )
                ) . '</p>';
                $form .= '<p>' . Xml::label(
                        $this->msg( 'expand_templates_input' )->text(),
index aa9b0f4..af86964 100644 (file)
@@ -546,7 +546,6 @@ class ImportReporter extends ContextSource {
                                        "</li>\n"
                        );
 
-                       $log = new LogPage( 'import' );
                        if ( $this->mIsUpload ) {
                                $detail = $this->msg( 'import-logentry-upload-detail' )->numParams(
                                        $successCount )->inContentLanguage()->text();
@@ -554,7 +553,7 @@ class ImportReporter extends ContextSource {
                                        $detail .= $this->msg( 'colon-separator' )->inContentLanguage()->text()
                                                . $this->reason;
                                }
-                               $log->addEntry( 'upload', $title, $detail, array(), $this->getUser() );
+                               $action = 'upload';
                        } else {
                                $interwiki = '[[:' . $this->mInterwiki . ':' .
                                        $foreignTitle->getFullText() . ']]';
@@ -564,9 +563,16 @@ class ImportReporter extends ContextSource {
                                        $detail .= $this->msg( 'colon-separator' )->inContentLanguage()->text()
                                                . $this->reason;
                                }
-                               $log->addEntry( 'interwiki', $title, $detail, array(), $this->getUser() );
+                               $action = 'interwiki';
                        }
 
+                       $logEntry = new ManualLogEntry( 'import', $action );
+                       $logEntry->setTarget( $title );
+                       $logEntry->setComment( $detail );
+                       $logEntry->setPerformer( $this->getUser() );
+                       $logid = $logEntry->insert();
+                       $logEntry->publish( $logid );
+
                        $comment = $detail; // quick
                        $dbw = wfGetDB( DB_MASTER );
                        $latest = $title->getLatestRevID();
index 492105d..ecb166a 100644 (file)
@@ -242,9 +242,13 @@ HTML;
                        'debug' => ResourceLoader::inDebugMode() ? 'true' : 'false',
                ) );
 
-               $styles = $out->makeResourceLoaderLink( 'jquery.qunit', ResourceLoaderModule::TYPE_STYLES, false );
+               $styles = $out->makeResourceLoaderLink(
+                       'jquery.qunit', ResourceLoaderModule::TYPE_STYLES, false
+               );
                // Use 'raw' since this is a plain HTML page without ResourceLoader
-               $scripts = $out->makeResourceLoaderLink( 'jquery.qunit', ResourceLoaderModule::TYPE_SCRIPTS, false, array( 'raw' => 'true' ) );
+               $scripts = $out->makeResourceLoaderLink(
+                       'jquery.qunit', ResourceLoaderModule::TYPE_SCRIPTS, false, array( 'raw' => 'true' )
+               );
 
                $head = trim( $styles['html'] . $scripts['html'] );
                $html = <<<HTML
index 760704d..d4b45fb 100644 (file)
@@ -425,7 +425,7 @@ class ImageListPager extends TablePager {
        function formatValue( $field, $value ) {
                switch ( $field ) {
                        case 'thumb':
-                               $opt = array( 'time' => $this->mCurrentRow->img_timestamp );
+                               $opt = array( 'time' => wfTimestamp( TS_MW, $this->mCurrentRow->img_timestamp ) );
                                $file = RepoGroup::singleton()->getLocalRepo()->findFile( $value, $opt );
                                // If statement for paranoia
                                if ( $file ) {
index 9315eb8..44a2c34 100644 (file)
@@ -97,7 +97,10 @@ class SpecialLog extends SpecialPage {
                        }
                } else {
                        // Allow extensions to add relations to their search types
-                       Hooks::run( 'SpecialLogAddLogSearchRelations', array( $opts->getValue( 'type' ), $this->getRequest(), &$qc ) );
+                       Hooks::run(
+                               'SpecialLogAddLogSearchRelations',
+                               array( $opts->getValue( 'type' ), $this->getRequest(), &$qc )
+                       );
                }
 
                # Some log types are only for a 'User:' title but we might have been given
index 1056cda..b62de5d 100644 (file)
@@ -73,6 +73,10 @@ class MediaStatisticsPage extends QueryPage {
                                'namespace' => NS_MEDIA, /* needs to be something */
                                'value' => '1'
                        ),
+                       'conds' => array(
+                               // WMF has a random null row in the db
+                               'img_media_type IS NOT NULL'
+                       ),
                        'options' => array(
                                'GROUP BY' => array(
                                        'img_media_type',
index 7e74cd5..368d491 100644 (file)
@@ -152,16 +152,17 @@ class SpecialMergeHistory extends SpecialPage {
 
                if ( count( $errors ) ) {
                        $this->showMergeForm();
-                       $this->getOutput()->addHTML( implode( "\n", $errors ) );
+                       $out->addHTML( implode( "\n", $errors ) );
                } else {
                        $this->showHistory();
                }
        }
 
        function showMergeForm() {
-               $this->getOutput()->addWikiMsg( 'mergehistory-header' );
+               $out = $this->getOutput();
+               $out->addWikiMsg( 'mergehistory-header' );
 
-               $this->getOutput()->addHTML(
+               $out->addHTML(
                        Xml::openElement( 'form', array(
                                'method' => 'get',
                                'action' => wfScript() ) ) .
@@ -185,6 +186,8 @@ class SpecialMergeHistory extends SpecialPage {
                                '</fieldset>' .
                                '</form>'
                );
+
+               $out->addHelpLink( 'Help:Merge history' );
        }
 
        private function showHistory() {
index 86aad12..a519bd0 100644 (file)
@@ -140,6 +140,7 @@ class MovePageForm extends UnlistedSpecialPage {
                $out = $this->getOutput();
                $out->setPageTitle( $this->msg( 'move-page', $this->oldTitle->getPrefixedText() ) );
                $out->addModules( 'mediawiki.special.movePage' );
+               $out->addHelpLink( 'Help:Moving a page' );
 
                $newTitle = $this->newTitle;
 
@@ -536,6 +537,7 @@ class MovePageForm extends UnlistedSpecialPage {
                        // Delete an associated image if there is
                        if ( $nt->getNamespace() == NS_FILE ) {
                                $file = wfLocalFile( $nt );
+                               $file->load( File::READ_LATEST );
                                if ( $file->exists() ) {
                                        $file->delete( $reason, false, $user );
                                }
index 71b1893..6cea158 100644 (file)
@@ -80,6 +80,11 @@ class SpecialMyLanguage extends RedirectSpecialArticle {
                        return null;
                }
 
+               if ( $base->isRedirect() ) {
+                       $page = new WikiPage( $base );
+                       $base = $page->getRedirectTarget();
+               }
+
                $uiCode = $this->getLanguage()->getCode();
                $proposed = $base->getSubpage( $uiCode );
                if ( $uiCode !== $this->getConfig()->get( 'LanguageCode' ) && $proposed && $proposed->exists() ) {
index 94e77e3..de19fa4 100644 (file)
@@ -30,6 +30,9 @@ class SpecialNewFiles extends IncludableSpecialPage {
                $this->setHeaders();
                $this->outputHeader();
 
+               $out = $this->getOutput();
+               $out->addHelpLink( 'Help:New images' );
+
                $pager = new NewFilesPager( $this->getContext(), $par );
 
                if ( !$this->including() ) {
@@ -39,9 +42,9 @@ class SpecialNewFiles extends IncludableSpecialPage {
                        $form->displayForm( '' );
                }
 
-               $this->getOutput()->addHTML( $pager->getBody() );
+               $out->addHTML( $pager->getBody() );
                if ( !$this->including() ) {
-                       $this->getOutput()->addHTML( $pager->getNavigationBar() );
+                       $out->addHTML( $pager->getNavigationBar() );
                }
        }
 
index 994a2e5..594628f 100644 (file)
@@ -127,6 +127,8 @@ class SpecialNewpages extends IncludableSpecialPage {
                $this->showNavigation = !$this->including(); // Maybe changed in setup
                $this->setup( $par );
 
+               $out->addHelpLink( 'Help:New pages' );
+
                if ( !$this->including() ) {
                        // Settings
                        $this->form();
index 2e67e2b..5a67d92 100644 (file)
@@ -102,7 +102,10 @@ class SpecialPrefixindex extends SpecialAllPages {
         */
        protected function namespacePrefixForm( $namespace = NS_MAIN, $from = '' ) {
                $out = Xml::openElement( 'div', array( 'class' => 'namespaceoptions' ) );
-               $out .= Xml::openElement( 'form', array( 'method' => 'get', 'action' => $this->getConfig()->get( 'Script' ) ) );
+               $out .= Xml::openElement(
+                       'form',
+                       array( 'method' => 'get', 'action' => $this->getConfig()->get( 'Script' ) )
+               );
                $out .= Html::hidden( 'title', $this->getPageTitle()->getPrefixedText() );
                $out .= Xml::openElement( 'fieldset' );
                $out .= Xml::element( 'legend', null, $this->msg( 'allpages' )->text() );
index 69436bf..b6f19ec 100644 (file)
@@ -68,6 +68,8 @@ class SpecialRandomInCategory extends FormSpecialPage {
        }
 
        protected function getFormFields() {
+               $this->getOutput()->addHelpLink( 'Help:RandomInCategory' );
+
                $form = array(
                        'category' => array(
                                'type' => 'text',
index efb870b..64b0eca 100644 (file)
@@ -252,7 +252,9 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                return $rows;
        }
 
-       protected function runMainQueryHook( &$tables, &$fields, &$conds, &$query_options, &$join_conds, $opts ) {
+       protected function runMainQueryHook( &$tables, &$fields, &$conds,
+               &$query_options, &$join_conds, $opts
+       ) {
                return parent::runMainQueryHook( $tables, $fields, $conds, $query_options, $join_conds, $opts )
                        && Hooks::run(
                                'SpecialRecentChangesQuery',
@@ -311,7 +313,9 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                        $rc = RecentChange::newFromRow( $obj );
                        $rc->counter = $counter++;
                        # Check if the page has been updated since the last visit
-                       if ( $this->getConfig()->get( 'ShowUpdatedMarker' ) && !empty( $obj->wl_notificationtimestamp ) ) {
+                       if ( $this->getConfig()->get( 'ShowUpdatedMarker' )
+                               && !empty( $obj->wl_notificationtimestamp )
+                       ) {
                                $rc->notificationtimestamp = ( $obj->rc_timestamp >= $obj->wl_notificationtimestamp );
                        } else {
                                $rc->notificationtimestamp = false; // Default
@@ -732,7 +736,8 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
 
                        $link = $this->makeOptionsLink( $linkMessage->text(),
                                array( $key => 1 - $options[$key] ), $nondefaults );
-                       $links[] = "<span class=\"$msg rcshowhideoption\">" . $this->msg( $msg )->rawParams( $link )->escaped() . '</span>';
+                       $links[] = "<span class=\"$msg rcshowhideoption\">"
+                               . $this->msg( $msg )->rawParams( $link )->escaped() . '</span>';
                }
 
                // show from this onward link
index 7a350c7..e0a964e 100644 (file)
@@ -374,10 +374,12 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                $userAllowed = true;
 
                // Messages: revdelete-selected-text, revdelete-selected-file, logdelete-selected
-               $this->getOutput()->wrapWikiMsg( "<strong>$1</strong>", array( $this->typeLabels['selected'],
+               $out = $this->getOutput();
+               $out->wrapWikiMsg( "<strong>$1</strong>", array( $this->typeLabels['selected'],
                        $this->getLanguage()->formatNum( count( $this->ids ) ), $this->targetObj->getPrefixedText() ) );
 
-               $this->getOutput()->addHTML( "<ul>" );
+               $out->addHelpLink( 'Help:RevisionDelete' );
+               $out->addHTML( "<ul>" );
 
                $numRevisions = 0;
                // Live revisions...
@@ -395,14 +397,14 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                        }
 
                        $numRevisions++;
-                       $this->getOutput()->addHTML( $item->getHTML() );
+                       $out->addHTML( $item->getHTML() );
                }
 
                if ( !$numRevisions ) {
                        throw new ErrorPageError( 'revdelete-nooldid-title', 'revdelete-nooldid-text' );
                }
 
-               $this->getOutput()->addHTML( "</ul>" );
+               $out->addHTML( "</ul>" );
                // Explanation text
                $this->addUsageText();
 
@@ -413,7 +415,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
 
                // Show form if the user can submit
                if ( $this->mIsAllowed ) {
-                       $out = Xml::openElement( 'form', array( 'method' => 'post',
+                       $form = Xml::openElement( 'form', array( 'method' => 'post',
                                        'action' => $this->getPageTitle()->getLocalURL( array( 'action' => 'submit' ) ),
                                        'id' => 'mw-revdel-form-revisions' ) ) .
                                Xml::fieldset( $this->msg( 'revdelete-legend' )->text() ) .
@@ -465,12 +467,12 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                                        array(),
                                        array( 'action' => 'edit' )
                                );
-                               $out .= Xml::tags( 'p', array( 'class' => 'mw-revdel-editreasons' ), $link ) . "\n";
+                               $form .= Xml::tags( 'p', array( 'class' => 'mw-revdel-editreasons' ), $link ) . "\n";
                        }
                } else {
-                       $out = '';
+                       $form = '';
                }
-               $this->getOutput()->addHTML( $out );
+               $out->addHTML( $form );
        }
 
        /**
index 1bafc61..0d44d34 100644 (file)
@@ -61,10 +61,11 @@ class SpecialRunJobs extends UnlistedSpecialPage {
 
                $squery = $params;
                unset( $squery['signature'] );
-               $cSig = self::getQuerySignature( $squery, $this->getConfig()->get( 'SecretKey' ) ); // correct signature
-               $rSig = $params['signature']; // provided signature
+               $correctSignature = self::getQuerySignature( $squery, $this->getConfig()->get( 'SecretKey' ) );
+               $providedSignature = $params['signature'];
 
-               $verified = is_string( $rSig ) && hash_equals( $cSig, $rSig );
+               $verified = is_string( $providedSignature )
+                       && hash_equals( $correctSignature, $providedSignature );
                if ( !$verified || $params['sigexpiry'] < time() ) {
                        header( "HTTP/1.0 400 Bad Request" );
                        print 'Invalid or stale signature provided';
index ff263b6..0b8147e 100644 (file)
@@ -114,6 +114,12 @@ class SpecialTags extends SpecialPage {
                $showActions = $user->isAllowed( 'managechangetags' );
 
                // Write the headers
+               $tagUsageStatistics = ChangeTags::tagUsageStatistics();
+
+               // Show header only if there exists atleast one tag
+               if ( !$tagUsageStatistics ) {
+                       return;
+               }
                $html = Xml::tags( 'tr', null, Xml::tags( 'th', null, $this->msg( 'tags-tag' )->parse() ) .
                        Xml::tags( 'th', null, $this->msg( 'tags-display-header' )->parse() ) .
                        Xml::tags( 'th', null, $this->msg( 'tags-description-header' )->parse() ) .
@@ -134,7 +140,7 @@ class SpecialTags extends SpecialPage {
                $this->extensionActivatedTags = array_fill_keys(
                        ChangeTags::listExtensionActivatedTags(), true );
 
-               foreach ( ChangeTags::tagUsageStatistics() as $tag => $hitcount ) {
+               foreach ( $tagUsageStatistics as $tag => $hitcount ) {
                        $html .= $this->doTagRow( $tag, $hitcount, $showActions );
                }
 
index fb2c421..de2365e 100644 (file)
@@ -370,6 +370,7 @@ class PageArchive {
 
                if ( $restoreFiles && $this->title->getNamespace() == NS_FILE ) {
                        $img = wfLocalFile( $this->title );
+                       $img->load( File::READ_LATEST );
                        $this->fileStatus = $img->restore( $fileVersions, $unsuppress );
                        if ( !$this->fileStatus->isOK() ) {
                                return false;
@@ -790,6 +791,7 @@ class SpecialUndelete extends SpecialPage {
                        return;
                }
 
+               $out->addHelpLink( 'Help:Undelete' );
                if ( $this->mAllowed ) {
                        $out->setPageTitle( $this->msg( 'undeletepage' ) );
                } else {
@@ -839,7 +841,7 @@ class SpecialUndelete extends SpecialPage {
                                        'prefix',
                                        20,
                                        $this->mSearchPrefix,
-                                       array( 'id' => 'prefix', 'autofocus' => true )
+                                       array( 'id' => 'prefix', 'autofocus' => '' )
                                ) . ' ' .
                                Xml::submitButton( $this->msg( 'undelete-search-submit' )->text() ) .
                                Xml::closeElement( 'fieldset' ) .
@@ -1312,7 +1314,7 @@ class SpecialUndelete extends SpecialPage {
                                        'wpComment',
                                        50,
                                        $this->mComment,
-                                       array( 'id' => 'wpComment', 'autofocus' => true )
+                                       array( 'id' => 'wpComment', 'autofocus' => '' )
                                ) .
                                "</td>
                        </tr>
index ce8192b..72d02e0 100644 (file)
@@ -160,6 +160,8 @@ class SpecialUpload extends SpecialPage {
                        throw new ErrorPageError( 'uploaddisabled', 'uploaddisabledtext' );
                }
 
+               $this->getOutput()->addHelpLink( 'Help:Managing files' );
+
                # Check permissions
                $user = $this->getUser();
                $permissionRequired = UploadBase::isAllowed( $user );
index 462dbee..12e103e 100644 (file)
@@ -48,10 +48,6 @@ class SpecialUploadStash extends UnlistedSpecialPage {
 
        public function __construct() {
                parent::__construct( 'UploadStash', 'upload' );
-               try {
-                       $this->stash = RepoGroup::singleton()->getLocalRepo()->getUploadStash( $this->getUser() );
-               } catch ( UploadStashNotAvailableException $e ) {
-               }
        }
 
        /**
@@ -62,6 +58,7 @@ class SpecialUploadStash extends UnlistedSpecialPage {
         * @return bool Success
         */
        public function execute( $subPage ) {
+               $this->stash = RepoGroup::singleton()->getLocalRepo()->getUploadStash( $this->getUser() );
                $this->checkPermissions();
 
                if ( $subPage === null || $subPage === '' ) {
@@ -250,9 +247,9 @@ class SpecialUploadStash extends UnlistedSpecialPage {
                // make a curl call to the scaler to create a thumbnail
                $httpOptions = array(
                        'method' => 'GET',
-                       'timeout' => 'default'
+                       'timeout' => 5 // T90599 attempt to time out cleanly
                );
-               $req = MWHttpRequest::factory( $scalerThumbUrl, $httpOptions );
+               $req = MWHttpRequest::factory( $scalerThumbUrl, $httpOptions, __METHOD__ );
                $status = $req->execute();
                if ( !$status->isOK() ) {
                        $errors = $status->getErrorsArray();
index f2f6b69..44240d8 100644 (file)
@@ -916,7 +916,7 @@ class LoginForm extends SpecialPage {
                        case self::SUCCESS:
                                # We've verified now, update the real record
                                $user = $this->getUser();
-                               $user->invalidateCache();
+                               $user->touch();
 
                                if ( $user->requiresHTTPS() ) {
                                        $this->mStickHTTPS = true;
index a5edcb0..785a844 100644 (file)
@@ -135,6 +135,7 @@ class UserrightsPage extends SpecialPage {
 
                $out = $this->getOutput();
                $out->addModuleStyles( 'mediawiki.special' );
+               $out->addHelpLink( 'Help:Assigning permissions' );
 
                // show the general form
                if ( count( $available['add'] ) || count( $available['remove'] ) ) {
@@ -440,7 +441,7 @@ class UserrightsPage extends SpecialPage {
                                30,
                                str_replace( '_', ' ', $this->mTarget ),
                                array(
-                                       'autofocus' => true,
+                                       'autofocus' => '',
                                        'class' => 'mw-autocomplete-user', // used by mediawiki.userSuggest
                                )
                        ) . ' ' .
index a7365bb..c1a9593 100644 (file)
@@ -515,7 +515,10 @@ class SpecialVersion extends SpecialPage {
                        array( 'id' => 'mw-version-libraries' ),
                        $this->msg( 'version-libraries' )->text()
                );
-               $out .= Html::openElement( 'table', array( 'class' => 'wikitable plainlinks', 'id' => 'sv-libraries' ) );
+               $out .= Html::openElement(
+                       'table',
+                       array( 'class' => 'wikitable plainlinks', 'id' => 'sv-libraries' )
+               );
                $out .= Html::openElement( 'tr' )
                        . Html::element( 'th', array(), $this->msg( 'version-libraries-library' )->text() )
                        . Html::element( 'th', array(), $this->msg( 'version-libraries-version' )->text() )
@@ -528,7 +531,11 @@ class SpecialVersion extends SpecialPage {
                                continue;
                        }
                        $out .= Html::openElement( 'tr' )
-                               . Html::rawElement( 'td', array(), Linker::makeExternalLink( "https://packagist.org/packages/$name", $name ) )
+                               . Html::rawElement(
+                                       'td',
+                                       array(),
+                                       Linker::makeExternalLink( "https://packagist.org/packages/$name", $name )
+                               )
                                . Html::element( 'td', array(), $info['version'] )
                                . Html::closeElement( 'tr' );
                }
@@ -588,11 +595,15 @@ class SpecialVersion extends SpecialPage {
 
                $fhooks = $wgParser->getFunctionHooks();
                if ( count( $fhooks ) ) {
-                       $out = Html::rawElement( 'h2', array( 'class' => 'mw-headline plainlinks' ), Linker::makeExternalLink(
-                               '//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Parser_functions',
-                               $this->msg( 'version-parser-function-hooks' )->parse(),
-                               false /* msg()->parse() already escapes */
-                       ) );
+                       $out = Html::rawElement(
+                               'h2',
+                               array( 'class' => 'mw-headline plainlinks' ),
+                               Linker::makeExternalLink(
+                                       '//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Parser_functions',
+                                       $this->msg( 'version-parser-function-hooks' )->parse(),
+                                       false /* msg()->parse() already escapes */
+                               )
+                       );
 
                        $out .= $this->listToText( $fhooks );
                } else {
index 28be790..40cce5e 100644 (file)
@@ -152,7 +152,9 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
                        $conds['pagelinks'][] = 'rd_from is NOT NULL';
                }
 
-               $queryFunc = function ( $dbr, $table, $fromCol ) use ( $conds, $target, $limit, $useLinkNamespaceDBFields ) {
+               $queryFunc = function ( $dbr, $table, $fromCol ) use (
+                       $conds, $target, $limit, $useLinkNamespaceDBFields
+               ) {
                        // Read an extra row as an at-end check
                        $queryLimit = $limit + 1;
                        $on = array(
@@ -278,7 +280,11 @@ class SpecialWhatLinksHere extends IncludableSpecialPage {
 
                        if ( $row->rd_from && $level < 2 ) {
                                $out->addHTML( $this->listItem( $row, $nt, $target, true ) );
-                               $this->showIndirectLinks( $level + 1, $nt, $this->getConfig()->get( 'MaxRedirectLinksRetrieved' ) );
+                               $this->showIndirectLinks(
+                                       $level + 1,
+                                       $nt,
+                                       $this->getConfig()->get( 'MaxRedirectLinksRetrieved' )
+                               );
                                $out->addHTML( Xml::closeElement( 'li' ) );
                        } else {
                                $out->addHTML( $this->listItem( $row, $nt, $target ) );
index 43bab0e..f09b6bb 100644 (file)
@@ -218,7 +218,7 @@ class UsercreateTemplate extends BaseTemplate {
                                                                                echo 'checked="checked"';
                                                                        } ?>
                                                                ><label for="<?php echo htmlspecialchars( $inputItem['name'] ); ?>">
-                                                                       <?php $this->msgHtml( $inputItem['msg'] ); ?>
+                                                                       <?php $this->msg( $inputItem['msg'] ); ?>
                                                                </label>
                                                        </div>
                                                <?php
@@ -261,7 +261,7 @@ class UsercreateTemplate extends BaseTemplate {
                                <?php
                                echo Html::submitButton(
                                        $this->getMsg( $this->data['loggedin'] ? 'createacct-another-submit' : 'createacct-submit' ),
-                                       $attrs = array(
+                                       array(
                                                'id' => 'wpCreateaccount',
                                                'name' => 'wpCreateaccount',
                                                'tabindex' => $tabIndex++
index fccb5e1..a79526e 100644 (file)
@@ -622,6 +622,7 @@ abstract class UploadBase {
                $warnings = array();
 
                $localFile = $this->getLocalFile();
+               $localFile->load( File::READ_LATEST );
                $filename = $localFile->getName();
 
                /**
@@ -701,6 +702,7 @@ abstract class UploadBase {
         * @return Status Indicating the whether the upload succeeded.
         */
        public function performUpload( $comment, $pageText, $watch, $user ) {
+               $this->getLocalFile()->load( File::READ_LATEST );
 
                $status = $this->getLocalFile()->upload(
                        $this->mTempPath,
@@ -1699,6 +1701,7 @@ abstract class UploadBase {
        private function checkOverwrite( $user ) {
                // First check whether the local file can be overwritten
                $file = $this->getLocalFile();
+               $file->load( File::READ_LATEST );
                if ( $file->exists() ) {
                        if ( !self::userCanReUpload( $user, $file ) ) {
                                return array( 'fileexists-forbidden', $file->getName() );
@@ -1710,7 +1713,7 @@ abstract class UploadBase {
                /* Check shared conflicts: if the local file does not exist, but
                 * wfFindFile finds a file, it exists in a shared repository.
                 */
-               $file = wfFindFile( $this->getTitle() );
+               $file = wfFindFile( $this->getTitle(), array( 'latest' => true ) );
                if ( $file && !$user->isAllowed( 'reupload-shared' ) ) {
                        return array( 'fileexists-shared-forbidden', $file->getName() );
                }
@@ -1739,6 +1742,8 @@ abstract class UploadBase {
                        return false;
                }
 
+               $img->load( File::READ_LATEST );
+
                return $user->getId() == $img->getUser( 'id' );
        }
 
index 3c249ce..cc9f5c8 100644 (file)
@@ -170,20 +170,6 @@ class UploadFromChunks extends UploadFromFile {
                return $status;
        }
 
-       /**
-        * Perform the upload, then remove the temp copy afterward
-        * @param string $comment
-        * @param string $pageText
-        * @param bool $watch
-        * @param User $user
-        * @return Status
-        */
-       public function performUpload( $comment, $pageText, $watch, $user ) {
-               $rv = parent::performUpload( $comment, $pageText, $watch, $user );
-
-               return $rv;
-       }
-
        /**
         * Returns the virtual chunk location:
         * @param int $index
index 3d410b1..fc59ace 100644 (file)
@@ -287,7 +287,7 @@ class UploadFromUrl extends UploadBase {
                        'Starting download from "' . $this->mUrl . '" ' .
                                '<' . implode( ',', array_keys( array_filter( $options ) ) ) . '>'
                );
-               $req = MWHttpRequest::factory( $this->mUrl, $options );
+               $req = MWHttpRequest::factory( $this->mUrl, $options, __METHOD__ );
                $req->setCallback( array( $this, 'saveTempFileChunk' ) );
                $status = $req->execute();
 
index 52ce4d3..c07665a 100644 (file)
@@ -727,9 +727,6 @@ class UploadStashFile extends UnregisteredLocalFile {
 class UploadStashException extends MWException {
 }
 
-class UploadStashNotAvailableException extends UploadStashException {
-}
-
 class UploadStashFileNotFoundException extends UploadStashException {
 }
 
index 1f639fc..9cf8cab 100644 (file)
@@ -167,7 +167,7 @@ class AutoloadGenerator {
                        <<<EOD
 <?php
 // This file is generated by $commandName, do not adjust manually
-
+// @codingStandardsIgnoreFile
 global \${$this->variableName};
 
 \${$this->variableName} {$op} array(
diff --git a/jsduck.json b/jsduck.json
new file mode 100644 (file)
index 0000000..53c6913
--- /dev/null
@@ -0,0 +1,41 @@
+{
+       "--title": "MediaWiki core - Documentation",
+       "--categories": "maintenance/jsduck/categories.json",
+       "--eg-iframe": "maintenance/jsduck/eg-iframe.html",
+       "--tags": "maintenance/jsduck/custom_tags.rb",
+       "--warnings": ["-nodoc(class,public)"],
+       "--builtin-classes": true,
+       "--processes": "0",
+       "--warnings-exit-nonzero": true,
+       "--external": "HTMLElement,HTMLDocument,Window,File,MouseEvent,KeyboardEvent",
+       "--output": "docs/js",
+       "--": [
+               "maintenance/jsduck/external.js",
+               "resources/src/mediawiki",
+               "resources/src/mediawiki.action",
+               "resources/src/mediawiki.api",
+               "resources/src/mediawiki.language",
+               "resources/src/mediawiki.page",
+               "resources/src/mediawiki.special",
+               "resources/src/mediawiki.toolbar",
+               "resources/src/jquery/jquery.accessKeyLabel.js",
+               "resources/src/jquery/jquery.arrowSteps.js",
+               "resources/src/jquery/jquery.autoEllipsis.js",
+               "resources/src/jquery/jquery.badge.js",
+               "resources/src/jquery/jquery.byteLength.js",
+               "resources/src/jquery/jquery.byteLimit.js",
+               "resources/src/jquery/jquery.checkboxShiftClick.js",
+               "resources/src/jquery/jquery.colorUtil.js",
+               "resources/src/jquery/jquery.confirmable.js",
+               "resources/src/jquery/jquery.footHovzer.js",
+               "resources/src/jquery/jquery.getAttrs.js",
+               "resources/src/jquery/jquery.hidpi.js",
+               "resources/src/jquery/jquery.localize.js",
+               "resources/src/jquery/jquery.makeCollapsible.js",
+               "resources/src/jquery/jquery.spinner.js",
+               "resources/src/jquery/jquery.tabIndex.js",
+               "resources/lib/jquery.client/jquery.client.js",
+               "resources/lib/oojs",
+               "resources/lib/oojs-ui"
+       ]
+}
index d203c0f..3e47453 100644 (file)
@@ -587,7 +587,7 @@ class Language {
                global $wgExtraGenderNamespaces;
 
                $ns = $wgExtraGenderNamespaces +
-                       self::$dataCache->getItem( $this->mCode, 'namespaceGenderAliases' );
+                       (array)self::$dataCache->getItem( $this->mCode, 'namespaceGenderAliases' );
 
                return isset( $ns[$index][$gender] ) ? $ns[$index][$gender] : $this->getNsText( $index );
        }
@@ -1254,7 +1254,9 @@ class Language {
                                        break;
                                case 'D':
                                        $usedDay = true;
-                                       $s .= $this->getWeekdayAbbreviation( Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'w' ) + 1 );
+                                       $s .= $this->getWeekdayAbbreviation(
+                                               Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'w' ) + 1
+                                       );
                                        break;
                                case 'j':
                                        $usedDay = true;
@@ -1283,7 +1285,9 @@ class Language {
                                        break;
                                case 'l':
                                        $usedDay = true;
-                                       $s .= $this->getWeekdayName( Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'w' ) + 1 );
+                                       $s .= $this->getWeekdayName(
+                                               Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'w' ) + 1
+                                       );
                                        break;
                                case 'F':
                                        $usedMonth = true;
@@ -1530,43 +1534,72 @@ class Language {
                } elseif ( $usedHour ) {
                        $ttl = 3600 - substr( $ts, 10, 2 ) * 60 - substr( $ts, 12, 2 );
                } elseif ( $usedAMPM ) {
-                       $ttl = 43200 - ( substr( $ts, 8, 2 ) % 12 ) * 3600 - substr( $ts, 10, 2 ) * 60 - substr( $ts, 12, 2 );
-               } elseif ( $usedDay || $usedHebrewMonth || $usedIranianMonth || $usedHijriMonth || $usedHebrewYear || $usedIranianYear || $usedHijriYear || $usedTennoYear ) {
-                       // @todo Someone who understands the non-Gregorian calendars should write proper logic for them
-                       // so that they don't need purged every day.
-                       $ttl = 86400 - substr( $ts, 8, 2 ) * 3600 - substr( $ts, 10, 2 ) * 60 - substr( $ts, 12, 2 );
+                       $ttl = 43200 - ( substr( $ts, 8, 2 ) % 12 ) * 3600 -
+                               substr( $ts, 10, 2 ) * 60 - substr( $ts, 12, 2 );
+               } elseif (
+                       $usedDay ||
+                       $usedHebrewMonth ||
+                       $usedIranianMonth ||
+                       $usedHijriMonth ||
+                       $usedHebrewYear ||
+                       $usedIranianYear ||
+                       $usedHijriYear ||
+                       $usedTennoYear
+               ) {
+                       // @todo Someone who understands the non-Gregorian calendars
+                       // should write proper logic for them so that they don't need purged every day.
+                       $ttl = 86400 - substr( $ts, 8, 2 ) * 3600 -
+                               substr( $ts, 10, 2 ) * 60 - substr( $ts, 12, 2 );
                } else {
                        $possibleTtls = array();
-                       $timeRemainingInDay = 86400 - substr( $ts, 8, 2 ) * 3600 - substr( $ts, 10, 2 ) * 60 - substr( $ts, 12, 2 );
+                       $timeRemainingInDay = 86400 - substr( $ts, 8, 2 ) * 3600 -
+                               substr( $ts, 10, 2 ) * 60 - substr( $ts, 12, 2 );
                        if ( $usedWeek ) {
-                               $possibleTtls[] = ( 7 - Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'N' ) ) * 86400 + $timeRemainingInDay;
+                               $possibleTtls[] =
+                                       ( 7 - Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'N' ) ) * 86400 +
+                                       $timeRemainingInDay;
                        } elseif ( $usedISOYear ) {
                                // December 28th falls on the last ISO week of the year, every year.
                                // The last ISO week of a year can be 52 or 53.
-                               $lastWeekOfISOYear = DateTime::createFromFormat( 'Ymd', substr( $ts, 0, 4 ) . '1228', $zone ?: new DateTimeZone( 'UTC' ) )->format( 'W' );
+                               $lastWeekOfISOYear = DateTime::createFromFormat(
+                                       'Ymd',
+                                       substr( $ts, 0, 4 ) . '1228',
+                                       $zone ?: new DateTimeZone( 'UTC' )
+                               )->format( 'W' );
                                $currentISOWeek = Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'W' );
                                $weeksRemaining = $lastWeekOfISOYear - $currentISOWeek;
-                               $timeRemainingInWeek = ( 7 - Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'N' ) ) * 86400 + $timeRemainingInDay;
+                               $timeRemainingInWeek =
+                                       ( 7 - Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'N' ) ) * 86400
+                                       + $timeRemainingInDay;
                                $possibleTtls[] = $weeksRemaining * 604800 + $timeRemainingInWeek;
                        }
 
                        if ( $usedMonth ) {
-                               $possibleTtls[] = ( Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 't' ) - substr( $ts, 6, 2 ) ) * 86400 + $timeRemainingInDay;
+                               $possibleTtls[] =
+                                       ( Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 't' ) -
+                                               substr( $ts, 6, 2 ) ) * 86400
+                                       + $timeRemainingInDay;
                        } elseif ( $usedYear ) {
-                               $possibleTtls[] = ( Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'L' ) + 364 - Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'z' ) ) * 86400
+                               $possibleTtls[] =
+                                       ( Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'L' ) + 364 -
+                                               Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'z' ) ) * 86400
                                        + $timeRemainingInDay;
                        } elseif ( $usedIsLeapYear ) {
                                $year = substr( $ts, 0, 4 );
-                               $timeRemainingInYear = ( Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'L' ) + 364 - Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'z' ) ) * 86400
+                               $timeRemainingInYear =
+                                       ( Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'L' ) + 364 -
+                                               Language::dateTimeObjFormat( $dateTimeObj, $ts, $zone, 'z' ) ) * 86400
                                        + $timeRemainingInDay;
                                $mod = $year % 4;
                                if ( $mod || ( !( $year % 100 ) && $year % 400 ) ) {
                                        // this isn't a leap year. see when the next one starts
                                        $nextCandidate = $year - $mod + 4;
                                        if ( $nextCandidate % 100 || !( $nextCandidate % 400 ) ) {
-                                               $possibleTtls[] = ( $nextCandidate - $year - 1 ) * 365 * 86400 + $timeRemainingInYear;
+                                               $possibleTtls[] = ( $nextCandidate - $year - 1 ) * 365 * 86400 +
+                                                       $timeRemainingInYear;
                                        } else {
-                                               $possibleTtls[] = ( $nextCandidate - $year + 3 ) * 365 * 86400 + $timeRemainingInYear;
+                                               $possibleTtls[] = ( $nextCandidate - $year + 3 ) * 365 * 86400 +
+                                                       $timeRemainingInYear;
                                        }
                                } else {
                                        // this is a leap year, so the next year isn't
@@ -3895,13 +3928,9 @@ class Language {
                        }
                }
 
-               // Since usually only infinite or indefinite is only on list, so try
-               // equivalents if still here.
-               $indefs = array( 'infinite', 'infinity', 'indefinite' );
-               if ( in_array( $str, $indefs ) ) {
-                       foreach ( $indefs as $val ) {
-                               $show = array_search( $val, $duration, true );
-                               if ( $show !== false ) {
+               if ( wfIsInfinity( $str ) ) {
+                       foreach ( $duration as $show => $value ) {
+                               if ( wfIsInfinity( $value ) ) {
                                        return htmlspecialchars( trim( $show ) );
                                }
                        }
index 43d6063..844888e 100644 (file)
@@ -842,7 +842,7 @@ class LanguageConverter {
         * @param bool $fromCache Load from memcached? Defaults to true.
         */
        function loadTables( $fromCache = true ) {
-               global $wgLangConvMemc;
+               global $wgLanguageConverterCacheType;
 
                if ( $this->mTablesLoaded ) {
                        return;
@@ -850,9 +850,10 @@ class LanguageConverter {
 
                $this->mTablesLoaded = true;
                $this->mTables = false;
+               $cache = ObjectCache::getInstance( $wgLanguageConverterCacheType );
                if ( $fromCache ) {
                        wfProfileIn( __METHOD__ . '-cache' );
-                       $this->mTables = $wgLangConvMemc->get( $this->mCacheKey );
+                       $this->mTables = $cache->get( $this->mCacheKey );
                        wfProfileOut( __METHOD__ . '-cache' );
                }
                if ( !$this->mTables || !array_key_exists( self::CACHE_VERSION_KEY, $this->mTables ) ) {
@@ -869,7 +870,7 @@ class LanguageConverter {
                        $this->postLoadTables();
                        $this->mTables[self::CACHE_VERSION_KEY] = true;
 
-                       $wgLangConvMemc->set( $this->mCacheKey, $this->mTables, 43200 );
+                       $cache->set( $this->mCacheKey, $this->mTables, 43200 );
                        wfProfileOut( __METHOD__ . '-recache' );
                }
        }
index 4271ed3..0f47c38 100644 (file)
@@ -70,8 +70,8 @@ class ZhConverter extends LanguageConverter {
                        'zh-cn' => new ReplacementArray( $zh2CN ),
                        'zh-hk' => new ReplacementArray( $zh2HK ),
                        'zh-mo' => new ReplacementArray( $zh2HK ),
-                       'zh-my' => new ReplacementArray( $zh2SG ),
-                       'zh-sg' => new ReplacementArray( $zh2SG ),
+                       'zh-my' => new ReplacementArray( $zh2CN ),
+                       'zh-sg' => new ReplacementArray( $zh2CN ),
                        'zh-tw' => new ReplacementArray( $zh2TW ),
                        'zh' => new ReplacementArray
                );
index 89638d5..6ef231d 100644 (file)
        "right-movefile": "Pinah beureukaih",
        "right-upload": "Peutamöng beureukaih",
        "right-upload_by_url": "Peutamöng beureukaih nibak URL",
+       "right-writeapi": "Meungui API teumuléh",
        "right-delete": "Sampôh laman",
        "right-bigdelete": "Sampôh laman ngön ban dum riwayatjih",
        "right-browsearchive": "Mita laman nyang geusampôh",
        "action-move": "Peupinah laman nyoë",
        "nchanges": "$1 {{PLURAL:$1|neuubah}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|yôh seunaweuë seuneulheuëh kön}}",
+       "enhancedrc-history": "riwayat",
        "recentchanges": "Neuubah barô",
        "recentchanges-legend": "Peuniléh neuubah barô",
        "recentchanges-summary": "Di yup nyoë nakeuh neuubah barô nyang na bak Wikipèdia nyoë.\nHareutoë: (bida) = neuubah, (riwayat) = riwayat teumuléh, '''B''' = laman barô, '''u''' = neuandam ubeut, '''b''' = neuandam bot, (± ''bit'') = jeumeulah asoë meutamah/meukureuëng, → = neuandam bideuëng, ← = mohtasa otomatis.\n----",
        "recentchanges-label-minor": "Nyoe neuandam ubeut",
        "recentchanges-label-bot": "Neuandam nyoe geupubuet le bot",
        "recentchanges-label-unpatrolled": "Neuandam nyoe goh lom geukalon",
+       "recentchanges-legend-heading": "'''Hareutoë:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (eu cit [[Special:NewPages|dapeuta laman barô]])",
        "rcnotefrom": "Di yup nyoë nakeuh neuubah yôh <strong>$2</strong> (geupeudeuh trôh ‘an <strong>$1</strong> neuubah).",
        "rclistfrom": "Peudeuih neuubah barô yôh $3 $2 kön",
        "rcshowhideminor": "$1 andam bacut",
+       "rcshowhideminor-hide": "Peusom",
        "rcshowhidebots": "$1 bot",
+       "rcshowhidebots-show": "Peuleumah",
        "rcshowhideliu": "$1 ureuëng ngui tamöng",
+       "rcshowhideliu-hide": "Peusom",
        "rcshowhideanons": "$1 ureuëng ngui hana nan",
+       "rcshowhideanons-hide": "Peusom",
        "rcshowhidepatr": "$1 andam teurunda",
        "rcshowhidemine": "$1 atra lôn andam",
+       "rcshowhidemine-hide": "Peusom",
        "rclinks": "Peudeuih $1 neuubah barô lam $2 uroë nyoë<br />$3",
        "diff": "bida",
        "hist": "riwayat",
        "sharedupload": "Beureukah nyoë dari $1 ngön kadang geunguy lé buët-buët la’én.",
        "sharedupload-desc-here": "Beureukaih nyoe nejih nibak $1 ngon kadang geunguy le proyek-proyek la'en.\nTeuneurang bak [$2 on teuneurangjih] geupeuleumah di yup nyoe.",
        "uploadnewversion-linktext": "Peulöt seunalén nyang leubèh barô nibak beureukah nyoë.",
+       "upload-disallowed-here": "Droëneuh h'an jeuët neutimpa beureukaih nyoë",
        "mimesearch": "Mita MIME",
        "listredirects": "Dapeuta peuninah",
        "unusedtemplates": "Templat nyang hana geungui",
        "tooltip-pt-mycontris": "Dapeuta beuneuri Droëneuh",
        "tooltip-pt-login": "Droëneuh geupadan keu tamong log, bah pih nyan hana geupeuwajéb.",
        "tooltip-pt-logout": "Teubiët",
+       "tooltip-pt-createaccount": "Droëneuh geupadan keu neupeugöt saboh akun ngön neutamöng; bah pih nyan hana wajéb",
        "tooltip-ca-talk": "Marit laman asoë",
        "tooltip-ca-edit": "Droëneuh jeuët neuandam laman nyoë. Neungui tumbôi eu dilèë sigoh neukeubah.",
        "tooltip-ca-addsection": "Puphôn beunagi barô",
        "tooltip-undo": "Peuriwang geunantoë nyoë ngön peuhah plôk neu’andam ngön cara eu dilèë. Choë jeuët geupeutamah bak plôk ehtisa.",
        "tooltip-summary": "Pasoë éhtisa paneuk",
        "interlanguage-link-title": "$1 – $2",
+       "simpleantispam-label": "Paréksa anti-spam.\n<strong>BÈK</strong> neupasoë!",
        "pageinfo-toolboxlink": "Teuneurang laman",
        "previousdiff": "← Bida awai",
        "nextdiff": "Geunantoë lheuëh nyan →",
        "file-nohires": "Hana resolusi nyang leubèh manyang.",
        "svg-long-desc": "Beureukah SVG, nominal $1 x $2 piksel, rayek beureukah: $3",
        "show-big-image": "Beureukaih aseuli",
+       "show-big-image-preview": "Seunipat seuneudeuh awai: $1",
+       "show-big-image-other": "{{PLURAL:$2|Resolusi}} la'én: $1.",
+       "show-big-image-size": "$1 × $2 piksel",
        "newimages": "Beureukah barô",
        "ilsubmit": "Mita",
        "bad_image_list": "Beuntukjih lagèë di miyub nyoë:\n\nCit buté dapeuta (baréh nyang geupeuphôn ngon tanda *) nyang geukira. Hubông phôn bak saboh baréh beukeuh hubông u beureukaih nyang brôk.\nHubông-hubông lheuëh nyan bak baréh nyang saban geukira sibagoë keucuali, nakeuh teunuléh nyang jeuët peuleumah beureukaih nyan.",
        "metadata-expand": "Peuleumah tapeusili teunamah",
        "metadata-collapse": "Peusom tapeusili teunamah",
        "metadata-fields": "Bideuëng mètadata gamba nyang na lam peusan nyoë keuneuk geupasoë bak tampilan halaman gamba 'oh watèë tabel mètadata geutôp.\nData nyang la'én eunteuk teupeusom keudroë.\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-xresolution": "Resolusi linteuëng",
+       "exif-yresolution": "Rèsolusi buju",
        "namespacesall": "ban dum",
        "monthsall": "ban dum",
        "recreate": "Peugöt ulang",
        "tags": "Tag neuubah nyang sah",
        "tag-filter": "Saréng [[Special:Tags|tag]]:",
        "tag-filter-submit": "Saréng",
+       "logentry-newusers-create": "$1 {{GENDER:$2|geupeugöt}} akun ureuëng ngui",
        "searchsuggest-search": "Mita",
        "duration-seconds": "{{PLURAL:$1|deutik}}",
        "duration-minutes": "{{PLURAL:$1|minèt}}",
index 7b71a0b..bd4fc67 100644 (file)
@@ -19,7 +19,8 @@
                        "Spacebirdy",
                        "Xethron",
                        "පසිඳු කාවින්ද",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Onderstreep skakels.",
        "import-rootpage-nosubpage": "Die naamruimte \"$1\" van die basisblad laat nie subblaaie toe nie.",
        "importlogpage": "Invoer logboek",
        "importlogpagetext": "Administratiewe invoere van bladsye met geskiedenis van ander wiki's.",
-       "import-logentry-upload": "[[$1]] ingevoer deur 'n lêer op te laai",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|weergawe|weergawes}}",
-       "import-logentry-interwiki": "importeer $1 via transwiki",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|weergawe|weergawes}} vanaf $2",
        "javascripttest": "JavaScript toetsing",
        "javascripttest-pagetext-noframework": "Hierdie bladsy is gereserveer vir die uitvoer van JavaScript-toetse.",
        "version-parser-function-hooks": "Ontleder-funksiehoeke",
        "version-hook-name": "Hoek naam",
        "version-hook-subscribedby": "Gebruik deur",
-       "version-version": "(Weergawe $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[geen naam]",
        "version-license": "MediaWiki se lisensie",
        "version-ext-license": "Lisensie",
        "logentry-upload-revert": "$1 het $3 {{GENDER:$2|opgelaai}}",
        "rightsnone": "(geen)",
        "revdelete-summary": "redigeringsopsomming",
+       "feedback-adding": "U terugvoer word op die bladsy geplaas...",
+       "feedback-bugcheck": "Gaaf! Kontroleer of dit nie dalk een van die [$1 bekende foute] is nie.",
+       "feedback-bugnew": "Ek het gekontroleer. Rapporteer 'n nuwe fout.",
        "feedback-bugornote": "As u reg is om 'n tegniese probleem in detail te beskryf, [$1 rapporteer 'n fout].\nAnders kan u die eenvoudige vorm hieronder gebruik. U kommentaar sal by die bladsy \"[$3 $2]\", saam met u gebruikersnaam en die webblaaier wat u gebruik gevoeg word.",
-       "feedback-subject": "Onderwerp:",
-       "feedback-message": "Boodskap:",
        "feedback-cancel": "Kanselleer",
-       "feedback-submit": "Stuur terugvoer",
-       "feedback-adding": "U terugvoer word op die bladsy geplaas...",
+       "feedback-close": "Gedoen",
        "feedback-error1": "Fout: onbekende resultaat van die API",
        "feedback-error2": "Fout: Wysiging het gefaal",
        "feedback-error3": "Fout: Geen reaksie van API",
+       "feedback-message": "Boodskap:",
+       "feedback-subject": "Onderwerp:",
+       "feedback-submit": "Dien in",
        "feedback-thanks": "Dankie! U terugvoer is op die bladsy \"[$2 $1]\" geplaas.",
-       "feedback-close": "Gedoen",
-       "feedback-bugcheck": "Gaaf! Kontroleer of dit nie dalk een van die [$1 bekende foute] is nie.",
-       "feedback-bugnew": "Ek het gekontroleer. Rapporteer 'n nuwe fout.",
        "searchsuggest-search": "Soek",
        "searchsuggest-containing": "bevat...",
        "api-error-badaccess-groups": "U word nie toegelaat om lêers te laai op hierdie wiki.",
index b74b682..0a96eef 100644 (file)
        "deletereason-dropdown": "*ተራ የማጥፋት ምክንያቶች\n** በአቅራቢው ጥያቄ\n** ማብዛቱ ያልተፈቀደለት ጽሑፍ\n** ተንኮል",
        "delete-edit-reasonlist": "'ተራ የማጥፋት ምክንያቶች' ለማዘጋጀት",
        "rollback": "ለውጦቹ ይገልበጡ",
-       "rollback_short": "ይመለስ",
        "rollbacklink": "ROLLBACK ይመለስ",
        "rollbackfailed": "መገልበጡ አልተከናወነም",
        "cantrollback": "ለውጡን መገልበጥ አይቻልም፦ አቅራቢው ብቻ ስላዘጋጁት ነው።",
        "watchlisttools-view": "የምከታተላቸው ለውጦች",
        "watchlisttools-edit": "ዝርዝሩን ለማስተካከል",
        "watchlisttools-raw": "የዝርዝሩ ጥሬ ኮድ",
-       "unknown_extension_tag": "ያልታወቀ የቅጥያ ምልክት «$1»",
        "version": "ዝርያ",
        "version-extensions": "የተሳኩ ቅጥያዎች",
        "version-specialpages": "ልዩ ገጾች",
        "version-parser-function-hooks": "የዘርዛሪ ተግባር ሜጦዎች",
        "version-hook-name": "የሜንጦ ስም",
        "version-hook-subscribedby": "የተጨመረበት",
-       "version-version": "(ዝርያ $1)",
+       "version-version": "($1)",
        "version-license": "ፈቃድ",
        "version-software": "የተሳካ ሶፍትዌር",
        "version-software-product": "ሶፍትዌር",
index ee38c93..b73d7cf 100644 (file)
@@ -10,7 +10,8 @@
                        "Urhixidur",
                        "Willtron",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Subrayar os vinclos:",
        "delete-toobig": "Ista pachina tiene un historial d'edicions prou largo, con mas de $1 {{PLURAL:$1|versión|versions}}. S'ha restrinchito o borrau d'ista mena de pachinas ta aprevenir d'a corrompición accidental de {{SITENAME}}.",
        "delete-warning-toobig": "Ista pachina tiene un historial d'edición prou largo, con más de $1 {{PLURAL:$1|versión|versions}}. Si la borra podría corromper as operacions d'a base de datos de {{SITENAME}}; contine con cuenta.",
        "rollback": "Revertir edicions",
-       "rollback_short": "Revertir",
        "rollbacklink": "revertir",
        "rollbackfailed": "No s'ha puesto revertir",
        "cantrollback": "No se pueden revertir as edicions; o zaguer colaborador ye o solo autor d'iste articlo.",
        "import-error-invalid": "A pachina \"$1\" no s'ha importau porque o suyo nombre ye invalido.",
        "importlogpage": "Rechistro d'importacions",
        "importlogpagetext": "Importacions almenistrativas de pachinas con historial dende atros wikis.",
-       "import-logentry-upload": "importata [[$1]] cargando un fichero",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|versión|versions}}",
-       "import-logentry-interwiki": "Importata $1 entre wikis",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|versión|versions}} dende $2",
        "javascripttest": "Prebatinas de JavaScript",
-       "javascripttest-title": "Fendo as prebas de $1",
        "javascripttest-pagetext-noframework": "Ista pachina ye reservada ta fer as prebas de JavaScrip.",
        "javascripttest-pagetext-unknownframework": "Bastida de prebas \"$1\" desconoixida.",
        "javascripttest-pagetext-frameworks": "Por favor, trigue una d'as siguients bastidas de prebas: $1",
        "javascripttest-pagetext-skins": "Trigue una apariencia ta fer as prebas con ella:",
        "javascripttest-qunit-intro": "Mire-se [$1 a documentación de prebatinas] en mediawiki.org",
-       "javascripttest-qunit-heading": "Suite de prebas MediaWiki JavaScript QUnit",
        "tooltip-pt-userpage": "A suya pachina d'usuario",
        "tooltip-pt-anonuserpage": "A pachina d'usuario de l'adreza IP dende a que ye editando",
        "tooltip-pt-mytalk": "A suya pachina de descusión",
        "watchlisttools-edit": "Veyer y editar a lista de seguimiento",
        "watchlisttools-raw": "Editar a lista de seguimiento en formato texto",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|discusión]])",
-       "unknown_extension_tag": "Etiqueta d'estensión \"$1\" esconoixita",
        "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-parser-function-hooks": "Grifios d'as funcions d'o parseyador",
        "version-hook-name": "Nombre d'o grifio",
        "version-hook-subscribedby": "Suscrito por",
-       "version-version": "(Versión $1)",
+       "version-version": "($1)",
        "version-license": "Licencia",
        "version-poweredby-credits": "Iste wiki funciona gracias a '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
        "version-poweredby-others": "atros",
        "logentry-newusers-autocreate": "S'ha creyau automaticament a cuenta $1",
        "rightsnone": "(garra)",
        "revdelete-summary": "editar resumen",
+       "feedback-adding": "Adhibindo comentarios ta la pachina...",
+       "feedback-bugcheck": "Perfecto! Comprebe nomás que no sía un [$1 fallo conoixiu].",
+       "feedback-bugnew": "L'he comprebau. Informar d'un nuevo fallo.",
        "feedback-bugornote": "Si creye que puede describir en detalle un problema tecnico, [$1 informe d'un bug] por favor.\n\nSi no, puet usar o siguient formulario. O suyo comentario será adhibiu a la pachina [$3 $2], de conchunta con o suyo nombre d'usuario y o navegador que fa servir.",
-       "feedback-subject": "Afer:",
-       "feedback-message": "Mensache:",
        "feedback-cancel": "Cancelar",
-       "feedback-submit": "Ninviar comentarios",
-       "feedback-adding": "Adhibindo comentarios ta la pachina...",
+       "feedback-close": "Feito",
        "feedback-error1": "Error: No se reconoixe o resultau de l'API",
        "feedback-error2": "Error: Ha fallato a edición",
        "feedback-error3": "Error: No i hai respuesta de l'API",
+       "feedback-message": "Mensache:",
+       "feedback-subject": "Afer:",
+       "feedback-submit": "Ninviar",
        "feedback-thanks": "Gracias! O suyo comentario s'ha publicau en a pachina [$2  $1].",
-       "feedback-close": "Feito",
-       "feedback-bugcheck": "Perfecto! Comprebe nomás que no sía un [$1 fallo conoixiu].",
-       "feedback-bugnew": "L'he comprebau. Informar d'un nuevo fallo.",
        "searchsuggest-search": "Mirar",
        "searchsuggest-containing": "que contién...",
        "api-error-badaccess-groups": "No puetz cargar fichers en iste wiki.",
index f75f2ea..9221af9 100644 (file)
        "actions": "Fremmunga",
        "namespaces": "Namstedas",
        "variants": "Missenlīcnessa",
+       "navigation-heading": "Sōcne getæl",
        "errorpagetitle": "Wōh",
        "returnto": "Gān eft tō $1",
        "tagline": "Fram {{SITENAME}}",
        "permalink": "Fæst hlenca",
        "print": "Ūtmǣlan",
        "view": "Sihþ",
+       "view-foreign": "Sihþ on $1",
        "edit": "Adihtan",
        "create": "Scieppan",
+       "create-local": "Besettan stōwlice gemearcunge",
        "editthispage": "Adihtan þisne tramet",
        "create-this-page": "Scieppan þisne tramet",
        "delete": "Forlēosan",
        "retypenew": "Wrīt nīwe þafungword eft:",
        "resetpass-submit-loggedin": "Andwendan þafungword",
        "resetpass-submit-cancel": "Undōn",
+       "passwordreset": "Settan þafungword eft",
        "passwordreset-legend": "Settan þafungword eft",
        "passwordreset-username": "Brūcendnama:",
        "bold_sample": "Þicce traht",
        "note": "'''Gewritincel:'''",
        "previewnote": "<strong>Beþenc þe þis is gīet efne forebysen.</strong>\nÞīna andwendunga gīet ne sind hordoda!",
        "editing": "Adihtende $1",
+       "creating": "Scipþ nū $1",
        "editingsection": "Adihtende $1 (dǣl)",
        "editingcomment": "Adihtende $1 (nīwe dǣl)",
        "editconflict": "Adihtunge wiþdǣd: $1",
        "permissionserrors": "Þafunge wōh",
        "permissionserrorstext-withaction": "Þū ne hæfst þafunge tō $2, for {{PLURAL:$1|þisre race|þissum racum}}:",
        "recreate-moveddeleted-warn": "'''Warnung: Þū edsciepst tramet þe wæs ǣr forloren.'''\n\nÞu sceoldest smēagan, hwæðer hit gerādlīc sīe, forþ tō gānne mid þǣre adihtunge þisses trametes.\nÞæt forlēosunge and wegunge ealdhord þisses trametes is hēr geīeht for behēfnesse:",
+       "moveddeleted-notice": "Þes tramet wæs forloren.\nÞæt forlēosunge and wǣgunge stǣr þæs trametes is geīwed hēr.",
        "viewpagelogs": "Sēon þisses trametes ealdhold",
        "nohistory": "Nis nān adihtunge stǣr for þissum tramete.",
        "currentrev-asof": "Nīwost fadung on þǣre $3. tīde þæs $2.",
        "mergehistory-reason": "Racu:",
        "revertmerge": "Settan þā geānlǣcinge on bæc",
        "history-title": "Ednīwunga stǣr for \"$1\"",
+       "difference-title": "Fǣgness betweox fadungum \"$1\"",
        "lineno": "$1. līne:",
        "compareselectedversions": "Bemetan gecorena ednīwunga",
        "editundo": "undōn",
        "searchprofile-articles": "Innunge trametas",
        "searchprofile-images": "Missenendebyrdness",
        "searchprofile-everything": "Gehwæt",
+       "searchprofile-advanced": "Manigfeald",
        "searchprofile-articles-tooltip": "Sēcan in $1",
        "searchprofile-images-tooltip": "Sēcan ymelan",
+       "searchprofile-everything-tooltip": "Sēcan geond ealla innunga (ēac mōtungum)",
        "search-result-size": "$1 ({{PLURAL:$2|1 word|$2 worda}})",
        "search-redirect": "(edlǣded fram \"$1\")",
        "search-section": "(dǣl $1)",
        "searchrelated": "gesibb",
        "searchall": "eall",
        "showingresults": "Īewan under oþ <b>$1</b> tōhīgunga onginnenda mid #<b>$2</b>.",
+       "search-nonefound": "Ne cūðe findan þæt þū woldest.",
        "powersearch-legend": "Manigfeald sēcung",
        "powersearch-ns": "Sēcan in namstedum:",
        "search-external": "Ūtanweard sōcn",
        "rightslog": "Brūcenda riht cranic",
        "action-edit": "adihtan þisne tramet",
        "nchanges": "$1 {{PLURAL:$1|andwendung|andwendunga}}",
+       "enhancedrc-history": "stǣr",
        "recentchanges": "Nīwa andwendunga",
        "recentchanges-legend": "Nīwra andwendunga cyras",
        "recentchanges-summary": "Sēon þā nīwostan andwendunga þisses wiki on þissum tramete",
        "recentchanges-label-newpage": "Þēos adihtung scōp nīwne tramet",
        "recentchanges-label-minor": "Þēos is lytel adihtung",
        "recentchanges-label-bot": "Searuþrǣl fremede þās adihtunge",
+       "recentchanges-label-plusminus": "Þæs trametes micelness wæs andwended þȳs rīme grēatbitena",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (seoh ēac [[Special:NewPages|getæl nīwra trameta]])",
        "rcnotefrom": "Niðer sind þā andwendunga fram <strong>$2</strong> (mǣst īweþ <strong>$1</strong>).",
        "rclistfrom": "Īwan nīwa andwendunga fram $3 $2 and siþþan",
        "rcshowhideminor": "$1 lytela adihtunga",
+       "rcshowhideminor-show": "Īwan",
+       "rcshowhideminor-hide": "Hȳdan",
        "rcshowhidebots": "$1 searuþrǣlas",
+       "rcshowhidebots-show": "Īwan",
+       "rcshowhidebots-hide": "Hȳdan",
        "rcshowhideliu": "$1 brūcendas on nambēc",
+       "rcshowhideliu-hide": "Hȳdan",
        "rcshowhideanons": "$1 uncūðe brūcendas",
+       "rcshowhideanons-show": "Īwan",
+       "rcshowhideanons-hide": "Hȳdan",
        "rcshowhidemine": "$1 mīna adihtunga",
+       "rcshowhidemine-show": "Īwan",
+       "rcshowhidemine-hide": "Hȳdan",
        "rclinks": "Īwan þā nīwostan $1 andwendunga in þissum nīehstum $2 daga<br />$3",
        "diff": "scēad",
        "hist": "stǣr",
        "morelinkstoimage": "Sēon [[Special:WhatLinksHere/$1|mā hlencan]] tō þisre ymelan.",
        "duplicatesoffile": "{{PLURAL:$1|Sēol folgiende ymele is gelīcnes|Þā folgiendan ymelan sind gelīcnessa}} þisse ymelan (seoh [[Special:FileDuplicateSearch/$2|mā cȳþþe ymbe þis]]):",
        "sharedupload": "Þēos ymele is fram $1 and man mæg hīe brūcan on ōðrum weorcum.",
+       "sharedupload-desc-here": "Þēos ymele is fram $1 and cann wesan gebrocen fram ōðrum weorcum. Sēo amearcung on hire [$2 tramete ymelan amearcunge] þǣr is hēr geīwed.",
        "uploadnewversion-linktext": "Hladan nīwe fadunge þisse ymelan forþ",
+       "upload-disallowed-here": "Þū ne canst wrītan ofer þisse ymelan.",
        "filerevert-legend": "Settan ymelan on bæc",
        "filedelete-submit": "Forlēosan",
        "unusedtemplateswlh": "ōðre hlencan",
        "pager-older-n": "{{PLURAL:$1|ieldre 1|ieldran $1}}",
        "booksources": "Bōcfruman",
        "booksources-search-legend": "Sēcan bōcfruman",
+       "booksources-search": "Sēcan",
        "booksources-text": "Niðer is getæl hlencena tō ōðrum webstedum þe cīpaþ nīwa and gebrocena bēc, and wēninga hæbben ēac mā cȳþþu ymbe bēc þe þu sēcst:",
        "specialloguserlabel": "Gelǣstende brūcend:",
        "speciallogtitlelabel": "Ende (trametes titul oþþe brūcendes nama):",
        "tooltip-pt-mycontris": "Getæl þīnra forðunga",
        "tooltip-pt-login": "Man þē byldeþ to inmeldienne; þēah, þis nis abeden",
        "tooltip-pt-logout": "Ūtmeldian",
+       "tooltip-pt-createaccount": "Þū āhst wyrcan grīman tō brūcenne, ac þū ne þearft þæt dōn.",
        "tooltip-ca-talk": "Mōtung ymbe þone innunge tramet",
        "tooltip-ca-edit": "Þū meaht þisne tramet adihtan. Brūc lā þone fōrebysene cnæpp ǣr þū hordie.",
        "tooltip-ca-addsection": "Beginnan nīwne dǣl",
        "tooltip-compareselectedversions": "Sēon þā gescēad betweonan þǣm twǣm gecorenum fadungum þisses trametes",
        "tooltip-watch": "Ēacnian þīn behealdungtæl mid þissum tramete",
        "tooltip-undo": "\"Undōn\" undēþ þās adihtunge and openaþ þǣre adihtunge bysene tō fōrebysene. Man cann secgan race on þǣre sceortnesse.",
+       "tooltip-summary": "Wrītan sceorte gemearcunge",
        "anonymous": "{{PLURAL:$1|uncūþ brūcend|uncūðra brūcenda}} of {{SITENAME}}",
        "siteuser": "{{SITENAME}}n brūcend $1",
        "others": "ōðru",
        "anonusers": "{{SITENAME}} {{PLURAL:$2|uncūþ brūcend|uncūðra brūcenda}} $1",
+       "pageinfo-toolboxlink": "Trametes cȳþþu",
        "previousdiff": "← Ieldre adihtung",
        "nextdiff": "Nīwre adihtung →",
        "imagemaxsize": "Mǣst biliðes micelness:<br />''(for ymelena amearcunga trametum)''",
        "file-nohires": "Þǣr nis nǣnig māre micelness.",
        "svg-long-desc": "SVG ymele, rihte $1 × $2 pixela, ymelan micelness: $3",
        "show-big-image": "Frumlicu ymele",
+       "show-big-image-preview": "Micelness þisre forebysene: $1.",
+       "show-big-image-other": "{{PLURAL:$2|Ōðru biliðes micelness|Ōðra biliða micelnessa}}: $1.",
+       "show-big-image-size": "$1 be $2 dotta",
        "imagelisttext": "Niðer is getæl '''$1''' {{PLURAL:$1|ymelan|ymelena}}, endebyrded on $2.",
        "noimages": "Nāht tō sēonne.",
        "ilsubmit": "Sēcan",
        "exif-imagewidth": "Wīdnes",
        "exif-imagelength": "Hīehþ",
        "exif-compression": "Ȝeþryccungmōd",
+       "exif-orientation": "Gebīgedness",
        "exif-ycbcrpositioning": "Y and C gesetednes",
+       "exif-xresolution": "Wīdnesse micelness",
+       "exif-yresolution": "Hēahþu micelness",
+       "exif-datetime": "Tælmearc and tīd þǣre ymelan andwendunge",
        "exif-imagedescription": "Biliðes nama",
+       "exif-make": "Biliðfōndes wyrhta",
+       "exif-model": "Biliþfōndes fadung",
+       "exif-software": "Weorcwrithyrst þe wæs gebrocen",
        "exif-artist": "Fruma",
+       "exif-colorspace": "Bleohmearc",
        "exif-usercomment": "Brūcendes trahtnunga",
+       "exif-datetimeoriginal": "Tælmearc and tīd þǣre wyrcunge þǣre cȳþþu",
+       "exif-datetimedigitized": "Tælmearc and tīd þǣre awendunge tō spearctellenda ymelan",
        "exif-exposuretime": "Blicestīd",
        "exif-brightnessvalue": "APEX beorhtness",
        "exif-lightsource": "Lēohtfruma",
        "exif-gpsmeasuremode": "Mētungmōd",
        "exif-gpsimgdirection": "Rihtung þæs biliðes",
        "exif-compression-1": "Unȝeþrycced",
+       "exif-orientation-1": "Gewunelic",
        "exif-meteringmode-0": "Uncūþ",
        "exif-meteringmode-1": "Geþēawisc",
        "exif-meteringmode-6": "Sām",
        "version-other": "Ōðer",
        "version-hooks": "Anglas",
        "version-hook-name": "Angelnama",
-       "version-version": "($1. fadung)",
+       "version-version": "($1)",
        "fileduplicatesearch-filename": "Ymelan nama:",
        "fileduplicatesearch-submit": "Sēcan",
        "specialpages": "Syndrige trametas",
        "htmlform-submit": "Forþsendan",
        "htmlform-reset": "Undōn andwendunga",
        "htmlform-selectorother-other": "Ōðer",
-       "revdelete-summary": "ādihtscortnes"
+       "logentry-delete-delete": "$1 {{GENDER:$2|forlēas}} tramet $3",
+       "logentry-newusers-create": "Brūcendes grīma $1 wæs {{GENDER:$2|geworht}}",
+       "revdelete-summary": "ādihtscortnes",
+       "searchsuggest-search": "Sēcan"
 }
index c0d32e8..942baa3 100644 (file)
@@ -49,7 +49,8 @@
                        "Omda4wady",
                        "Bibas",
                        "Khaled",
-                       "Emara"
+                       "Emara",
+                       "Macofe"
                ]
        },
        "tog-underline": "سطر تحت الوصلات:",
        "disclaimers": "إخلاء مسؤولية",
        "disclaimerpage": "Project:إخلاء مسؤولية عام",
        "edithelp": "مساعدة التحرير",
+       "helppage-top-gethelp": "مساعدة",
        "mainpage": "الصفحة الرئيسية",
        "mainpage-description": "الصفحة الرئيسية",
        "policy-url": "Project:سياسة",
        "badtitle": "عنوان سيء",
        "badtitletext": "عنوان الصفحة المطلوب إما غير صحيح أو فارغ، وربما الرابط بين اللغات أو بين المشاريع خاطئ.\nربما يحوي محارف لا تصلح للاستخدام في العناوين.",
        "perfcached": "البيانات التالية مخبأة و قد لا تكون محدثة. {{PLURAL:$1||نتيجة واحدة|نتيجتان|$1 نتائج|$1 نتيجة}} على الأكثر {{PLURAL:$1||مخبّأة|مخبّأتان|مخبّأة}}.",
-       "perfcachedts": "اÙ\84بÙ\8aاÙ\86ات Ø§Ù\84تاÙ\84Ù\8aØ© Ù\85خبÙ\91أة Ù\88Ù\83اÙ\86 Ø¢Ø®Ø± ØªØ­Ø¯Ù\8aØ« Ù\84Ù\87ا Ù\81Ù\8a $1. {{PLURAL:$4||Ù\86تÙ\8aجة Ù\88احدة|Ù\86تÙ\8aجتاÙ\86|$4 Ù\86تائج|$4 Ù\86تÙ\8aجة}} Ø¹Ù\84Ù\89 Ø§Ù\84Ø£Ù\83ثر {{PLURAL:$4||Ù\85خبÙ\91أة|Ù\85خبÙ\91أتاÙ\86\85خبÙ\91Ø£ة}}.",
+       "perfcachedts": "اÙ\84بÙ\8aاÙ\86ات Ø§Ù\84تاÙ\84Ù\8aØ© Ù\85خزÙ\86Ø©Ø\8c Ù\88Ù\83اÙ\86 Ø¢Ø®Ø± ØªØ­Ø¯Ù\8aØ« Ù\84Ù\87ا Ù\81Ù\8a $1. Ø§Ù\84عدد Ø§Ù\84Ø£Ù\82صÙ\89 Ù\84Ù\84Ù\86تائج Ø§Ù\84Ù\85خزÙ\86Ø© Ù\87Ù\88 {{PLURAL:$4||Ù\86تÙ\8aجة Ù\88احدة|Ù\86تÙ\8aجتاÙ\86|$4 Ù\86تائج|$4 Ù\86تÙ\8aجة}}.",
        "querypage-no-updates": "تحديثات هذه الصفحة معطلة حاليا.\nالبيانات هنا لن يتم تحديثها حاليا.",
        "viewsource": "اعرض المصدر",
        "viewsource-title": "استعرض مصدر $1",
        "import-rootpage-nosubpage": "إن النطاق \"$1\" لصفحة الجذر لا يسمح بصفحات فرعية.",
        "importlogpage": "سجل الاستيراد",
        "importlogpagetext": "عمليات الاستيراد الإدارية للصفحات مع تاريخ التعديل من ويكيات أخرى.",
-       "import-logentry-upload": "استورد [[$1]] بواسطة رفع ملف",
        "import-logentry-upload-detail": "{{PLURAL:$1|لا مراجعات|مراجعة واحدة|مراجعتان|$1 مراجعات|$1 مراجعة}}",
-       "import-logentry-interwiki": "استورد عبر الويكي $1",
        "import-logentry-interwiki-detail": "تم استيراد {{PLURAL:$1||مراجعة واحدة|مراجعتين|$1 مراجعات|$1 مراجعة}} من $2",
        "javascripttest": "اختبار جافاسكربت",
        "javascripttest-pagetext-noframework": "هذه الصفحة محجوزة لإجراء أختبارات الجافا سكريبت.",
        "version-parser-function-hooks": "خطاطيف دالة المحلل",
        "version-hook-name": "اسم الخطاف",
        "version-hook-subscribedby": "يستخدم بواسطة",
-       "version-version": "(نسخة $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[لا اسم]",
        "version-svn-revision": "ن$1",
        "version-license": "ترخيص ميدياويكي",
        "logentry-upload-revert": "{{GENDER:$2|رفع|رفعت}} $1 $3",
        "rightsnone": "(لا شيء)",
        "revdelete-summary": "ملخص التعديل",
+       "feedback-adding": "إضافة تعليقات إلى الصفحة...",
+       "feedback-bugcheck": "رائع! تحقق من أن هذه ليست إحدى [$1 العلل المعروفة].",
+       "feedback-bugnew": "لقد تحققت. بلّغ عن علة جديدة.",
        "feedback-bugornote": "إن كنت مستعدا لشرح  مشكلة تقنية بالتفصيل، رجاءا [$1 قدم تقريرا بالخلل].\nبخلاف ذلك، يمكنك أستخدام الطريقة الأسهل أسفله، سيتم إضافة تعليقك للصفحة \"[$3 $2]\"، بالإضافة إلى اسم المستخدم و نوع المتصفح الذي تستخدمه حاليا.",
-       "feedback-subject": "الموضوع:",
-       "feedback-message": "الرسالة:",
        "feedback-cancel": "إلغاء",
-       "feedback-submit": "أرسل الملاحظات",
-       "feedback-adding": "إضافة تعليقات إلى الصفحة...",
+       "feedback-close": "تم",
        "feedback-error1": "خطأ: لا يمكن التعرف عليها من API",
        "feedback-error2": "خطأ: فشل في تحرير",
        "feedback-error3": "خطأ : لا توجد استجابة من API",
+       "feedback-message": "الرسالة:",
+       "feedback-subject": "الموضوع:",
+       "feedback-submit": "إرسال",
        "feedback-thanks": "شكرا! أُرسلت ملاحظاتك لصفحة \"[$2 $1]\".",
-       "feedback-close": "تم",
-       "feedback-bugcheck": "رائع! تحقق من أن هذه ليست إحدى [$1 العلل المعروفة].",
-       "feedback-bugnew": "لقد تحققت. بلّغ عن علة جديدة.",
        "searchsuggest-search": "بحث",
        "searchsuggest-containing": "يحتوي...",
        "api-error-badaccess-groups": "لا يسمح لك بتحميل الملفات إلى هذه الويكي.",
        "json-error-utf8": "خطأ في تشكيل محارف UTF-8، ربما نتيجة سوء ترميزها.",
        "json-error-recursion": "يوجد قيد الترميز إشارة مرجعية حلقية أو أكثر",
        "json-error-inf-or-nan": "قيد الترميز قيمة أو أكثر من نمط NAN أو INF",
-       "json-error-unsupported-type": "نمط قيمة لا يمكن تشفيره قد أعطي"
+       "json-error-unsupported-type": "نمط قيمة لا يمكن تشفيره قد أعطي",
+       "headline-anchor-title": "وصلة لهذا القسم"
 }
index 5dde327..befb4b2 100644 (file)
        "version": "ܨܚܚܐ",
        "version-specialpages": "ܦܐܬܬ̈ܐ ܕ̈ܝܠܢܝܬܐ",
        "version-other": "ܐܚܪܢܐ",
-       "version-version": "(ܨܚܚܐ $1)",
+       "version-version": "($1)",
        "version-poweredby-others": "ܐܚܪ̈ܢܐ",
        "version-software-version": "ܨܚܚܐ",
        "fileduplicatesearch": "ܒܨܝ ܥܠ ܠܦܦ̈ܐ ܥܦܝܦ̈ܐ",
        "logentry-newusers-autocreate": "ܚܘܫܒܢܐ ܕܡܦܠܚܢܐ $1 {{GENDER:$2|ܐܬܬܣܝܡ}} ܝܬܐܝܬ",
        "rightsnone": "(ܠܐ ܡܕܡ)",
        "revdelete-summary": "ܫܚܠܦ ܦܣܝܩܬ̈ܐ",
-       "feedback-subject": "ܡܠܘܐܐ:",
-       "feedback-message": "ܐܓܪܬܐ:",
        "feedback-cancel": "ܒܛܘܠ",
+       "feedback-message": "ܐܓܪܬܐ:",
+       "feedback-subject": "ܡܠܘܐܐ:",
        "searchsuggest-search": "ܒܨܝ",
        "searchsuggest-containing": "ܬܚܒܘܫ...",
        "expandtemplates": "ܐܪܘܚ ܩܠܒ̈ܐ",
index 68d2398..28a6c5b 100644 (file)
@@ -13,7 +13,7 @@
        "tog-newpageshidepatrolled": "خبي الباجات المعسوسه اللي في ليستت الباجات الجدد",
        "tog-extendwatchlist": "دلّي الليستة تاع التتباع باش تورّي كامل التبديلات، ماشي برك غير التوالا",
        "tog-usenewrc": "جمّع الـتبدالات بل صفحة فل تبدالات الـجديدة و الـليستة تاع الـعسّة",
-       "tog-numberheadings": "رÙ\82Ù\85 Ø§Ù\84Ù\8aا Ø¹Ù\86اÙ\88Ù\8aÙ\86 Ø§Ù\84سÙ\83سÙ\8aÙ\88",
+       "tog-numberheadings": "رÙ\82Ù\91Ù\85 Ø§Ù\84عÙ\84اÙ\88Ù\86 ØªØ§Ø¹ Ø§Ù\84Ù\82سÙ\8aÙ\85ات",
        "tog-showtoolbar": "بيّن البارّة تاع دوزان‘ الكتبة",
        "tog-editondblclick": "آكتيفي التبدال تاع الباجات بل زوج ضركات تاع الفارة",
        "tog-editsectiononrightclick": "آكتيفي التبدال تاع السكسيوّات بل ضريك بل ليمنة على العلاوين نتاعهم",
@@ -21,6 +21,7 @@
        "tog-watchdefault": "زيد الـصفحات و الـفيشيّات اللي نبدّلها فل قايمة تاع الـتتباع تاعي",
        "tog-watchmoves": "زيد الـصفحات و الـفيشيات اللي نحوّلها فل قايمة تاع الـتباع تاعي",
        "tog-watchdeletion": "زيد الـصفحات اللي نفصيها فل قايمة تاع التتباع تاعي",
+       "tog-watchrollback": "بيّن فل ليستة تاع المتابعة تاعي، الصفحات الّي كنت أنا سترجعتها.",
        "tog-minordefault": "ماركي كل التبديلات بلي راهي خفيفه",
        "tog-previewontop": "ورّي نضرة قبليّة تاع واش يصرا، فوق الجيهة تاع التبدال",
        "tog-previewonfirst": "بين شوفه-قبليه مع اول تبديله",
@@ -31,7 +32,7 @@
        "tog-shownumberswatching": "بين شحال كاين من مستعمل يتبع الباجه",
        "tog-oldsig": "خطّ‘لـيدّ اللي كاين",
        "tog-fancysig": "اعتبر التوقيع كي كتيبه ويكي (بلا وصيله توماتيك)",
-       "tog-uselivepreview": "استعمل الـنضرة الـقبلانيّة الحيّة (عفسة تجرابيّة، تخلّيك تشوف التبدال الّي يصرا فل وقت الّي تكون تكتب)",
+       "tog-uselivepreview": "استعمل الشوفة الخفيفة",
        "tog-forceeditsummary": "نبّهني كي تندخل كاش صفحة خاوية",
        "tog-watchlisthideown": "خبّي الـتبدالات تاوعي فل ليستة تاع الـتتباع",
        "tog-watchlisthidebots": "خبّي الـتبدالات تاع الـروبويات فل ليستة تاع التتباع تاعي",
        "april": "أفريل",
        "may_long": "ماي",
        "june": "جوان",
-       "july": "جويليي",
+       "july": "جويليا",
        "august": "أوت",
        "september": "سبتمبر",
-       "october": "أكتوبر",
+       "october": "Ø£Ù\88Ù\83تÙ\88بر",
        "november": "نوفمبر",
        "december": "ديسمبر",
        "january-gen": "جانفي",
@@ -97,9 +98,9 @@
        "apr": "أفريل",
        "may": "ماي",
        "jun": "جوان",
-       "jul": "جويليي",
+       "jul": "جويليا",
        "aug": "أوت",
-       "sep": "سيبتمبر",
+       "sep": "سبتمبر",
        "oct": "أوكتوبر",
        "nov": "نوفمبر",
        "dec": "ديسمبر",
        "faqpage": "Project:سؤالات متكرره",
        "actions": "أفعال",
        "namespaces": "بلاصه تع أسموات",
-       "variants": "متغيرات",
+       "variants": "تنويعات",
        "navigation-heading": "القايمة تاع الـتبحار",
        "errorpagetitle": "غلطه",
        "returnto": "ولي إلى $1.",
        "talkpage": "قرعَج على هاد الباجة",
        "talkpagelinktext": "ناقش",
        "specialpage": "باجة خوصوصيّة",
-       "personaltools": "ادÙ\88اÙ\84ت شخصيه",
+       "personaltools": "دÙ\88زاÙ\86 شخصيه",
        "articlepage": "شوف الباجة تاع المحتاوا",
        "talk": "مناقشه",
-       "views": "Ø´Ù\88Ù\81ات",
-       "toolbox": "صÙ\86دÙ\88Ù\82 ØªØ§Ø¹ Ø§Ù\84دÙ\88زاÙ\86",
+       "views": "استبÙ\8aاÙ\86",
+       "toolbox": "دوزان",
        "userpage": "شوف الباجة تاع المستعملي",
        "projectpage": "شوف الباجة تاع البروجي",
        "imagepage": "شوف الباجة تاع الفيشي",
        "otherlanguages": "بلوغات وحد اوخره",
        "redirectedfrom": "(محول من $1)",
        "redirectpagesub": "باجة تاع التحوال",
+       "redirectto": "حوّل لـ:",
        "lastmodifiedat": "هاد الباجه راهي تبدّلت نهار الـ $1, على الـساعة $2.",
        "viewcount": "هاد الباجة نشافت {{PLURAL:$1|خطرة وحدة|$1 خطرة}}.",
        "protectedpage": "باجة محضيّة",
        "jumpto": "اقفز ل:",
-       "jumptonavigation": "تجÙ\88اÙ\84",
-       "jumptosearch": "تفتاش",
+       "jumptonavigation": "تبحار",
+       "jumptosearch": "فتّش",
        "view-pool-error": "اعدرونا، السربايات راهم مغبّنين ف هاد الوقيتة.\nبزّاف المستعمليّين راهم باغيين يشوفو هاد الباجة.\nاصبرو شي وقيتة قبل ما تحاولو تلحقو لها عاود.\n\n$1",
        "generic-pool-error": "اعدرونا، السربايات راهم مغبّنين ف هاد الوقيتة.\nبزّاف المستعمليّين راهم باغيين يشوفو هاد الباجة.\nاصبرو شي وقيتة قبل ما تحاولو تلحقو لها عاود.",
        "pool-timeout": "المهلة تاع المقارعة راهي فاتت",
        "pool-queuefull": "السنسلة تاع المقارعة راهي عامرة",
        "pool-errorunknown": "خلطة ماشي معروفة",
        "pool-servererror": "السربيس تاع العدّان راه حابس ( $1 ).",
+       "poolcounter-usage-error": "غلطة تاع ستُعمال: $1",
        "aboutsite": "على{{SITENAME}}",
        "aboutpage": "Project:على",
        "copyright": "المحتاوا راه تحت النسخة $1 تاع الليسانس، غير يلا كان مكتوب حاجاخرة.",
        "disclaimers": "تنبيهات",
        "disclaimerpage": "Project:التحذيرات العامه",
        "edithelp": "معونة",
+       "helppage-top-gethelp": "معاونة",
        "mainpage": "الباجة اللولانيّة",
        "mainpage-description": "الباجة اللوله",
        "policy-url": "Project:المقاون",
-       "portal": "المجتمع",
+       "portal": "بÙ\88رطاÙ\8a Ø§Ù\84Ù\85جتÙ\85ع",
        "portal-url": "Project:بورطاي المجتمع",
        "privacy": "السياسة تاع الخصوصيات (الدين الضيّق)",
        "privacypage": "Project:خصوصيه",
        "hidetoc": "خبّي",
        "collapsible-collapse": "خبّي",
        "collapsible-expand": "ورّي",
+       "confirmable-confirm": "آش يلا راك مأكّد{{GENDER:$1||ة}}؟",
+       "confirmable-yes": "إيه",
+       "confirmable-no": "لا",
        "thisisdeleted": "راك باغي تشوف ولا ترجّع $1؟",
        "viewdeleted": "شوف $1؟",
        "restorelink": "{{PLURAL:$1|تبدال واحد مفاصي|$1 تبدالات مفاصيين|$1 تبدال مفاصي}}",
        "readonly_lag": "الدخيرة تاع الخبرات راهي مقفولة بيدما السربايات التوناويّة يلحقو التوخار الّي عندهم معا السرباي اللولاني",
        "internalerror": "غلطة دخلانيّة",
        "internalerror_info": "غلطة دخلانيّة: $1",
+       "internalerror-fatal-exception": "غلطة واعرة من الطبَع \"$1\"",
        "filecopyerror": "ما قدرش تنساخ الفيشي \"$1\" لل \"$2\"",
        "filerenameerror": "ما قدرش تبدال السميّة تاع الفيشي \"$1\" لل \"$2\".",
        "filedeleteerror": "ما قدرش تمحيتٰ الفيشي \"$1\".",
        "directorycreateerror": "ما قدرش خلقان الدفتار \"$1\".",
+       "directoryreadonlyerror": "الزمّام «$1» راه لل قراية برك (ما ينجمش يكون مبدّل).",
+       "directorynotreadableerror": "الزمّام «$1» ما راهش واجد لل قراية.",
        "filenotfound": "ما قدرش مصيبتٰ الفيشي \"$1\".",
        "unexpected": "قيمة ما شي مستنية : \"$1\"=\"$2\".",
        "formerror": "غلطة: ما قدرش ترسال الستيمارة",
        "badtitle": "عنوان عيان",
        "badtitletext": "عنوان الباجه المطلوب إما ماشي صحيح والا فارغ، وبالاك الوصيل بين اللغات والا بين البروجيات ماشي صحيح.\nبالاك فيه حروف ما تصلحش  باس يستعملوها فالعناوين.",
        "perfcached": "الموطايات هادي راهي مخبّية و بالاك تاني يكون فات عليها الوقت. {{PLURAL:$1||ناتج واحد|زوج نواتج|$1 نواتج|$1 ناتج}} على الكتَر {{PLURAL:$1||مخبّي|مخبّيين}}.",
+       "perfcachedts": "المعلومات هادو راهم مخبّيين، و تعاودو فل $1. يلا كتّر {{PLURAL:$4|ناتج واحد راه|$4 نواتج راهم}} واجدين فل خبّاي.",
+       "querypage-no-updates": "المعاودات تاع هاد الصفحة راهم معطّلين.\nالمعلومات هادي ما راهيش مرجّعة لل حاضر.",
        "viewsource": "شوف الاصل",
+       "viewsource-title": "شوف المصدر تاع $1",
+       "actionthrottled": "الفعل راه محبّس",
+       "actionthrottledtext": "باش نحرزو من السبام، ما يمكنش تدير هاد الفعل بزّاف المرات في مدّة تاع وقت قصير، و راك ضركا فتّ هذا الحد.\nمن فضلك عاود سيّي منّا على شي دقايق.",
+       "protectedpagetext": "هاد الصفحة راهي تنحضات باش ما تتبدّلش ولا شي حاجاخرة.",
+       "viewsourcetext": "تنجم تشوف ولا تنسّح المصدر تاع هاد الصفحة:",
+       "viewyourtext": "تنجم تشوف و تنسّخ المصدر تاع <strong>التبدالات تاعك</strong> ف هاد الصفحة:",
+       "protectedinterface": "هاد الباجة توفّر لك وريشة (interface) تاع كتابة مديورة لل صوفتوار الّي ف هاد الويكي، و راهي مأمّنة باش تنحضا من الضرارات.\nباش تزيد ولا تبدّل طرجمات ل كامل الويكيّات، من فضلك استعمل [//translatewiki.net/ translatewiki.net] المشروع ميدياويكي تاع التبلادات.",
+       "editinginterface": "<strong>ردّ بالك:</strong>راك تبدّل صفحة الّمديورة باش تصنع النصّ تاع الواجهة تاع اللوجيسيال. التبدالات على هاد الصفحة غادي يوتّرو على الشكَل تاع الواجهة حتا عند المستعمليين لخرين.",
+       "translateinterface": "باش تزيد ولا تبدّل الطرجمات ل كامل الويكيّات، استعمل [//translatewiki.net/ translatewiki.net]، المشروع تاع التبلاد تاع الميديويكي.",
+       "exception-nologin": "ماشي مسجّل الدخول",
        "yourname": "اسم المستخدم:",
+       "userlogin-yourname": "سميّة تاع المستعملي",
+       "userlogin-yourname-ph": "دخّل السميّة تاع المستعملي تاعك",
        "yourpassword": "كلمة السر:",
+       "userlogin-yourpassword": "كلمت` السرّ",
+       "userlogin-yourpassword-ph": "دخّل كلمت` السرّ تاعك",
+       "createacct-yourpassword-ph": "دخّل كلمت` سرّ",
        "yourpasswordagain": "عاود كتبت كلمت السر:",
+       "createacct-yourpasswordagain": "أكّد كلمت` السرّ",
+       "createacct-yourpasswordagain-ph": "عاود دخّل كلمت` السرّ",
        "remembermypassword": "اتفكر الدخول تاعي ب هاذ النافيكاتور (ب مدّة حدها{{PLURAL:$1||يوم واحد|يومين|$1 إيّام|$1 يوم}})",
+       "userlogin-remembermypassword": "خلّيني مسجّل داخل",
        "login": "كونكسيون",
        "nav-login-createaccount": "تسجل/ اصنع حساب",
        "userlogin": "تسجل/ اصنع حساب",
+       "userloginnocreate": "مسجّل الدخول",
+       "logout": "مسجّل الخروج",
        "userlogout": "سجل خروج",
+       "userlogin-noaccount": "ما عندك حساب؟",
+       "userlogin-joinproject": "انضم لـ {{SITENAME}}",
        "nologin": "ما عندكش حساب مسجل؟ '''$1'''.",
        "nologinlink": "اصنع حساب",
        "createaccount": "اصنع حساب",
        "gotaccount": "عندك حساب مسجل؟ '''$1'''.",
        "gotaccountlink": "كونكسيون",
        "userlogin-resetlink": "نسيت تفاصيل الدخول؟",
+       "userlogin-resetpassword-link": "راك ناسي كلمت` السرّ؟",
+       "userlogin-helplink2": "معاونة ف تسجال الدخول",
+       "createacct-emailrequired": "علوان تاع إيمال",
+       "createacct-emailoptional": "علوان ليمال (ماشي مسيّف)",
+       "createacct-email-ph": "دخّل علوان` ليمال تاعك",
+       "createacct-another-email-ph": "دخّل علوان تاع إيمال",
+       "createaccountreason": "سبّة:",
+       "createacct-reason": "سبّة",
+       "createacct-captcha": "تحقق أمني",
+       "createacct-imgcaptcha-ph": "دخّل النصّ الّي راك تشوفهُ لفوق",
+       "createacct-submit": "اصنع حسابك",
+       "createacct-benefit-heading": "{{SITENAME}} مخلوق من عند شي ناس غير كيفك.",
+       "createacct-benefit-body1": "{{PLURAL:$1|تحرير|تحريرات}}",
+       "createacct-benefit-body2": "$1 {{PLURAL:$1|صفحة|صفحات}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|مساهم|مساهمين}} توالا",
        "mailmypassword": "أرسل لي كلمة سر جديده",
        "loginlanguagelabel": "اللوغه: $1",
+       "pt-login": "دخله",
+       "pt-login-button": "دخول",
+       "pt-createaccount": "اصنع حساب",
+       "pt-userlogout": "خروج",
+       "passwordreset": "صفّي كلمت` السرّ",
+       "passwordreset-legend": "استرجع كلمت` السرّ",
        "bold_sample": "كتيبة غليظه",
        "bold_tip": "كتيبة غليظه",
        "italic_sample": "كتبة مايلة",
        "preview": "شوفه-قبلي",
        "showpreview": "بين معاينة",
        "showdiff": "عرض التبديلات",
-       "anoneditwarning": "'''توله:''' راك ما دخلتش.\nغادي يتسجل لادراس آيبي نتاعك في تاريخ هذه الباجه.",
+       "anoneditwarning": "'''توليهة:''' راك ما دخلتش بل حساب تاعك.\nيلا تدير شي تبدال، غادي تتسجّل لادريسة آيبي تاعك فل متراخ تاع هاد الصفحة و تكون باينة ل كلّ واحد. يلا [$1 تتكونيكتا]</strong> ولا <strong>[$2 تخلق حساب]</strong>، التبدالات تاعك غادي يبانو تحت السميّة تاع المستعملي تاعك، و كاين تاني مزيّات وحدخرين.",
+       "loginreqlink": "اتكونيكتا",
        "newarticle": "(جديد)",
        "newarticletext": "راك تبعت وصيلة لباجه لم ما تخدمتش بعد.\nباش تصنع هاذ الباجه ابدا الكتبه فالصندوق التحت (شوف في [$1  زياده باجه المساعده] لمعلومات).\nإذا كانت زيارتك لهاذ الباجه غلطه، ادرك على بوطون''ولى'' في نافيقاتور الإنترنت نتاعك.",
        "noarticletext": "لحد الساعه ما كانش حتى نص في هاذ الباجه.\nتقدرو [[Special:Search/{{PAGENAME}}|ترميو تفتيشه على هاذ العنوان]] فالباجات لخرين,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} فتش فالعمليات المربوطه]\nو إلا[{{fullurl:{{FULLPAGENAME}}|action=edit}} أصنع هاذ الباجه]</span>.",
        "noarticletext-nopermission": "لحد الساعه ما كانش حتى نص في هاذ الباجه.\nتقدرو [[Special:Search/{{PAGENAME}}|ترميو تفتيشه على هاذ العنوان]] فالباجات لخرين,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} فتش فالعمليات المربوطه]\nو إلا[{{fullurl:{{FULLPAGENAME}}|action=edit}} أصنع هاذ الباجه]</span>.",
        "previewnote": "'''ما تنساش هذي معاينه قبليه.'''\nلدوك التبديلات دياولك ما تسجلوش!",
        "editing": "تحرير $1",
+       "creating": "خليق $1",
        "editingsection": "كتيبه $1 (قسم)",
        "templatesused": "{{PLURAL:$1||القالب المستعمل|القوالب المستعمله}} في هذه الباجه:",
        "template-protected": "(محميه)",
        "viewpagelogs": "بين العمليات على هاذ الباحه",
        "currentrev-asof": "نسخة ضركانية بل تاريخ تاع $1",
        "revisionasof": "معاودة تاع الـ $1",
-       "revision-info": "مراجعه $1 بواسطت $2",
+       "revision-info": "مراجعة تاع $1 من عند {{GENDER:$6|$2}}$7",
        "previousrevision": "← نسخة اللوله",
        "nextrevision": "فرسيون جايه←",
        "currentrevisionlink": "المراجعه الحاليه",
        "revdel-restore": "غير كيف راهي تبان",
        "revertmerge": "فرق",
        "history-title": " «$1»: تاريخ المراجعات",
+       "difference-title": "فروقات بين التبدالات تاع \"$1\"",
        "lineno": "سطر$1:",
        "compareselectedversions": "كومباري بين نسختين مخيرين",
        "editundo": "نحي",
+       "diff-multi-sameuser": "({{PLURAL:$1|تبديلة متوسّطة وحدة|$1 تبديلات متوسّطين}} ماشي {{PLURAL:$1|مورّية|$1 مورّيين}} من عند نفس المستعملي)",
        "searchresults": "نتاج تاع التفتيشة",
        "searchresults-title": "ريزيلته تاع التحواس \"$1\"",
        "prevn": "{{PLURAL:$1|précédente|$1 اللولانيين}}",
        "shown-title": "آفيشي $1 {{PLURAL:$1|نتيجة}} فل صفحة",
        "viewprevnext": "شوف($1 {{int:pipe-separator}} $2) ($3).",
        "searchmenu-exists": "'''كاين باجه اسمها « [[:$1]] » في هاذ الويكي'''",
-       "searchmenu-new": "'''أصنع الباجه « [[:$1|$1]] » في هذ الويكي !'''",
+       "searchmenu-new": "'''أصنع الباجة \"[[:$1]]\" في هذ الويكي !'''\n{{PLURAL:$2|0=|شوف تاني الصفحة الّي صبتها ف`التفتاش..|شوف تاني النواتج تاع التفتاش.}}",
        "searchprofile-articles": "باجه تع محتوى",
        "searchprofile-images": "ميلتيميديا",
        "searchprofile-everything": "كلش",
        "search-suggest": "كنت باغي تقول: $1",
        "searchrelated": "مرتابطه",
        "searchall": "ألكل",
+       "search-showingresults": "{{PLURAL:$4|النتيج <strong>$1</strong> تاع <strong>$3</strong>|النتايج <strong>$1 - $2</strong> من أصل <strong>$3</strong>}}",
        "search-nonefound": "ما كانش نتائج تطابق المسقسية.",
        "mypreferences": "إختيارات",
        "youremail": "البريه الالكترونيه:",
        "yourrealname": "الاسم الحقاني:",
        "prefs-help-email": "لادريس نتع البريه الإلكترونيه بالخاطر، ولكن هي لازمه في حال نسيت كلمت السر نتاعك.",
        "prefs-help-email-others": "تقدر تاني تخلي لوخرين يتاصلو بيك في باجت نقاشك ولا في وصيله في باجت مستخدم نتاعك, اذا ارسلك واحد ما يبانش لادريس نتاعك , حتى اذ رديت عليه باش يبان لادريس نتاعك.",
+       "right-writeapi": "استعمل API للكتابه نتاع الويكي",
        "newuserlogpage": "ريجيستر صنعة حسابات المستخدمين",
        "action-edit": "عدل هاذ الباجه",
        "nchanges": "$1 تبديله{{PLURAL:$1||s}}",
+       "enhancedrc-history": "تاريخ",
        "recentchanges": "تبديلات توالا",
        "recentchanges-legend": "ابسيون التبديلات التواله",
+       "recentchanges-summary": "اجبر التبدالات اللواخر الّي صراو ف هاد الصفحة.",
        "recentchanges-feed-description": "تبع التبديلات الجدد للويكي في هاذ التيار .",
        "recentchanges-label-newpage": " هاذ التبديل صنع باجه جديده",
        "recentchanges-label-minor": "هاذا تبديل صغير",
        "recentchanges-label-bot": "هاذ التبديل ندار بروبو",
        "recentchanges-label-unpatrolled": "ما تراجعتش هاذ التبديله للآن",
+       "recentchanges-label-plusminus": "الحجَم تاع الصفحة راه تبدّل ب هاد العدّة تاع البايتات",
+       "recentchanges-legend-heading": "'''تفسار:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (شوف تاني [[Special:NewPages|ليستة تاع صفحات جديدة]])",
        "rcnotefrom": "هاهي التبديلات  من'''$2''' (ل'''$1''' معروضه).",
        "rclistfrom": "بين التبديلات البديه من $3 $2",
        "rcshowhideminor": "$1 التبديلات الصغير",
+       "rcshowhideminor-show": "ورّي",
+       "rcshowhideminor-hide": "خبّي",
        "rcshowhidebots": "$1 البوتات",
+       "rcshowhidebots-show": "ورّي",
+       "rcshowhidebots-hide": "خبّي",
        "rcshowhideliu": "$1 المستخدمين المسجلين",
+       "rcshowhideliu-hide": "خبّي",
        "rcshowhideanons": "$1 المستخدمين المجهولين",
+       "rcshowhideanons-show": "ورّي",
+       "rcshowhideanons-hide": "خبّي",
        "rcshowhidepatr": "$1 التبديلات المعسوسه",
        "rcshowhidemine": "$1 تبديلات نتاعي",
+       "rcshowhidemine-show": "ورّي",
+       "rcshowhidemine-hide": "خبّي",
        "rclinks": "بين آخر $1 تبديل في آخر $2 يوم<br />$3",
        "diff": "إختلاف",
        "hist": "تاريخ",
        "minoreditletter": "ط",
        "newpageletter": "ج‌",
        "boteditletter": "ب",
+       "rc-change-size-new": "$1 {{PLURAL:$1|octet|octets}} مورا التبدال",
        "rc-enhanced-expand": "بين التفاصيل (يلزمها جافاسكريبت)",
        "rc-enhanced-hide": "خبي التفاصيل",
        "recentchangeslinked": "تبديلات مربوطه",
        "filedesc": "ملخص",
        "license": "ترخيص:",
        "license-header": "ترخيص:",
+       "imgfile": "فيشي",
        "file-anchor-link": "ملف",
        "filehist": "تاريخ الفيشيي",
        "filehist-help": "ادرك على وقت و تاريخ/باش تشوف الملف كما بان  في هاذ الوقت.",
        "linkstoimage": "{{PLURAL:$1|الباجة توصل|ال$1 باجات يوصلو}} لهاذ الملف :",
        "nolinkstoimage": "ما كانش باجات موصوله لهاذ الفيشي.",
        "sharedupload-desc-here": "هاذ الملف جاي من $1. يمكن يكون مستعمل من بروجيات وحد أخرين.\nالتوصيف نتاعو في [$2 باجت الصفات] محطوطه هنا لتحت.",
+       "upload-disallowed-here": "ما تنحمش تعدّل هاد التصويرة",
        "randompage": "باجة على الزهر",
        "statistics": "إحصاويّات",
        "nbytes": "{{PLURAL:$1|بايت 1|$1 بايت}}",
        "pager-older-n": "{{PLURAL:$1|قديم بزاف 1|قديم بزاف $1}}",
        "booksources": "مصادر كتاب",
        "booksources-search-legend": "حوس ما بين مصادر الكتب",
+       "booksources-search": "فتّش",
        "log": "ريجيسترات العمليات",
        "allpages": "قاع الباجات",
        "allarticles": "قاع الباجات",
        "actionfailed": "العمليه فشلت",
        "dellogpage": "ريجيستر محو الباجات",
        "rollbacklink": "ولي",
+       "rollbacklinkcount": "رجّع {{PLURAL:$1|تعديل واحد|$1 تعديلات}}",
        "protectlogpage": "ريجيستر الحمايه",
        "protectedarticle": "راه حمى \"[[$1]]\"",
        "undeletelink": "شوف/رجع",
        "undeleteviewlink": "شوف",
        "namespace": "بلاصه تع أسموات",
        "invert": "اعكس التخيار",
+       "tooltip-invert": "علّم هاد المقّبسة باش تخبّي التبدالات تاع الصفحات الّي فيها وسَع` التسمية (و وسَع التسمية المربوط يلا كاين)",
+       "namespace_association": "وسَع التسمية المربوط",
+       "tooltip-namespace_association": "علّم على هاد المقيبسة باش تدخّل تاني المهادرة ولا وسَع التسمية تاع الموضوع المربوط معا وسَع التسمية المسيليكسيوني",
        "blanknamespace": "أساسي",
        "contributions": "مساهمات {{GENDER:$1|المستخدم|المستخدمه}}",
        "contributions-title": "مساهمات {{GENDER:$1|المستخدم|المستخدمه}} $1",
        "sp-contributions-username": "عنوان أيبي والال اسم مستخدم:",
        "sp-contributions-toponly": "ما تورّي غير المشاركات التوالا تاع المقالات",
        "sp-contributions-submit": "تفتاش",
-       "whatlinkshere": "Ù\88اش Ù\8aÙ\88صل هنا",
+       "whatlinkshere": "Ù\88اش Ù\88اصل هنا",
        "whatlinkshere-title": "الباجات اللي تقين في \"$1\"",
        "whatlinkshere-page": "الباجه:",
        "linkshere": "هاذ الباجات يوصلو إلى '''[[:$1]]''':",
        "tooltip-pt-preferences": "وش خيرت",
        "tooltip-pt-watchlist": "ليستت الباجات الي راك أتبع تبديلاتهم",
        "tooltip-pt-mycontris": "ليسته نتع مساهماتك",
-       "tooltip-pt-login": "Ù\85ادابÙ\8aÙ\83 ØªØ³Ø¬Ù\84 Ø§Ù\84دخÙ\88Ù\84 ØªØ§Ø¹Ù\83Ø\8c Ø¨ØµÙ\91Ø­ Ù\85اشÙ\8a Ù\85Ù\84زÙ\88Ù\85 Ø¹Ù\84Ù\8aÙ\83",
+       "tooltip-pt-login": "Ù\85ادابÙ\8aÙ\83 ØªØ³Ø¬Ù\84 Ø¯Ø®Ù\84تÙ\83 Ø\8c Ù\84Ù\83Ù\86 Ù\85اشÙ\8a Ù\84ازÙ\85",
        "tooltip-pt-logout": "سجل خروج",
-       "tooltip-ca-talk": "تقرعيج على باجتٰ المحتاوا",
-       "tooltip-ca-edit": "تنجم تحرر هاذ الباجه ،ماذابيك تستعمل قفله المراجعه قبل ما تحفظ",
+       "tooltip-pt-createaccount": "ننصح باش تصنع حساب و تسجل دخلتك ; على كل حال ماهوش ضروري",
+       "tooltip-ca-talk": "مناقشه على هاد باجت المحتوا",
+       "tooltip-ca-edit": "تقدر تبدل هاذ الباجه ،ماذابيك تستعمل قفله المراجعه قبل ما تسجل",
        "tooltip-ca-addsection": "ابدأ طرف جديد",
        "tooltip-ca-viewsource": "هاذ الباجه محميه. و شنو تقدرو تشوفو الأصلي نتاعها",
        "tooltip-ca-history": "المراجعات التوالا تاع الباجة (معا المساهمين تاوعها)",
        "tooltip-ca-watch": "زيد هذ الباجة لل ليستة تاعك تاع التتباع",
        "tooltip-ca-unwatch": "اقلع هاد الباجة منل ليستة تاعك تاع التتباع",
        "tooltip-search": " فتّش في {{SITENAME}}",
-       "tooltip-search-go": "روح الباجه عندها نفس الآسم إذا كانت كاينه",
+       "tooltip-search-go": "روح لباجه عندها ذاك الآسم نفسو  إذا كانت",
        "tooltip-search-fulltext": "فتّش على باجه بهاد الكتبة",
-       "tooltip-p-logo": "رÙ\88Ø­ Ù\84Ù\84باجÙ\87 Ø§Ù\84Ù\84Ù\88Ù\84اÙ\86Ù\8aÙ\91ه",
+       "tooltip-p-logo": "زÙ\88ر Ø§Ù\84باجÙ\87 Ø§Ù\84Ù\84Ù\88Ù\84ه",
        "tooltip-n-mainpage": "زور الباجه اللوله",
-       "tooltip-n-mainpage-description": "زور الباجه لوله",
-       "tooltip-n-portal": "عÙ\84Ù\89 Ø§Ù\84پرÙ\88جÙ\8aØ\8cÙ\88اش ØªÙ\86جÙ\85 تدير، وين تصيب واش تحتاج",
+       "tooltip-n-mainpage-description": "زور الباجه اللوله",
+       "tooltip-n-portal": "عÙ\84Ù\89 Ø§Ù\84پرÙ\88جÙ\8aØ\8cÙ\88اش ØªÙ\82در تدير، وين تصيب واش تحتاج",
        "tooltip-n-currentevents": "صيب خبارات مستّرين على الصوالح الّي راهم يصراو ضركا",
-       "tooltip-n-recentchanges": "اÙ\84Ù\84Ù\8aستة ØªØ§Ø¹ Ø§Ù\84تبدÙ\8aÙ\84ات Ø§Ù\84تÙ\88اÙ\84ا فل ويكي",
+       "tooltip-n-recentchanges": "اÙ\84Ù\84Ù\8aستة ØªØ§Ø¹ Ø§Ù\84تبدÙ\8aÙ\84ات Ø§Ù\84جدÙ\8aدة فل ويكي",
        "tooltip-n-randompage": "طلّع باجه على الزهر",
        "tooltip-n-help": "بلاصة المعونة",
-       "tooltip-t-whatlinkshere": "ليستة تاع كاع الباجات تاع المحتاوا الي توصّل لهنا",
+       "tooltip-t-whatlinkshere": "ليستة تاع كامل باجات المحتاوا الواصله هنا",
        "tooltip-t-recentchangeslinked": "ليستة تاع التبديلات التوالا تاع الباجات الّي عندهم رباط معا هادي",
        "tooltip-feed-atom": "سيلان آتوم تاع هاد الباجة",
        "tooltip-t-contributions": "شوفان ليسته مساهمات هاذا المستخدم",
        "tooltip-rollback": "\"نحّي\" : ب ضركة وحدة تآنيلي التبديلة ولا التبديلات تاع المساهم التالي",
        "tooltip-undo": "\"نحّي\" فاصي هاد الـمعاودة و حلّ تاقة تاع تبدال بشوفه قبلانيّه. تخلّي باش ترجع لل معاوده التاليه و تزيد الـسبّة علاش فل قابسه تاع الـحويصله.",
        "tooltip-summary": "دخل تلخيص صغير",
+       "simpleantispam-label": "مسيّة ضدّ السبام.\nما تعمّرش هادا!",
+       "pageinfo-toolboxlink": "معلومات على هاد الباجه",
        "previousdiff": "→ التعديل الي قبل",
        "nextdiff": "التبديل الجاي ←",
        "file-info-size": "$1 × $2 بكسل حجم الملف: $3، نوع MIME: $4",
        "file-nohires": "ما كانش دقه اكثر من هاك",
        "svg-long-desc": "فيشيي SVG، أبعاده $1 × $2 بكسل، تاي الفيشي : $3",
-       "show-big-image": "تصويرة دقة عالية",
+       "show-big-image": "الملف الأصلي",
+       "show-big-image-preview": "حجم هذه المعاينه: $1.",
+       "show-big-image-other": "{{PLURAL:$2||التدقاقة|التدقاقات}}: $1.",
+       "show-big-image-size": "$1 × $2 بكسل",
        "bad_image_list": "الفورمة راهي كيما واش يتبع:\nما كاين غير السطور الّي باديين بل *، الّي يكونو معدودين\nالـوصيل الـلوّل تاع سطر لازم كون تاع تصويرة ضايعة.\nكامل الوصيلات لخرين الّي فل سطر، يكونو معدودين كلّي تتنيّات، بل متال باجات وين الـتصويرة تنجم تبان.",
        "metadata": "بايان ميتا",
        "metadata-help": "هذا الملف راه فيه خبيرات زايدين، بالاك تكون انزادت من عند صواره نيميريك ولا سكانر مين صنع الملف.\nالأصلي، شي تفاصيل بالاك ما تعبرش على الملف المعدل.",
        "metadata-fields": "الحقول تاع الميتا معطيّات تاع تصاور الّي يكونو ف هاد البريّة غادي ينحطّو فل باجة تاع التوصاف تاع التصويرة منين يكون الجدول تاع  الميتاالمعطيات مطوي.\nالحقول لخرة يكونو مخبيين بارديفو.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "exif-orientation": "توجاه",
+       "exif-xresolution": "التدقاق الأوفوقي",
+       "exif-yresolution": "التدقاق العامودي",
+       "exif-datetime": "تاريخ و وقت تاع تبدال الفيشي",
+       "exif-make": "الصانع تاع الجهاز",
+       "exif-model": "الطبّع تاع الجهاز",
+       "exif-software": "البريمجات الّي مستعملة",
+       "exif-exifversion": "نسخة Exif",
+       "exif-colorspace": "موساع تاع اللوان",
+       "exif-datetimeoriginal": "التاريخ و الوقت تاع تولاد المعلومات",
+       "exif-datetimedigitized": "التاريخ تاع التنمريل (numérisation)",
+       "exif-orientation-1": "عادي",
        "namespacesall": "لكل",
        "monthsall": "لكل",
        "watchlisttools-view": "اعرض التبديلات المرتابطه",
        "watchlisttools-edit": "اعرض قائمه المراقبه و عدلها",
        "watchlisttools-raw": "موديفي ليستت التبيعه الخام",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|تقرعيج]])",
        "duplicate-defaultsort": "'''توليه:''' مفتاح التستيف الافتراضي \"$2\" ديباسا مفتاح التستيف الافتراضي التالي\"$1\".",
        "specialpages": "الباجات الخصوصيه",
        "external_image_whitelist": " #<pre>خلى هاذ السطر كيما راه\n#حط منثورات التعبيرات المنتظمة (برك الجزء الي يروح بين //) بالتحت\n#هاذ يكون مطابقتها مع مسارات التصاوير البرانيه (الموصولة بصفه مباشره)\n#هاذي الي تشبهغادي تنعرض  كتصاور، خلاف هذا برك وصيلة للتصويرة غادي تنعرض\n#السطور اللي تبدأا ب# تعتبر تعليقات\n#هذا لا يتأثر بحالة الحروف\n\n#حط كامل منثورات التعبيرات المنتظمة فوق هذا السطر. خلي هاذ السطر سواسوا كيما هو</pre>",
-       "tag-filter": "صفاية[[Special:Tags|الوشام]]:"
+       "tag-filter": "صفاية[[Special:Tags|الوشام]]:",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1||وسم|وسمان|وسوم}}]]: $2)",
+       "logentry-delete-delete": "$1 {{GENDER:$2| راه محا|راهي محات}}الصفحة $3",
+       "logentry-move-move": "{{GENDER:$2|نقّل|نقّلت}} $1 الصفحة $3 لـ $4",
+       "logentry-newusers-create": "راه تفتح حساب {{GENDER:$2|المستخدم|المستخدمه}} $1",
+       "logentry-upload-upload": " {{GENDER:$2|نزّل|نزّلت}} $1 $3",
+       "searchsuggest-search": "تفتاش"
 }
index f408d43..79e12cc 100644 (file)
        "deletereasonotherlist": "Sabab weḫdaĥor",
        "delete-edit-reasonlist": "ĝddel asbab l-ḫdf",
        "rollback": "tjjea taadilat",
-       "rollback_short": "Rjeĝ l-lor",
        "rollbacklink": "Rjeĝ l-lor",
        "rollbackfailed": "rjoaa mankhch",
        "editcomment": "molĥĥaṣ ṫ-ṫĝdil kan: \"''$1''\".",
        "watchlisttools-view": "Lista dyal s-suivi",
        "watchlisttools-edit": "Ċof o ĝeddel l-lista dyal s-suivi",
        "watchlisttools-raw": "Ṣayeb l-lista dyal s-suivi",
-       "unknown_extension_tag": "tag mṫidad ma mĝrof-ċ \"$1\"",
        "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-parser-function-hooks": "khtatif dyal dalat lmohllil",
        "version-hook-name": "smiyt lkhttaf",
        "version-hook-subscribedby": "kaytstaml mn taraf",
-       "version-version": "(Noskha $1)",
+       "version-version": "($1)",
        "version-license": "rokhssa",
        "version-poweredby-others": "khrin",
        "version-software": "lbarnamaj li m'anstalli",
index 65f556f..adf0eed 100644 (file)
        "delete-toobig": "الصفحه دى  ليها تاريخ تعديل كبير، أكتر من $1 {{PLURAL:$1|مراجعة|مراجعة}}.\nمسح الصفحات اللى زى دى تم تحديده لمنع الاضطراب العرضى فى {{SITENAME}}.",
        "delete-warning-toobig": "الصفحة دى ليها تاريخ تعديل كبير، أكتر من $1 {{PLURAL:$1|مراجعة|مراجعة}}.\nممكن مسحها يعمل اضطراب  فى عمليات قاعدة البيانات فى {{SITENAME}}؛\nاستمر بس خد بالك.",
        "rollback": "إرجع فى التعديلات",
-       "rollback_short": "إرجع لـ ورا",
        "rollbacklink": "ترجيع",
        "rollbackfailed": "الترجيع ما نفعش",
        "cantrollback": "ماقدرناش نرجع فى التعديل؛ آخر مساهم هوه الوحيد اللى ساهم فى الصفحة دي.",
        "hebrew-calendar-m11-gen": "آب",
        "hebrew-calendar-m12-gen": "أيلول",
        "timezone-utc": "يو تى سى",
-       "unknown_extension_tag": "تاج بتاع امتداد مش معروف \"$1\"",
        "duplicate-defaultsort": "تحزير: زرار الترتيب الاوتوماتيكي\"$2\" بيوقف زرار الترتيب الاوتوماتيكي\"$1\" القديم.",
        "version": "نسخة",
        "version-extensions": "الامتدادات المتثبتة",
        "version-parser-function-hooks": "خطاطيف دالة المحلل",
        "version-hook-name": "اسم الخطاف",
        "version-hook-subscribedby": "اشتراك باسم",
-       "version-version": "(نسخه $1)",
+       "version-version": "($1)",
        "version-license": "الترخيص",
        "version-software": "السوفتوير المتستاب",
        "version-software-product": "المنتج",
        "specialpages-group-wiki": "بيانات وأدوات الويكى",
        "specialpages-group-redirects": "صفحات  التحويل الخاصه",
        "specialpages-group-spam": "أدوات السبام",
+       "specialpages-group-developer": "أدوات المطورين",
        "blankpage": "صفحة فاضية",
        "intentionallyblankpage": "الصفحة دى متسابة فاضية بالقصد",
        "external_image_whitelist": " # سيب السطر دا زى ما هو كدا<pre>\n#حط حتت التعبيرات المنتظمه (بس الجزء اللى بيروح بين //) تحت\n# ح يحصل تطابق بينهم و بين ال URLs بتاع الصور الخارجيه (هوت لينك)\n#اذا حصل تطابق ح يتعرضو ك صور ، و اذا ما حصلش ف ح تظهر بس لينك للصوره\n#السطور اللى بتبتدى بـ # بتتعامل كأنها تعليقات\n#دا ما بيتأثرش بحالة الحروف\n\n#حط كل حتت الريجيكس فوق . سيب السطر دا زى ما هو كدا</pre>",
index d90c4ef..6afb8bc 100644 (file)
@@ -15,7 +15,9 @@
                        "Simbu123",
                        "Urhixidur",
                        "아라",
-                       "Aftabuzzaman"
+                       "Aftabuzzaman",
+                       "Macofe",
+                       "IKHazarika"
                ]
        },
        "tog-underline": "সংযোগসমূহ অধোৰেখিত কৰক:",
        "showhideselectedversions": "নিৰ্বাচিত সংশোধনসমূহ দেখুৱাওক/আঁৰ কৰক",
        "editundo": "পূৰ্ববত কৰক",
        "diff-empty": "(কোনো পাৰ্থক্য নাই)",
-       "diff-multi-sameuser": "একেজন সদস্যই কৰা ({{PLURAL:$1|এটা মধ্যৱৰ্তী সংশোধন|$1টা মধ্যৱৰ্তী সংশোধন}} দেখুওৱা হোৱা নাই",
+       "diff-multi-sameuser": "একেজন সদস্যই কৰা ({{PLURAL:$1|এটা মধ্যৱৰ্তী সংশোধন|$1 মধ্যৱৰ্তী সংশোধন}} দেখুওৱা হোৱা নাই)",
        "diff-multi-otherusers": "{{PLURAL:$2|আন এজন সদস্যই|$2জন সদস্যই}} কৰা ({{PLURAL:$1|এটা মধ্যৱৰ্তী সংশোধন|$1টা মধ্যৱৰ্তী সংশোধন}} দেখুওৱা হোৱা নাই।",
        "diff-multi-manyusers": "({{PLURAL:$2|এজনতকৈ|$2-জনতকৈ}} অধিক সদস্যৰ দ্বাৰা {{PLURAL:$1|এটা মধ্যৱৰ্তী সংশোধন|$1-টা মধ্যৱৰ্তী সংশোধন}} দেখুওৱা হোৱা নাই)",
        "difference-missing-revision": "{{PLURAL:$2|এটা সংস্কৰণ|$2 সংস্কৰণসমূহৰ}} সংশোধনৰ পাৰ্থক্য  ($1) {{PLURAL:$2| পোৱা নগ’ল}}।\n\n\nসাধাৰণতে বিলোপ কৰা এখন পৃষ্ঠাৰ পুৰণা ইতিহাস লিংক অনুসৰণ কৰিলে এনে হয়।\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} বিলোপন অভিলেখ] চালে অধিক তথ্য পাব।",
        "searchrelated": "সম্পৰ্কিত",
        "searchall": "সকলো",
        "showingresults": "তলত #'''$2'''ৰ পৰা {{PLURAL:$1|'''1''' ফলাফল|'''$1''' ফলাফল}} দেখুওৱা হৈছে।",
+       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong>-ৰ <strong>$1</strong>টো ফলাফল|<strong>$3</strong>-ৰ <strong>$1 - $2</strong>টো ফলাফল}}",
        "search-nonefound": "এই অনুসন্ধানৰ কোনো ফলাফল নাই ।",
        "powersearch-legend": "শক্তিশালী সন্ধান",
        "powersearch-ns": "নামস্থানবোৰত সন্ধান:",
        "import-rootpage-nosubpage": "মূল পৃষ্ঠাৰ \"$1\" নামস্থানে উপপৃষ্ঠা অনুমোদন নকৰে।",
        "importlogpage": "আমদানিৰ অভিলেখ",
        "importlogpagetext": "আন ৱিকিৰ পৰা সম্পাদনা ইতিহাসসহ প্ৰশাসনীয় পৃষ্ঠা আমদানি।",
-       "import-logentry-upload": "নথি আপল'ডৰ মাধ্যমেৰে [[$1]] আমদানি কৰা হ'ল",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|টা সংশোধন|টা সংশোধন}}",
-       "import-logentry-interwiki": "আন্তঃৱিকি-স্থানান্তৰিত $1",
        "import-logentry-interwiki-detail": "$2ৱে কৰা $1 {{PLURAL:$1|টা সংশোধন|টা সংশোধন}}",
        "javascripttest": "জাভাস্ক্ৰিপ্ট পৰীক্ষা।",
        "javascripttest-pagetext-noframework": "এই পৃষ্ঠাটো জাভাস্ক্ৰিপ্ট পৰীক্ষা চলোৱাৰ বাবে সংৰক্ষিত।",
        "tooltip-pt-mycontris": "আপোনাৰ বৰঙণিৰ তালিকা",
        "tooltip-pt-login": "বাধ্যতামূলক নহ'লেও প্ৰৱেশ কৰাটো বাঞ্চনীয়",
        "tooltip-pt-logout": "প্ৰস্থান",
+       "tooltip-pt-createaccount": "আপোনাক এটা একাউণ্ট সৃষ্টি কৰি প্ৰৱেশ কৰিবলৈ অনুৰোধ জনোৱা হৈছে, কিন্তু এয়া বাধ্যতামূলক নহয়",
        "tooltip-ca-talk": "সংশ্লিষ্ট প্ৰবন্ধ সম্পৰ্কীয় আলোচনা",
        "tooltip-ca-edit": "আপুনি এই পৃষ্ঠাটো সালসলনি কৰিব পাৰে, অনুগ্ৰহ কৰি সালসলনি সাচী থোৱাৰ আগতে খচৰা চাই লব",
        "tooltip-ca-addsection": "নতুন অনুচ্ছেদ আৰম্ভ কৰক",
        "version-parser-function-hooks": "পাৰ্চাৰ ফাংচন হুকসমূহ",
        "version-hook-name": "হুক নাম",
        "version-hook-subscribedby": "চাবস্ক্ৰাইব কৰিছে",
-       "version-version": "(সংস্কৰণ $1)",
+       "version-version": "($1)",
        "version-license": "অনুজ্ঞাপত্ৰ",
        "version-ext-license": "অনুজ্ঞাপত্ৰ",
        "version-ext-colheader-name": "এক্সটেন্‌চন",
        "logentry-rights-rights": "$1ৰ গোট সদস্যপদ $3ৰ পৰা $4লৈ $5 লৈ সলনি কৰা হ'ল",
        "logentry-rights-rights-legacy": "$1-ৰ গোট সদস্যপদ $3-লৈ সলনি কৰা হ'ল",
        "logentry-rights-autopromote": "$1ক  $4ৰ পৰা $5লৈ স্বয়ংক্ৰিয়ভাৱে পদোন্নীত কৰা হ’ল",
+       "logentry-upload-upload": "$1 $3 {{GENDER:$2|আপল'ড কৰা হ'ল}}",
        "rightsnone": "(নাই)",
        "revdelete-summary": "সম্পাদনাৰ সাৰমৰ্ম",
+       "feedback-adding": "পৃষ্ঠাত প্ৰতিক্ৰিয়া যোগ কৰা হৈছে...",
+       "feedback-bugcheck": "অতি উত্তম! কেৱল পৰীক্ষা কৰক যে ই ইতিমধ্যে [$1 জ্ঞাত বাগসমূহ]ৰ এটা নহয়।",
+       "feedback-bugnew": "মই পৰীক্ষা কৰিলো। এটা নতুন বাগ সংবাদন কৰক",
        "feedback-bugornote": "যদি আপুনি এটা কাৰিকৰী সমস্যাৰ বিৱৰণ দিবলৈ প্ৰস্তুত, অনুগ্ৰহ কৰি [$1 এটা বাগ ৰিপ'ৰ্ট কৰক]।\nনহ'লে আপুনি তলৰ সহজ ফৰ্ম ব্যৱহাৰ কৰিব পাৰিব। আপোনাৰ মন্তব্য আপোনাৰ সদস্যনাম আৰু আপুনি ব্যৱহাৰ কৰা ব্ৰাউজাৰৰ সৈতে \"[$3 $2]\" -পৃষ্ঠাত যোগ কৰা হ'ব।",
-       "feedback-subject": "বিষয়:",
-       "feedback-message": "বাৰ্তা:",
        "feedback-cancel": "বাতিল কৰক",
-       "feedback-submit": "প্ৰতিক্ৰিয়া জমা কৰক",
-       "feedback-adding": "পৃষ্ঠাত প্ৰতিক্ৰিয়া যোগ কৰা হৈছে...",
+       "feedback-close": "কৰা হ’ল",
        "feedback-error1": "ত্ৰুটি: এ.পি.আই.ৰ অজ্ঞাত ফলাফল",
        "feedback-error2": "ত্ৰুটি: সম্পাদনা বিফল হৈছে",
        "feedback-error3": "ত্ৰুটি: এ.পি.আই.ৰ কোনো সঁহাৰি নাই",
+       "feedback-message": "বাৰ্তা:",
+       "feedback-subject": "বিষয়:",
+       "feedback-submit": "দাখিল কৰক",
        "feedback-thanks": "ধন্যবাদ ! আপোনাৰ প্ৰতিক্ৰিয়া \"[$2 $1]\" পৃষ্ঠাত প্ৰকাশ কৰা হৈছে।",
-       "feedback-close": "কৰা হ’ল",
-       "feedback-bugcheck": "অতি উত্তম! কেৱল পৰীক্ষা কৰক যে ই ইতিমধ্যে [$1 জ্ঞাত বাগসমূহ]ৰ এটা নহয়।",
-       "feedback-bugnew": "মই পৰীক্ষা কৰিলো। এটা নতুন বাগ সংবাদন কৰক",
        "searchsuggest-search": "সন্ধান কৰক",
        "searchsuggest-containing": "যি আছে...",
        "api-error-badaccess-groups": "এই ৱিকিত ফাইল আপল'ড কৰিবলৈ আপোনাৰ অনুমতি নাই।",
index 5cbed2e..1b0c089 100644 (file)
@@ -10,7 +10,8 @@
                        "Xuacu",
                        "לערי ריינהארט",
                        "아라",
-                       "Fitoschido"
+                       "Fitoschido",
+                       "Macofe"
                ]
        },
        "tog-underline": "Sorrayar enllaces:",
@@ -38,7 +39,7 @@
        "tog-shownumberswatching": "Amosar el númberu d'usuarios que tán vixilando la páxina",
        "tog-oldsig": "Firma esistente:",
        "tog-fancysig": "Tratar la firma como testu wiki (ensin enllaz automáticu)",
-       "tog-uselivepreview": "Usar vista previa en tiempu real (experimental)",
+       "tog-uselivepreview": "Usar vista previa en tiempu real",
        "tog-forceeditsummary": "Avisame cuando grabe col resume d'edición en blanco",
        "tog-watchlisthideown": "Anubrir les mios ediciones na llista de siguimientu",
        "tog-watchlisthidebots": "Anubrir les ediciones de bots na llista de siguimientu",
        "pool-queuefull": "La cola de trabayu ta enllena",
        "pool-errorunknown": "Fallu desconocíu",
        "pool-servererror": "El serviciu de contador de recursos compartíos nun ta disponible ($1).",
+       "poolcounter-usage-error": "Error d'usu: $1",
        "aboutsite": "Tocante a {{SITENAME}}",
        "aboutpage": "Project:Tocante a",
        "copyright": "El conteníu ta disponible baxo los términos de la $1 si nun s'indica otra cosa.",
        "readonly_lag": "La base de datos candóse automáticamente mentes los sirvidores de la base de datos esclava se sincronicen cola maestra",
        "internalerror": "Fallu internu",
        "internalerror_info": "Fallu internu: $1",
+       "internalerror-fatal-exception": "Escepción fatal de tipu «$1»",
        "filecopyerror": "Nun se pudo copiar el ficheru «$1» como «$2».",
        "filerenameerror": "Nun se pudo renomar el ficheru «$1» como «$2».",
        "filedeleteerror": "Nun se pudo desaniciar el ficheru «$1».",
        "directorycreateerror": "Nun se pudo crear el direutoriu «$1».",
+       "directoryreadonlyerror": "El direutoriu «$1» ye de sólo llectura.",
+       "directorynotreadableerror": "El direutoriu \"$1\" nun ye lleíble.",
        "filenotfound": "Nun pudo atopase'l ficheru «$1».",
        "unexpected": "Valor inesperáu: «$1»=«$2».",
        "formerror": "Fallu: Nun se pudo unviar el formulariu.",
        "viewsourcetext": "Pues ver y copiar la fonte d'esta páxina:",
        "viewyourtext": "Pues ver y copiar la fonte de '''les tos ediciones''' d'esta páxina:",
        "protectedinterface": "Esta páxina proporciona'l testu de la interfaz del software d'esta wiki, y ta candada pa torgar abusos.\nP'amestar o cambiar les traducciones de toles wikis, por favor usa [//translatewiki.net/translatewiki.net], el proyeutu de llocalización de MediaWiki.",
-       "editinginterface": "'''Avisu:''' Tas editando una páxina que s'usa pa proporcionar el testu d'interfaz del programa.\nLos cambeos nesta páxina van afeutar l'apariencia de la interfaz pa otros usuarios d'esta wiki.\nP'amestar o camudar traducciones pa toles wikis, por favor, usa [//translatewiki.net/ translatewiki.net], el proyeutu de traducción de MediaWiki.",
+       "editinginterface": "<strong>Avisu:</strong> Tas editando una páxina que s'usa pa proporcionar el testu de la interfaz del programa.\nLos cambeos nesta páxina afeutarán al aspeutu de la interfaz pa otros usuarios d'esta wiki.",
+       "translateinterface": "P'amestar o camudar les traducciones pa toles wikis, usa [//translatewiki.net/ translatewiki.net], el proyeutu de traducción de MediaWiki.",
        "cascadeprotected": "Esta páxina ta protexida d'ediciones porque ta inxerta {{PLURAL:$1|na siguiente páxina, protexida|nes siguientes páxines, protexíes}} cola opción «en cascada» activada:\n$2",
        "namespaceprotected": "Nun tienes permisu pa editar páxines nel espaciu de nomes '''$1'''.",
        "customcssprotected": "Nun tienes permisu pa editar esta páxina CSS porque contién preferencies personales d'otru usuariu.",
        "anoneditwarning": "<strong>Avisu:</strong> Nun aniciasti sesión. La direición IP sedrá visible en público si faes dalguna edición. Si <strong>[$1 anicies sesión]</strong> o <strong>[$2 crees una cuenta]</strong>, les ediciones atribuiránse al to nome d'usuariu, xunto con otros beneficios.",
        "anonpreviewwarning": "''Nun aniciasti sesión. Al guardar quedará rexistrada la to direición IP nel historial d'edición d'esta páxina.''",
        "missingsummary": "'''Recordatoriu:''' Nun conseñasti un resume d'edición.\nSi calques nuevamente \"{{int:savearticle}}\", la to edición guardaráse ensin nengún resume.",
+       "selfredirect": "<strong>Atención:</strong> Tas redirixendo esta páxina a ella mesma.\nSeique conseñaras un oxetivu enquivocáu pa la redireición, o que teas editando una páxina enquivocada. Si vuelves a facer clic en «{{int:savearticle}}», crearáse la redireición de toles maneres.",
        "missingcommenttext": "Por favor, escribi un comentariu abaxo.",
        "missingcommentheader": "'''Recordatoriu:''' Nun conseñasti un asuntu/titular pa esti comentariu.\nSi calques nuevamente \"{{int:savearticle}}\", la to edición guardaráse ensin dengún.",
        "summary-preview": "Vista previa del resume:",
        "content-model-text": "testu simple",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Oxetu baleru",
+       "content-json-empty-array": "Matriz balera",
+       "duplicate-args-category": "Páxines con argumentos duplicaos nes llamaes a plantíes",
+       "duplicate-args-category-desc": "La páxina contién llamaes a plantíes qu'usen argumentos duplicaos, como <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> o <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''Avisu:''' Esta páxina contién demasiaes llamaes costoses a funciones d'análisis sintáuticu.\n\nHabría tener menos de $2 {{PLURAL:$2|llamada|llamaes}}, y agora tien $1 {{PLURAL:$1|llamada|llamaes}}.",
        "expensive-parserfunction-category": "Páxines con demasiaes llamaes costoses a funciones analítiques",
        "post-expand-template-inclusion-warning": "'''Avisu:''' El tamañu de les plantíes incluyíes ye demasiao grande.\nDelles plantíes nun se van incluir.",
        "history-feed-empty": "La páxina solicitada nun esiste.\nSeique fuera desaniciada de la wiki, o renomada.\nPrueba a [[Special:Search|buscar na wiki]] otres páxines nueves.",
        "rev-deleted-comment": "(resume d'edición desaniciáu)",
        "rev-deleted-user": "(nome d'usuariu desaniciáu)",
-       "rev-deleted-event": "(aición del rexistru desaniciada)",
+       "rev-deleted-event": "(detalles del rexistru desaniciaos)",
        "rev-deleted-user-contribs": "[nome d'usuariu o direición IP desaniciáu - ediciones anubríes en contribuciones]",
        "rev-deleted-text-permission": "Esta revisión de la páxina se '''desanició'''.\nLos detalles s'alcuentren nel [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} rexistru de desanicios].",
        "rev-suppressed-text-permission": "Esta revisión de la páxina <strong>suprimióse</strong>.\nLos detalles s'alcuentren nel [{{fullurl:{{#Special:Log}}/supress|page={{FULLPAGENAMEE}}}} rexistru de supresiones].",
        "revdelete-legend": "Establecer torgues de visibilidá",
        "revdelete-hide-text": "Testu de la revisión",
        "revdelete-hide-image": "Tapecer el conteníu del ficheru",
-       "revdelete-hide-name": "Tapecer aición y oxetivu",
+       "revdelete-hide-name": "Tapecer el destín y los parámetros",
        "revdelete-hide-comment": "Resume d'edición",
        "revdelete-hide-user": "Nome del editor/Direición IP",
        "revdelete-hide-restricted": "Desaniciar datos de los alministradores y d'otros",
        "search-result-category-size": "{{PLURAL:$1|1 miembru|$1 miembros}} ({{PLURAL:$2|1 subcategoría|$2 subcategories}}, {{PLURAL:$3|1 ficheru|$3 ficheros}})",
        "search-redirect": "(redireición de $1)",
        "search-section": "(seición $1)",
+       "search-category": "(categoría $1)",
        "search-file-match": "(casa col conteníu del ficheru)",
        "search-suggest": "Quixisti dicir: $1",
        "search-interwiki-caption": "Proyeutos hermanos",
        "prefs-personal": "Perfil del usuariu",
        "prefs-rc": "Cambios recientes",
        "prefs-watchlist": "Llista de siguimientu",
+       "prefs-editwatchlist": "Editar la llista de siguimientu",
+       "prefs-editwatchlist-label": "Editar les entraes de la to llista de siguimientu:",
+       "prefs-editwatchlist-edit": "Ver y desaniciar los títulos de la to llista de siguimientu",
+       "prefs-editwatchlist-raw": "Editar la llista de siguimientu (ensin formatu)",
+       "prefs-editwatchlist-clear": "Llimpiar la to llista de siguimientu",
        "prefs-watchlist-days": "Númberu de díes qu'amosar na llista de siguimientu:",
        "prefs-watchlist-days-max": "Máximo $1 {{PLURAL:$1|día|díes}}",
        "prefs-watchlist-edits": "Númberu máximu d'ediciones qu'amosar na llista de siguimientu espandida:",
        "gender-female": "Ella edita páxines wiki",
        "prefs-help-gender": "Configurar esta preferencia ye opcional. El software usa esti valor pa dirixise a ti y pa mentate a terceros col xéneru gramatical correchu.\nEsta información sedrá pública.",
        "email": "Corréu",
-       "prefs-help-realname": "El nome real ye opcional y si decides conseñalu va ser usáu p'atribuyite'l to trabayu.",
+       "prefs-help-realname": "El nome real ye opcional.\nSi se da, pue usase pa date reconocimientu pol to trabayu.",
        "prefs-help-email": "La direición de corréu ye opcional, pero ye necesaria pa unviate una conseña nueva si escaeces la tuya.",
        "prefs-help-email-others": "Tamién pues escoyer permitir qu'otres persones contauten contigo pela to páxina d'usuariu o la d'alderique ensin necesidá de revelar la to identidá.",
        "prefs-help-email-required": "Necesítase una direición de corréu electrónicu.",
        "right-protect": "Camudar los niveles de proteición y editar páxines protexíes en cascada",
        "right-editprotected": "Editar les páxines protexíes como \"{{int:protect-level-sysop}}\"",
        "right-editsemiprotected": "Editar les páxines protexíes como \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "Editar el modelu de conteníu d'una páxina",
        "right-editinterface": "Editar la interfaz d'usuariu",
        "right-editusercssjs": "Editar los archivos CSS y JS d'otros usuarios",
        "right-editusercss": "Editar los archivos CSS d'otros usuarios",
        "right-override-export-depth": "Esportar páxines, incluyendo páxines enllazaes fasta una fondura de 5",
        "right-sendemail": "Unviar corréu a otros usuarios",
        "right-passwordreset": "Ver los correos de reestablecimientu de conseña",
+       "right-managechangetags": "Crear y desaniciar [[Special:Tags|etiquetes]] dende la base de datos",
        "newuserlogpage": "Rexistru de creación d'usuarios",
        "newuserlogpagetext": "Esti ye un rexistru de creación d'usuarios.",
        "rightslog": "Rexistru de perfil d'usuariu",
        "action-viewmywatchlist": "ver la llista de vixilancia propia",
        "action-viewmyprivateinfo": "ver la so información privada",
        "action-editmyprivateinfo": "editar la so información privada",
+       "action-editcontentmodel": "editar el modelu de conteníu d'una páxina",
+       "action-managechangetags": "crear y desaniciar etiquetes dende la base de datos",
        "nchanges": "{{PLURAL:$1|un cambiu|$1 cambios}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|dende la última visita}}",
        "enhancedrc-history": "historial",
        "uploaderror": "Error de xubida",
        "upload-recreate-warning": "'''Avisu: Se desanició o treslladó un ficheru con esi nome.'''\n\nEquí s'ufre'l rexistru de desaniciu y treslláu d'esta páxina por comodidá:",
        "uploadtext": "Usa'l formulariu de más abaxo pa xubir ficheros.\nPa ver o buscar ficheros xubíos previamente, vete a la [[Special:FileList|llista de ficheros xubíos]]. Les (re)xubíes tamién queden conseñaes nel [[Special:Log/upload|rexistru de xubíes]], y los desanicios nel [[Special:Log/delete|rexistru de desanicios]].\n\nPa incluir un ficheru nuna páxina, usa un enllaz con ún de los siguientes formatos:\n*<strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Ficheru.jpg]]</nowiki></code></strong> pa usar la versión completa del ficheru\n*<strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Ficheru.png|200px|thumb|left|testu alternativu]]</nowiki></code></strong> pa usar una versión de 200 píxeles d'anchu nun cuadru nel marxe izquierdu con «testu alternativu» como descripción\n*<strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Ficheru.ogg]]</nowiki></code></strong> pa enllazar al ficheru direutamente ensin amosalu",
-       "upload-permitted": "Menes d'archivu permitíes: $1.",
-       "upload-preferred": "Menes d'archivu preferíes: $1.",
-       "upload-prohibited": "Menes d'archivu prohibíes: $1.",
+       "upload-permitted": "{{PLURAL:$2|Tipu de ficheru permitíu|Tipos de ficheros permitíos}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|Tipu de ficheru preferíu|Tipos de ficheros preferíos}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Tipu de ficheru torgáu|Tipos de ficheros torgaos}}: $1.",
        "uploadlogpage": "Rexistru de xubíes",
        "uploadlogpagetext": "Abaxo amuésase una llista de les xubíes d'archivos más recientes.\nMira la [[Special:NewFiles|galería d'archivos nuevos]] pa una güeyada más visual.",
        "filename": "Nome del ficheru",
        "unusedimages": "Imáxenes non usaes",
        "wantedcategories": "Categoríes buscaes",
        "wantedpages": "Páxines buscaes",
+       "wantedpages-summary": "Llista de páxines inesistentes con más enllaces a elles, escluyendo les páxines que sólo tienen redireiciones qu'enllacen con elles. Pa ver la llista de páxines inesistentes que tienen redireiciones qu'enllacen con elles, ver [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Títulu inválidu nel conxuntu de resultaos: $1",
        "wantedfiles": "Archivos buscaos",
        "wantedfiletext-cat": "Los ficheros siguientes tan usándose, pero nun esisten. Ye posible qu'apaezan ficheros de repositorios esternos ensin qu'esistan. Cualesquier falsu positivu tará <del>tacháu</del>. Amás, les páxines qu'inxerten ficheros que nun esisten apaecen na llista de [[:$1]].",
        "pager-older-n": "{{PLURAL:$1|1 anterior|$1 anteriores}}",
        "suppress": "Güeyador",
        "querypage-disabled": "Esta páxina especial ta desactivada por razones de rindimientu.",
+       "apihelp": "Ayuda de la API",
+       "apihelp-no-such-module": "Nun s'alcuentra'l módulu «$1».",
        "booksources": "Fontes de llibros",
        "booksources-search-legend": "Busca de fontes de llibros",
        "booksources-search": "Buscar",
        "namespace": "Espaciu de nomes:",
        "invert": "Invertir seleición",
        "tooltip-invert": "Marca esta caxella p'anubrir los cambios de les páxines pertenecientes al espaciu de nomes seleicionáu (y al espaciu de nomes asociáu si se marcó)",
+       "tooltip-whatlinkshere-invert": "Marca esta caxella pa tapecer los enllaces de páxines que tean nel espaciu de nomes seleicionáu.",
        "namespace_association": "Espaciu de nome asociáu",
        "tooltip-namespace_association": "Marca esta caxella p'amestar tamién l'espaciu de nombres d'alderique o asuntu asociaos col espaciu de nomes seleicionáu",
        "blanknamespace": "(Principal)",
        "thumbnail-temp-create": "Nun se pudo crear el ficheru temporal de miniatura",
        "thumbnail-dest-create": "Nun se pudo guardar la miniatura nel destín",
        "thumbnail_invalid_params": "Parámetros de miniatura non válidos",
+       "thumbnail_toobigimagearea": "Ficheru con dimensiones mayores que $1",
        "thumbnail_dest_directory": "Nun se pue crear el direutoriu de destín",
        "thumbnail_image-type": "Triba d'imaxe ensin sofitu",
        "thumbnail_gd-library": "Configuración incompleta de la biblioteca GD: falta la función $1",
        "thumbnail_image-missing": "Paez que falta'l ficheru: $1",
        "thumbnail_image-failure-limit": "Hebo demasiaos intentos recientes que fallaron ($1 o más) al representar esta miniatura. Vuelva a intentalo más sero.",
        "import": "Importar páxines",
-       "importinterwiki": "Importación treswiki",
-       "import-interwiki-text": "Seleiciona una wiki y un títulu de páxina pa importar.\nLes feches de revisión y los nomes de los editores caltendránse.\nToles aiciones d'importación treswiki queden rexistraes nel [[Special:Log/import|rexistru d'importaciones]].",
+       "importinterwiki": "Importar d'otra wiki",
+       "import-interwiki-text": "Seleiciona una wiki y un títulu de páxina pa importar.\nVan caltenese les feches de revisión y los nomes de los editores.\nToles importaciones d'otres wikis queden rexistraes nel [[Special:Log/import|rexistru d'importaciones]].",
        "import-interwiki-sourcewiki": "Wiki d'orixe:",
        "import-interwiki-sourcepage": "Páxina d'orixe:",
        "import-interwiki-history": "Copiar toles versiones d'historial d'esta páxina",
        "importcantopen": "Nun se pudo abrir el ficheru d'importación",
        "importbadinterwiki": "Enllaz interwiki incorreutu",
        "importsuccess": "¡Importación finalizada!",
-       "importnosources": "Nun se definió l'orixe de la importación treswiki y les xubíes direutes del historial tán deshabilitaes.",
+       "importnosources": "Nun se definieron wikis de onde importar y les xubíes direutes del historial tán desactivaes.",
        "importnofile": "Nun se xubió nengún archivu d'importación.",
        "importuploaderrorsize": "Falló la xubida del archivu d'importación. L'archivu ye más grande que'l tamañu permitíu de xubida.",
        "importuploaderrorpartial": "Falló la xubida del archivu d'importación. L'archivu xubióse solo parcialmente.",
        "javascripttest": "Prueba de JavaScript",
        "javascripttest-pagetext-noframework": "Esta páxina ta acutada pa executar pruebes de javascript.",
        "javascripttest-pagetext-unknownframework": "L'entornu de pruebes «$1» ye desconocíu.",
+       "javascripttest-pagetext-unknownaction": "Aición desconocida «$1».",
        "javascripttest-pagetext-frameworks": "Escueyi un de los siguientes entornos de pruebes: $1",
        "javascripttest-pagetext-skins": "Escueyi una apariencia pa executar les pruebes:",
        "javascripttest-qunit-intro": "Ver la [$1 documentación de les pruebes] en mediawiki.org.",
        "tooltip-pt-mycontris": "Llista de les tos collaboraciones",
        "tooltip-pt-login": "T'encamentamos que t'identifiques, anque nun ye obligatorio",
        "tooltip-pt-logout": "Salir",
+       "tooltip-pt-createaccount": "Encamentámoste que crees una cuenta y qu'anicies sesión; sicasí, nun ye obligatorio",
        "tooltip-ca-talk": "Alderique tocante al conteníu de la páxina",
        "tooltip-ca-edit": "Pues editar esta páxina. Por favor usa'l botón de vista previa enantes de guardar los cambios.",
        "tooltip-ca-addsection": "Emprima una seición nueva",
        "tooltip-feed-atom": "Canal Atom pa esta páxina",
        "tooltip-t-contributions": "Llista de collaboraciones d'esti usuariu",
        "tooltip-t-emailuser": "Unvia un corréu a esti usuariu",
+       "tooltip-t-info": "Más información sobro esta páxina",
        "tooltip-t-upload": "Xubir ficheros",
        "tooltip-t-specialpages": "Llista de toles páxines especiales",
        "tooltip-t-print": "Versión imprentable d'esta páxina",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|alderique]])",
        "duplicate-defaultsort": "Avisu: La clave d'ordenación predeterminada \"$2\" anula la clave d'ordenación anterior \"$1\".",
        "duplicate-displaytitle": "<strong>Avisu:</strong> El títulu a amosar \"$2\" anula el títulu anterior \"$1\".",
+       "invalid-indicator-name": "<strong>Error:</strong> L'atributu <code>name</code> de los indicadores d'estáu de la páxina nun pue tar baleru.",
        "version": "Versión",
        "version-extensions": "Estensiones instalaes",
        "version-skins": "Temes instalaos",
        "version-parser-function-hooks": "Hooks de les funciones d'análisis sintáuticu",
        "version-hook-name": "Nome del hook",
        "version-hook-subscribedby": "Suscritu por",
-       "version-version": "(Versión $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[ensin nome]",
        "version-license": "Llicencia de MediaWiki",
        "version-ext-license": "Llicencia",
        "version-entrypoints": "URLs del puntu d'entrada",
        "version-entrypoints-header-entrypoint": "Puntu d'entrada",
        "version-entrypoints-header-url": "URL",
+       "version-libraries": "Biblioteques instalaes",
+       "version-libraries-library": "Biblioteca",
+       "version-libraries-version": "Versión",
        "redirect": "Redireición por ficheru, usuariu, páxina o ID de revisión",
        "redirect-legend": "Redirixir a un ficheru o una páxina",
        "redirect-summary": "Esta páxina especial redirixe a un ficheru (dando'l so nome), una páxina (dando una ID de revisión o de páxina) o una páxina d'usuariu (dando un númberu d'ID d'usuariu). Usu: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]],  [[{{#Special:Redirect}}/revision/328429]], o [[{{#Special:Redirect}}/user/101]].",
        "specialpages-group-wiki": "Datos y ferramientes",
        "specialpages-group-redirects": "Páxines especiales de redireición",
        "specialpages-group-spam": "Ferramientes pa spam",
+       "specialpages-group-developer": "Ferramientes pa desendolcadores",
        "blankpage": "Páxina en blanco",
        "intentionallyblankpage": "Esta páxina ta en blanco arrémente",
        "external_image_whitelist": "#Dexa esta llinia exautamente como ta<pre>\n#Pon los fragmentos d'espresiones regulares (namái la parte que va ente les //) debaxo\n#Esto va ser comprobao coles URLs d'imáxenes esternes (hotlinked)\n#Les que concuayen se van amosar como imáxenes; si nun concuayen, namái se va amosar un enllaz a la imaxe\n#Les llinies qu'emprimen con # se traten como comentarios\n#Esto nun ye sensible a la capitalización\n\n#Pon tolos fragmentos regex enantes d'esta llinia. Dexa esta llinia exautamente como ta</pre>",
        "tags-tag": "Nome d'etiqueta",
        "tags-display-header": "Aspeutu nes llistes de cambios",
        "tags-description-header": "Descripción completa del significáu",
+       "tags-source-header": "Fonte",
        "tags-active-header": "¿Activu?",
        "tags-hitcount-header": "Cambios etiquetaos",
+       "tags-actions-header": "Aiciones",
        "tags-active-yes": "Sí",
        "tags-active-no": "Non",
+       "tags-source-extension": "Definida por una estensión",
+       "tags-source-manual": "Aplicada a mano polos usuarios y bots",
+       "tags-source-none": "Yá nun s'usa",
        "tags-edit": "editar",
+       "tags-delete": "desaniciar",
+       "tags-activate": "activar",
+       "tags-deactivate": "desactivar",
        "tags-hitcount": "$1 {{PLURAL:$1|cambiu|cambios}}",
+       "tags-manage-no-permission": "Nun tienes permisu p'alministrar etiquetes de cambiu.",
+       "tags-create-heading": "Crear una etiqueta nueva",
+       "tags-create-explanation": "De mou predetermináu, les etiquetes nueves que se creen tarán disponibles pa que les usen los usuarios y bots.",
+       "tags-create-tag-name": "Nome de la etiqueta:",
+       "tags-create-reason": "Motivu:",
+       "tags-create-submit": "Crear",
+       "tags-create-no-name": "Tienes d'especificar un nome d'etiqueta.",
+       "tags-create-invalid-chars": "Los nomes d'etiqueta nun tienen de contener comes (<code>,</code>) o barres (<code>/</code>).",
+       "tags-create-invalid-title-chars": "Los nomes d'etiqueta nun puen contener caráuteres que nun puedan usase nos títulos de páxina",
+       "tags-create-already-exists": "La etiqueta «$1» yá esiste.",
+       "tags-create-warnings-above": "{{PLURAL:$2|Alcontróse'l siguiente avisu|Alcontráronse los siguientes avisos}} al intentar crear la etiqueta «$1»:",
+       "tags-create-warnings-below": "¿Quies siguir creando de la etiqueta?",
+       "tags-delete-title": "Desaniciar etiqueta",
+       "tags-delete-explanation-initial": "Tas a piques de desaniciar la etiqueta «$1» de la base de datos.",
+       "tags-delete-explanation-in-use": "Desaniciaráse de {{PLURAL:$2|la revisión o entrada|les $2 revisiones y/o entraes}} del rexistru a {{PLURAL:$2|la|les}} que s'aplica actualmente.",
+       "tags-delete-explanation-warning": "Esta aición ye <strong>irreversible</strong> y <strong>nun podrán desfacela</strong> siquiera los alministradores de la base de datos. Confirma qu'esta ye la etiqueta que quies desaniciar.",
+       "tags-delete-explanation-active": "<strong>La etiqueta «$1» sigue activa y siguirá aplicándose nel futuru.</strong> Pa que dexe d'asoceder, vete al llugar(es) onde ta configurada la aplicación d'esta etiqueta y desactívala allí.",
+       "tags-delete-reason": "Motivu:",
+       "tags-delete-submit": "Desaniciar esta etiqueta de mou irreversible",
+       "tags-delete-not-allowed": "Les etiquetes definíes por una estensión nun puen desaniciase mentanto la estensión nun lo permita específicamente.",
+       "tags-delete-not-found": "La etiqueta «$1» nun esiste.",
+       "tags-activate-reason": "Motivu:",
+       "tags-activate-submit": "Activar",
+       "tags-deactivate-title": "Desactivar etiqueta",
+       "tags-deactivate-reason": "Motivu:",
+       "tags-deactivate-submit": "Desactivar",
        "comparepages": "Comparar páxines",
        "compare-page1": "Páxina 1",
        "compare-page2": "Páxina 2",
        "compare-revision-not-exists": "La revisión que conseñasti nun esiste.",
        "dberr-problems": "¡Sentímoslo! Esti sitiu ta esperimentando dificultaes téuniques.",
        "dberr-again": "Tenta esperar dellos minutos y recargar.",
-       "dberr-info": "(Nun se pue contautar cola base de datos del sirvidor: $1)",
-       "dberr-info-hidden": "(Nun se pue comunicar col sirvidor de base de datos)",
+       "dberr-info": "(Nun se pue entrar na base de datos: $1)",
+       "dberr-info-hidden": "(Nun se pue entrar na base de datos)",
        "dberr-usegoogle": "Pue probar a buscar con Google mentanto.",
        "dberr-outofdate": "Atalanta que los sos índices del nuesu conteníu seique nun tean actualizaos.",
        "dberr-cachederror": "Esta ye una copia na caché de la páxina que se pidiera, y pue que nun tea actualizada.",
        "revdelete-uname-unhid": "nome d'usuariu non anubríu",
        "revdelete-restricted": "aplicaes les restricciones a los alministradores",
        "revdelete-unrestricted": "eliminaes les restricciones a los alministradores",
+       "logentry-block-block": "$1 {{GENDER:$2|bloquió}} a {{GENDER:$4|$3}} con un tiempu de duración de $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|desbloquió a}} {{GENDER:$4|$3}}",
        "logentry-move-move": "$1 {{GENDER:$2|treslladó}} la páxina \"$3\" a \"$4\"",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|treslladó}} la páxina \"$3\" a \"$4\" ensin dexar una redireición",
        "logentry-move-move_redir": "$1 {{GENDER:$2|treslladó}} la páxina \"$3\" a \"$4\" sobre una redireición",
        "logentry-upload-revert": "$1 {{GENDER:$2|xubió}} $3",
        "rightsnone": "(nengún)",
        "revdelete-summary": "editar resume",
+       "feedback-adding": "Amestando el comentariu a la páxina...",
+       "feedback-bugcheck": "¡Perfeuto! Comprueba que nun tea yá ente los [$1 fallos conocíos].",
+       "feedback-bugnew": "Yá lo comprobé. Informar d'esti fallu nuevu",
        "feedback-bugornote": "Si tas preparáu pa describir un problema técnicu en detalle, [$1 informa del fallu].\nD'otra miente, pues usar el formulariu cenciellu d'abaxo. El to comentariu apaecerá na páxina \"[$3 $2]\" xunto col to nome d'usuariu y el restolador qu'uses.",
-       "feedback-subject": "Asuntu:",
-       "feedback-message": "Mensaxe:",
        "feedback-cancel": "Encaboxar",
-       "feedback-submit": "Unviar comentarios",
-       "feedback-adding": "Amestando el comentariu a la páxina...",
+       "feedback-close": "Fecho",
        "feedback-error1": "Fallu: Resultáu de la API non reconocíu",
        "feedback-error2": "Fallu: Falló la edición",
        "feedback-error3": "Fallu: Ensin respuesta de la API",
+       "feedback-message": "Mensaxe:",
+       "feedback-subject": "Asuntu:",
+       "feedback-submit": "Unviar",
        "feedback-thanks": "¡Gracies! La to opinión s'espublizó na páxina «[$2  $1]».",
-       "feedback-close": "Fecho",
-       "feedback-bugcheck": "¡Perfeuto! Comprueba que nun tea yá ente los [$1 fallos conocíos].",
-       "feedback-bugnew": "Yá lo comprobé. Informar d'esti fallu nuevu",
        "searchsuggest-search": "Buscar",
        "searchsuggest-containing": "que contién...",
        "api-error-badaccess-groups": "Nun tienes permisu pa xubir ficheros a esta wiki.",
        "log-name-pagelang": "Rexistru de cambios de llingua",
        "log-description-pagelang": "Esti ye un rexistru de los cambios de llingua de les páxines.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|cambió}} la llingua de la páxina $3 del $4 al $5.",
-       "default-skin-not-found": "L'aspeutu predetermináu pa la to wiki, definíu en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code> nun ta disponible.\n\nLa to instalación paez qu'incluye los siguientes aspeutos. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo activalos y escoyer el predetermináu.\n\n$2\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o'l códigu fonte direutamente usando algún otru métodu. Esto ye d'esperar. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org's], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Clonando unu de los direutorios <code>mediawiki/skins/*</code> via git nel direutoriu <code dir=\"ltr\">skins/</code> de la to instalación de MediaWiki.\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki.\n\n; Si acabes d'anovar MediaWiki:\n: MediaWiki 1.24 y más nuevu yá nun activa automáticamente los aspeutos instalaos (llei [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Pues apegar les llinies siguientes en <code>LocalSettings.php</code> p'activar tolos aspeutos instalaos actualmente:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si acabes d'editar <code>LocalSettings.php</code>:\n: Vuelvi a comprobar los nomes de los aspeutos por si hai errores d'escritura.",
-       "default-skin-not-found-no-skins": "L'aspeutu predetermináu pa la to wiki, definíu en <code>$wgDefaultSkin</code> como <code>$1</code> nun ta disponible.\n\nNun tienes aspeutos instalaos.\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o'l códigu fonte direutamente usando algún otru métodu. Esto ye d'esperar. MediaWiki 1.24 y más nuevu nun incluye nengún aspeutu nel repositoriu principal. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Clonando unu de los direutorios <code>mediawiki/skins/*</code> via git nel direutoriu <code dir=\"ltr\">skins/</code> de la to instalación de MediaWiki.\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo activar los aspeutos y escoyer el predetermináu.",
+       "default-skin-not-found": "¡Vaya! L'aspeutu predetermináu pa la to wiki, definíu en <code dir=\"ltr\">$wgDefaultSkin</code> como <code>$1</code> nun ta disponible.\n\nLa instalación paez qu'incluye los siguientes aspeutos. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo activalos y escoyer el predetermináu.\n\n$2\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o direutamente'l códigu fonte usando algún otru métodu. Esto ye d'esperar. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org's], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Descargando paquetes tar d'aspeutu individuales de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonando unu de los direutorios <code>mediawiki/skins/*</code> via git nel direutoriu <code dir=\"ltr\">skins/</code> de la to instalación de MediaWiki.\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki.\n\n; Si acabes d'anovar MediaWiki:\n: MediaWiki 1.24 y más nuevu yá nun activa automáticamente los aspeutos instalaos (llei [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manual: Skin autodiscovery]). Pues apegar les llinies siguientes en <code>LocalSettings.php</code> p'activar tolos aspeutos instalaos actualmente:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si acabes d'editar <code>LocalSettings.php</code>:\n: Vuelvi a comprobar los nomes de los aspeutos por si hai errores d'escritura.",
+       "default-skin-not-found-no-skins": "L'aspeutu predetermináu pa la to wiki, definíu en <code>$wgDefaultSkin</code> como <code>$1</code> nun ta disponible.\n\nNun tienes aspeutos instalaos.\n\n; Si acabes d'instalar MediaWiki:\n: Probablemente instalasti dende git, o'l códigu fonte direutamente usando algún otru métodu. Esto ye d'esperar. MediaWiki 1.24 y más nuevu nun incluye nengún aspeutu nel repositoriu principal. Intenta instalar dellos aspeutos dende'l [https://www.mediawiki.org/wiki/Category:All_skins direutoriu d'aspeutos de mediawiki.org], asina:\n:* Descargando [https://www.mediawiki.org/wiki/Download l'instalador tarball], que vien con dellos aspeutos y estensiones. Pues copiar y apegar el direutoriu <code>skins/</code> d'ehí.\n:* Descargando paquetes tar d'aspeutu individuales de [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clonando unu de los direutorios <code>mediawiki/skins/*</code> via git nel direutoriu <code dir=\"ltr\">skins/</code> de la to instalación de MediaWiki.\n: Facer esto nun tendría d'interferir col to repositoriu git si yes un desendolcador de MediaWiki. Llei [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manual: Skin configuration] pa más información sobro cómo activar los aspeutos y escoyer el predetermináu.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (activáu)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''desactiváu''')",
        "mediastatistics": "Estadístiques de multimedia",
        "json-error-utf8": "Carauteres UTF-8 con errores de formatu, seique codificaos incorreutamente",
        "json-error-recursion": "Una o más referencies recursives nel valor a codificar",
        "json-error-inf-or-nan": "Unu o más valores NAN (númberu nun conseñáu) o INF (infinitu) nel valor a codificar",
-       "json-error-unsupported-type": "Diose un valor d'un tipu que nun pue codificase"
+       "json-error-unsupported-type": "Diose un valor d'un tipu que nun pue codificase",
+       "headline-anchor-title": "Enllaz a esta sección"
 }
index 40b39fc..40914c0 100644 (file)
        "delete-toobig": "Batu bu va izvotap (lo $1 {{PLURAL:$1|betara|betara}}) digir. Ta djira va waltafa empara va {{SITENAME}} sulara va manu bu zo irutar.",
        "delete-warning-toobig": "Batu bu va izvotap (lo $1 {{PLURAL:$1|betara|betara}}) digir. Sulara va manu bu va skura ke origak ke {{SITENAME}} rotempar, acum obrason diotel !",
        "rollback": "nabildara va betareem",
-       "rollback_short": "Nabildara",
        "rollbacklink": "nabildara",
        "rollbackfailed": "Rodjeyesa nabildara",
        "cantrollback": "Impossible de révoquer : dernier auteur est le seul à avoir modifié cet article",
        "watchlisttools-view": "Wira va icdef betakseem",
        "watchlisttools-edit": "Wira va suzdasiki isu betara",
        "watchlisttools-raw": "Betara va suzdasiki",
-       "unknown_extension_tag": "\"$1\" megrupena divatcenafa tcala",
        "duplicate-defaultsort": "'''OBRAL !''' \"$2\" omavafa muberamarna va \"$1\" tela abdifa selur.",
        "version": "Siatos",
        "version-extensions": "Inkeyeni divatcesiki se",
        "version-parser-function-hooks": "Exuleraflidemi",
        "version-hook-name": "Demiyolt",
        "version-hook-subscribedby": "Wimpayan gan",
-       "version-version": "(Siatos $1)",
+       "version-version": "($1)",
        "version-license": "Sorta",
        "version-software": "Inkeyen talpeyot",
        "version-software-product": "Warzeks",
index 3e03958..6c7dce0 100644 (file)
        "disclaimers": "अस्वीकरण",
        "disclaimerpage": "Project:साधारण अस्वीकरण",
        "edithelp": "सम्पादन सहायता",
+       "helppage-top-gethelp": "मदद",
        "mainpage": "प्रधान पन्ना",
        "mainpage-description": "प्रधान पन्ना",
        "policy-url": "Project:नीति",
        "import-rootpage-nosubpage": "दिए गए उपसर्ग पृष्ठ \"$1\" के नामस्थान में उप-पृष्ठ नहीं बनाए जा सकते।",
        "importlogpage": "आयात सूची",
        "importlogpagetext": "अन्य विकियों से प्रबन्धकों द्वारा किए गए सम्पादन इतिहास के साथ होने वाले पृष्ठों का आयात।",
-       "import-logentry-upload": "सञ्चिका अपलोड करके [[$1]] का आयात किया",
-       "import-logentry-interwiki": " $1 कय अन्तरविकिकरण कई गय",
        "javascripttest": "जावास्क्रिप्ट परीक्षण",
        "javascripttest-pagetext-unknownframework": "अज्ञात परीक्षण ढाँचा \"$1\"",
        "javascripttest-pagetext-unknownaction": "अज्ञात काम \"$1\".",
        "logentry-move-move": "$1 ने $3 पृष्ठ $4 पर {{GENDER:$2|स्थानांतरित}} कै गय",
        "rightsnone": "(कउनो नाहीं)",
        "revdelete-summary": "संपादन सारांश",
-       "feedback-subject": "विषय:",
-       "feedback-message": "सनेशा:",
-       "feedback-cancel": "रद्द करा जाय",
-       "feedback-submit": "प्रतिक्रिया भेजा जाय",
        "feedback-adding": "पृष्ठ पे प्रतिक्रिया जोडत है ...",
-       "feedback-error2": "त्रुटि: संपादन विफल रहा है",
+       "feedback-cancel": "रद्द करा जाय",
        "feedback-close": "होइ गवा",
+       "feedback-error2": "त्रुटि: संपादन विफल रहा है",
+       "feedback-message": "सनेशा:",
+       "feedback-subject": "विषय:",
+       "feedback-submit": "प्रतिक्रिया भेजा जाय",
        "searchsuggest-search": "खोज",
        "searchsuggest-containing": "...से युक्त",
        "api-error-badaccess-groups": "इ विकि मा आप कय फाइल अपलोड करेक अनुमति नाइ है",
index b4117f9..d7e15c4 100644 (file)
        "permalink": "Daimi bağlantı",
        "print": "Çap",
        "view": "Görünüş",
+       "view-foreign": "$1 üzərindən baxış",
        "edit": "Redaktə",
+       "edit-local": "Lokal izahı redaktə et",
        "create": "Yarat",
+       "create-local": "Lokal izah əlavə et",
        "editthispage": "Bu səhifəni redaktə et",
        "create-this-page": "Bu səhifəni yarat",
        "delete": "Sil",
        "otherlanguages": "Başqa dillərdə",
        "redirectedfrom": "($1 səhifəsindən yönləndirilmişdir)",
        "redirectpagesub": "Yönləndirmə səhifəsi",
+       "redirectto": "İstiqamətləndirilir:",
        "lastmodifiedat": "Bu səhifə sonuncu dəfə $2, $1 tarixində redaktə edilib.",
        "viewcount": "Bu səhifəyə $1 {{PLURAL:$1|dəfə}} müraciət olunub.",
        "protectedpage": "Mühafizəli səhifə",
        "compareselectedversions": "Seçilən versiyaları müqayisə et",
        "showhideselectedversions": "Seçilən versiyaları göstər/gizlə",
        "editundo": "əvvəlki halına qaytar",
+       "diff-multi-sameuser": "(Eyni istifadəçi tərəfindən edilmiş {{PLURAL:$1|bir dəyişiklik|$1 bir neçə dəyişiklik}} göstərilmir)",
        "diff-multi-manyusers": "({{PLURAL:$2|Bir istifadəçi|$2 istifadəçi}} tərəfindən edilən {{PLURAL:$1|bir ara redaktə|$1 ara redaktə}} göstərilmir)",
        "difference-missing-revision": "Səhifənin  {{PLURAL:$2|bu versiyasının|$2 versiyalarının}} müqayisəsi ($1) tapılmadı.\nBu xəta adətən, köhnəlmiş səhifələrin müqayisə versiyalarından keçid edildikdə baş verir.\nDaha ətraflı məlumat üçün [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} silmə qeydlərinə] baxın.",
        "searchresults": "Axtarış nəticələri",
        "right-delete": "Səhifələrin silinməsi",
        "right-bigdelete": "Uzun tarixçəsi olan səhifələrin silinməsi",
        "right-deleterevision": "səhifənin konkret versiyasının silinməsi və bərpası",
-       "right-deletedhistory": "silinmiş mətnə daxil olmadan silinmiş səhifələrin tarixçələrinə baxma",
+       "right-deletedhistory": "Silinmiş mətni görmədən silinmiş səhifələrin tarixçələrinə baxmaq",
        "right-browsearchive": "Silinmiş səhifələri axtar",
        "right-undelete": "Silinmiş səhifələrin bərpası",
        "right-suppressrevision": "Səhifələrin gizli versiyalarına bax, gizlə və göstər",
        "action-writeapi": "API yazıdan istifadə",
        "action-delete": "bu səhifəni sil",
        "action-deleterevision": "bu yoxlamaı ləğv et",
-       "action-deletedhistory": "səhifənin silinmə tarixinə bax",
+       "action-deletedhistory": "səhifənin silinmə tarixinə baxmaq",
        "action-browsearchive": "Silinmiş səhifələri axtar",
        "action-undelete": "bu səhifəni silmə",
        "action-suppressrevision": "bu gizli redaktəyə bax və bərpa et",
        "action-siteadmin": "Məlumatlar bazasının bloklanması və blokun götürülməsi",
        "action-sendemail": "e-məktub göndər",
        "nchanges": "$1 {{PLURAL:$1|dəyişiklik|dəyişiklik}}",
+       "enhancedrc-history": "tarixçə",
        "recentchanges": "Son dəyişikliklər",
        "recentchanges-legend": "Son dəyişiklik seçimləri",
        "recentchanges-summary": "'''Ən son dəyişiklikləri bu səhifədən izləyin:'''",
        "recentchanges-label-bot": "Bu redaktə bot tərəfindən edilmişdir",
        "recentchanges-label-unpatrolled": "Bu redaktə hələ nəzərdən keçirilməmişdir",
        "recentchanges-label-plusminus": "Səhifənin ölçüsü bayt miqdarı ilə təyin edilir",
+       "recentchanges-legend-heading": "'''Legenda:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (həmçinin bax: [[Special:NewPages|yeni səhifələrin siyahısı]])",
        "rcnotefrom": "Aşağıda <strong>$2</strong>-dən bu yana olan dəyişikliklər göstərilib (<strong>$1</strong>-dən çox olmayaraq).",
        "rclistfrom": "$3 $2 vaxtından başlayaraq yeni dəyişiklikləri göstər",
        "rcshowhideminor": "Kiçik redaktələri $1",
+       "rcshowhideminor-show": "Göstər",
+       "rcshowhideminor-hide": "Gizlət",
        "rcshowhidebots": "Botları $1",
+       "rcshowhidebots-show": "Göstər",
+       "rcshowhidebots-hide": "Gizlət",
        "rcshowhideliu": "Qeydiyyatlı istifadəçiləri $1",
+       "rcshowhideliu-hide": "Gizlət",
        "rcshowhideanons": "Anonim istifadəçiləri $1",
+       "rcshowhideanons-show": "Göstər",
+       "rcshowhideanons-hide": "Gizlət",
        "rcshowhidepatr": "Yoxlanılmış redaktələri $1",
        "rcshowhidemine": "Mənim redaktələrimi $1",
+       "rcshowhidemine-show": "Göstər",
+       "rcshowhidemine-hide": "Gizlət",
        "rclinks": "Son $2 gün ərzindəki son $1 dəyişikliyi göstər <br />$3",
        "diff": "fərq",
        "hist": "tarixçə",
        "shared-repo-from": "$1-dən",
        "shared-repo": "ümumi fayl anbarı",
        "shared-repo-name-wikimediacommons": "Wikimedia Commons",
+       "upload-disallowed-here": "Siz bu faylı yenidən yükləyə bilməzsiniz.",
        "filerevert": "$1 faylını əvvəlki vəziyyətinə qaytar",
        "filerevert-legend": "Faylı əvvəlki vəziyyətinə qaytar",
        "filerevert-comment": "Səbəb:",
        "booksources": "Kitab mənbələri",
        "booksources-search-legend": "Kitab mənbələri axtar",
        "booksources-isbn": "ISBN:",
+       "booksources-search": "Axtar",
        "booksources-text": "Aşağıda yeni və işlənmiş kitablar satan xarici keçidlərdə siz axtardığınız kitab haqqında əlavə məlumat ala bilərsiz:",
        "specialloguserlabel": "İcraçı:",
        "speciallogtitlelabel": "Məqsəd (başlıq və ya istifadəçi):",
        "undelete-show-file-submit": "Bəli",
        "namespace": "Adlar fəzası:",
        "invert": "Seçilən xaricindəkiləri",
+       "tooltip-invert": "Seçilmiş ad fəzasında (və ya göstərilmiş uyğunluqlarda olan adlar) olan səhifələrdəki dəyişiklikləri gizlətmək üçün bura işarə edin",
        "namespace_association": "Əlaqəli ad sahəsi",
        "blanknamespace": "(Ana)",
        "contributions": "{{GENDER:$1|İstifadəçinin}} fəaliyyəti",
        "importlogpage": "Çıxarılma gündəliyi",
        "importlogpagetext": "Səhifələrin idarəçilər tərəfindən digər vikilərdən dəyişiklik tarixçəsi ilə birlikdə köçürülməsi",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|dəyişiklik|dəyişiklik}} idxal edildi.",
-       "import-logentry-interwiki": "vikilərarası idxal $1",
        "import-logentry-interwiki-detail": "$2 vikidən $1 {{PLURAL:$1|dəyişiklik|dəyişiklik}} idxal edildi",
        "tooltip-pt-userpage": "İstifadəçi səhifəniz",
        "tooltip-pt-anonuserpage": "The user page for the ip you",
        "creditspage": "Səhifə kreditleri",
        "spamprotectiontitle": "Spam qoruma süzgəci",
        "spambot_username": "MediaViki spam təmizləməsi",
+       "simpleantispam-label": "Anti-spam yoxlanılması.\nBuranı <strong>DOLDURMAYIN</strong>!",
        "pageinfo-title": "\"$1\" üçün məlumat",
        "pageinfo-header-basic": "Əsas məlumatlar",
        "pageinfo-header-edits": "Redaktə tarixçəsi",
        "exif-pixelydimension": "Şəkilin eni",
        "exif-pixelxdimension": "Şəkilin hündürlüyü",
        "exif-usercomment": "İstifadəçi şərhi",
+       "exif-datetimeoriginal": "Orijinal tarix və vaxt",
+       "exif-datetimedigitized": "Tarix və vaxt rəqəmləşdirilir",
        "exif-exposuretime-format": "$1 saniyə ($2)",
        "exif-fnumber": "F nömrəsi",
        "exif-exposureprogram": "Ekspozisiya proqramı",
        "watchlisttools-view": "Siyahıdakı səhifələrdə edilən dəyişikliklər",
        "watchlisttools-edit": "İzlədiyim səhifələri göstər və redaktə et",
        "watchlisttools-raw": "Adi mətn kimi redaktə et",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|müzakirə]])",
        "duplicate-defaultsort": "<strong>Diqqət:</strong> Susmaya görə \"$2\" çeşidləmə açarı susmaya görə əvvəlki \"$1\" çeşidləmə açarını inkar edir.",
        "version": "Versiya",
        "version-extensions": "NIzamlanmış genişlənmələr",
        "version-hooks": "Çəngəllər",
        "version-hook-name": "Çəngəlin adı",
        "version-hook-subscribedby": "Abunə olan",
-       "version-version": "(Versiya $1)",
+       "version-version": "($1)",
        "version-license": "MediaViki lisenziyası",
        "version-ext-license": "Lisenziya",
        "version-ext-colheader-version": "Versiya",
        "htmlform-selectorother-other": "Digər",
        "sqlite-has-fts": "$1 tam mətn axtarma ilə",
        "sqlite-no-fts": "$1 tam mətn axtarma olmadan",
+       "logentry-delete-delete": "$1 $3 səhifəsini {{GENDER:$2|sildi}}",
        "logentry-suppress-delete": "$1 $3 səhifəsini {{GENDER:$2|gizlətdi}}",
        "revdelete-content-hid": "gizli mətn",
        "revdelete-summary-hid": "gizli tarixçə",
        "logentry-newusers-create": "$1 istifadəçi hesabı yaradıldı",
        "logentry-newusers-create2": "$3 istifadəçi hesabı $1 tərəfindən yaradıldı",
        "logentry-newusers-autocreate": "$1 istifadəçi hesabı avtomatik yaradıldı",
+       "logentry-upload-upload": "$1 $3 faylını {{GENDER:$2|yüklədi}}.",
        "rightsnone": "(yoxdur)",
        "revdelete-summary": "redaktə xülasəsi",
-       "feedback-subject": "Mövzu:",
-       "feedback-message": "Mesaj:",
+       "feedback-bugnew": "Mən yoxladım. Yeni xəta barədə xəbər ver",
        "feedback-cancel": "İmtina",
-       "feedback-error2": "Xəta: Redaktə qeydə alınmadı",
        "feedback-close": "Oldu",
-       "feedback-bugnew": "Mən yoxladım. Yeni xəta barədə xəbər ver",
+       "feedback-error2": "Xəta: Redaktə qeydə alınmadı",
+       "feedback-message": "Mesaj:",
+       "feedback-subject": "Mövzu:",
        "searchsuggest-search": "Axtar",
        "api-error-filename-tooshort": "Fayl adı qısadır.",
        "api-error-filetype-banned": "Bu tip fayllar qadağandır.",
index a1ac69e..8258954 100644 (file)
@@ -13,7 +13,8 @@
                        "Microchip08",
                        "아라",
                        "Koroğlu",
-                       "Baloch Afghanistan"
+                       "Baloch Afghanistan",
+                       "Macofe"
                ]
        },
        "tog-underline": "باغلانتیلارین آلتینی خطله:",
        "import-rootpage-nosubpage": "آد فضا سی  \"$1\" آنا باسئ ٔآلت صحیفه اوچون اجازه وئرمیر.",
        "importlogpage": "چیخاریلما گونده‌لیگی",
        "importlogpagetext": "باشقا ویکیلردن، دَییشیکلیک گئچمیشلریله بیرلیک‌ده گتیریلمیش صحیفه‌لر.",
-       "import-logentry-upload": "[[$1]]-ی فایل یوکله‌مکله گتیردی",
        "import-logentry-upload-detail": "{{PLURAL:$1|بیر|$1}} نوسخه",
-       "import-logentry-interwiki": "$1-ی ویکی‌آراسی ائتدی",
        "import-logentry-interwiki-detail": "$2-دن {{PLURAL:$1|بیر|$1}} نوسخه",
        "javascripttest": "جاوااسکریپت تِستی",
        "javascripttest-pagetext-noframework": "بو صحیفه، جاوااسکریپت تِستلرینی ایشلدمگه ساخلانیلیب‌دیر.",
        "version-parser-function-hooks": "آیریشدیران فونکسیا چنگل‌لری",
        "version-hook-name": "چنگه‌لین آدی",
        "version-hook-subscribedby": "طرفیندن گیریش‌‌میش",
-       "version-version": "(نسخه $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[آد سیز]",
        "version-license": "مِدیاویکی لیسانسی",
        "version-ext-license": "لیسانس",
        "logentry-rights-rights-legacy": "$1، $3-ین قروپ عوضولوگونو {{GENDER:$2|دَییشدیردی}}",
        "logentry-rights-autopromote": "$1-ین مقامی اوتوماتیک $4-دن $5-ه {{GENDER:$2|آرتیریلدی}}",
        "rightsnone": "(هئچ)",
+       "feedback-adding": "صحیفه‌یه گئری-بیلدیریم آرتیریلیر...",
+       "feedback-bugcheck": "گؤزل! فقط لوطفاً باخین او [$1 تانینمیش خطالار]دان اولماسین.",
+       "feedback-bugnew": "یوخلادیم. یئنی بیر خطا گؤندر",
        "feedback-bugornote": "بیر تکنیکی خطانی شرح وئرمگه آماده اولساز، لوطفاً [$1 بیر باگ بیلدیرین].\nاو اولماسا، بو آشاغیداکی ساده فورم‌دان ایستیفاده ائده بیلرسینیز. سیزین باخیشینیز، ایستیفاده‌چی آدینیزلا، «[$3 $2]» صحیفه‌سینه آرتیریلاجاق‌دیر.",
-       "feedback-subject": "قونو:",
-       "feedback-message": "مئساژ:",
        "feedback-cancel": "لغو ائت",
-       "feedback-submit": "گئری-بیلدیریمی یول‌لا",
-       "feedback-adding": "صحیفه‌یه گئری-بیلدیریم آرتیریلیر...",
+       "feedback-close": "اولدو",
        "feedback-error1": "خطا: API-دان تانینمامیش نتیجه",
        "feedback-error2": "خطا: دَییشدیرمه باشاری‌سیز اولدو",
        "feedback-error3": "خطا: API-دان جاواب گلمه‌دی",
+       "feedback-message": "مئساژ:",
+       "feedback-subject": "قونو:",
+       "feedback-submit": "گؤندر",
        "feedback-thanks": "تشکورلر! سیزین گئری-بیلدیریمینیز «[$2 $1]» صحیفه‌سینه گؤندریلدی.",
-       "feedback-close": "اولدو",
-       "feedback-bugcheck": "گؤزل! فقط لوطفاً باخین او [$1 تانینمیش خطالار]دان اولماسین.",
-       "feedback-bugnew": "یوخلادیم. یئنی بیر خطا گؤندر",
        "searchsuggest-search": "آختار",
        "searchsuggest-containing": "ساخلانیلیر...",
        "api-error-badaccess-groups": "سیزین بو ویکی‌یه فایل یوکله‌مک ایجازه‌نیز یوخدور.",
index 1808272..a748209 100644 (file)
        "delete-toobig": "Был биттең үҙгәртеүҙәр тарихы бик оҙон, $1 {{PLURAL:$1|өлгөнән}} күберәк.\n{{SITENAME}} проектының эшмәкәрлеге боҙолмауы маҡсатында бындай биттәрҙе юйыу тыйылған.",
        "delete-warning-toobig": "Был биттең үҙгәртеүҙәр тарихы бик оҙон, $1 {{PLURAL:$1|өлгөнән}} күберәк.\nБитте юйыу {{SITENAME}} проектының эшмәкәрлеге боҙолоуына килтереүе мөмкин, һаҡлыҡ менән эш итегеҙ.",
        "rollback": "Үҙгәртеүҙәрҙе кире ҡайтарырға",
-       "rollback_short": "Кире ҡайтарырға",
        "rollbacklink": "кире",
        "rollbacklinkcount": "$1 {{PLURAL:$1|1=төҙәтеүҙе|төҙәтеүҙе}} кире алырға",
        "rollbacklinkcount-morethan": "$1 {{PLURAL:$1|1=төҙәтеүҙән|төҙәтеүҙән}} күберәк кире алырға",
        "import-logentry-interwiki": "$1 битен вики проекттары-ара тейәгән",
        "import-logentry-interwiki-detail": "$2 өлгөнән $1 {{PLURAL:$1|1=өлгө|өлгө}}",
        "javascripttest": "\nJavaScript тикшереү",
-       "javascripttest-title": "$1 тикшеренеү үткәрелә",
        "javascripttest-pagetext-noframework": "Был бит JavaScript тикшеренеүҙәре үткәреү өсөн  резервланған.",
        "javascripttest-pagetext-unknownframework": "Билдәһеҙ тикшеренеүҙәр мөхитнамәһе \"$1\".",
        "javascripttest-pagetext-frameworks": "Зинһар өсөн киләһе тикшеренеүҙәр мөхитнамәһенең береһен һайлап алығыҙ: $1",
        "javascripttest-pagetext-skins": "Һынауҙы башлау өсөн тышса һыйлағыҙ.",
        "javascripttest-qunit-intro": "mediawiki.org адресы буйынса ҡарағыҙ [$1 тест үткәреү документацияһы].",
-       "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit өсөн һынауҙар йыйлмаһы.",
        "tooltip-pt-userpage": "Ҡулланыусы битегеҙ",
        "tooltip-pt-anonuserpage": "IP адресығыҙ өсөн ҡатнашыусы бите",
        "tooltip-pt-mytalk": "Фекерләшеү битегеҙ",
        "version-parser-function-hooks": "Уҡыу ҡоралдары функцияларын эләктереп алыусылар",
        "version-hook-name": "Эләктереп алыусы исеме",
        "version-hook-subscribedby": "Яҙҙырылған",
-       "version-version": "($1 өлгөһө)",
+       "version-version": "($1)",
        "version-license": "Рөхсәтнамә",
        "version-poweredby-credits": "Был вики проект '''[https://www.mediawiki.org/ MediaWiki]''' нигеҙендә эшләй, copyright © 2001-$1 $2.",
        "version-poweredby-others": "башҡалар",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|}} автоматик рәүештә {{GENDER:$2|}} $4 урынына $5 ителде.",
        "rightsnone": "(юҡ)",
        "revdelete-summary": "үҙгәртеүҙәр тасуирламаһы",
+       "feedback-adding": "Биткә кире белдереү өҫтәлә",
+       "feedback-bugcheck": "Шәп! Тик [$1 билдәле хаталар] исемлегендә оҡшаш белдереүҙең булмауына иғтибар итегеҙ.",
+       "feedback-bugnew": "Тикшерҙем. Яңы хата тураһында белдерергә",
        "feedback-bugornote": "Әгәр Һеҙ техник проблеманы ентекле рәүештә аңлатырға теләһәгеҙ, зинһар, [$1 хата тураһында белдерегеҙ].\nБашҡа осраҡта, ошо ябай форманы ҡуллана алаһығыҙ. Комментарийығыҙ «[$3 $2]» битенә ҡулланыусы исемегеҙ һәм браузер мәғлүмәте менән өҫтәләсәк.",
-       "feedback-subject": "Тема:",
-       "feedback-message": "Хәбәр:",
        "feedback-cancel": "Кире алырға",
-       "feedback-submit": "Кире белдереү ебәрергә",
-       "feedback-adding": "Биткә кире белдереү өҫтәлә",
+       "feedback-close": "Әҙер",
        "feedback-error1": "Хата: API-нан беленмәгән хата",
        "feedback-error2": "Хата: Мөхәррирләү хатаһы",
        "feedback-error3": "Хата: API-нан яуап юҡ",
+       "feedback-message": "Хәбәр:",
+       "feedback-subject": "Тема:",
+       "feedback-submit": "Кире белдереү ебәрергә",
        "feedback-thanks": "Рәхмәт! Һеҙҙең фекерегеҙ «[$2 $1]» битенә өҫтәлде.",
-       "feedback-close": "Әҙер",
-       "feedback-bugcheck": "Шәп! Тик [$1 билдәле хаталар] исемлегендә оҡшаш белдереүҙең булмауына иғтибар итегеҙ.",
-       "feedback-bugnew": "Тикшерҙем. Яңы хата тураһында белдерергә",
        "searchsuggest-search": "Эҙләү",
        "searchsuggest-containing": "эстәлегендә...",
        "api-error-badaccess-groups": "Һеҙгә был викиға файлдар күсереү рөхсәт ителмәй",
index daada20..8bfc90e 100644 (file)
        "rcnotefrom": "Untn san de Endarunga seit  '''$2''' (bis za '''$1''' Ozoagn).",
        "rclistfrom": "Nua Endarunga seit $3 $2 zoagn",
        "rcshowhideminor": "Kloane Endarunga $1",
+       "rcshowhideminor-hide": "Ausblendn",
        "rcshowhidebots": "Bots $1",
        "rcshowhideliu": "Eigloggte Nutza $1",
+       "rcshowhideliu-hide": "Ausblendn",
        "rcshowhideanons": "Anonyme Nutza $1",
+       "rcshowhideanons-hide": "Ausblendn",
        "rcshowhidepatr": "Kontrolliade Endarunga $1",
        "rcshowhidemine": "Meine Beidreg $1",
+       "rcshowhidemine-hide": "Ausblendn",
        "rclinks": "De letztn Endarunga vo de letztn $2 Dog zoagn<br />$3",
        "diff": "Untaschied",
        "hist": "Versiona",
        "watchlisttools-edit": "normal beorbatn",
        "watchlisttools-raw": "Im Roh-Listnformat beorbatn",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|Diskussión]])",
-       "unknown_extension_tag": "Unbekaunnter Extension-Tag „$1“",
        "duplicate-defaultsort": "Obocht: Da Sortiasschlossl \"$2\" ibaschreibt in friaan Schlissl \"$1\".",
        "version": "Versión",
        "version-extensions": "Installierde Daweiterrungen",
        "version-parser-function-hooks": "Parserfunkziónen",
        "version-hook-name": "Schnidstönnaum",
        "version-hook-subscribedby": "Aufruaff voh",
-       "version-version": "(Versión $1)",
+       "version-version": "($1)",
        "version-license": "Lizenz",
        "version-poweredby-credits": "Dé Nétzseiten braucht '''[https://www.mediawiki.org/wiki/MediaWiki/de MediaWiki]''', Copyright © 2001–$1 $2.",
        "version-poweredby-others": "åndre",
index 59d1773..bf446bc 100644 (file)
        "delete-toobig": "صفحهء یک مزنین تاریح اصلاحی هست گیشتر چه $1 {{PLURAL:$1|بازبینی|بازبینی}}.\nحذف چوشین صفحات په خاظر جلو گر چه ناگهانی اتفاق ته سایت {{SITENAME}} ممنوع بوتت.",
        "delete-warning-toobig": "ای صفحه  مزنین تاریح اصلاح هست، گیش چه  $1 {{PLURAL:$1|بازبینی|بازبینی}}.\nحذف آی شاید کار دیتابیس  {{SITENAME}} قطع کنت؛\nگون اخطار پیش روت.",
        "rollback": "پشت ترگ اصلاحات",
-       "rollback_short": "پشتررگ",
        "rollbacklink": "عقب ترگ",
        "rollbackfailed": "پشتررگ پروشت",
        "cantrollback": "نه تونیت اصلاح برگردینیت؛\nآهری شرکت کننده فقط نویسوک ای صفحه انت.",
        "version-parser-function-hooks": "عمل گر تجزیه کنوک گیر کت",
        "version-hook-name": "نام گیر",
        "version-hook-subscribedby": "اشتراک بیت گون",
-       "version-version": "(نسخه $1)",
+       "version-version": "($1)",
        "version-license": "لیسانس",
        "version-software": "نصبین برنامه",
        "version-software-product": "محصول",
index 4041ee2..e5a69d9 100644 (file)
@@ -8,7 +8,8 @@
                        "Shirayuki",
                        "Steven*fung",
                        "Urhixidur",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Linyahan an kilyawan:",
        "import-rootpage-nosubpage": "Espasyong-ngaran \"$1\" kan ugat na pahina dae minatugot nin pan-irarom na mga pahina.",
        "importlogpage": "Usip nin pagpalaog",
        "importlogpagetext": "Administratibong mga importadong pahina na igwang historiya nin pagliliwat gikan sa ibang wikis.",
-       "import-logentry-upload": "pigpadara an [[$1]] kan pagkarga nin ''file''",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|rebisyon|mga rebisyon}}",
-       "import-logentry-interwiki": "na-transwiki an $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|rebisyon|mga rebisyon}} gikan sa $2",
        "javascripttest": "Testing sa JavaScript",
        "javascripttest-pagetext-noframework": "An pahinang ini reserbado para sa pagpapadalagan kan mga pagtesting sa JavaScript.",
        "version-parser-function-hooks": "Mga panpunksyong pangawil kan Parser",
        "version-hook-name": "Ngaran kan pangawil",
        "version-hook-subscribedby": "Pinaghaguhot ni",
-       "version-version": "(Bersyon na $1)",
+       "version-version": "($1)",
        "version-license": "Lisensiya kan MediaWiki",
        "version-ext-license": "Lisensiya",
        "version-ext-colheader-name": "Ekstensyon",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|nagliwat}} kan pangrupong pagkamiyembro para sa $3",
        "logentry-rights-autopromote": "$1 awtomatikong {{GENDER:$2|pinagpalangkaw}} gikan sa $4 pasiring sa $5",
        "rightsnone": "(mayô)",
+       "feedback-adding": "Idugang an balik-simbag sa pahina...",
+       "feedback-bugcheck": "Marhay! I-tsek sana baya na ini bakong saro sa mga [$1 bistadong kuto].",
+       "feedback-bugnew": "Pig-tsek ko. Pakireport kan sarong baguhong kuto",
        "feedback-bugornote": "Kun ika andam na iladawan an sarong teknikal na problema na igwang detalye tabi [$1 ipaaram an kuto].\nKun bako man, ika makakagamit nin sayon na porma sa ibaba. An saimong komento idudugang sa pahina \"[$3 $2]\", kaiba an saimong paragamit na ngaran.",
-       "feedback-subject": "Subheto",
-       "feedback-message": "An Mensahe:",
        "feedback-cancel": "Kanselaron",
-       "feedback-submit": "Isumite an balik-simbag",
-       "feedback-adding": "Idugang an balik-simbag sa pahina...",
+       "feedback-close": "Nagibo na",
        "feedback-error1": "Kasalaan: Bakong bistadong resulta gikan sa API",
        "feedback-error2": "Kasalaan: An pagliwat nagpalya",
        "feedback-error3": "Kasalaan: Mayong kasimbagan gikan sa API",
+       "feedback-message": "An Mensahe:",
+       "feedback-subject": "Subheto",
+       "feedback-submit": "Isumite",
        "feedback-thanks": "Salamat! An saimong balik-simbag pinagposte sa pahina \"[$2 $1]\".",
-       "feedback-close": "Nagibo na",
-       "feedback-bugcheck": "Marhay! I-tsek sana baya na ini bakong saro sa mga [$1 bistadong kuto].",
-       "feedback-bugnew": "Pig-tsek ko. Pakireport kan sarong baguhong kuto",
        "searchsuggest-search": "Hanapa baya",
        "searchsuggest-containing": "may laog na...",
        "api-error-badaccess-groups": "Ika daeng permiso na magkarga nin mga sagunson sa wiking ini.",
index bc52fd0..dfe1c0b 100644 (file)
        "disclaimers": "Адмова ад адказнасьці",
        "disclaimerpage": "Project:Адмова ад адказнасьці",
        "edithelp": "Дапамога ў рэдагаваньні",
+       "helppage-top-gethelp": "Дапамога",
        "mainpage": "Галоўная старонка",
        "mainpage-description": "Галоўная старонка",
        "policy-url": "Project:Правілы",
        "readonly_lag": "База зьвестак была аўтаматычна заблякаваная да выкананьня рэплікацыі галоўнай базы зьвестак з другаснымі",
        "internalerror": "Унутраная памылка",
        "internalerror_info": "Унутраная памылка: $1",
+       "internalerror-fatal-exception": "Фатальнае выключэньне тыпу «$1»",
        "filecopyerror": "Немагчыма cкапіяваць файл «$1» у «$2».",
        "filerenameerror": "Немагчыма перайменаваць файл «$1» у «$2».",
        "filedeleteerror": "Немагчыма выдаліць файл «$1».",
        "createacct-benefit-heading": "{{SITENAME}} створаная людзьмі, такімі як вы.",
        "createacct-benefit-body1": "{{PLURAL:$1|праўка|праўкі|правак}}",
        "createacct-benefit-body2": "{{PLURAL:$1|старонка|старонкі|старонак}}",
-       "createacct-benefit-body3": "{{PLURAL:$1|удзельнік|удзельніка|удзельнікаў}} за апошні час",
+       "createacct-benefit-body3": "{{PLURAL:$1|удзельнік|удзельнікі|удзельнікаў}} за апошні час",
        "badretype": "Уведзеныя Вамі паролі не супадаюць.",
        "userexists": "Уведзенае Вамі імя ўдзельніка ўжо выкарыстоўваецца кімсьці іншым. \nКалі ласка, выберыце іншае імя.",
        "loginerror": "Памылка ўваходу",
        "createacct-error": "Памылка стварэньня рахунку",
        "createaccounterror": "Немагчыма стварыць рахунак: $1",
-       "nocookiesnew": "Рахунак быў створаны, але ў сыстэму Вы не ўвайшлі.\n{{SITENAME}} выкарыстоўвае cookie для ўваходу ў сыстэму.\nУ Вашым браўзэры cookies адключаныя.\nКалі ласка, дазвольце іх, а потым ўвайдзіце з новым іменем удзельніка і паролем.",
-       "nocookieslogin": "{{SITENAME}} выкарыстоўвае cookie для ўваходу ў сыстэму.\nУ Вашым браўзэры cookie адключаныя.\nКалі ласка, уключыце іх і паспрабуйце яшчэ раз.",
-       "nocookiesfornew": "Рахунак удзельніка ня быў створаны, таму што мы не змаглі пацьвердзіць яго крыніцу. \nУпэўніце, што ў Вас уключаныя закладкі (cookies), перазагрузіце гэтую старонку і паспрабуйце зноў.",
+       "nocookiesnew": "Рахунак быў створаны, але ў сыстэму Вы не ўвайшлі.\n{{SITENAME}} выкарыстоўвае файлы-кукі для ўваходу ў сыстэму.\nУ Вашым браўзэры файлы-кукі адключаныя.\nКалі ласка, дазвольце іх, а потым ўвайдзіце з новым іменем удзельніка і паролем.",
+       "nocookieslogin": "{{SITENAME}} выкарыстоўвае файлы-кукі для ўваходу ў сыстэму.\nУ Вашым браўзэры файлы-кукі адключаныя.\nКалі ласка, уключыце іх і паспрабуйце яшчэ раз.",
+       "nocookiesfornew": "Рахунак удзельніка ня быў створаны, таму што мы не змаглі пацьвердзіць яго крыніцу. \nУпэўніцеся, што ў Вас уключаныя файлы-кукі, перазагрузіце гэтую старонку і паспрабуйце зноў.",
        "noname": "Вы пазначылі няслушнае імя ўдзельніка.",
        "loginsuccesstitle": "Пасьпяховы ўваход у сыстэму",
-       "loginsuccess": "'''Цяпер Вы ўвайшлі ў {{GRAMMAR:вінавальны|{{SITENAME}}}} як «$1».'''",
+       "loginsuccess": "<strong>Цяпер Вы ўвайшлі ў {{GRAMMAR:вінавальны|{{SITENAME}}}} як «$1».</strong>",
        "nosuchuser": "Удзельніка «$1» не існуе.\nВялікія і малыя літары адрозьніваюцца ў імёнах удзельнікаў.\nПраверце напісаньне альбо [[Special:UserLogin/signup|стварыце новы рахунак]].",
        "nosuchusershort": "Удзельніка зь іменем «$1» не існуе. Праверце напісаньне.",
        "nouserspecified": "Вы мусіце пазначыць імя ўдзельніка.",
        "wrongpasswordempty": "Быў уведзены пусты пароль. Калі ласка, паспрабуйце яшчэ раз.",
        "passwordtooshort": "Паролі павінны ўтрымліваць ня менш за $1 {{PLURAL:$1|сымбаль|сымбалі|сымбаляў}}.",
        "password-name-match": "Ваш пароль павінен адрозьнівацца ад Вашага імя ўдзельніка.",
-       "password-login-forbidden": "Ð\92Ñ\8bкаÑ\80Ñ\8bÑ\81Ñ\82анÑ\8cне Ð³Ñ\8dÑ\82ага Ñ\96мÑ\8f Ñ\9eдзелÑ\8cнÑ\96ка Ñ\96 Ð¿Ð°Ñ\80олÑ\8f было забароненае.",
+       "password-login-forbidden": "Ð\92Ñ\8bкаÑ\80Ñ\8bÑ\81Ñ\82анÑ\8cне Ð³Ñ\8dÑ\82ага Ñ\96мÑ\8f Ñ\9eдзелÑ\8cнÑ\96ка Ñ\96 Ð¿Ð°Ñ\80олÑ\8e было забароненае.",
        "mailmypassword": "Скінуць пароль",
        "passwordremindertitle": "Новы часовы пароль для {{GRAMMAR:родны|{{SITENAME}}}}",
        "passwordremindertext": "Нехта (магчыма Вы, з IP-адрасу $1) запытаў нас даслаць новы пароль для {{GRAMMAR:родны|{{SITENAME}}}} ($4). Для ўдзельніка «$2» быў створаны часовы пароль і ён цяпер «$3». Калі гэта была Вашая ініцыятыва, Вам трэба ўвайсьці ў сыстэму і адразу зьмяніць пароль. Тэрмін дзеяньня Вашага часовага паролю — $5 {{PLURAL:$5|дзень|дні|дзён}}.\n\nКалі гэты запыт адправіў нехта іншы, альбо Вы ўзгадалі свой пароль і ўжо не жадаеце яго зьмяніць, Вы можаце праігнараваць гэты ліст і працягваць карыстацца старым паролем.",
        "missingcommentheader": "'''Напамін:''' Вы не пазначылі загаловак камэнтара.\nКалі Вы націсьніце кнопку «{{int:savearticle}}» яшчэ раз, Ваш камэнтар захаваецца бяз тэмы.",
        "summary-preview": "Папярэдні прагляд апісаньня:",
        "subject-preview": "Папярэдні прагляд загалоўку:",
+       "previewerrortext": "Адбылася памылка пры спробе папярэдняга прагляду вашых зьменаў.",
        "blockedtitle": "Удзельнік заблякаваны",
        "blockedtext": "'''Ваш рахунак ўдзельніка ці IP-адрас быў заблякаваны.'''\n\nБлякаваньне выканаў $1.\nПрычына гэтага: ''$2''.\n\n* Пачатак блякаваньня: $8\n* Сканчэньне блякаваньня: $6\n* Быў заблякаваны: $7\n\nВы можаце скантактавацца з $1 ці адным зь іншых [[{{MediaWiki:Grouppage-sysop}}|адміністратараў]], каб абмеркаваць блякаваньне. Заўважце, што Вы ня зможаце ўжыць магчымасьць «даслаць ліст па электроннай пошце», пакуль не пазначыце сапраўдны адрас электроннай пошты ў Вашых [[Special:Preferences|наладах]], і калі гэта Вам не было забаронена.\nВаш IP-адрас — $3, ідэнтыфікатар блякаваньня — #$5.\nКалі ласка, улучайце ўсю вышэйпададзеную інфармацыю ва ўсе запыты, што Вы будзеце рабіць.",
        "autoblockedtext": "Ваш IP-адрас быў аўтаматычна заблякаваны, таму што ён ужываўся іншым удзельнікам, які быў заблякаваны $1.\nПрычына гэтага:\n\n:''$2''\n\n* Блякаваньне пачалося: $8\n* Блякаваньне скончыцца: $6\n* Быў заблякаваны: $7\n\nВы можаце скантактавацца з $1 ці з адным зь іншых [[{{MediaWiki:Grouppage-sysop}}|адміністратараў]], каб абмеркаваць блякаваньне.\n\nЗаўважце, што Вы ня зможаце ужываць магчымасьць «даслаць ліст праз электронную пошту», пакуль ня будзе пазначаны дзейны адрас электроннай пошты ў Вашых [[Special:Preferences|наладах удзельніка]], і калі гэта Вам не было забаронена.\n\nВаш цяперашні IP-адрас — $3, ідэнтыфікатар блякаваньня — #$5.\nКалі ласка, улучайце ўсю вышэйпададзеную інфармацыю ва ўсе запыты, што Вы будзеце рабіць.",
        "unusedimages": "Файлы, якія не выкарыстоўваюцца",
        "wantedcategories": "Запатрабаваныя катэгорыі",
        "wantedpages": "Запатрабаваныя старонкі",
+       "wantedpages-summary": "Сьпіс няісных старонак з найбольшай колькасьцю спасылак на іх, за выключэньнем старонак, на якія спасылаюцца толькі старонкі-перанакіраваньні. Дзеля сьпісу няісных старонак, на якія спасылаюцца перанакіраваньні, глядзіце [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Няслушная назва сярод вынікаў: $1",
        "wantedfiles": "Запатрабаваныя файлы",
        "wantedfiletext-cat": "Наступныя файлы выкарыстоўваюцца, але іх няма. Файлы са зьнешніх сховішчаў могуць знаходзіцца ў сьпісе без уліку іх існаваньня. Любыя такія няслушныя ўваходжаньні будуць <del>выкрасьленыя</del>. Дадаткова, старонкі, якія ўбудоўваюць неіснуючыя файлы прыведзеныя на [[:$1]].",
        "importcantopen": "Немагчыма адкрыць файл імпарту",
        "importbadinterwiki": "Няслушная спасылка на іншую моўную вэрсію",
        "importsuccess": "Імпартаваньне скончанае!",
-       "importnosources": "Ð\9aÑ\80Ñ\8bнÑ\96Ñ\86Ñ\8b Ñ\96мпаÑ\80Ñ\82Ñ\83 Ð¿Ð°Ð¼Ñ\96ж Ð²Ñ\96кÑ\96 не былі вызначаныя і наўпроставая загрузка гісторыі адключаная.",
+       "importnosources": "Ð\92Ñ\96кÑ\96 Ð´Ð»Ñ\8f Ñ\96мпаÑ\80Ñ\82Ñ\83 не былі вызначаныя і наўпроставая загрузка гісторыі адключаная.",
        "importnofile": "Файл для імпартаваньня ня быў загружаны.",
        "importuploaderrorsize": "Не атрымалася загрузіць файл імпартаваньня.\nПамер файла болей за дазволены для загрузкі.",
        "importuploaderrorpartial": "Не атрымалася загрузіць файл імпартаваньня.\nЁн быў загружаны толькі часткова.",
        "import-rootpage-nosubpage": "Падстаронкі ў прасторы назваў «$1» карнявой старонкі не дазволеныя.",
        "importlogpage": "Журнал імпартаваньняў",
        "importlogpagetext": "Імпартаваньне адміністратарамі старонак з гісторыяй зьменаў зь іншых вікі.",
-       "import-logentry-upload": "імпартавана [[$1]] праз загрузку файла",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|вэрсія імпартаваная|вэрсіі імпартаваныя|вэрсіяў імпартаваныя}}",
-       "import-logentry-interwiki": "імпартавана зь іншай вікі $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|вэрсія імпартаваная|вэрсіі імпартаваныя|вэрсіяў імпартаваныя}} з $2",
        "javascripttest": "Тэставаньне JavaScript",
        "javascripttest-pagetext-noframework": "Гэтая старонка трымаецца для правядзеньня тэстаў JavaScript.",
        "version-parser-function-hooks": "Перахопнікі функцыяў парсэра",
        "version-hook-name": "Назва працэдуры-перахопніка",
        "version-hook-subscribedby": "Падпісаны на",
-       "version-version": "(Вэрсія $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[бяз назвы]",
        "version-svn-revision": "(r$2)",
        "version-license": "Ліцэнзія MediaWiki",
        "tags-hitcount": "$1 {{PLURAL:$1|зьмена|зьмены|зьменаў}}",
        "tags-manage-no-permission": "Вы ня маеце правоў на зьмену метак.",
        "tags-create-heading": "Стварэньне новай меткі",
+       "tags-create-tag-name": "Назва меткі:",
        "comparepages": "Параўнаньне старонак",
        "compare-page1": "Старонка 1",
        "compare-page2": "Старонка 2",
        "logentry-upload-revert": "$1 {{GENDER:$2|загрузіў|загрузіла}} $3",
        "rightsnone": "(няма)",
        "revdelete-summary": "кароткае апісаньне зьменаў",
+       "feedback-adding": "Даданьне водгуку на старонку…",
+       "feedback-bugcheck": "Выдатна! Толькі праверце, магчыма гэтыя памылкі ўжо [$1 вядомыя].",
+       "feedback-bugnew": "Я праверыў. Гэта новая памылка",
        "feedback-bugornote": "Калі Вы гатовы падрабязна апісаць тэхнічную праблему, калі ласка [$1 паведаміце пра памылку]. \nУ адваротным выпадку, Вы можаце выкарыстоўваць простую форму пададзеную ніжэй. Ваш камэнтар будзе дададзены на старонку «[$3 $2]», разам з Вашым іменем удзельніка і выкарыстоўваемым браўзэрам.",
-       "feedback-subject": "Тэма:",
-       "feedback-message": "Паведамленьне:",
        "feedback-cancel": "Скасаваць",
-       "feedback-submit": "Даслаць водгук",
-       "feedback-adding": "Даданьне водгуку на старонку…",
+       "feedback-close": "Выканана",
        "feedback-error1": "Памылка: невядомы вынік з API",
        "feedback-error2": "Памылка рэдагаваньня",
        "feedback-error3": "Памылка: няма адказу ад API",
+       "feedback-message": "Паведамленьне:",
+       "feedback-subject": "Тэма:",
+       "feedback-submit": "Даслаць",
        "feedback-thanks": "Дзякуй! Ваш водгук быў разьмешчаны на старонцы «[$2 $1]».",
-       "feedback-close": "Выканана",
-       "feedback-bugcheck": "Выдатна! Толькі праверце, магчыма гэтыя памылкі ўжо [$1 вядомыя].",
-       "feedback-bugnew": "Я праверыў. Гэта новая памылка",
        "searchsuggest-search": "Пошук",
        "searchsuggest-containing": "утрымлівае...",
        "api-error-badaccess-groups": "У Вас няма дазволу загружаць файлы ў гэтую вікі.",
        "json-error-utf8": "Некарэктныя сымбалі UTF-8, магчыма, няслушнае кадаваньне",
        "json-error-recursion": "Значэньне, якое трэба закадаваць, утрымлівае адну ці некалькі рэкурсіўных спасылак",
        "json-error-inf-or-nan": "У значэньні, якое трэба закадаваць, прысутнічаюць адно ці болей NAN- або INF-значэньняў",
-       "json-error-unsupported-type": "Было пададзенае значэньне тыпу, які ня можа быць закадаваны"
+       "json-error-unsupported-type": "Было пададзенае значэньне тыпу, які ня можа быць закадаваны",
+       "headline-anchor-title": "Спасылка на гэты разьдзел"
 }
index 5d9c4dc..5997c31 100644 (file)
        "disclaimers": "Адмова ад адказнасці",
        "disclaimerpage": "Project:Агульная адмова ад адказнасці",
        "edithelp": "Даведка рэдактарскага акна",
+       "helppage-top-gethelp": "Даведка",
        "mainpage": "Галоўная старонка",
        "mainpage-description": "Першая старонка",
        "policy-url": "Project:Арганізацыйная палітыка",
        "import-rootpage-nosubpage": "У прастора назваў \"$1\" каранёвай старонкі падстаронкі не дазволены.",
        "importlogpage": "Журнал імпартаванняў",
        "importlogpagetext": "Адміністрацыйныя імпартаванні старонак з іншых вікі, разам з гісторыямі правак.",
-       "import-logentry-upload": "імпартавана [[$1]] праз файлавы ўклад",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|версія|версіі|версій}} імпартавана",
-       "import-logentry-interwiki": "транс-вікавана $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|версія|версіі|версій}} імпартавана з $2",
        "javascripttest": "JavaScript-тэсты",
        "javascripttest-pagetext-noframework": "Гэта старонка зарэзервавана для запуску тэстаў JavaScript",
        "version-parser-function-hooks": "Хукі функцый парсера",
        "version-hook-name": "Назва хука",
        "version-hook-subscribedby": "Сюды падпісаныя",
-       "version-version": "(Версія $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[без назвы]",
        "version-license": "Ліцэнзія MediaWiki",
        "version-ext-license": "Ліцэнзія",
        "logentry-upload-revert": "$1 {{GENDER:$2|уклаў|уклала}} $3",
        "rightsnone": "(няма)",
        "revdelete-summary": "тлумачэнне праўкі",
+       "feedback-adding": "Даданне водгуку на старонку…",
+       "feedback-bugcheck": "Выдатна! Толькі праверце, што ў спісе [$1 вядомых памылак] яе няма падобнага запісу.",
+       "feedback-bugnew": "Я праверыў. Паведаміць пра новую памылку",
        "feedback-bugornote": "Калі вы гатовыя падрабязна апісаць тэхнічную праблему, калі ласка, [$1 паведаміце пра памылку].\nУ адваротным выпадку вы можаце выкарыстоўваць гэтую простую форму. Ваш каментар будзе дададзены на старонку «[$3 $2]» разам з вашым імем удзельніка і выкарыстоўваемым браўзерам.",
-       "feedback-subject": "Тэма:",
-       "feedback-message": "Паведамленне",
        "feedback-cancel": "Адмена",
-       "feedback-submit": "Даслаць водгук",
-       "feedback-adding": "Даданне водгуку на старонку…",
+       "feedback-close": "Зроблена.",
        "feedback-error1": "Памылка. Невядомы вынік з API",
        "feedback-error2": "Памылка. Збой праўкі",
        "feedback-error3": "Памылка. Няма адказу ад API",
+       "feedback-message": "Паведамленне",
+       "feedback-subject": "Тэма:",
+       "feedback-submit": "Даслаць водгук",
        "feedback-thanks": "Дзякуй! Ваш водгук размешчаны на старонцы «[$2 $1]».",
-       "feedback-close": "Зроблена.",
-       "feedback-bugcheck": "Выдатна! Толькі праверце, што ў спісе [$1 вядомых памылак] яе няма падобнага запісу.",
-       "feedback-bugnew": "Я праверыў. Паведаміць пра новую памылку",
        "searchsuggest-search": "Знайсці",
        "searchsuggest-containing": "змяшчае...",
        "api-error-badaccess-groups": "У Вас няма дазволу загружаць файлы ў гэтую вікі.",
index 0b57887..0013ab7 100644 (file)
@@ -26,7 +26,8 @@
                        "Bjankuloski06",
                        "Vodnokon4e",
                        "ShadeOfGrey",
-                       "PetaRZ"
+                       "PetaRZ",
+                       "Macofe"
                ]
        },
        "tog-underline": "Подчертаване на препратките:",
        "copyrightpage": "{{ns:project}}:Авторски права",
        "currentevents": "Текущи събития",
        "currentevents-url": "Project:Текущи събития",
-       "disclaimers": "УÑ\81ловиÑ\8f Ð·Ð° Ð¿Ð¾Ð»Ð·Ð²Ð°Ð½е",
-       "disclaimerpage": "Project:УÑ\81ловиÑ\8f Ð·Ð° Ð¿Ð¾Ð»Ð·Ð²Ð°Ð½е",
+       "disclaimers": "Ð\9fÑ\80едÑ\83пÑ\80еждение",
+       "disclaimerpage": "Project:Ð\9fÑ\80едÑ\83пÑ\80еждение",
        "edithelp": "Помощ при редактиране",
        "mainpage": "Начална страница",
        "mainpage-description": "Начална страница",
        "import-rootpage-nosubpage": "Именното пространство „$1“ на основната страница не позволява създаването на подстраници.",
        "importlogpage": "Дневник на внасянията",
        "importlogpagetext": "Административни внасяния на страници с редакционна история от други уикита.",
-       "import-logentry-upload": "[[$1]] беше внесена от файл",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|версия беше внесена|версии бяха внесени}}",
-       "import-logentry-interwiki": "$1 беше внесена от друго уики",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|една версия|$1 версии}} на $2 бяха внесени",
        "javascripttest": "Тестване на JavaScript",
        "javascripttest-pagetext-noframework": "Тази страница е запазена за изпълнение на Джаваскрипт тестове.",
        "version-parser-function-hooks": "Куки в парсерни функции",
        "version-hook-name": "Име на куката",
        "version-hook-subscribedby": "Ползвана от",
-       "version-version": "(Версия $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[без име]",
        "version-license": "Лиценз на МедияУики",
        "version-ext-license": "Лиценз",
        "logentry-rights-autopromote": "$1 е автоматично {{GENDER:$2|повишен|повишена}} от $4 до $5",
        "rightsnone": "(никакви)",
        "revdelete-summary": "резюме",
+       "feedback-adding": "Добавяне на коментар към страницата...",
+       "feedback-bugcheck": "Страхотно! Само проверете дали това не сред вече [$1 докладваните грешки].",
+       "feedback-bugnew": "Проверих. Докладвай за нова грешка",
        "feedback-bugornote": "Ако сте готови подробно да опишете технически проблем, моля [$1 докладвайте го тук].\nВ противен случай, можете да използвате лесния формуляр по-долу. Коментарът ви ще бъде добавен към страницата \"[$3 $2]\", наред с вашето потребителско име.",
-       "feedback-subject": "Тема:",
-       "feedback-message": "Съобщение:",
        "feedback-cancel": "Отказване",
-       "feedback-submit": "Оставяне на коментар",
-       "feedback-adding": "Добавяне на коментар към страницата...",
+       "feedback-close": "Готово",
        "feedback-error1": "Грешка: Неразпознат резултат от API",
        "feedback-error2": "Грешка: Неуспешна редакция",
        "feedback-error3": "Грешка: Няма отговор от API",
+       "feedback-message": "Съобщение:",
+       "feedback-subject": "Тема:",
+       "feedback-submit": "Изпращане",
        "feedback-thanks": "Благодарности! Вашата обратна информация е публикувана на страницата „[$2  $1]“.",
-       "feedback-close": "Готово",
-       "feedback-bugcheck": "Страхотно! Само проверете дали това не сред вече [$1 докладваните грешки].",
-       "feedback-bugnew": "Проверих. Докладвай за нова грешка",
        "searchsuggest-search": "Търсене",
        "api-error-badaccess-groups": "Нямате необходимите права, за да качвате файлове в това уики.",
        "api-error-badtoken": "Вътрешна грешка: неправилен маркер.",
index 15759a5..f86214f 100644 (file)
@@ -1,7 +1,8 @@
 {
        "@metadata": {
                "authors": [
-                       "Baloch Afghanistan"
+                       "Baloch Afghanistan",
+                       "Ibrahim khashrowdi"
                ]
        },
        "tog-underline": "لینکانی جهلگا خط کشیتین",
        "disclaimers": "تکذیب‌ نامه‌هان",
        "disclaimerpage": "Project:ئمومی ئین تکذیب‌ نامه",
        "edithelp": "کومک په ایدیت ئی خاتیرا",
+       "helppage-top-gethelp": "کومک",
        "mainpage": "بُنیادی تاکدیم",
        "mainpage-description": "بُنیادی تاکدیم",
        "policy-url": "Project:سیاست‌ئان",
        "readonly_lag": "مئلوماتین بانک بی انونین وختا اتوماتیکین رکما قُلپ بوته تا که پشتوانی ئی و بُنیادی ئین نخسه گو وت هماهنگ بیئنت",
        "internalerror": "داخلین خطا",
        "internalerror_info": "داخلین خطا: $1",
+       "internalerror-fatal-exception": "خرابکارین استسنائین نمونه \"$1\"",
        "filecopyerror": "نه شه فایل «$1» بی «$2» کاپی بیئت.",
        "filerenameerror": "نه شه فایل «$1» بی «$2» تغیر نام بیئت.",
        "filedeleteerror": "نه بوت فایل «$1» پاک بیئت.",
        "loginerror": "خطا بی داخل بوتینی تا",
        "createacct-error": "کار زوروکین حسابئ جوڑ کورتینی خطا",
        "createaccounterror": "ای حسابئ جوڑ کورتین امکان نداریت: $1",
+       "nocookiesnew": "کارزوروکی هیساب جۆڑ بوت، اما تا انون لوگین نه بوته ایت.\n{{SITENAME}} په کارزوروکانی لوگین بوتین ئا شه کوکی ئا ایستیپاده ئا کننت.\nشما کوکی ئانه شه کار پرینته ایت.\nمهربانی بکنیت کوکی ئانه په کار بگیریت، و پدا گۆ وتی نۆکین کارزوروکی ناما و چیهرگال ئا لوگین به ایت.",
+       "nocookieslogin": "{{SITENAME}} په کارزوروکانی لوگین بوتینا شه کوکی ئان ایستیپاده ئه کننت.\nشما کوکی ئانه شه کار پرینته ایت.\nمهربانی بکنیت کوکی ئانه په کار بگریت و پدا کوشش بکنیت.",
+       "nocookiesfornew": "کارزوروکی هیساب جۆڑ نه بوت، په خاتیریکه نتوانتن آیی منبه ئا تایید بکنن.\nموتمه ئین به یت که کوکی په ئال انت، آ وختا شه سری ن\tۆک بارگیری بکینت و پدا امتیهان بکنیت .",
        "noname": "شما یک موتبرین کار زوروکی ئین نامی ئا مشخص نه کورته ئیت.",
        "loginsuccesstitle": "کامیابین لوگین",
        "loginsuccess": "'''شما انون گو «$1» ئی نا بی {{SITENAME}} ئی تا داخل بوته ایت.'''",
+       "nosuchuser": "کار زوروکئ گۆ «$1» ئی ناما موجود نه اینت.\nکار زورکئ نام گۆ گۆنڈی یا توُهی ئا هوروپ ئان هساس اینت.\nنامی املا ئا بگنیدیت، یا [[Special:UserLogin/signup|یک نوکین کار زورکی هسابئ جۆڑ بکنیت]].",
        "nosuchusershort": "هیچ کار زوروکئ بی نامئ  ''$1'' ئا وجود نداریت.\nوتئ املا ئا چیک بکنیت.",
        "nouserspecified": "باید یک کار زوروکئ نام مشخص بکنیت.",
        "login-userblocked": "ای کار زوروک بلاک بوته، په داخل بوتینا اجازه نه اینت.",
        "passwordremindertitle": "نوکین موقتی ئین چیهرگال یا پاسورد په  {{SITENAME}}",
        "noemail": "هیچ ایمیل ادرسئ په  «$1» کار زوروکا ثبت نه بوته.",
        "noemailcreate": "باید یک موتبرین ایمیل ادرسئ داخل بکنیت",
+       "passwordsent": "نوکین چیهرگال بئ سبت بوته ئین ایمیل ادرس ئا په «$1» ئا دیم داته بوت.\nمهربانی بکنیت شه آیی گیپتین ئا پد لوگین به ییت.",
        "mailerror": "خطا بی ایمیلی داتینی تا: $1",
        "emailauthenticated": "شمی ایمیلی ادرس بی $2 سائت $3  تا تصدیق ئه بیئت.",
        "emailnotauthenticated": "شمی ایمیلئ ادرس تا انون قبول نه بوته.\nایمیل په هیچ یک شه ویژه گی ئان دیم داته ئه نه بیئت.",
        "resetpass-recycled": "مهربانی بکینت دیگه پاسورد یا چیهرگالی غیر شه انونین چیهرگال ئا تنظیم بکنیت.",
        "resetpass-temp-emailed": "شما گۆ یک موقتین ایمیل بوته ئین کود ئا لوگین بوته ئیت.\nپه لوگین ئی الاسی ئا شما باید نوکین چیهرگالی ایدا داخل بکنیت:",
        "resetpass-temp-password": "موقیئتین پاسورد:",
+       "resetpass-abort-generic": "چیهرگالی ٹگل شه یک توسئ ئه گری نیمگا شه کار پرینته بوت.",
        "resetpass-expired": "شمی چیهرگالی ئی وخت الاس بوته. مهربانی په لوگین بوتینا نۆکین چیهرگالی تنظیم بکنیت.",
        "passwordreset": "پاک کورتین پاسوردئ",
        "passwordreset-text-one": "په پدا نادینتین ایمیلی پاسوردی خاتیرا ای فرم ئا پر کنیت.",
        "sitejspreview": "'''شه هوشا مه بَریت که شما فقط جاوااسکریپت ئی دیم دیست ئا گیندیت.'''\n'''ای جاوااسکریپت تا انون ذخیره نه بوته!'''",
        "updated": "(نوک بوته ئین)",
        "note": "'''نکته:'''",
+       "previewnote": "'''بئ هوش ئا داشته بیئت که ای په قت دیم اینت.'''\nشمی تغیرات تا انون زه خیره نه بوته انت!",
        "continue-editing": "شوتین بی ایڈ\tیٹ\tی نیمگا",
        "editing": "بی ایڈ\tیٹ\t کورتینی حالا $1",
        "creating": "بی جوڑ کورتینی حالا $1",
        "postedit-confirmation-saved": "شمی ایڈ\tیٹ ذخیره بوت.",
        "edit-already-exists": "نوکین تاکدیمئ جوڑ کورتین امکان نه داریت.\nای تاکدیم شه دیما وجود داشتت.",
        "defaultmessagetext": "پیامی پیش فرضین متن",
+       "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": "جاوااسکریپت",
        "undo-summary": " $1 ئی ایڈیٹ شه [[Special:Contributions/$2|$2]] ([[User talk:$2|حبر و گپ]]) نیمگا شه بَیْن بورته بوت",
        "undo-summary-username-hidden": " $1 نخسه ئی شه بین بورتین بی یک کار زوروکئ دستا چیهر بوته",
        "cantcreateaccounttitle": "نه توانیت حسابئ پاچ کنیت",
+       "cantcreateaccount-text": "کار زوروکئ هیساب ئی جۆڑ کورتین ئی هه ق گۆ ای آی‌پی  ('''$1''') ادرس ئا، شه [[User:$3|$3]] نیمگا گیپته بوته.\n\nشه $3 ئی نیمگا دلیل ایرنگ بیان بوته: $2",
        "viewpagelogs": "ای تاکدیمئ سیاه چال ئی دیستین",
        "nohistory": "ای تاکدیم ایڈیٹ ئی تاریخچه نداریت.",
        "currentrev": "انونین نخسه یی نشان داتین",
        "history-feed-title": "ایڈ\tیٹانئ دپتر یا تاریخچه گ",
        "history-feed-description": "ای تاکدیمی ایڈیٹ ئی تاریخچه بئ ویکی ئی تا",
        "history-feed-item-nocomment": "$1 بی $2",
+       "history-feed-empty": "لۆٹیته بوته ئین دیم موجود نه اینت.\nممکن اینت که شه ویکی ئی تا پاک بوته بیئت یا که نامی تغیر بوته.\nنوکین تاکدیمانا په مربوتین موریدان بئ ای ویکی ئی تا [[Special:Search|بگردیت]].",
        "rev-deleted-comment": "(ایڈیٹ ئی خلاصه پاک بوت)",
        "rev-deleted-user": "(کار زوروکین نام پاک بوت)",
        "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-deleted-text-view": "ای ایڈیٹ شه ای تاکدیما '''پاک بوته'''.\nشما توانیت آیرا بگیندیت؛ ممکن اینت آیی مربوتین مئلوماتانا بئ [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} پاک بوته ئین سیاه چال ] تا ودئ بکنیت.",
        "rev-delundel": "نمایش/نهفتن",
        "rev-showdeleted": "نشان داتین",
        "stub-threshold-disabled": "غیرفعال",
        "recentchangesdays": "روچانی اندازه گ بئ آخیر ئین تغیراتانئ تا نشان داته بوته انت:",
        "recentchangesdays-max": "حداکثر $1 {{PLURAL:$1|روچ}}",
+       "recentchangescount": "پیش پرزین نشان داته بوته ئین ایڈیٹ ئانی اندازه گ:",
+       "prefs-help-recentchangescount": "ای شامیل آخیرئین تغیرانی،تاکدیمانی تاریخچه ئی و سیاهه ئانی است.",
        "savedprefs": "شمی تنظیمات ذخیره بوتنت.",
        "timezonelegend": "منطقهٔ زمانی:",
        "localtime": "محلی ئن وخت:",
        "right-block": "دیگه کار زوروکانئ بلاک کورتین شه ایڈیٹ ئان",
        "right-blockemail": "دیگه کار زوروکانئ بلاک کورتین شه ایمیل ئی دیم داتین ئا",
        "right-hideuser": "کار زوروکئ بلاک کورتین و چیهر داتین شه عمومی ئی دیدا",
+       "right-ipblock-exempt": "تاسیر نه گیپتین شه آی پی ئین بلاک ئی ، وتکارین یا پاسیله ئین بلاکان",
+       "right-proxyunbannable": "تاسیر نه گیپتین شه وتکارین پروکسی ئی بلاک بوتین ئان",
        "right-unblockself": "وتي دسترسی ئی پاچ کورتین",
        "right-protect": "قُلپ بوته تاکدیمانئ قلپی میزانی تغیر داتین و آوانی ایڈیٹ کورتین",
        "right-editprotected": "ایڈیٹ کورتین قُلپ بوته ئین تاکدیمانی بئ ئنوانئ «{{int:protect-level-sysop}}»",
        "right-importupload": "تاکدیمئ داخل کورتین شه فایلئ اپلوڈ کورتین ئا",
        "right-patrol": "دیگرانئ ایڈیٹانی مارک جتین",
        "right-autopatrol": "اوتوماتیکین مارک وارتین ایڈیٹ ئانی",
+       "right-patrolmarks": "آخیرئین گشت وارته ئین برچسپ ئی دیستین",
+       "right-unwatchedpages": "دیستین آ دیمانی لیستی که پدگیری ئه نه بیئنت",
        "right-mergehistory": "تاکدیمانی تاریخچه ئی ادغام کورتین",
        "right-userrights": "ایڈیٹ کورتین کار زوروکئ موچین اختیارانئ",
        "right-userrights-interwiki": "دیگه ویکی ئی کار زوروکانئ اختیارانی ایڈیٹ کورتین",
        "right-siteadmin": "مئلومات ئین بانکئ قُلپ و یا پاچ کورتین",
        "right-sendemail": "دیم داتین ایمل په دیگه کار زوروکان",
        "right-passwordreset": "پاسوردی نوک تنظیم کورتینی ایمیل",
+       "right-managechangetags": "[[Special:Tags|برچسپ ئانی]] جۆڑ و پاک کورتین مه لوماتین بانکا",
        "newuserlogpage": "کار زوروکئ جوڑ کورتینی سیاه چال",
        "newuserlogpagetext": "ای سیاه چال شه نوکین کار زوروکئ ناما جوڑ بوته.",
        "rightslog": "کار زوروکی اختیارانئ سیاه چال",
        "action-viewmyprivateinfo": "وتئ خصوصین مئلوماتانا بگیندیت",
        "action-editmyprivateinfo": "وتئ خصوصین مئلوماتانا ایڈیٹ بکنیت",
        "action-editcontentmodel": "یک تاکدیمی محتوائین مدل ئی ایڈیٹ کورتین",
+       "action-managechangetags": "تگ ئانی جۆڑ و پاک کورتین شه مه لوماتین بانکا",
        "nchanges": "$1 {{PLURAL:$1|ٹگل|ٹگل}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|شه اخر ئین دیستینا}}",
        "enhancedrc-history": "تاریخچه",
        "ignorewarning": "چشم چیهرداتین شه هشدارا و ذخیره کورتین فایلئ.",
        "ignorewarnings": "چم پوشی شه موچین هشداران",
        "minlength1": "فایلئ نام باید کم شه کم یک حرف بیئت.",
+       "filename-toolong": "پائیل نام نه باید شه ۲۴۰ بایت ئا تچکتیر بیئت.",
+       "badfilename": "پائیل نام بئ «$1» ئا تغییر کورت.",
        "filetype-missing": "ای فایل پدوندی (مثلاً «‎.jpg») نداریت.",
        "empty-file": "فایلی که دیم داته بوت خالی ات.",
        "file-too-large": "فایلی که دیم داتیت بئ حد ٹوو ات.",
        "unknown-error": "یک نا زانتین خطائی رخ دات.",
        "tmp-create-error": "موقتین فایلی جۆڑ کورتین ممکن نه اینت.",
        "tmp-write-error": "خطا بئ موقتین فایلی نیویشتینا.",
+       "windows-nonascii-filename": "ای ویکی پایل ئی ناما گۆ خاسین نۆیسگ ئان پُشتیوانی ئه نه کنت.",
+       "fileexists": "پایل ئی گۆ ای ناما شه دیما موجود اینت، اگه موتمئین {{GENDER:|نه ۆیت}} که لوٹیت ای پایل ئا تغیر ب دهیت، مهربانی بکنیت <strong>[[:$1]]</strong> ئا بگیندیت.\n[[$1|thumb]]",
        "uploadwarning": "بُرز کورتینئ هشدار",
        "savefile": "فایلی ذخیره کورتین",
        "uploaddisabled": "بُرز کورتین غیر پئال اینت.",
        "copyuploaddisabled": "بُرز کورتین شه اینترنیتی ادرسا غیرفعال اینت.",
        "uploaddisabledtext": "فایل ئی بُرز کورتین غیر فعال اینت.",
+       "uploadscriptednamespace": "این اس‌وی‌جی ئی پوشه شامل غیرقانونی ئین  '$1' ئی پزای نام ئا اینت",
+       "uploadinvalidxml": "XML بئ بُرز بوته ئین پایل تا نتوانت تجزیه بیئت.",
+       "uploadvirus": "ای پایل ویروس داریت!\nگیشتیرین مه لومات : $1",
        "upload-source": "فایلی منشا",
        "sourcefilename": "منشائی فایلی نام:",
        "sourceurl": "منشائی ادرس:",
        "upload-options": "بُرز کورتین یا آپلوڈئ اپشن",
        "watchthisupload": "دیستین ای فایلی",
        "upload-success-subj": "بُرز کورتین یا آپلوڈ گو کامیابی ئا انجام بوت",
+       "upload-success-msg": "شمی بُرز کورتین شه [$2] ئا کامیاب ات. توانیت که ای پایل ئا ایدا : [[:{{ns:file}}:$1]] بگیندیت",
        "upload-failure-subj": "بُرز کنوکی پرابلم",
+       "upload-failure-msg": "یک مشکل بئ بُرز کورتینا شه [$2] ئا وجود داشت:\n\n$1",
        "upload-warning-subj": "بُرز کورتینئ هشدار",
        "upload-proto-error": "نادروستین پروتوکول",
        "upload-proto-error-text": "بُرز کورتین شه دوردستا به ادرس ئان که گو <code dir=ltr>http://</code> یا <code dir=ltr>ftp://</code>  ئی شرو بیئنت ضرورت داریت .",
        "backend-fail-stream": "نه توانن $1 ئی فایلا دیم دهین.",
        "backend-fail-backup": "نتنوانن پُشتوانی نخسه یی په $1 فایلا جۆڑ کنن.",
        "backend-fail-notexists": " $1 ئی فایل وجود نداریت.",
+       "backend-fail-hashes": "پایل ئانی هیش ئانی گیپتین په موقایسه ئا ناکام ات.",
        "backend-fail-notsame": "غیر یکرنگی فایل بئ $1 ئی تا وجود نداریت.",
        "backend-fail-invalidpath": "$1 ئی ذخیره کنۆکی مسیر موتبر نه اینت.",
        "backend-fail-delete": "نه توان که $1 ئی فایل پاک کورت.",
        "backend-fail-read": "$1 ئی فایلا نه توان وانت.",
        "backend-fail-create": "نه توانن بئ  $1 ئی فایلی سرا مئلومات نیویشته کنن.",
        "backend-fail-maxsize": "نه توان که  $1 ئی فایلی سرا مئلومات نیویشته کورت چون که شه {{PLURAL:$2|یک بایٹ ئا|$2 بایٹ ئا}} ٹوو اینت.",
+       "backend-fail-readonly": "«$1» پُشتوانی انون په قت بی وانتین ئی هالا اینت . پیش بوته ئین دلیل ایرنگ گوشته بوته: «$2»",
        "backend-fail-connect": "ارتباط گۆ «$1» ئی ذخیره ئی پُشتیوانا برقرار نه بوت.",
        "backend-fail-internal": "نامئلومین خطایی بئ «$1» ئی ذخیره پُشتیوانی تا رخ دات.",
        "lockmanager-notlocked": "نه توان که «$1» ئی قُلپا پاچ کورت؛ چون که قُلپ نه بوته.",
        "uploadstash-refresh": "فایلانئ لڑلیستئ نوک کورتین",
        "invalid-chunk-offset": "قطعه ئی ناموتبرین جابجايی",
        "img-auth-accessdenied": "دسترسی ئی منشا",
+       "img-auth-badtitle": "یک مجازین ئینوانی جۆڑ کورتین ئی امکان شه «$1» ئا وجود نداریت.",
+       "img-auth-nologinnWL": "شما لوگین نه بوته ایت و بئ  «$1» ئی سپیتین لیست ئی تا وێت.",
        "img-auth-nofile": "«$1» ئی فایل موجود نه اینت.",
        "img-auth-isdir": "شما کوشش کورته ئیت که بئ «$1» ئی شاخه ئا دسترسی ودی بکنیت.\nتانا په فایل ئا دسترسی جایز اینت.",
        "img-auth-streaming": "بئ حال جاری کورتینی «$1» ئا.",
        "filedelete-nofile-old": "ارشیف  بوته ئین نخسه شه  '''$1''' گۆ داته بوته ئین مشخصاتان، موجود نه اینت.",
        "filedelete-otherreason": "دیگرین دلیل/اضافی:",
        "filedelete-reason-otherlist": "دیگرین دلیل",
+       "filedelete-reason-dropdown": "*پاک بوتین ئی مشترکین دلیلان\n** کاپی رایٹ پُروشه گ\n** تکرارین پایل",
        "filedelete-edit-reasonlist": "پاک بوتینئ دلیلانئ ایڈیٹ",
        "filedelete-maintenance-title": "نه توانیت فایلا پاک بکنیت",
        "mimesearch": "گشتین بی اساس MIME",
        "wantedpages": "ضرورتین تاکدیمان",
        "wantedpages-badtitle": "نامجازین ئنوانی بی مجموعه نتایج: $1",
        "wantedfiles": "ضرورتین فایلان",
+       "wantedfiletext-nocat-noforeign": "جهلگین پایل ایستیپاده ئه به ینت مگه موجود نه انت.",
        "wantedtemplates": "ضرورتین تراشوانان",
        "mostlinked": "تاکدیمان که گیشتیر شه دیگران بئ آوان لینک داته بوته",
        "mostlinkedcategories": "تهرهان که گیشتیر شه دیگران بئ آوان لینک داته بوته",
        "mostinterwikis": "تاکدیمان گۆ بازین میان ویکی هان",
        "mostrevisions": "تاگدیمان گۆ بازێن نخسه ئان",
        "prefixindex": "موچین تاکدیمان گۆ پدوندی",
+       "prefixindex-namespace": "موچین تاکدیمان گۆ ($1 ئی پزایی ناما)",
        "prefixindex-strip": "دیموندین نوار بئ لیست ئی تا",
        "shortpages": "گونڈ\tین تاکدیمان",
        "longpages": "تچکین تاکدیمان",
        "deadendpagestext": "جهلگین تاکدیمان گۆ هیچگوجام تاکدیما بئ  {{SITENAME}} ئی تا لینک نه دارنت.",
        "protectedpages": "قُلپ بوتگین تاکدیمان",
        "protectedpages-indef": "فقط بی پایانین قُلپ ئان",
+       "protectedpages-cascade": "په قت آبشارین قُلپ هان",
+       "protectedpages-noredirect": "تغیرمسیرانی چیهرداتین",
+       "protectedpagesempty": "بئ انونین وختا هیچ دیمی قُلپ نه بوته.",
        "protectedpages-timestamp": "وختی برچسپ",
        "protectedpages-page": "تاکدیم",
        "protectedpages-expiry": "الاسی وخت",
        "protectedpages-unknown-timestamp": "نامئلوم",
        "protectedpages-unknown-performer": "نادروستئ ئین کار زوروک",
        "protectedtitles": "قُلپ بوته ئین ئنوانان",
+       "protectedtitles-summary": "ای تاکدیم ، لیست ئی شه آ تاکدیمان اینت که شه جۆڑ کورتین ئا قُلپ بوته انت. په قُلپ بوته ئین  ئنوانانی لیستا که شه ایڈیٹ ئا ساتیته بوته انت، بئ ایدا  [[{{#special:ProtectedPages}}|{{int:protectedpages}}]] برویت.",
+       "protectedtitlesempty": "بئ انونین وختا هیچ ئنوانی قُلپ نه بوته گۆ ای پارامیترا.",
        "listusers": "کار زوروکانئ لڑلیست",
        "listusers-editsonly": "فقط آ کار زوروکان که ایڈیٹ کورته انت نشان ب دئ",
        "listusers-creationsort": "مرتب کورتین بئ اساس جۆڑ کورتینی تاریخا",
        "allarticles": "موچین تاکدیمان",
        "allinnamespace": "موچین تاکدیمان ($1 نامی فضا)",
        "allpagessubmit": "برا",
+       "allpagesprefix": "تاکدیمانی نمایش گۆ دیمۆندا:",
+       "allpagesbadtitle": "شمی درخواستین ئنوان ناموتبر،خالی،یا میان زبانین یا میان ویکی ئین ئنوان و یا شه خرابین لینکی است.\nممکن اینت که یک یا چینکه نویسگ داشته بیئت که نتوانن آوانا بئ تاکدیمانی ئنوانانی تا استیپاده کنن.",
        "allpages-bad-ns": "{{SITENAME}} ، «$1» ئی نامی فضا ئا نداریت.",
        "allpages-hide-redirects": "تغیرمسیرانی چیهرداتین",
        "cachedspecial-refresh-now": "دیستین آخرین ئانی.",
        "activeusers-hidesysops": "مدیرانئ چیهرداتین",
        "activeusers-noresult": "هیچ کار زوروکئ ودی نه بوت.",
        "listgrouprights": "کار زوروکین گروپانئ اختیاران",
+       "listgrouprights-key": "* <span class=\"listgrouprights-granted\">داته بوته ئین اختیاران</span>\n* <span class=\"listgrouprights-revoked\">کیپته بوته ئین اختیاران</span>",
        "listgrouprights-group": "گروپ",
        "listgrouprights-rights": "حقوق",
        "listgrouprights-helppage": "Help:گروپانئ حقوق",
        "listgrouprights-removegroup-self-all": "توانیت وتئ حسابا شه موچین گروپان پاک بکنیت",
        "listgrouprights-namespaceprotection-header": "فضای نام ئی محدودیت",
        "listgrouprights-namespaceprotection-namespace": "نامی فضا",
+       "listgrouprights-namespaceprotection-restrictedto": "مجازین هه قوق (هان) په دستکاری ئا",
        "trackingcategories": "ردیابی کنۆکین تهرهان",
        "trackingcategories-msg": "ردیابئ تهر",
        "trackingcategories-name": "پیامی نام",
        "emailpage": "کار زوروکی ایمیل",
        "defemailsubject": "{{SITENAME}} ایمیل شه کار زوروکئ نیمگا «$1»",
        "usermaildisabled": "کار زوروکئ ایمیل غیر پئال اینت",
+       "usermaildisabledtext": "شما نه توانیت ای ویکی تا په دیگه رین کارزوروکان ایمیل دیم دهیت.",
        "noemailtitle": "ایمیل ئی ادرس موجود نه اینت",
        "noemailtext": "ای کار زوروک موتبرین ایمیل ئی مشخص نه کورته.",
        "nowikiemailtext": "ای کار زوروک انتخاب کورته که شه دیگه کار زوروکان په آیی ایمیل مه آینت.",
        "block-log-flags-angry-autoblock": "پیشرفته ئین اتوماتیکین بلاک فعال بوت",
        "block-log-flags-hiddenname": "چیهرین کار زوروکئ نام",
        "ipb_expiry_invalid": "الاسی وخت صحیح نه اینت.",
+       "ipb_expiry_temp": "چیهرین کارزوروکانی دسترسی قه تی کورتین یا بلاک باید همیشگی بیئت .",
+       "ipb_hide_invalid": "ای هیساب ئی سرکوب کورتین امکان نداریت; ای گیشتیر شه {{PLURAL:$1|یک ایڈیٹ|$1 ایڈیٹان}} داریت.",
        "ipb_already_blocked": "«$1» همی انون بسته بوته",
+       "ipb-needreblock": " $1 ئی دسترسی شه دیما بسته بسته بوته . آیا لوٹیت که آیی تنزیماتان تغیر ب دهیت؟",
        "ipb-otherblocks-header": "دیگرین {{PLURAL:$1|بلاک|بلاک ئان}}",
+       "unblock-hideuser": "په ای خاتیرا که ای کار زوروکی هیساب چیهرداته بوته شما ئه نه توانیت آیرا پاچ بکنیت.",
+       "ipb_cant_unblock": "خه تا:  $1 ئی بلاک آی ڈی ودی نه بوت . ممکن اینت که دیمتیرا پاچ بوته بیت.",
        "ip_range_invalid": "ناموتبرین آی پی ئی رینج",
+       "ip_range_toolarge": "بلاک کورتین ئی رینج ٹوُتیر شه /$1 ئا مجاز نه اینت.",
        "proxyblocker": "پروکسی ئی بلاک کنۆک",
+       "ipbnounblockself": "شما په وتی آنبلاک یا پاچ کورتین ئا اجازه نه داریت.",
        "lockdb": "مئلوماتئ بانکی قُلپ کورتین",
        "unlockdb": "مئلوماتئ بانکی قُلپئ پروشتێن",
        "lockconfirm": "هان، من جدآن لوٹین که مئلومانئ بانکا قُلپ کنین.",
        "move-page": "انتقال $1",
        "move-page-legend": "تاکدیمی انتقال",
        "movearticle": "تاکدیمی انتقال:",
+       "movenotallowed": "شما په تاکدیمانی جابجا کورتین ئی اجازه ئا نداریت.",
+       "movenotallowedfile": "شما په پایل ئانی جابجا کورتین ئی اجازه ئا نداریت.",
+       "cant-move-category-page": "شما په تهرئانی تاکدیمانی جابجا کورتین ئا اجازه  نداریت.",
+       "cant-move-to-category-page": "شما په تهری یک دیم په دیگه دیمی جابیجا کورتینا اجازه نداریت.",
        "newtitle": "گۆ نوکین ئنوانا:",
+       "move-watch": "دیستین مخسد و زهی دیمانی",
        "movepagebtn": "تاکدیمی انتقال",
        "pagemovedsub": "جابجایی گۆ کامیابیا بوت",
        "movepage-moved": "'''«$1» بئ «$2» انتقال بوت'''",
        "movepage-moved-redirect": "یک تغیرمسیر جۆڑ بوت.",
+       "movepage-moved-noredirect": "شه تغیرمسیر ئا دیمگیری بوت.",
+       "articleexists": "یک دیمی گۆ ای ناما شه دیما موجود اینت، یا نامی که شما انتخاب کورته ایت موتبر نه اینت.\nمهربانی بکنیت دیگه نامی انتخاب بکنیت.",
        "movetalk": "حبر و گپ ئی دیم جابجا بیئت",
        "move-subpages": "گۆنڈ دیمانی انتقال (تا $1 دیم)",
        "move-talk-subpages": "حبر وگپ ئی گۆنڈ دیمانی انتقال (تا $1 دیما)",
        "movepage-page-exists": "$1 ئی تاکدیم شه دیما موجود اینت ، نه توان که آیرا بئ اوتوماتیکین رقما جایگیر بکنت.",
        "movepage-page-moved": "$1 ئی دیم بئ $2 ئا انتکا بوت.",
+       "movepage-page-unmoved": "$1 ئی دیما نتوان که بئ  $2 ئا جابجا کورت.",
        "movelogpage": "انتقال ئی سیاهه",
        "movelogpagetext": "بئ جهلگا لیستی شه انتقال ئی دیمانی آته.",
        "movesubpage": "{{PLURAL:$1|گۆنڈدیم|گۆنڈدیم هان}}",
        "delete_and_move": "پاک کورتین یا جابیجا",
        "delete_and_move_confirm": "هان،تاکدیم پاک بیئت",
        "delete_and_move_reason": "پاک کورتین  «[[$1]]» جابجایی امکانا",
+       "immobile-source-page": "ای دیم جابیجا ئه نه بیئت.",
+       "immobile-target-page": "انتقال ئی امکان په ای ئنوانا موجود نه اینت.",
+       "move-leave-redirect": "بئ جا ایشتین یک تغیری مسیر ئی",
        "export": "ڈن کورتین  تاکدیمانئ",
        "exportall": "ڈن کورتین موچین تاکدیمانئ",
        "exportcuronly": "فقط انونین نخسه شامل بیئت، نه موچین تاریخچه",
        "import-upload": "اکس ام ال ئی دیتای بُرز کورتین",
        "importlogpage": "ایمپورت لوگ",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|نسخه|نسخه}} وارد بوته",
-       "import-logentry-interwiki": "$1 ئا ترانس ویکی کورت",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|نسخه|نسخه}} داخل بوته شه $2",
        "javascripttest": "جاوا اسکریپتی آزمایش",
        "javascripttest-pagetext-noframework": "ای تاکدیم په جاوا اسکریپتی آزمایشی خاتیرا ایشته بوته.",
        "spamprotectiontitle": "سپم ئانی فیلترینگ",
        "spambot_username": "میدیا ویکی ئی تمیزکاری شه سپم هان",
        "spam_reverting": "بیئرگردینتین آخیرین نخسه ئی که بئ $1 ئا لینک نداریت.",
+       "spam_deleting": "موچین نخسه ئان که گۆ\t  $1 ئا لینک انتت، بئ پاک کورتین حالا",
        "simpleantispam-label": "انتی-سپم ئی چیک .\nای قسمت ئا پُر  '''مه کنیت'''!",
        "pageinfo-title": "مئلومات په «$1» ئا",
        "pageinfo-header-basic": "بُنادین مئلومات",
        "pageinfo-toolboxlink": "تاکدیمئ مئلومات",
        "pageinfo-redirectsto": "تغییر مسیر بی",
        "pageinfo-redirectsto-info": "مئلومات",
+       "pageinfo-contentpage": "هیساب بوته بئ ئنوان مهتوائین دیمی",
        "pageinfo-contentpage-yes": "هان",
        "pageinfo-protect-cascading-yes": "هان",
        "pageinfo-category-info": "تهری مئلومات",
        "pageinfo-category-pages": "تاکدیمانی نمبر",
+       "pageinfo-category-subcats": "گۆنڈ تهرئانی اندازه گ",
        "pageinfo-category-files": "فایلانی اندازگ",
        "markaspatrolleddiff": "گشت وارته ئین ئانی برچسپ جتین",
        "markaspatrolledtext": "بئ دیما گشت وارته ئین ئی برچسپ بجن",
        "markedaspatrolled": "گشت وارته ئی برچسپ جته بوت",
+       "markedaspatrolledtext": "بئ انتخاب بوته ئین نخسه شه  [[:$1]] ئا گشت وارته ئین مارک جه ته بوت.",
+       "rcpatroldisabled": "آخیرئین تغیرائانی مارک جه تین غیرپئال اینت",
        "markedaspatrollederror": "گشت وارته ئی برچسپ جته نه بوت",
+       "markedaspatrollederrortext": "یک نخسه ئی را نشانی بکنیت تا مارک بۆارت.",
+       "markedaspatrollederror-noautopatrol": "شما توانیت وتي تغیرائانه مارک بجنیت.",
+       "markedaspatrollednotify": "ای تغیر بئ $1 سرا مارک وارت.",
        "markedaspatrollederrornotify": "گشت وارته ئی برچسپ جتین ناکام ات.",
        "patrol-log-page": "گشتئ سیاه چال",
+       "patrol-log-header": "ای سیاهه شه گشت وارته ئین ایڈیٹ ئان است.",
        "log-show-hide-patrol": "$1 گشت جنوکین سیاهه",
        "deletedrevision": "$1 قدیمی پاک بوته ئین نخسه ئی است",
        "filedeleteerror-short": "خطا بئ فایلی پاک کورتین: $1",
        "filedeleteerror-long": "بی پدا  پاک کورتین ئی وختا خطا رخ دات:\n\n$1",
        "previousdiff": "→دیمتیرین ئی فرق",
        "nextdiff": "نۆکتیرین ئی فرق ←",
+       "mediawarning": "'''هشدار''': ای فایل ممکن اینت که شه خراب ئین کودئان داشته بئیت .\nگۆ آوانی اجرا کورتین ئا ممکن اینت که بئ شمی کمپیوترا تاوان برسیت.",
+       "thumbsize": "ناهُنی ئین بند ئی اندازه گ:",
        "widthheightpage": "$1×$2، $3 {{PLURAL:$3|تاکدیم|تاکدیم}}",
        "file-info": "فایلئ اندازه گ: $1، نوع  MIME $2",
        "file-info-size": "<span dir=\"ltr\">$1 × $2</span> پیکسل، فایلئ اندازه گ: $3، نوع MIME فایلئ: $4",
        "file-info-size-pages": "<span style=\"direction:ltr\">$1 × $2</span> نقطه، فایلئ حجم: $3، نوع MIME فایل: $4، $5 تاکدیم",
        "file-nohires": "گیشتیرین تفکیک پذیری بئ دسترس ئا نه اینت.",
        "svg-long-desc": "اس‌وی‌جی ئی فایل، گۆ\t ابئاد <span dir=\"ltr\">$1 × $2</span> پیکسل، فایل اندازه گ: $3",
+       "svg-long-error": "SVG ئی فایل ناجایز اینت: $1",
        "show-big-image": "اورجینال ئین فایل",
        "show-big-image-preview": "ای دیم دیست ئی اندازه گ: $1.",
        "show-big-image-other": "دیگرین {{PLURAL:$2|کیفیت|کیفیت‌هان}}: $1.",
        "sunday-at": "یک‌شنبی $1",
        "yesterday-at": "زئ  بی $1",
        "metadata": "فرادیتا",
+       "metadata-expand": "تپسیلی ئین مالوماتی نشان داتین",
+       "metadata-collapse": "تپسیلی ئین مالوماتی چیهرداتین",
        "metadata-fields": "ای پیامی تا اکس ئی میتادیتا نشان داته بوته و وختی که میتادیتا ئی لیست جم بیئت هم نشان داته ئه بیئت . دیگه موارید تانا وختی نشان داته ئه بیئنت که جدول پاچ بیئت.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "گوور، عرض",
        "exif-imagelength": "تَچکي",
        "exif-bitspersample": "نقطه بئ هر جز ئی تا",
+       "exif-compression": "پرینچیتینوکین شیما",
        "exif-photometricinterpretation": "ٹیک ئانی ترکیب",
        "exif-orientation": "نیمگ ، جهت",
+       "exif-samplesperpixel": "اجزائانی اندازه گ",
+       "exif-planarconfiguration": "دیتا ئی آرایش",
+       "exif-ycbcrsubsampling": "جه هل نمونگ نسبت  Y بئ C",
        "exif-ycbcrpositioning": "Y و C موقیعتان",
        "exif-xresolution": "افقی ئین تفکیک پذیری",
        "exif-yresolution": "عمودین تفکیک پذیری",
        "exif-stripoffsets": "اکس ئی دیتای جاگه",
        "exif-rowsperstrip": "ردیپ هانی اندازگ بئ هر نواری تا",
+       "exif-stripbytecounts": "بایت بئ هر پریننچیته بوته ئین نواری تا",
        "exif-jpeginterchangeformat": "جابه‌جایی نسبت بئ JPEG SOI",
        "exif-jpeginterchangeformatlength": "بایٹ  JPEG ئی دیتایی",
        "exif-whitepoint": "سپیتین ٹیکئ رنگینی",
+       "exif-primarychromaticities": "اولویتانی رنگیری",
+       "exif-ycbcrcoefficients": "ماتریس ئی زرایب تبدیل رنگین په زایی",
+       "exif-referenceblackwhite": "سیاه و سپیتین مرجه ئانی اندازهگ",
        "exif-datetime": "فایلی تغیر ئی وخت و تاریخ",
        "exif-imagedescription": "اکسئ ئنوان",
        "exif-make": "کامره ئی جۆڑ کنۆکین شرکت",
        "exif-exifversion": "exif ئی نخسه",
        "exif-flashpixversion": "Flashpix ئی پُشتیوانی بوته ئین نخسه",
        "exif-colorspace": "رنگانئ فضا",
+       "exif-componentsconfiguration": "هریک شه مووله په ئانی مانا",
+       "exif-compressedbitsperpixel": "اکس ئی پشرده ئی هالت",
        "exif-pixelydimension": "اکسئ گۆر",
        "exif-pixelxdimension": "اکسئ بُرزی",
        "exif-usercomment": "کار زوروکئ توضیحات",
+       "exif-relatedsoundfile": "مربوتین توارین پایل",
        "exif-datetimeoriginal": "دیتائانی ودئ بوتین ئی تاریخ و وخت",
        "exif-datetimedigitized": "دیجیتالی بوتین ئی وخت و تاریخ",
+       "exif-subsectime": "تاریخ و وختی کسر سانیه",
+       "exif-subsectimeoriginal": "اسلی ین وختی کسر سانیه",
+       "exif-subsectimedigitized": "دیجیتالین وختی کسر سانیه",
+       "exif-exposuretime": "نوردهگی وخت",
        "exif-exposuretime-format": "$1 ثانیه ($2)",
        "exif-fnumber": "اف ئی نمبر",
        "exif-exposureprogram": "نوردهئ پروگرام",
        "exif-aperturevalue": "دیافراگم آپکس ئی اندازه گ",
        "exif-brightnessvalue": "آپکس روشنائی",
        "exif-exposurebiasvalue": "نوردهئ خطا",
+       "exif-maxaperturevalue": "ڈگاری پراخی هد اکسه ر",
        "exif-subjectdistance": "سوژه ئی فاصله",
+       "exif-meteringmode": "روشنایی سنجیش هالت",
        "exif-lightsource": "نور ئی منشا",
        "exif-flash": "پلاش",
+       "exif-focallength": "ئدسی ئی کانونین پاسیله",
        "exif-subjectarea": "جسم ئی مساحت",
        "exif-flashenergy": "پلاش ئی قدرت",
+       "exif-focalplanexresolution": "تفکیک‌پذیری X کانونی دیم",
+       "exif-focalplaneyresolution": "تفکیک‌پذیری Y کانونین دیم",
+       "exif-focalplaneresolutionunit": "کانونی دیمی تپکیک زورتین ئی واهید",
        "exif-subjectlocation": "سوژه ئی مکان",
+       "exif-exposureindex": "نوردهگی شاخس",
+       "exif-sensingmethod": "هسگری روش",
        "exif-filesource": "فایلئ منشا",
+       "exif-scenetype": "سه هنه ئی ره کم",
+       "exif-customrendered": "سه پاریشی ئی اکس ئی زوهور",
+       "exif-exposuremode": "نوردهگی هالت",
+       "exif-whitebalance": "سپیت ئین رنگی ته هادول (white balance)",
+       "exif-digitalzoomratio": "دیجیتالین نه زیننکی ئی نیسبت",
+       "exif-focallengthin35mmfilm": "کانونین پاسیله په ۳۵ میلی میترین پیلم ئا",
+       "exif-scenecapturetype": "سکن ئی کاپی تور ئی ره قم",
+       "exif-gaincontrol": "سه هنه ئی تنزیم",
        "exif-contrast": "کنتراست",
        "exif-saturation": "رنگئ بَزئ",
        "exif-sharpness": "وضوح",
        "exif-devicesettingdescription": "دستگاه ئی تنظیماتانی شرح",
+       "exif-subjectdistancerange": "سوژه پاسیله مهدوده",
+       "exif-imageuniqueid": "اکس ئی یونیک ئین آی ڈی",
+       "exif-gpsversionid": "جی‌پی‌اس ئی نخسه برچسپ",
+       "exif-gpslatituderef": "جوگراپیایین گۆور شمالی یا جنوبی",
        "exif-gpslatitude": "جوگرافیایی ئین گۆر",
+       "exif-gpslongituderef": "جوگراپیایین تچکی روچ درات یا روچ کپت",
        "exif-gpslongitude": "جوگرافیایی ئین تچکی",
+       "exif-gpsaltituderef": "ارتقائی مرجئهی ٹیک",
        "exif-gpsaltitude": "بُرزئ",
        "exif-gpstimestamp": "جی‌پی‌اس ئی وخت (اتمی ئین سائت)",
+       "exif-gpssatellites": "ایستیپاده بوته ئین ماهواره په اندازه گیری ئا",
+       "exif-gpsstatus": "گیرۆکی وزی ئت",
+       "exif-gpsmeasuremode": "اندازه گیری هالت",
+       "exif-gpsdop": "اندازه گیری ئی د قت",
+       "exif-gpsspeedref": "سورئت ئی یونی\tٹ",
+       "exif-gpsspeed": "جی پی اس ئی گیروکی سور ئه ت",
+       "exif-gpstrackref": "مرجه په هه رکت ئی نیمگا",
+       "exif-gpstrack": "هه رکت ئی نیمگ",
+       "exif-gpsimgdirectionref": "مرجه په اکس ئی نیمگا",
+       "exif-gpsimgdirection": "اکس ئی نیمه گ",
+       "exif-gpsmapdatum": "جیودیستک ئی نخشه برداری ئی مه لومات",
+       "exif-gpsdestlatituderef": "مرجه ئی په جوگراپیایین گۆور مخسدا",
+       "exif-gpsdestlatitude": "جوگراپیایی مخسدی گۆور",
+       "exif-gpsdestlongituderef": "مرجه ئی په جوگراپیایین تچکی مخسدا",
+       "exif-gpsdestlongitude": "مخسه د ئی جوغراپیائی تچکی",
+       "exif-gpsdestbearingref": "مرجه ئی په مخسدی نیمگا",
+       "exif-gpsdestbearing": "مخسدی نیمگ",
+       "exif-gpsdestdistanceref": "مرجه په پاسیله تا مخسدا",
+       "exif-gpsdestdistance": "پاسیله تا مخسه د ئا",
+       "exif-gpsprocessingmethod": "GPS ئی پروسیس ئی میتود ئی نام",
        "exif-gpsareainformation": "جی‌پی‌اس ئی ناحیه ئی نام",
        "exif-gpsdatestamp": "جی پی اس ئی تاریخ",
+       "exif-gpsdifferential": "جی‌پی‌اس کمی ئی تسهی کورتین",
+       "exif-jpegfilecomment": "JPEG ئی فایل ئی توزی ئات",
        "exif-keywords": "کیبورد",
+       "exif-worldregioncreated": "منتیکه شه جهانا که اکس آدا گیپته بوته",
+       "exif-countrycreated": "ملکی نام که اکس آدا گیپته بوته",
+       "exif-countrycodecreated": "ملکی کود که اکس آدا گیپته بوته",
+       "exif-provinceorstatecreated": "ولایت یا ایالت که اکس آد گیپته بوته",
+       "exif-citycreated": "شاری که اکس آدا گیپته بوته",
+       "exif-sublocationcreated": "شاری یک بخش که اکس آدا گیپته بوته",
        "exif-worldregiondest": "جهانئ منطقه نشان داته بوته",
        "exif-countrydest": "مُلک نشان داته بوته",
        "exif-countrycodedest": "مُلکی کود نشان داته بوته",
        "exif-citydest": "شار نشان داته بوته",
        "exif-sublocationdest": "شاری یک بخش نشان داته بوته",
        "exif-objectname": "گۆنڈین ئینوان",
+       "exif-specialinstructions": "خاسین دستورئان",
        "exif-headline": "ئنوان",
+       "exif-credit": "امتیاز يی واوند/پیش داروک",
        "exif-source": "منشا",
+       "exif-editstatus": "اکسی تهریریه ئین وزی ئت",
+       "exif-urgency": "پوریت",
+       "exif-fixtureidentifier": "نشریه ئی ستون ئی نام",
+       "exif-locationdest": "اکس بوته ئین مئل",
+       "exif-locationdestcode": "اکس بوته ئین مئلی کود",
+       "exif-objectcycle": "ای روچی وخت که ای می\tڈیا په آیی بی نه زر گیپته بوته",
+       "exif-contact": "ته ماس ئی مه لومات",
        "exif-writer": "نویسوک",
        "exif-languagecode": "زبان",
        "exif-iimversion": "IIM ئی نخسه",
        "exif-iimcategory": "تهر",
        "exif-iimsupplementalcategory": "تکمیلین تهر ئان",
+       "exif-datetimeexpires": "ایستیپاده شه تاریخ ئا",
        "exif-datetimereleased": "منتشر بوته بی",
+       "exif-originaltransmissionref": "اسلی ئین مئل ئی جابجایی کود",
+       "exif-identifier": "شناسگ",
        "exif-lens": "استفاده بوته ئین لینز",
        "exif-serialnumber": "کامره ئی سریال نمبر",
        "exif-cameraownername": "کامره ئی واوُند",
        "exif-label": "برچسب",
+       "exif-datetimemetadata": "دی\tٹائی آخیرئین تغیرات",
        "exif-nickname": "اکس ئی غیررسمی ئین نام",
        "exif-rating": "امتیاز (شه 5)",
+       "exif-rightscertificate": "هه قوق ئی مدیریت ئی سه ر تیپی کی\tٹ",
        "exif-copyrighted": "کاپی رایٹ ئی وزیئت",
        "exif-copyrightowner": "کاپی رایٹ ئی واوُند",
        "exif-usageterms": "استفاده ئی شرایط",
+       "exif-webstatement": "آنلاین کاپی رایت ئی جار",
+       "exif-originaldocumentid": "یونیک آی ڈی شه اسلین سندئان",
+       "exif-licenseurl": "انترنتی ادرس په کاپی رایٹی جواز ئا",
+       "exif-morepermissionsurl": "جایگزین ئین مالوماتانی جواز ئان",
+       "exif-attributionurl": "پدا ایستیپاده ئی وختا، مهربانی بکنیت لینک به دهیت په",
+       "exif-preferredattributionname": "پدا ایستیپاده ئی وختا، مهربانی بکنیت ائتیبار به دهیت په",
        "exif-pngfilecomment": "PNG ئی فایلی شرح",
        "exif-disclaimer": "تکذیب‌نامه",
        "exif-contentwarning": "محتوایی هشدار",
        "exif-giffilecomment": "GIF ئی فایلی شرح",
        "exif-intellectualgenre": "مورید ئی رقم",
        "exif-subjectnewscode": "موضو ئی کود",
+       "exif-scenecode": "IPTC سکن ئی کوڈ",
+       "exif-event": "هالت ئی که بئ اکس ئی تا نشان داته بوته",
+       "exif-organisationinimage": "نشان داته بوته ئین سازمان",
+       "exif-personinimage": "نشان داته بوته ئین شخس",
+       "exif-originalimageheight": "اکس ئی بُرزی دیم شه بوریتین ئا",
+       "exif-originalimagewidth": "اکس ئی گوور دیم شه بوریتین ئا",
+       "exif-compression-1": "غیرپشورده",
+       "exif-compression-3": "سی‌سی‌آی‌تی‌تی ئی نمبرئانی ۳ گروپ کودگذاری کورتین",
+       "exif-compression-4": "سی‌سی‌آی‌تی‌تی ئی نمبرئانی ۴ گروپ کودگذاری کورتین",
        "exif-copyrighted-true": "کاپی رایت بوت",
+       "exif-copyrighted-false": "کاپی رایٹ ئی وزی ئت ته ئین نه بوته",
        "exif-unknowndate": "نامئلومین تاریخ",
        "exif-orientation-1": "نورمال",
+       "exif-orientation-2": "اوپۆکی ئین پۆشت و دیم بوته ئین",
        "exif-orientation-3": "۱۸۰ درجه چرخ وارته",
+       "exif-orientation-4": "ئۆمودی ئین پۆشت و دیم بوته ئین",
+       "exif-orientation-8": "۹۰° سائتگرد چاوارته",
+       "exif-planarconfiguration-1": "په زورین قالب",
+       "exif-planarconfiguration-2": "دو دیمین پورمت",
+       "exif-colorspace-65535": "تنزیم نه بوته",
        "exif-componentsconfiguration-0": "وجود نداریت",
        "exif-exposureprogram-0": "تئریپ نه بوته",
        "exif-exposureprogram-1": "دستی",
        "exif-exposureprogram-2": "عادی ئین پروگرام",
+       "exif-exposureprogram-3": "دیاپراگم ئی اولویت",
        "exif-exposureprogram-4": "شاتر ئی اولویت",
        "exif-subjectdistance-value": "$1 متر",
        "exif-meteringmode-0": "نامئلوم",
        "exif-lightsource-0": "نامئلوم",
        "exif-lightsource-1": "روچی روشنائی",
        "exif-lightsource-2": "فلورسانت",
+       "exif-lightsource-3": "تنگستن (نور بی گرمی ئا)",
        "exif-lightsource-4": "پلاش",
        "exif-lightsource-9": "جوانین هوا",
        "exif-lightsource-10": "جمری ئین آسمان",
        "exif-lightsource-255": "نور ئی دیگه منشا ئان",
        "exif-flash-fired-0": "پلاش جته نه بوت",
        "exif-flash-fired-1": "گو پلاش جتینا",
+       "exif-flash-return-2": "انئی کاسین روشنایی ودی نه بوت",
+       "exif-flash-return-3": "انئی کاسین روشنایی ودی نه بوت",
+       "exif-flash-mode-1": "اجبارین پلاش جتین",
+       "exif-flash-mode-2": "دیمگیری شه اجبارین پلاش جتین ئا",
+       "exif-flash-mode-3": "اوتوماتیکین هاله ت",
+       "exif-flash-function-1": "پلاش ئی ئملکرد نه داریت",
+       "exif-flash-redeye-1": "چمانی سۆر ئی زیان کورتین",
+       "exif-focalplaneresolutionunit-2": "اینچ",
+       "exif-sensingmethod-1": "ته ریپ نه بوته",
+       "exif-sensingmethod-2": "نائیه ئی رنگین سنسور یک تراشه ئین",
+       "exif-sensingmethod-3": "نائیه ئی رنگین سنسور دو تراشه ئین",
+       "exif-sensingmethod-4": "نائیه ئی رنگین سنسور سه تراشه ئین",
+       "exif-sensingmethod-5": "نائیه ئی رنگین سنسور ترتیب",
+       "exif-filesource-3": "اکاسی دیجیتالین کامره",
+       "exif-scenetype-1": "اکس دیم په دیم اکاسی بوته",
        "exif-customrendered-0": "عادین ظهور",
        "exif-customrendered-1": "سفارشین ظهور",
        "exif-exposuremode-0": "اوتوماتیکین نوردهی",
        "exif-exposuremode-1": "دستئ نور دهی",
        "exif-exposuremode-2": "Auto bracket",
+       "exif-whitebalance-0": "سپیت ئین رنگی ته هادل ئی اوتوماتیکین تنزیم (white balance)",
+       "exif-whitebalance-1": "سپیت ئین رنگی ته هادل ئی دستی ئین تنزیم (white balance)",
        "exif-scenecapturetype-0": "سٹاندارت",
        "exif-scenecapturetype-1": "چم چران",
        "exif-scenecapturetype-2": "پرتره",
        "exif-scenecapturetype-3": "شپئ چم گیند",
        "exif-gaincontrol-0": "هیچ‌گوجام",
+       "exif-gaincontrol-1": "دریاپتی هدی آقلین باز کورتین",
+       "exif-gaincontrol-2": "دریاپتی هدی آکسرین باز کورتین",
+       "exif-gaincontrol-3": "هه دی آقل گیپتی نوکی کم کورتین",
+       "exif-gaincontrol-4": "هه دی اکسر گیپتی نوکی کم کورتین",
        "exif-contrast-0": "نورمال",
        "exif-contrast-1": "نرم",
        "exif-contrast-2": "سک",
        "exif-subjectdistancerange-1": "ماکرو",
        "exif-subjectdistancerange-2": "نزینک گیند",
        "exif-subjectdistancerange-3": "دور گیند",
+       "exif-gpslatitude-n": "جوگراپیایی شمالی گ\tۆور",
+       "exif-gpslatitude-s": "جوگراپیایی جنوبی گ\tۆور",
+       "exif-gpslongitude-e": "جوگراپیایی روچ درات ئی تچکی",
+       "exif-gpslongitude-w": "جوگراپیایی روچ کپت ئی تچکی",
+       "exif-gpsaltitude-above-sealevel": "$1 {{PLURAL:$1|میتر|میتر}} بُرزتیر شه دریابی روگا",
+       "exif-gpsaltitude-below-sealevel": "$1 {{PLURAL:$1|میتر|میتر}} جهلتیر شه دریابی روگا",
+       "exif-gpsstatus-a": "بی اندازه گیری هالا",
+       "exif-gpsstatus-v": "اندازه گ ئی موقایسه گیری",
+       "exif-gpsmeasuremode-2": "دو بوئدین اندازه گیری",
+       "exif-gpsmeasuremode-3": "۳ بوئدین اندازه گیری",
+       "exif-gpsspeed-k": "کیلومیتر بئ سائت تا",
        "exif-gpsspeed-m": "مایل بئ سائت",
        "exif-gpsspeed-n": "گرین",
        "exif-gpsdestdistance-k": "کیلومتر",
        "exif-isospeedratings-overflow": "مزنتیر شه ۶۵۵۳۵",
        "exif-iimcategory-ace": "هنر، فرهنگ و سرگرمی",
        "exif-iimcategory-clj": "جنایت و قانون",
+       "exif-iimcategory-dis": "به لا و پیش آمدئان",
        "exif-iimcategory-fin": "اقتصاد و تجارت",
        "exif-iimcategory-edu": "یادگیپتین",
        "exif-iimcategory-evn": "محیط زیست",
        "exif-iimcategory-hth": "سلامت",
        "exif-iimcategory-hum": "بشر ئی علاقه",
        "exif-iimcategory-lab": "کار",
+       "exif-iimcategory-lif": "زنده گی ره قم و بیکاری وختان",
        "exif-iimcategory-pol": "سیاست",
        "exif-iimcategory-rel": "مذهب و باور",
        "exif-iimcategory-sci": "علم و تخنیک",
        "exif-urgency-normal": "ئادی ($1)",
        "exif-urgency-low": "کم ($1)",
        "exif-urgency-high": "باز ($1)",
+       "exif-urgency-other": "تاریپ بوته ئین اولویت شه ($1) کارزوروک ئی نیمه گا",
        "namespacesall": "موچ",
        "monthsall": "موچ",
        "confirmemail": "ایمیل ادرسی تائید کورتین",
+       "confirmemail_noemail": "شما بئ وتی [[Special:Preferences|کارزوروکی تنزیماتئ ]] دیمی تا موته برین ایمیل ادرس ئی وارد نه کورته ایت.",
+       "confirmemail_send": "پُست‌کورتینن یک تاییدی کود ئی",
+       "confirmemail_sent": "یک تاییدین ایمیل ئی دیم داته بوت.",
+       "confirmemail_needlogin": "په وتي ایمیل ئی تائید بوتین ئا خاتیرا په $1 ئا زه رورت داریت.",
+       "confirmemail_success": "شمی ایمیل ادرس تائید بوته.\n\nهمی انون توانیت که [[Special:UserLogin|سایٹ تا داخل به ئیت]] و شه ویکی ئا لیزت به ریت.",
        "confirmemail_loggedin": "شمی ایمیل ادرس انون تائید بوت.",
        "confirmemail_subject": "شمی ایمیل ادرس ئی تأییدی {{SITENAME}}",
        "confirmemail_body": "یک نپر، احتمالاً که شما وت ، شه $1 ئی آی پی ادرس ئا یک کار زوروکئ حساب گۆ «$2» ئی ناما بئ ای ایمیل ادرس ئی تا بئ  {{SITENAME}} ئی تا جۆڑ کورته است.\n\nپه تأیید کورتین ایشی  که ای حساب واقئاً بئ شما مربوت اینت و هم پئال کورتین {{SITENAME}} ایمیلی امکاناتانی خاتیرا ، جهلگی لینک ئا بئ وتي بروزیر ئی تا پاچ بکنیت:\n\n$3\n\nاگر شما ای کار زوروکین حساب ئا راجستر *نه کورته ئیت*، مهربانی بکنیت جهلگی لینک \nئی پدا بگیرێت تا که ای ایمیل ادرس ئی تایید بند بێت:\n\n$5\n\nای تاییدی ئی کوڈ بئ تاریخ $4 ئا شه بین ئه رۆت.\n</div>",
+       "confirmemail_body_changed": "یک نپر، احتمالاً که شما وت ، شه $1 ئی آی پی ادرس ئا یک کار زوروکئ حساب گۆ «$2» ئی ناما بئ ای ایمیل ادرس ئی تا بئ  {{SITENAME}} ئی تا تغیر داته است.\n\nپه تأیید کورتین ایشی  که ای حساب واقئاً بئ شما مربوت اینت و هم پئال کورتین {{SITENAME}} ایمیلی امکاناتانی خاتیرا ، جهلگی لینک ئا بئ وتي بروزیر ئی تا پاچ بکنیت:\n\n$3\n\nاگر شما ای کار زوروکین حساب ئا راجستر *نه کورته ئیت*، مهربانی بکنیت جهلگی لینک \nئی پدا بگیرێت تا که ای ایمیل ادرس ئی تایید بند بێت:\n\n$5\n\nای تاییدی ئی کوڈ بئ تاریخ $4 ئا شه بین ئه رۆت.",
+       "confirmemail_body_set": "یک نپر، احتمالاً که شما وت ، شه $1 ئی آی پی ادرس ئا یک کار زوروکئ حساب گۆ «$2» ئی ناما بئ ای ایمیل ادرس ئی تا بئ  {{SITENAME}} نشانی ئا تغیر دات.\n\nپه تأیید کورتین ایشی  که ای حساب واقئاً بئ شما مربوت اینت و هم پئال کورتین {{SITENAME}} ایمیلی امکاناتانی خاتیرا ، جهلگی لینک ئا بئ وتي بروزیر ئی تا پاچ بکنیت:\n\n$3\n\nاگر شما ای کار زوروکین حساب ئا راجستر *نه کورته ئیت*، مهربانی بکنیت جهلگی لینک \nئی پدا بگیرێت تا که ای ایمیل ادرس ئی تایید بند بێت:\n\n$5\n\nای تاییدی ئی کوڈ بئ تاریخ $4 ئا شه بین ئه رۆت.",
        "confirmemail_invalidated": "ایمیل ادرس ئی تاییدی لگ بوت",
        "invalidateemail": "ایمیل ادرس ئی لگ کورتین",
+       "scarytranscludedisabled": "[ترانسکلۆدینگ میان ویکی ئی په ئال نه اینت]",
+       "scarytranscludetoolong": "[انترنتی ئین ادرس (URL) شه اندازه ئا تچکتیر ات]",
        "deletedwhileediting": "'''هشدار''': ای دیم پدا شه آیی که شما آیی ایڈیٹ ئا شرو کورته ئیت، پاک بوته!",
+       "confirmrecreate": "کار زوروک [[User:$1|$1]] ([[User talk:$1|گپ و هبر]]) ای مه قاله ئا پد شه آیی که شوما بئ آیی ایڈی\tٹ کورتین ئا شورو کورتیت ای دلیل ئا پاک کورت :\n: ''$2''\nمهربانی بکنیت تائید بکنیت که شوما ئه لو\tٹیت ای مه قاله ئا پدا جۆڑ بکنیت .",
+       "confirmrecreate-noreason": "کار زوروک [[User:$1|$1]] ([[User talk:$1|گپ و هبر]]) ای دیما پد شه شمئ ایڈی\tٹ ئی شرو ئا پاک کورت. مهربانی بکنیت تائید بکنیت که لو\tٹیت ای دیما پدا جۆڑ بکنیت.",
        "recreate": "پدا جۆڑ کورتین",
        "confirm_purge_button": "قبول داشتین",
+       "confirm-purge-top": "ای دیمی چیهرین هاپیزه ئی پاک کورتین ئا تائید ئه کنیت؟",
        "confirm-watch-button": "قبول داشتین",
+       "confirm-watch-top": "ای دیم بئ شمی دیدارلیست ئا ایزاپه بیئت؟",
        "confirm-unwatch-button": "قبول داشتین",
+       "confirm-unwatch-top": "ای دیم شه شمئ دیدارلیست ئا پاک بیئت؟",
        "quotation-marks": "\"$1\"",
        "imgmultipageprev": "&rarr; دیمتیری تاکدیم",
        "imgmultipagenext": "بئدین تاکدیم &larr;",
        "table_pager_prev": "دیمتیرین تاکدیم",
        "table_pager_first": "اولین تاکدیم",
        "table_pager_last": "آخرین تاکدیم",
+       "table_pager_limit": "$1 ئی نشان داتین بئ هر دیمئ تا",
+       "table_pager_limit_label": "مواریدئانی اندازه گ بی هر دیمی تا :",
        "table_pager_limit_submit": "برا",
+       "table_pager_empty": "هیچ نتیجه",
+       "autosumm-blank": "تاکدیما خالی کورت",
+       "autosumm-replace": "تاکدیمی جابجایی گۆ '$1'",
+       "autoredircomment": "جهت یی تغیر بئ [[$1]]",
+       "autosumm-new": "نوکین دیمی گۆ «$1» ئا جۆڑ کورت",
+       "autosumm-newblank": "خالی ئین دیمی جۆڑ بوت",
+       "watchlistedit-normal-title": "دیدارلیست ئی ایڈیٹ کورتین",
+       "watchlistedit-normal-legend": "ئینوانانی پاک کورتین شه دیدارلیست ئا",
+       "watchlistedit-normal-submit": "ئنوانانی پاک کورتین",
+       "watchlistedit-normal-done": "$1 ئینوان شه شمی دیدارلیست ئا پاک  {{PLURAL:$1|بوت|بوتنت}}:",
+       "watchlistedit-raw-title": "واچلیستئ آمگین لیستانی ایڈیٹ",
+       "watchlistedit-raw-legend": "واچلیستئ آمگین لیستانی ایڈیٹ",
        "watchlistedit-raw-titles": "ئنوانان:",
+       "watchlistedit-raw-submit": "واچلیست ئی اپڈیٹ",
        "watchlistedit-raw-done": "شمی دیدارلیست اپڈیٹ بوت.",
        "watchlistedit-raw-added": "$1 ئی ئنوان بئ دیدارلیست ئا ایزاپه {{PLURAL:$1|بوت|بوتنت}}:",
        "watchlistedit-raw-removed": "$1 ئی ئنوان پاک {{PLURAL:$1|بوت|بوتنت}}:",
        "watchlistedit-clear-submit": "دیداری ئانی پاک کورتین (ای دائم اینت!)",
        "watchlistedit-clear-done": "شمی دیدارلیست پاک بوت.",
        "watchlistedit-clear-removed": "$1 ئی ئنوان پاک {{PLURAL:$1|بوت|بوتنت}}:",
+       "watchlistedit-too-many": "بازین دیم ایدا په نمایش ئی خاتیرا موجود انت.",
        "watchlisttools-clear": "دیدارلیست ئی پاک کورتین",
+       "watchlisttools-view": "مربوتین تغیرانی دیستین",
+       "watchlisttools-edit": "دیدارلیست ئی دیستین و ایڈیٹ کورتین",
        "watchlisttools-raw": "واچلیستئ آمگین لیستانی ایڈیٹ",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|گپ و حبر]])",
        "version": "نخسه",
+       "version-extensions": "لچیته گین اپزونه ئان",
        "version-skins": "نصب بوته ئین پوسته ئانی",
        "version-specialpages": "خاصین تاکدیمان",
        "version-parserhooks": "تجزیه گرین چنگک ئان",
+       "version-variables": "موته غیرئان",
        "version-antispam": "دیمگیری شه سپم ئان",
        "version-other": "دیگرین",
+       "version-mediahandlers": "می\tڈیایی بئ دست گیروک ئان",
        "version-hooks": "چنگک ئان",
+       "version-parser-extensiontags": "ایزاپه کنوکین تجزیه گر ئی برچسپ",
+       "version-parser-function-hooks": "ئه مل کنوکین تجزیه گرین چنگک",
        "version-hook-name": "چنگک ئی نام",
+       "version-hook-subscribedby": "داخل بوته گ\tۆ",
        "version-no-ext-name": "[بی نام]",
        "version-license": "میڈیاویکی ئی اجازه نامه",
        "version-ext-license": "اجازه نامه ئان",
        "version-ext-colheader-description": "توضیح",
        "version-ext-colheader-credits": "مؤلفان",
        "version-license-title": "مجوز په $1",
+       "version-license-not-found": "ای سند ئی شه جواز ئی مالومات ئا په ای پراخ کن\tۆک ئا ودی نه بوت.",
        "version-credits-title": "کریدیت په $1",
+       "version-credits-not-found": "ای کریدیت ئی شه جواز ئی مالومات ئا په ای پراخ کن\tۆک ئا ودی نه بوت.",
        "version-poweredby-credits": "ای ویکی شه '''[https://www.mediawiki.org/ میڈیا ویکی]''' ئی نیمگا پُشتیوانی ئه بیئت، موچین حقوق محفوظ انت © 2001-$1 $2.",
        "version-poweredby-others": "دیگران",
        "version-poweredby-translators": "translatewiki.net مترجم ئان",
+       "version-credits-summary": "جهلگین کس ئانه په خاتیرایڈی\tٹ بئ  [[Special:Version|میڈیاویکی]] تا ماریپی ئه کنن.",
        "version-software": "لچیته ئین نخسه هان",
        "version-software-product": "محصول",
        "version-software-version": "نخسه",
+       "version-entrypoints": "ورود ئی مئل ئی انترنتی ادرس",
        "version-entrypoints-header-entrypoint": "داخل بوتین ئی ٹیک",
        "version-entrypoints-header-url": "انترننئ ئین ادرس",
        "version-libraries": "نصب بوته ئین کتابخانه",
        "version-libraries-library": "کتابجاه",
        "version-libraries-version": "نخسه",
+       "redirect-legend": "جابجا په یک پایل یا دیم ئی",
        "redirect-submit": "برا",
        "redirect-lookup": "گشتین:",
        "redirect-value": "اندازه گ:",
        "redirect-file": "فایلئ نام",
        "redirect-not-exists": "اندازه گ ودی نه بوت",
        "fileduplicatesearch": "گشتین په تکرارین فایلان",
+       "fileduplicatesearch-summary": "گشتین په تکرارین پایلان بي اساس آوانی درهم بوته اندازه گ ئا سورت ئه گیت.",
        "fileduplicatesearch-legend": "گشتین په تکرارین موریدان",
        "fileduplicatesearch-filename": "فایلئ نام:",
        "fileduplicatesearch-submit": "گشتین",
        "specialpages-group-pages": "تاکدیمانی لڑ\t لیست",
        "specialpages-group-pagetools": "تاکدیمانئ وسایلان",
        "specialpages-group-wiki": "دتا و وسایلان",
+       "specialpages-group-redirects": "مسیر ئی تغیری خاسین تاکدیمان",
        "specialpages-group-spam": "سپم ئی وسایلان",
+       "specialpages-group-developer": "توسه ئه دهوکین وسایلان",
        "blankpage": "خالی ئین دیم",
        "intentionallyblankpage": "این دیم بئ قصدین رقما خالی ایشته بوته.",
        "tags": "مجازین تغیرانئ برچسپ",
        "tags-title": "برچسپ هان",
        "tags-tag": "برچسپئ نام",
        "tags-display-header": "نشان داتین بئ تعیراتانی لیست ئي تا",
+       "tags-description-header": "مانا ئی کامیلین ت\tۆزی",
        "tags-source-header": "بُن زهی",
        "tags-active-header": "پئال؟",
+       "tags-hitcount-header": "تغیرئانی برچسپ",
        "tags-actions-header": "عملکردهان",
        "tags-active-yes": "هان",
        "tags-active-no": "نه",
+       "tags-source-extension": "تاریپ بوته بئ ایزاپه کن\tۆکین پایه ئا",
+       "tags-source-manual": "شه ربات ئانی یا کارزوروکانی نیمه گا دستی آسمال بوته",
+       "tags-source-none": "دیگه ایستیپاده ئه به بیت",
        "tags-edit": "ایڈیٹ",
        "tags-delete": "پاک کورتین",
        "tags-activate": "پئال کورتین",
        "tags-deactivate": "غیرپئال کورتین",
        "tags-hitcount": "$1 {{PLURAL:$1|ٹگل|ٹگل}}",
+       "tags-manage-no-permission": "شما په مدیریت ئی تگ ئی تغیرا اجازه  نداریت.",
+       "tags-create-heading": "نوکین برچسپ ئی ج\tۆر کورتین",
        "tags-create-tag-name": "برچسپئ نام:",
        "tags-create-reason": "دلیل:",
        "tags-create-submit": "جوڑ\t کورتین",
+       "tags-create-no-name": "شما تگی نام باید مشخس بکنیت.",
+       "tags-create-invalid-chars": "تگ‌ئانی نام  نباید که کامه (<code>,</code>) یا مورب خت  (<code>/</code>) داشته بیئنت.",
+       "tags-create-already-exists": "\"$1\" ئی تگ همی انون موجود اینت.",
+       "tags-create-warnings-above": "\"$1\" ئی تگی جۆڑ کورتینی وختا جهگی {{PLURAL:$2|هشدار|هشدارئان}} آته انت:",
+       "tags-create-warnings-below": "آیا لوٹیت که تگ ئی جۆڑ کورتین ئا ایدامه دهیت؟",
+       "tags-delete-title": "تگ ئی پاک کورتین",
+       "tags-delete-explanation-initial": "شما بئ هالی پاک کورتینا «$1» ئی تگی شه مالوماتی بانکا هستیت.",
+       "tags-delete-reason": "دلیل:",
+       "tags-delete-submit": "ای تگ ئا غیرقابیل بیئرگشت پاک کن",
+       "tags-delete-not-found": "«$1» ئی تگ وجود نداریت.",
+       "tags-delete-too-many-uses": "\"$1\" ئی تگ گشتیر شه $2 {{PLURAL:$2|نخسه|نخسه ئانی}} سرا ایئمال بوته و نتوان که آیرا پاک کورت.",
+       "tags-delete-warnings-after-delete": "برچسب \"$1\" ئی تگ پاک بوت ، مه گه گۆ جهلگین  {{PLURAL:$2|خه تا|خه تا ئان}} گۆن ات:",
+       "tags-activate-title": "تگ ئی په ئال کورتین",
+       "tags-activate-question": "شما بئ هالی په هال کورتین  «$1» ئی تگ ویت.",
        "tags-activate-reason": "دلیل:",
+       "tags-activate-not-allowed": "«$1» ئی تگی په هال کورتین ممکن نه اینت.",
+       "tags-activate-not-found": "«$1» ئی تگ وجود نداریت.",
        "tags-activate-submit": "پئال کورتین",
+       "tags-deactivate-title": "تگ ئی غیر په ئال کورتین",
+       "tags-deactivate-question": "شما بئ هالی غیر په هال کورتین  «$1» ئی تگ ویت.",
        "tags-deactivate-reason": "دلیل:",
+       "tags-deactivate-not-allowed": "«$1» ئی تگی غیر په هال کورتین ممکن نه اینت.",
        "tags-deactivate-submit": "غیرپئال کورتین",
        "comparepages": "تاکدیمانئ مقایسه",
        "compare-page1": "تاکدیم ۱",
        "compare-rev1": "نخسه ۱",
        "compare-rev2": "نخسه ۲",
        "compare-submit": "مقایسه",
+       "compare-invalid-title": "ته ئین بوته ئین ئینوان ناموتبر اینت.",
+       "compare-title-not-exists": "مشخص بوته ئین ئینوان موجود نه اینت.",
+       "compare-revision-not-exists": "مشخس بوته پیلتر موجود نه اینت.",
+       "dberr-problems": "ئوزر لوٹن! ای سایٹ شه تخنیکی ئین مشکل ئان رنج ئه وارت.",
+       "dberr-again": "چینکه دقیقه سبر کنیت و پدا ای دیما بارگیری بکینت.",
        "htmlform-float-invalid": "اندازه ئی که داخل کورته یک ئدد ئی نه ئینت.",
        "htmlform-int-toolow": "اندازه ئی که داخل کورته ئیت کمتیر شه $1 ئا است.",
        "htmlform-int-toohigh": "اندازه ئی که داخل کورته ئیت گیشتیر شه $1 ئا اینت.",
        "logentry-upload-upload": "$1 $3 ئا {{GENDER:$2|بُرز کورت}}",
        "logentry-upload-overwrite": "$1 نوکین نخسه ئی شه $3 ئا {{GENDER:$2|بُرز کورت}}",
        "logentry-upload-revert": "$1 {{GENDER:$2|بُرز کورت}} $3 ئا",
+       "log-name-managetags": "تگ ئی تاریخچه ئی مدیریت",
+       "logentry-managetags-create": "$1 تگ «$4» ئا {{GENDER:$2|ج\tۆڑ کورت}}",
        "rightsnone": "(هیچ)",
        "revdelete-summary": "ایڈیتی خاصه",
-       "feedback-subject": "ئنوان:",
-       "feedback-message": "پیام:",
+       "feedback-back": "بیئرگشت",
+       "feedback-bugnew": "دیستونئ . نوکین مشکل ئی راپور دیئ",
        "feedback-cancel": "کنسیل",
+       "feedback-close": "کار بوت",
+       "feedback-external-bug-report-button": "یک تخنیکی ئین کاری پایل",
+       "feedback-dialog-title": "یک پیڈبک ئی دیم داتین",
+       "feedback-error-title": "خطا",
        "feedback-error2": "خطا: پروشت بئ ایڈیٹ ئی تا",
+       "feedback-message": "پیام:",
+       "feedback-subject": "ئنوان:",
+       "feedback-submit": "ثبت کورتین",
        "feedback-thanks": "منتوارن! شمی فیدبک بئ «[$1 $2]» ئی دیمی تا ثبت بوت.",
-       "feedback-close": "کار بوت",
+       "feedback-thanks-title": "منتوارن!",
+       "feedback-useragent": "کارزوروکی آگینت:",
        "searchsuggest-search": "گشتین",
+       "searchsuggest-containing": "شامیلین دیمان...",
+       "api-error-badaccess-groups": "شما اجازه په پایلی ئی بُرز کورتین ئا بئ ای ویکی ای تا نداریت.",
+       "api-error-badtoken": "داخیلی ئین خه تا: امنیتی ئین کوڈ سه ئی نه اینت (Bad token).",
        "api-error-duplicate-popup-title": "تکرارین {{PLURAL:$1|فایل|فایلان}}",
        "api-error-empty-file": "فایلی که دیم داته بوت خالی ات.",
        "api-error-emptypage": "خالی ئین دیمانی جۆڑ کورتین جایز نه اینت.",
        "api-error-mustbeposted": "داخلین خطا: ریکویست باید شه POST HTTP ئی روش ئا دیم داته بیئت.",
        "api-error-unclassified": "یک نا زانتین خطائی رخ دات.",
        "api-error-unknown-code": "نازانتین خطای: \" $1 \"",
+       "api-error-unknown-warning": "نادروستئ ئین ایختار: $1",
+       "api-error-unknownerror": "نادروستئ ئین خه تا: «$1».",
+       "api-error-uploaddisabled": "پایلانی بُرز کورتین بئ ای ویکی تا غیر په هال اینت.",
        "duration-seconds": "$1 ثانیه",
        "duration-minutes": "$1 دقیقه",
        "duration-hours": "$1 سائت",
        "duration-decades": "$1 دههگ",
        "duration-centuries": "$1 قرن",
        "duration-millennia": "{{PLURAL:$1|هزار سال |$1 هزار سال}}",
+       "limitreport-title": "پروپایل ئی دیتا ئی تجزیه گر:",
+       "limitreport-cputime": "سی‌پی‌یو ئی مسرپ وخت",
+       "limitreport-cputime-value": "$1 {{PLURAL:$1|سانیه|سانیه ئان}}",
        "limitreport-walltime": "واقئین مصرفئ مدت",
        "limitreport-walltime-value": "$1 {{PLURAL:$1|ثانیه|ثانیه}}",
        "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|بایٹ|بایٹ}}",
        "pagelang-select-lang": "زبانی انتخاب",
        "right-pagelang": "زبانی تاکدیم ئی تغیر",
        "action-pagelang": "دیمی زبان ئی تغیر",
+       "log-name-pagelang": "لوگ ئی زبان تغیرداتین",
+       "log-description-pagelang": "ای سیاهه زبانانی تغیراتانی دیم اینت.",
+       "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (په ئال)",
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''غیر په ئال''')",
+       "mediastatistics": "میڈیایی سرجم",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 بایٹ}} ($2؛ $3٪)",
        "mediastatistics-table-mimetype": "مایم ئی رکم",
+       "mediastatistics-table-extensions": "موته ئمیلین اپزونه ئان",
+       "mediastatistics-table-count": "فایلانی اندازگ",
        "mediastatistics-table-totalbytes": "ترکیبین حجم",
        "mediastatistics-header-unknown": "نامئلوم",
        "mediastatistics-header-bitmap": "بیت مپ ئی اکسان",
        "mediastatistics-header-office": "آفیس",
        "mediastatistics-header-text": "متنی",
        "mediastatistics-header-executable": "اجرایی",
+       "mediastatistics-header-archive": "پشورده ئین پورمت ئان",
+       "json-warn-trailing-comma": "$1 ئی کاما بئ اخیرا شه جی‌سن ئا {{PLURAL:$1|پاک بوت}}.",
        "json-error-unknown": "مشکلی گو جی‌سن ات. خطا: $1",
        "json-error-state-mismatch": "جن سن جووان نه اینت یا ناقض اینت",
        "json-error-syntax": "نحوی ئین خطا",
        "json-error-inf-or-nan": "INF یا NAN ئی مقادیر یک یا گیشتیر بی مقداری که کدگذاری ئا بیئنت",
-       "json-error-unsupported-type": "یک اندازه که نتوانت کد گذاری بیئت داته بوته"
+       "json-error-unsupported-type": "یک اندازه که نتوانت کد گذاری بیئت داته بوته",
+       "headline-anchor-title": "لینک بئ ای قیسمت ئا"
 }
index 86d2168..22cef7e 100644 (file)
@@ -31,7 +31,7 @@
        "tog-shownumberswatching": "ध्यान रखे वालन सदस्यन के देखावल जाव",
        "tog-oldsig": "वर्तमान हस्ताक्षर:",
        "tog-fancysig": "हस्ताक्षर के विकी पाठ के रुप में उपयोग करीं (बिना स्वचालित कड़ी के)",
-       "tog-uselivepreview": "लाइव पुर्वालोकन के प्रयोग करीं (प्रयोगात्मक)",
+       "tog-uselivepreview": "लाइव पुर्वालोकन के प्रयोग करीं",
        "tog-forceeditsummary": "यदि सम्पादन सारांश ना दिहल होखे त हमके सूचित करब",
        "tog-watchlisthideown": "हमार ध्यान दिहल पन्ना के सूची से हमरा खातिर परिवर्तन छिपाईं",
        "tog-watchlisthidebots": "हमार ध्यान सूची से बोट द्वारा करल गईल परिवर्तन के छिपाईं",
        "otherlanguages": "अन्य भाषा में",
        "redirectedfrom": "($1 द्वारा पुन: निर्देशित)",
        "redirectpagesub": "पुन: निर्देशित पन्ना",
+       "redirectto": "पुनः निर्देशित:",
        "lastmodifiedat": "$1 के $2 पर ई पन्ना पर अन्तिम बार परिवर्तन भईल।",
        "viewcount": "ई पन्ना {{PLURAL:$1|एक|$1}} बार देखल गईल बा।",
        "protectedpage": "सुरक्षित पन्ना",
        "disclaimers": "अस्विकरण",
        "disclaimerpage": "Project:सामान्य अस्विकरण",
        "edithelp": "मदद सम्पादन",
+       "helppage-top-gethelp": "मदद",
        "mainpage": "मुख्य पन्ना",
        "mainpage-description": "मुख्य पन्ना",
        "policy-url": "Project:नीति",
        "viewsourcetext": "रउआ इ पन्ना के स्त्रोत देख सकत बानी आ एकर नकल उतार सकत बानी:",
        "viewyourtext": "रउआ इ पन्ना में ''आपन सम्पादन'' के स्रोत देख सकत बानी आ ओकर नकल उतार सकत बानी:",
        "protectedinterface": "इ पन्ना इ विकी के सॉफ़्टवेयर के इंटरफ़ेस पाठ्य के देवेला, आ इ के गलत प्रयोग से बचावे खातिर सुरक्षित कर दिहल गइल बा।\nसभन विकियन खातिर अनुवाद जोड़े या बदले खातिर कृपया मीडियाविकि के क्षेत्रीयकरण प्रकल्प [//translatewiki.net/ translatewiki.net] के प्रयोग करीं।",
-       "editinginterface": "'''चेतावनी:''' रउआ एगो अइसन पन्ना के बदल रहल बानी जउन सॉफ़्टवेयर के इंटरफ़ेस पाठ्य प्रदान करेला।\nइ पन्ना के बदलला से अन्य सदस्यन के प्रदर्शित इंटरफ़ेस के शक्ल-सूरत में बदलाव आइ।\nसभे विकियन के खातिर अनुवाद बदले या जोड़े खातिर कृपया मीडियाविकि के क्षेत्रीयकरण परियोजना [//translatewiki.net/wiki/Main_Page?setlang=hi translatewiki.net] के प्रयोग करीं।",
+       "editinginterface": "<strong>चेतावनी:</strong> आप एगो अइसन पन्ना के बदल बदल रहल बानी जवन सॉफ़्टवेयर के इंटरफ़ेस पाठ प्रदान करेला। इ पृष्ठ के बदले से अन्य सदस्यवन के प्रदर्शित इंटरफ़ेस के शक्लोसूरत में बदलाव आई।",
        "cascadeprotected": "इ पन्ना पर सम्पादन करे के अधिकार खत्म कर दिहल गइल बा काहे कि इ निम्न में शामिल बा {{PLURAL:$1|पन्ना, जउन|पन्नां, जउन}} \"व्यापक\" विकल्प के चालू कइला के साथ सुरक्षित कर दिहल गइल बा:\n$2",
        "namespaceprotected": "रउआ के '''$1''' नामस्थान के पन्नं में सम्पादन करे के अधिकार नइखे दिहल गइल।",
        "customcssprotected": "रउआ के इ CSS पन्ना के संपादित करे के अनुमति नइखे, काहे कि इ में अन्य सदस्यं के व्यक्तिगत सेटिंग्स समाविष्ट बा।",
        "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)",
        "preview": "पूर्वावलोकन",
        "showpreview": "पूर्वावलोकन देखाईं",
        "showdiff": "परिवर्तन देखाईं",
-       "anoneditwarning": "'''चेतावनी:''' रउआ आपन खाता में प्रवेश नईखीं कईले। ई पन्ना के सम्पादन इतिहास पर राउर आई पी पता दर्ज कईल जाई।",
+       "anoneditwarning": "<strong>चेतावनी:</strong> रउआ आपन खाता में प्रवेश नईखीं कईले। यदि रउआ कवनो बदलाव करत बानी त राउर आईपी पता खुलेआम दिखाई दी। यदि रउआ <strong>[$1 लॉग इन]</strong> या <strong>[$2 नया खाता बनायेब]</strong> त, अन्य सुविधावन के साथ राउर सम्पादन के श्रेय राउर सदस्यनाम पर चल जाई।",
        "anonpreviewwarning": "''रउआ खाता में प्रवेश नईखीं भईल। सुरक्षित करेब त ई पन्ना के सम्पादन इतिहास पर राउर आई पी पता दर्ज हो जाई।\"",
        "missingsummary": "'''स्मरणपत्र:'''रउआ एगो सारांश के सम्पादन नईखीं प्रदान कईले। अगर रउआ \"फिर से सुरक्षित करीं\" पर क्लिक करेब, त राउर सम्पादन बिना एगो सारांश के सुरक्षित हो जाई।",
        "missingcommenttext": "कृपया निचे एगो टिप्पणी करीं।",
        "post-expand-template-inclusion-category": "अइसन पृष्ठ जे पर साँचा जोडे के सीमा पार हो गइल बा",
        "cantcreateaccounttitle": "खाता खुल नईखे सकत",
        "revisionasof": "$1 के रुप में संशोधन",
-       "revision-info": "$2 में से $1 के रुप में संशोधन",
+       "revision-info": "{{GENDER:$6|$2}}$7 के द्वारा $1 के संशोधन",
        "previousrevision": "← पुरान संशोधन",
        "nextrevision": "नया संशोधन →",
        "currentrevisionlink": "हाल के संशोधन",
        "history-feed-empty": "अनुरोध करल गईल पन्ना उपलब्ध नईखे। हो सकत बा उ के विकि पर से मिटा दिहल गईल होखे, आ चाहे उ के नाम बदल देवल गईल होखे।\nप्रासंगिक पन्ना के [[Special:Search|विकि पर खोजे के]] कोशिश करत रहीं।",
        "rev-deleted-comment": "(सम्पादन सारांश हटावल गईल)",
        "rev-deleted-user": "(प्रयोगकर्ता के नाम मिटा दिहल गईल बा)",
-       "rev-deleted-event": "(लà¥\89à¤\97 à¤\95ारà¥\8dरवाà¤\88 à¤®à¤¿टा दिहल गईल बा)",
+       "rev-deleted-event": "(लà¥\89à¤\97 à¤µà¤¿à¤µà¤°à¤£ à¤¹टा दिहल गईल बा)",
        "rev-deleted-user-contribs": "[प्रयोगकर्ता नाम आ चाहे आइ पी पता हटा दिहल गईल बा - योगदान से सम्पादन छुप गईल बा]",
        "rev-deleted-text-permission": "ई पन्ना के संशोधन '''मिटा'''' दिहल गईल बा।\nमेटावल जानकारी [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} डिलेशन लॉग] में मिली।",
        "rev-delundel": "दिखाईं/छुपाईं",
        "rev-showdeleted": "देखाईं",
        "revdelete-show-file-submit": "जी",
-       "revdelete-hide-text": "संशोधन पाठ्य छुपाँईं",
+       "revdelete-hide-text": "संशोधन पाठ्य",
        "revdelete-hide-image": "फाइल के सामग्री छुपाँईं",
-       "revdelete-hide-comment": "समà¥\8dपादित à¤¸à¤¾à¤°à¤¾à¤\82श à¤\9bà¥\81पाà¤\81à¤\88à¤\82",
-       "revdelete-hide-user": "समà¥\8dपादà¤\95 à¤\95à¥\87 à¤¸à¤¦à¤¸à¥\8dयनाम/à¤\86à¤\87॰पà¥\80 à¤\9bà¥\81पाà¤\81à¤\88à¤\82",
+       "revdelete-hide-comment": "साराà¤\82श à¤¸à¤®à¥\8dपादन",
+       "revdelete-hide-user": "समà¥\8dपादà¤\95 à¤\95à¥\87 à¤¸à¤¦à¤¸à¥\8dयनाम/à¤\86à¤\87॰पà¥\80 à¤ªà¤¤à¤¾",
        "revdelete-radio-same": "(मत बदलीं)",
-       "revdelete-radio-set": "à¤\9cà¥\80",
-       "revdelete-radio-unset": "ना",
+       "revdelete-radio-set": "à¤\9bà¥\81पल",
+       "revdelete-radio-unset": "दà¥\83शà¥\8dयमान",
        "revdelete-log": "कारण:",
        "revdel-restore": "दूश्यता बदलीं",
        "pagehist": "पन्ना के इतिहास",
        "shown-title": "दिखाईं $1 {{PLURAL:$1|परिणाम}}",
        "viewprevnext": "देखीं ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''इ विकि पर ''[[:$1]]'' नाम से एगो पन्ना उपलब्ध बा'''",
-       "searchmenu-new": "'''इ विकि पर ''[[:$1]]'' नाम से पन्ना बनाईं'''",
+       "searchmenu-new": "<strong> ई विकि पर \"[[:$1]]\" नाम के पन्ना बनाईं !</strong> {{PLURAL:$2|0=|आपके खोज से मिलल पन्ना भी देखीं|खोज परिणाम भी देखीं।}}",
        "searchprofile-articles": "सामग्री पन्ना",
        "searchprofile-images": "मल्टिमीडिया",
        "searchprofile-everything": "सब कुछ",
        "search-section": "(खंड $1)",
        "search-suggest": "का राउर मतलब बा: $1",
        "search-interwiki-caption": "भ्रातृ परियोजना",
-       "search-interwiki-default": "$1 à¤\95े परिणाम:",
+       "search-interwiki-default": "$1 à¤¸े परिणाम:",
        "search-interwiki-more": "(अउर)",
        "search-relatedarticle": "संबंधित",
        "searchrelated": "संबंधित",
        "preferences": "वरीयता",
        "mypreferences": "राउर पसन्द",
        "prefs-edits": "सम्पादन संख्या",
+       "prefsnologintext2": "आपन वरीयता में बदलाव लावे खातिर प्रवेश करीं।",
        "prefs-skin": "त्वचा",
        "skin-preview": "पूर्वावलोकन",
+       "datedefault": "वरीयता नईखे",
        "prefs-user-pages": "सदस्य पन्ना",
        "prefs-personal": "सदस्य प्रोफाईल",
        "prefs-rc": "तुरंत भईल परिवर्तन",
        "fileuploadsummary": "सारांश:",
        "filesource": "स्रोत:",
        "unknown-error": "अज्ञात त्रुटि उत्पन्न हो गईल बा।",
+       "license-header": "लाईसेंसिंग",
        "file-anchor-link": "फ़ाइल",
        "filehist": "पन्ना के इतिहास",
        "filehist-deleteall": "सब मिटाईं",
        "contributions-title": " $1 खातिर प्रयोगकर्ता योगदान",
        "mycontris": "राउर योगदान के सूची",
        "nocontribs": "ई मानदंड से मिलत जुलत कौनो बदलाव ना मिलल।",
-       "uctop": "(शà¥\80रà¥\8dष)",
+       "uctop": "(हाल à¤\95à¥\87)",
        "month": "महिना से (आ उ से पहिले):",
        "year": "साल से (आ उ से पहिले):",
        "sp-contributions-newbies": "खाली नया खाता के योगदान देखीं।",
        "whatlinkshere-next": "{{PLURAL:$1|अगला|अगला $1}}",
        "whatlinkshere-links": "← लिंक",
        "whatlinkshere-hideredirs": "$1 पुन: निर्देशित",
+       "whatlinkshere-hidetrans": "$1 ट्रान्स्क्ल्युजन्स",
        "whatlinkshere-hidelinks": "$1 लिंक",
        "whatlinkshere-hideimages": "$1 फ़ाइल लिंक",
        "whatlinkshere-filters": "फिल्टर",
-       "blockip": "प्रतिबंधित प्रयोगकर्ता",
+       "blockip": "{{GENDER:$1|सदस्य}} अवरोधित करीं",
        "ipboptions": "२ घंटे:2 hours,१ दिन:1 day,३ दिन:3 days,१ हफ्ता:1 week,२ हफ्ते:2 weeks,१ महिना:1 month,३ महिने:3 months,६ महिने:6 months,१ साल:1 year,हमेशा खातिर:infinite",
        "blocklink": "निष्क्रिय",
        "unblocklink": "ताला खोलीं",
        "tooltip-pt-mycontris": "राउर योगदान के सूची",
        "tooltip-pt-login": "रउआ के खाता प्रवेश खातिर प्रोत्साहित करल जा रहल बा, बाकि ई अनिवार्य नईखे",
        "tooltip-pt-logout": "खाता से बाहर",
+       "tooltip-pt-createaccount": "हमनी के सुझाव बा की आप खाता बनाईं आ प्रवेश करीं, परन्तु ई अनिवार्य नईखे",
        "tooltip-ca-talk": "सामग्री पन्ना के बारे में बात-चीत",
        "tooltip-ca-edit": "रउआ ई पन्ना के सम्पादन कर सकत बानी। कृपया पन्ना सुरक्षित करे से पहिले पूर्वावलोकन बटन के इस्तेमाल करीं।",
        "tooltip-ca-addsection": "एगो नया खण्ड शुरु करीं",
        "tooltip-ca-viewsource": "इ पन्ना के संरक्षित कर दिहल गईल बा। रऊआ एकर मूल देख सकत बानी।",
        "tooltip-ca-history": "ई पन्ना के पिछला संशोधन",
        "tooltip-ca-protect": "इ पन्ना के संरक्षित करीं।",
-       "tooltip-ca-unprotect": "à¤\87 à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¸à¤\82रà¤\95à¥\8dषण à¤¹à¤\9fाà¤\88ं।",
+       "tooltip-ca-unprotect": "à¤\88 à¤ªà¤¨à¥\8dना à¤\95à¥\87 à¤¸à¥\81रà¤\95à¥\8dषा à¤¬à¤¦à¤²à¥\80ं।",
        "tooltip-ca-delete": "ई पन्ना मिटाईं",
        "tooltip-ca-move": "ई पन्ना के स्थांतरण करीं",
        "tooltip-ca-watch": "इ पन्ना के आपन ध्यानसूची में डालीं",
        "tooltip-t-whatlinkshere": "अहिजा लिंक होखे वाला सब विकि पन्ना के सूची",
        "tooltip-t-recentchangeslinked": "ई पन्ना से जुड़ल पन्नवन पर तुरंत भईल परिवर्तन",
        "tooltip-feed-atom": "ई पन्ना खातिर अणु फ़ीड",
+       "tooltip-t-contributions": "इ सदस्य के योगदान के सूची",
        "tooltip-t-upload": "फाईल लादीं (अपलोड )",
        "tooltip-t-specialpages": "ख़ाश पन्नवन के सूची",
        "tooltip-t-print": "ई पन्ना के छापे लायक संस्करण।",
        "tooltip-t-permalink": "ई पन्ना के संसोधन खातिर स्थायी लिंक।",
        "tooltip-ca-nstab-main": "सामग्री पन्ना देखीं",
+       "tooltip-ca-nstab-user": "प्रयोगकर्ता पन्ना देखीं",
        "tooltip-ca-nstab-special": "ई एगो ख़ाश पन्ना ह, रउआ ई पन्ना के सम्पादन नईखीं कर सकत",
        "tooltip-ca-nstab-image": "संचिका के पन्ना देखीं",
        "tooltip-ca-nstab-template": "टेम्प्लेट देखीं",
        "tooltip-preview": "आपन द्वारा कियल गइल बदलाव के देखीं, संजोये से पहले ईका इस्तेमाल करीं!",
        "tooltip-rollback": "\"वापिस लीं\" ई पन्ना के पिछ्ला योगदाता के बदलाव एकही चटके मे गायब कर देवेला",
        "tooltip-summary": "एगो संक्षिप्त सारांश दर्ज करीं",
+       "pageinfo-toolboxlink": "जानकारी पन्ना",
        "file-nohires": " उच्च गुणवत्ता उपलब्ध नईखे।",
        "svg-long-desc": "एस वी जी फाईल, नॉमिनल्ली $1 x $2 पिक्सल्स, फाईल के आकार $3",
-       "show-big-image": "पà¥\81रा à¤\97à¥\81णवतà¥\8dता",
+       "show-big-image": "मà¥\82ल à¤«à¤¾à¤\88ल",
        "file-info-gif-looped": "लूप्ड",
        "file-info-gif-frames": "$1 {{PLURAL:$1|फ्रेम}}",
        "file-info-png-looped": "लूप्ड",
        "exif-yresolution": "लम्बवत समाधान",
        "exif-stripoffsets": "चित्र डेटा के स्थिती",
        "exif-jpeginterchangeformatlength": "JPEG डेटा के बाइट",
+       "exif-make": "कैमेरा उत्पादक",
+       "exif-model": "कैमेरा मॉडेल",
+       "exif-software": "प्रयोग करल गईल सॉफ्टवेयर",
+       "exif-datetimeoriginal": "डाटा बनावे के दिनांक अउर समय",
+       "exif-orientation-1": "सामान्य",
        "namespacesall": "सब",
        "monthsall": "सब",
        "confirmemail": "इ-मेल पता कन्फर्म करीं",
        "version-no-ext-name": "[अज्ञात नाम]",
        "specialpages": "ख़ाश पन्ना",
+       "logentry-delete-delete": "$1 द्वारा पन्ना $3 {{GENDER:$2|हटा}} दिहल गईल",
        "revdelete-restricted": "प्रबंधक पर प्रतिबंध लागू",
        "revdelete-unrestricted": "प्रबंधक पर से प्रतिबंध समाप्त",
-       "revdelete-summary": "सारांश संपादन"
+       "revdelete-summary": "सारांश संपादन",
+       "searchsuggest-search": "खोजीं"
 }
index 42d6e0a..3a6b067 100644 (file)
@@ -6,7 +6,8 @@
                        "J Subhi",
                        "Kaganer",
                        "Riemogerz",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Garisi di bawah tautan",
        "delete-toobig": "Tungkaran ngini baisi sabuting sajarah pambabakan nang panjang, labih pada $1 {{PLURAL:$1|ralatan|raralatan}}.\nPahapusan tutungkaran kaini dibatasi hagan mancagah parakaian bakajutan di {{SITENAME}}.",
        "delete-warning-toobig": "Tungkaran ngini baisi halam babakan ganal, labih pada $1 {{PLURAL:$1|ralatan|raralatan}}.\nMahapus ngini kawa mangaruhi databasis oparasi {{SITENAME}};\njalanakan awan ba-a-awas.",
        "rollback": "Gulung bulik babakan",
-       "rollback_short": "Gulung-bulik",
        "rollbacklink": "bulikakan",
        "rollbackfailed": "Guling-bulik luput",
        "cantrollback": "Kada kawa mambalikakan babakan;\npanyumbang tauncit adalah asa-asanya panulis tungkaran ngini.",
        "import-error-create": "Tungkaran \"$1\" kada diumpur karana Pian kada bulih maulah ngini.",
        "importlogpage": "Log impur",
        "importlogpagetext": "Impur administratip matan tutungkaran awan babakan halam matan wiwiki lain.",
-       "import-logentry-upload": "[[$1]] diimpur lung hunggah barakas",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|ralatan|raralatan}}",
-       "import-logentry-interwiki": "ditranswiki $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|ralatan|raralatan}} matan $2",
        "javascripttest": "Mantis JavaScript",
        "javascripttest-pagetext-skins": "Pilih kulit nang cagar Pian cubai:",
        "watchlisttools-edit": "Tiringi wan babak daptar itihan",
        "watchlisttools-raw": "Babak daptar itihan mantah",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|pandir]])",
-       "unknown_extension_tag": "Tag ekstensi kada dipinandui \"$1\"",
        "duplicate-defaultsort": "Paringatan: Sunduk pangurutan baku \"$2\" mangabaikan sunduk pangurutan baku \"$1\" sabalumnya.",
        "version": "Virsi",
        "version-extensions": "Ekstensi tapasang",
        "version-parser-function-hooks": "Kait pungsi parser",
        "version-hook-name": "Ngaran kait",
        "version-hook-subscribedby": "Dilanggani ulih",
-       "version-version": "(Pirsi $1)",
+       "version-version": "($1)",
        "version-license": "Lisansi",
        "version-poweredby-credits": "Wiki ngini disukung ulih '''[https://www.mediawiki.org/ MediaWiki]''', hak salin © 2001-$1 $2.",
        "version-poweredby-others": "lainnya",
        "logentry-newusers-autocreate": "Akun $1 utumatis diulah",
        "rightsnone": "(kadada)",
        "revdelete-summary": "Kasimpulan babakan",
+       "feedback-adding": "Manambahi kitihanbalik ka tungkaran...",
+       "feedback-bugcheck": "Harat! hanyar dipariksa bahwasa ngini lainan salah asa [$1 bug nang dipinandui].",
+       "feedback-bugnew": "Ulun mamariksa. Malapurakan sabuah bug hanyar",
        "feedback-bugornote": "Pabila Pian siap manjalasakan sabuah masalah taknik rinci muhun [lapurakan sabuah bug $1].\nSalain ngitu, Pian kawa mamuruk prmulir nyaman di bawah ngini. Kumintar Pian akan ditambahi ka si tungkaran \"[$3 $2]\", baimbai awan ngaran-pamuruk Pian wan panjalajah nagn Pian puruk.",
-       "feedback-subject": "Parihal:",
-       "feedback-message": "Pasan:",
        "feedback-cancel": "Walangi",
-       "feedback-submit": "Kirimi Kitihanbalik",
-       "feedback-adding": "Manambahi kitihanbalik ka tungkaran...",
+       "feedback-close": "Sudah",
        "feedback-error1": "Kasalahan: kulihan matan API kada-dipinandui",
        "feedback-error2": "Kasalahan: Babakan gagal",
        "feedback-error3": "Kasalahan: Kadada tanggapan matan API",
+       "feedback-message": "Pasan:",
+       "feedback-subject": "Parihal:",
+       "feedback-submit": "Kirim",
        "feedback-thanks": "Tarimakasih! jitihanbalik Pian sudah dipusakan ka si tungkaran \"[$2 $1]\".",
-       "feedback-close": "Sudah",
-       "feedback-bugcheck": "Harat! hanyar dipariksa bahwasa ngini lainan salah asa [$1 bug nang dipinandui].",
-       "feedback-bugnew": "Ulun mamariksa. Malapurakan sabuah bug hanyar",
        "searchsuggest-search": "Gagai",
        "searchsuggest-containing": "isian ...",
        "api-error-missingresult": "Kasalahan intarnal: kada kawa manantuakan napakah panyalinan tuntung.",
index 0b2bd34..596f521 100644 (file)
@@ -45,7 +45,7 @@
        "tog-minordefault": "শুরুতেই সব সম্পাদনাকে অনুল্লেখ্য বলে চিহ্নিত করা হোক",
        "tog-previewontop": "সম্পাদনা বাক্সের আগে প্রাকদর্শন দেখানো হোক",
        "tog-previewonfirst": "প্রথম সম্পাদনার ক্ষেত্রে প্রাকদর্শন দেখানো হোক",
-       "tog-enotifwatchlistpages": "à¦\86মার à¦¨à¦\9cর à¦¤à¦¾à¦²à¦¿à¦\95ায় à¦\86à¦\9bà§\87 à¦\8fমন à¦ªà¦¾à¦¤à¦¾ à¦\85থবা à¦«à¦¾à¦\87লà§\87 à¦ªà¦°à¦¿à¦¬à¦°à§\8dতন à¦¹à¦²à§\87 à¦¤à¦¾ à¦\9cানিয়à§\87 à¦\86মাà¦\95à§\87 à¦\87-মà§\87à¦\87ল à¦\95রà§\8b",
+       "tog-enotifwatchlistpages": "আমার নজর তালিকায় আছে এমন পাতা অথবা ফাইলে পরিবর্তন হলে আমাকে ই-মেইল করো",
        "tog-enotifusertalkpages": "আমার ব্যবহারকারী আলোচনা পাতার পরিবর্তন হলে আমাকে ই-মেইল করা হোক",
        "tog-enotifminoredits": "পাতা এবং ফাইলগুলোতে অনুল্লেখ্য সম্পাদনার জন্যও আমাকে ই-মেইল করা হোক",
        "tog-enotifrevealaddr": "বিজ্ঞপ্তি মেইলে আমার ই-মেইল ঠিকানা প্রকাশ করা হোক",
        "qbedit": "সম্পাদনা",
        "qbpageoptions": "এই পাতা",
        "qbmyoptions": "আমার পাতাসমূহ",
-       "faq": "সমà§\8dভাবà§\8dয à¦ªà§\8dরশà§\8dনসমà§\82হ",
+       "faq": "পà§\8dরাà¦\9cিপà§\8dর",
        "faqpage": "Project:প্রাজিপ্র",
        "actions": "কার্যক্রম",
        "namespaces": "নামস্থান",
        "edit-local": "স্থানীয় বিবরণ সম্পাদনা করুন",
        "create": "তৈরি",
        "create-local": "স্থানীয় বিবরণ যোগ করুন",
-       "editthispage": "সম্পাদনা করুন",
+       "editthispage": "পাতাà¦\9fি à¦¸à¦®à§\8dপাদনা à¦\95রà§\81ন",
        "create-this-page": "পাতাটি তৈরি করো",
        "delete": "অপসারণ",
        "deletethispage": "এই পাতাটি মুছে ফেলুন",
        "viewdeleted_short": "{{PLURAL:$1| টি অপসারিত সম্পাদনা|$1 টি অপসারিত সম্পাদনা}} দেখাও",
        "protect": "সুরক্ষা",
        "protect_change": "পরিবর্তন করুন",
-       "protectthispage": "সà¦\82রà¦\95à§\8dষণ à¦\95রà§\81ন",
+       "protectthispage": "à¦\8fà¦\87 à¦ªà¦¾à¦¤à¦¾à¦\95à§\87 à¦¸à§\81রà¦\95à§\8dষিত à¦\95রà§\8b",
        "unprotect": "সুরক্ষা পরিবর্তন",
        "unprotectthispage": "এই পাতার সুরক্ষা পরিবর্তন করুন",
        "newpage": "নতুন পাতা",
        "talkpagelinktext": "আলোচনা",
        "specialpage": "বিশেষ পাতা",
        "personaltools": "নিজস্ব সরঞ্জামসমূহ",
-       "articlepage": "নিবনà§\8dধ দেখুন",
+       "articlepage": "বিষয়বসà§\8dতà§\81 à¦ªà¦¾à¦¤à¦¾à¦\9fি দেখুন",
        "talk": "আলোচনা",
        "views": "দৃষ্টিকোণ",
        "toolbox": "সরঞ্জাম",
        "disclaimers": "দাবিত্যাগ",
        "disclaimerpage": "Project:সাধারণ দাবিত্যাগ",
        "edithelp": "সম্পাদনা সহায়িকা",
+       "helppage-top-gethelp": "সাহায্য",
        "mainpage": "প্রধান পাতা",
        "mainpage-description": "প্রধান পাতা",
        "policy-url": "Project:নীতিমালা",
        "readonly_lag": "ডাটাবেজ স্বয়ংক্রিয়ভাবে বন্ধ করে দেয়া হয়েছে, যাতে অধীন ডাটাবেজ সার্ভারগুলি প্রধান ডাটাবেজ সার্ভারের অবস্থায় আসতে পারে।",
        "internalerror": "আভ্যন্তরীণ ত্রুটি",
        "internalerror_info": "আভ্যন্তরীণ ত্রুটি: $1",
+       "internalerror-fatal-exception": "\"$1\" ধরনের মারাত্মক ব্যতিক্রম",
        "filecopyerror": "\"$1\" থেকে \"$2\" ফাইল কপি করা যায়নি",
        "filerenameerror": "\"$1\" ফাইলটির নাম বদলে \"$2\" করা সম্ভব হচ্ছে না।",
        "filedeleteerror": "\"$1\" ফাইলটি মুছে ফেলা সম্ভব হচ্ছে না।",
        "missingcommentheader": "'''খেয়াল করুন:''' আপনি এই মন্তব্যের জন্য কোন বিষয়/শিরোনাম দেননি। সংরক্ষণ বোতামে ক্লিক করলে, আপনার এই সম্পাদনা কোন বিষয়/শিরোনাম ছাড়াই সংরক্ষিত হবে।",
        "summary-preview": "সারাংশ প্রাকদর্শন:",
        "subject-preview": "বিষয়/শিরোনাম প্রাকদর্শন:",
+       "previewerrortext": "আপনার পরিবর্তনগুলি প্রাকদর্শন করার চেষ্টা করার সময় একটি ত্রুটি ঘটেছে।",
        "blockedtitle": "ব্যবহারকারীকে বাধা দেয়া হয়েছে",
        "blockedtext": "আপনার ব্যবহারকারী নাম বা আইপি ঠিকানার ঊপর নিষেধাজ্ঞা আরোপিত হয়েছে।\n\n$1 নিষেধাজ্ঞা আরোপ করেছেন। নিষেধের কারণ হিসেবে বলা হয়েছে:''$2''।\n\n* নিষেধাজ্ঞা শুরুর সময়:$8\n* নিষেধাজ্ঞা উঠিয়ে নেয়ার সময়: $6\n* যার উপর নিষেধাজ্ঞা আরোপ করা হয়েছে: $7\n\nআপনি $1 অথবা [[{{MediaWiki:Grouppage-sysop}}|প্রশাসকদের]] কারও সাথে এই নিষেধাজ্ঞা সংক্রান্ত বিষয়ে আলোচনা করতে পারেন।\n\nআপনি '(ব্যবহারকারীকে) ইমেইল করুন' ফিচারটি ব্যবহার করতে পারবেন না। তবে [[Special:Preferences|আপনার পছন্দ তালিকাতে]] যদি একটি বৈধ ই-মেইল ঠিকানা নির্দিষ্ট করা হয়ে থাকে এবং ফিচারটি ব্যবহারে যদি আপনাকে বাধা না দেওয়া হয়ে থাকে, তবে আপনি ফিচারটি ব্যবহার করতে পারবেন।\n\nআপনার বর্তমান আইপি ঠিকানা $3, এবং আপনার নিষেধাজ্ঞা নং হল #$5।\n\nদয়া করে আপনার যেকোন জিজ্ঞাসাতে উপরের সমস্ত বিবরণ অন্তর্ভুক্ত করুন।",
        "autoblockedtext": "আপনার আইপি ঠিকানাকে স্বয়ংক্রিয়ভাবে বাধা দেয়া হয়েছে কারণ একই আইপি ঠিকানার আরেকজন ব্যবহারকারী ব্যবহার করছেন যাকে $1  দ্বারা বাধা দেওয়া হয়েছে।\nবাধাদানের যে কারণ দেয়া হয়েছে:\n\n:''$2''\n\n* বাধা শুরুর সময়: $8\n* বাধা শেষের সময়: $6\n* যাকে বাধা দেওয়ার চেষ্টা করা হয়েছে: $7\n\nআপনি $1-এর সাথে কিংবা অন্য যেকোন [[{{MediaWiki:Grouppage-sysop}}|প্রশাসকের]] সাথে যোগাযোগ করে বাধার ব্যাপারটি আলোচনা করতে পারেন।\n\nলক্ষ্য করুন, যদি আপনি \"এই ব্যবহারকারীকে ই-মেইল করুন\" ফিচারটি ব্যবহার করতে চান, তবে আপনার [[Special:Preferences|পছন্দ]] অপশনে একটি বৈধ ইমেইল ঠিকানা দিতে হবে এবং আপনার সেটি ব্যবহারে কোন বাধা থাকতে পারবে না।\n\nআপনার বর্তমান IP ঠিকানা হচ্ছে $3, এবং যা বাধা দানের আইডি হল $5।\nযেকোন প্রশ্ন করার সময় উপরের সকল তথ্য উল্লেখ করুন।",
        "right-override-export-depth": "৫ম স্তর পর্যন্ত সংযুক্তিসহ একটি পাতা রপ্তানী করুন",
        "right-sendemail": "অন্য ব্যবহারকারীকে ইমেইল পাঠান",
        "right-passwordreset": "পাসওয়ার্ড রিসেট ইমেইল দেখুন",
+       "right-managechangetags": "ডাটাবেস থেকে [[Special:Tags|ট্যাগ]] তৈরি ও অপসারণ করুন",
        "newuserlogpage": "ব্যবহারকারী সৃষ্টির লগ",
        "newuserlogpagetext": "এটি নতুন ব্যবহারকারী সৃষ্টির লগ",
        "rightslog": "ব্যবহারকারীর অধিকার লগ",
        "action-viewmywatchlist": "আপনার নজরতালিকা দেখুন",
        "action-viewmyprivateinfo": "আপনার ব্যক্তিগত তথ্য দেখুন",
        "action-editmyprivateinfo": "আপনার ব্যক্তিগত তথ্য সম্পাদনা করুন",
+       "action-managechangetags": "ডাটাবেস থেকে ট্যাগ তৈরি ও অপসারণ করুন",
        "nchanges": "$1টি {{PLURAL:$1|পরিবর্তন}}",
        "enhancedrc-since-last-visit": "{{PLURAL:$1|সর্বশেষ প্রদর্শনের পর}} $1টি",
        "enhancedrc-history": "ইতিহাস",
        "listduplicatedfiles": "সদৃশ ফাইলের তালিকা",
        "listduplicatedfiles-summary": "এটি ফাইলসমূহের একটি তালিকা যেখানে একটি ফাইলের সাম্প্রতিকতম সংস্করণ অন্য আরেকটি ফাইলের সাম্প্রতিকতম সংস্করণের প্রতিলিপি। শুধু স্থানীয় ফাইল বিবেচনা করা হয়েছে।",
        "listduplicatedfiles-entry": "[[:File:$1|$1]]-এর [[$3|{{PLURAL:$2|একটি প্রতিলিপি|$2টি প্রতিলিপি}}]] রয়েছে।",
-       "unusedtemplates": "à¦\85বà§\8dযবহà§\83ত à¦\9fà§\87মপà§\8dলà§\87à¦\9fà¦\97à§\81লি",
+       "unusedtemplates": "à¦\85বà§\8dযবহà§\83ত à¦\9fà§\87মপà§\8dলà§\87à¦\9fসমà§\82হ",
        "unusedtemplatestext": "{{ns:template}} নামস্থানের যে সমস্ত পাতা অন্য কোন পাতায় অন্তর্ভুক্ত নয়, তাদের সবগুলির তালিকা এই পাতায় দেওয়া হল। টেমপ্লেটগুলি মুছে ফেলার আগে পরীক্ষা করে দেখুন অন্য কোথাও থেকে এগুলিতে সংযোগ আছে কি না।",
        "unusedtemplateswlh": "অন্যান্য সংযোগগুলি",
        "randompage": "অজানা যেকোনো পাতা",
        "pageswithprop-submit": "চলো",
        "pageswithprop-prophidden-long": "দীর্ঘ প্রোপার্টি টেক্সটগুলো লুকানো রয়েছে ($1)",
        "pageswithprop-prophidden-binary": "বাইনারি প্রোপার্টি টেক্সটগুলো লুকানো রয়েছে ($1)",
-       "doubleredirects": "দà§\81à¦\87বার à¦\95রা à¦ªà§\81নরà§\8dনিরà§\8dদà§\87শনাà¦\97à§\81লি",
+       "doubleredirects": "দà§\81à¦\87বার à¦\95রা à¦ªà§\81নরà§\8dনিরà§\8dদà§\87শনাসমà§\82হ",
        "doubleredirectstext": "এই পাতায় এমন পাতাগুলোর তালিকা আছে, যেগুলো অন্য কোন পুনর্নির্দেশনা পাতায় পুনর্নির্দেশিত হয়েছে। প্রতিটি সারিতে প্রথম ও দ্বিতীয় পুনর্নির্দেশনার জন্য সংযোগ আছে এবং দ্বিতীয় পুনর্নির্দেশনাটির লক্ষ্য সংযোগটিও দেওয়া আছে। এই লক্ষ্য সংযোগটিই সাধারণত \"আসল\" লক্ষ্য পাতা, যেটিতে প্রথম পুনর্নির্দেশনাটি থেকে সংযোগ থাকা উচিত।\n<del>কেটে দেওয়া</del> ভুক্তিগুলো ঠিক করা হয়েছে।",
        "double-redirect-fixed-move": "[[$1]] সরিয়ে নেওয়া হয়েছে।\nএটি স্বয়ংক্রিয়ভাবে হালনাগাদ হয়েছে এবং এটি এখন [[$2]] এ পুনঃনির্দেশিত হয়েছে।",
        "double-redirect-fixed-maintenance": "রক্ষণাবেক্ষণ কাজ হিসাবে [[$1]] থেকে [[$2]] এর দ্বিপুনঃর্নিদেশ স্বয়ংক্রিয়ভাবে সংশোধন করা হয়েছে।",
        "wantedcategories": "বাঞ্ছনীয় বিষয়শ্রেণীগুলি",
        "wantedpages": "বাঞ্ছনীয় পাতাগুলি",
        "wantedpages-badtitle": "ফলাফলে ভুল শিরনাম: $1",
-       "wantedfiles": "à¦\86বশà§\8dযিà¦\95 à¦«à¦¾à¦\87লà¦\97à§\81লà§\8b",
+       "wantedfiles": "à¦\86বশà§\8dযিà¦\95 à¦«à¦¾à¦\87লসমà§\82হ",
        "wantedfiletext-cat": "নিচের ফাইলগুলো ব্যবহৃত হচ্ছে কিন্তু এগুলো অপসারিত হয়েছে। অন্যান্য রিপোজিটরী থেকে ব্যবহৃত ফাইলগুলো এভাবে প্রদর্শিত হতে পারে। এই ধরনের কোন ফাইল খুজে পেলে <del>অপসারণ করুন</del>। এছাড়া অপসারিত হয়েছে এমন ছবির সংযোগ রয়েছে এমন পাতাসমূহের লিংক পাওয়া যাবে এখানে [[:$1]]।",
        "wantedfiletext-nocat": "নিচের ফাইলগুলো ব্যবহৃত হচ্ছে কিন্তু এগুলো অপসারিত হয়েছে। অন্যান্য রিপোজিটরী থেকে ব্যবহৃত ফাইলগুলো এভাবে প্রদর্শিত হতে পারে। এই ধরনের ভূলগুলো শিঘ্রই <del>অপসারিত হবে</del>।",
        "wantedfiletext-nocat-noforeign": "নিম্নলিখিত ফাইলসমূহ ব্যবহৃত হয়েছে কিন্তু এর অস্তিত্ব নেই।",
-       "wantedtemplates": "à¦\86বশà§\8dযিà¦\95 à¦\9fà§\87মà§\8dপলà§\87à¦\9fà¦\97à§\81লà§\8b",
+       "wantedtemplates": "à¦\86বশà§\8dযিà¦\95 à¦\9fà§\87মপà§\8dলà§\87à¦\9fসমà§\82হ",
        "mostlinked": "যেসব পাতার প্রতি সবচেয়ে বেশি সংযোগ আছে",
        "mostlinkedcategories": "যেসব বিষয়শ্রেণীর প্রতি সবচেয়ে বেশি সংযোগ আছে",
        "mostlinkedtemplates": "সবচেয়ে বেশি অন্তর্ভুক্ত পাতা",
        "enotif_body_intro_created": "{{SITENAME}} এর $1 পাতাটি {{gender:$2|$2}} $PAGEEDITDATE তারিখে তৈরী করেছেন, বর্তমান সংস্করণ দেখুন এখানে $3।",
        "enotif_body_intro_moved": "{{SITENAME}} এর $1 পাতাটি {{gender:$2|$2}} $PAGEEDITDATE তারিখে স্থানান্তর করেছেন, বর্তমান সংস্করণ দেখুন এখানে $3।",
        "enotif_body_intro_restored": "{{SITENAME}} এর $1 পাতাটি {{gender:$2|$2}} $PAGEEDITDATE আগের অবস্থায় ফিরিয়ে এনেছেন, বর্তমান সংস্করণ দেখুন এখানে $3।",
-       "enotif_body_intro_changed": "{{SITENAME}} এর $1 পাতাটি {{gender:$2|$2}} $PAGEEDITDATE তারিখে পরিবর্তন করেছেন, বর্তমান সংস্করণ দেখুন এখানে $3।",
+       "enotif_body_intro_changed": "{{SITENAME}} এর $1 পাতাটি $PAGEEDITDATE তারিখে $2 কর্তৃক {{GENDER:$2|পরিবর্তিত}} হয়েছে, বর্তমান সংস্করণের দেখুন $3।",
        "enotif_lastvisited": "আপনার শেষ আগমনের পরে সংঘটিত সমস্ত পরিবর্তনের জন্য $1 দেখুন।",
        "enotif_lastdiff": "এই পরিবর্তনটি দেখার জন্য $1 দেখুন।",
        "enotif_anon_editor": "বেনামী ব্যবহারকারী $1",
-       "enotif_body": "প্রিয় $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nসম্পাদকের সারাংশ: $PAGESUMMARY $PAGEMINOREDIT\n\nসম্পাদকের সাথে যোগাযোগের উপায়:\nইমেইল: $PAGEEDITOR_EMAIL\nউইকি: $PAGEEDITOR_WIKI\n\nপাতাটির পরবর্তী পরিবর্তনগুলো জন্য আর কোন বিজ্ঞপ্তি পাঠানো হবে না, যতক্ষণ না আপনি লগ ইন করার সময় এই পাতায় ব্রাউজ করবেন। এছাড়া আপনি আপনার নজরতালিকায় রাখা সবগুলি পাতা জন্য বিজ্ঞপ্তি ফ্ল্যাগ শুরুর অবস্থায় ফিরিয়ে নিতে পারেন।\n\n{{SITENAME}} নোটিফিকেশন\n\n--\nইমেইল নোটিফিকেশন সেটিং পরিবর্তনের জন্য দেখুন\n{{canonicalurl:{{#special:Preferences}}}}\n\nআপনার নজরতালিকা সেটিংস পরিবর্তন করতে চাইলে দেখুন, \n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nনজরতালিকা থেকে কোন পাতা অপসারণ করতে চাইলে এখানে যান:\n$UNWATCHURL\n\nপ্রতিক্রিয়া জানাতে ও আরও সহযোগিতার জন্য:\n$HELPPAGE",
+       "enotif_body": "প্রিয় $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nসম্পাদকের সারাংশ: $PAGESUMMARY $PAGEMINOREDIT\n\nসম্পাদকের সাথে যোগাযোগের উপায়:\nইমেইল: $PAGEEDITOR_EMAIL\nউইকি: $PAGEEDITOR_WIKI\n\nপাতাটির পরবর্তী পরিবর্তনগুলো জন্য আর কোন বিজ্ঞপ্তি পাঠানো হবে না, যতক্ষণ না আপনি লগ ইন করার সময় এই পাতায় ব্রাউজ করবেন। এছাড়া আপনি আপনার নজরতালিকায় রাখা সবগুলি পাতা জন্য বিজ্ঞপ্তি ফ্ল্যাগ শুরুর অবস্থায় ফিরিয়ে নিতে পারেন।\n\nআপনার বন্ধুত্বপূর্ণ {{SITENAME}} বিজ্ঞপ্তি সিস্টেম\n\n--\nইমেইল বিজ্ঞপ্তি সেটিং পরিবর্তনের জন্য দেখুন\n{{canonicalurl:{{#special:Preferences}}}}\n\nআপনার নজরতালিকা সেটিংস পরিবর্তন করতে চাইলে দেখুন, \n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nনজরতালিকা থেকে কোন পাতা অপসারণ করতে চাইলে এখানে যান:\n$UNWATCHURL\n\nপ্রতিক্রিয়া জানাতে ও আরও সহযোগিতার জন্য:\n$HELPPAGE",
        "created": "তৈরী হয়েছিল",
        "changed": "পরিবর্তিত",
        "deletepage": "পাতাটি মুছে ফেলা হোক",
        "blocklist-timestamp": "সময়বার্তা",
        "blocklist-target": "লক্ষ্য",
        "blocklist-expiry": "মেয়াদোত্তীর্ণ হবে",
-       "blocklist-by": "পà§\8dরশাসà¦\95à¦\95à§\87 à¦¬à¦¾à¦§à¦¾à¦ªà§\8dরদান",
+       "blocklist-by": "বাধাপà§\8dরদানà¦\95ারà§\80 à¦ªà§\8dরশাসà¦\95",
        "blocklist-params": "বাধাদানের প্যারামিটার",
        "blocklist-reason": "কারণ",
        "ipblocklist-submit": "অনুসন্ধান",
        "blocklogpage": "বাধা দানের লগ",
        "blocklog-showlog": "এই ব্যবহারকারীকে পূর্বেও বাধা প্রদান করা হয়েছিলো।\nতথ্যসূত্র হিসেবে তাই পূর্বের বাধাদানের লগটি নিচে প্রদর্শন করা হচ্ছে:",
        "blocklog-showsuppresslog": "এই ব্যবহারকারীকে পূর্বেও বাধা প্রদান ও লুকানো হয়েছিলো।\nতথ্যসূত্র হিসেবে তাই পূর্বের অপসারণ লগটি নিচে প্রদর্শন করা হচ্ছে:",
-       "blocklogentry": "[[$1]]এর উপর $2 $3 মেয়াদের জন্য নিষেধাজ্ঞা আরোপিত হয়েছে।",
+       "blocklogentry": "[[$1]] কে $2 মেয়াদের জন্য বাধাদান করেছেন $3",
        "reblock-logentry": "[[$1]] এর ব্লক সেটিং পরিবর্তন করা হয়েছে যেটি শেষ হবে $2 $3 সময়ে",
        "blocklogtext": "এটি ব্যবহারকারীদেরকে বাধা দানের বা বাধা তুলে নেওয়ার লগ।\nস্বয়ংক্রিয়ভাবে বাধাদানকৃত আইপি ঠিকানাগুলি এখানে তালিকাবদ্ধ করা হয়নি।\nবর্তমানে সক্রিয় নিষিদ্ধকরণ ও বাধাদানের তালিকার জন্য [[Special:BlockList| বাধাদান তালিকা]] দেখুন।",
        "unblocklogentry": "$1-এর উপর বাধা তুলে নেয়া হয়েছে",
        "thumbnail_gd-library": "অসম্পূর্ণ জিডি লাইব্রেরী কনফিগারেশন: $1 ফাংশন নেই",
        "thumbnail_image-missing": "ফাইলটি খুজে পাওয়া যাচ্ছে না: $1",
        "import": "পাতা আমদানি",
-       "importinterwiki": "à¦\86নà§\8dতà¦\83à¦\89à¦\87à¦\95ি à¦\86মদানি",
+       "importinterwiki": "à¦\85নà§\8dয à¦\89à¦\87à¦\95ি à¦¥à§\87à¦\95à§\87 à¦\86মদানà§\80",
        "import-interwiki-text": "আমদানির জন্য একটি উইকি ও পাতার শিরোনাম নির্বাচন করুন।\nসংশোধনের তারিখগুলি এবং সম্পাদকদের নামগুলি সংরক্ষণ করা হবে।\nসমস্ত আন্তঃউইকি আমদানিগুলি [[Special:Log/import|আমদানি লগে]] লিপিবদ্ধ আছে।",
        "import-interwiki-sourcewiki": "উত্স উইকি:",
        "import-interwiki-sourcepage": "উৎস পাতা:",
        "import-rootpage-nosubpage": "মূল পাতার \"$1\" নামস্থানে উপপাতা তৈরী অনুমোদিত নয়।",
        "importlogpage": "আমদানি লগ",
        "importlogpagetext": "প্রশাসক কর্তৃক অন্যান্য উইকি থেকে সম্পাদনা ইতিহাসসহ পাতা আমদানি।",
-       "import-logentry-upload": "ফাইল আপলোডের মাধ্যমে [[$1]] আমদানি করা হয়েছে",
        "import-logentry-upload-detail": "$1টি {{PLURAL:$1|সংশোধন}} আমদানি করা হয়েছে",
-       "import-logentry-interwiki": "$1 উইকি-স্থানান্তরিত",
        "import-logentry-interwiki-detail": "$2-এর থেকে $1টি {{PLURAL:$1|সংশোধন}} করা হয়েছে",
        "javascripttest": "জাভাস্ক্রিপ্ট পরীক্ষা",
        "javascripttest-pagetext-noframework": "এই পাতাটি জাভাস্ক্রিপ্ট পরীক্ষার জন্য সংরক্ষিত।",
        "redirect-revision": "পাতা সংস্করণ",
        "redirect-file": "ফাইলের নাম",
        "redirect-not-exists": "মান পাওয়া যায়নি",
-       "fileduplicatesearch": "ডà§\81পà§\8dলিà¦\95à§\87à¦\9f ফাইলের জন্য অনুসন্ধান",
+       "fileduplicatesearch": "সদà§\83শ ফাইলের জন্য অনুসন্ধান",
        "fileduplicatesearch-summary": "হ্যাশ ভ্যালুর ওর ভিত্তি করে একই ছবিগুলো খুঁজুন।",
        "fileduplicatesearch-legend": "অনুলিপির জন্য অনুসন্ধান",
        "fileduplicatesearch-filename": "ফাইলনাম:",
        "tags-actions-header": "কার্যসমূহ",
        "tags-active-yes": "হ্যাঁ",
        "tags-active-no": "না",
+       "tags-source-none": "আর ব্যবহার করা হচ্ছে না",
        "tags-edit": "সম্পাদনা",
        "tags-delete": "অপসারণ",
+       "tags-activate": "সক্রিয়",
        "tags-deactivate": "নিষ্ক্রিয়",
        "tags-hitcount": "$1টি {{PLURAL:$1|পরিবর্তন}}",
+       "tags-manage-no-permission": "আপনার ট্যাগ পরিবর্তন পরিচালনা করার অনুমতি নেই।",
+       "tags-create-heading": "নতুন ট্যাগ তৈরি করুন",
+       "tags-create-tag-name": "ট্যাগের নাম:",
        "tags-create-reason": "কারণ:",
        "tags-create-submit": "তৈরি করুন",
+       "tags-delete-title": "ট্যাগ অপসারণ",
        "tags-delete-reason": "কারণ:",
+       "tags-delete-submit": "অপরিবর্তনীয় এই ট্যাগ অপসারন করো",
+       "tags-activate-title": "সক্রিয় ট্যাগ",
        "tags-activate-reason": "কারণ:",
        "tags-activate-submit": "চালু",
+       "tags-deactivate-title": "নিষ্ক্রিয় ট্যাগ",
        "tags-deactivate-reason": "কারণ:",
        "tags-deactivate-submit": "নিষ্ক্রিয়",
        "comparepages": "পাতার তুলনা",
        "revdelete-uname-unhid": "ব্যবহারকারী নাম প্রদর্শিত",
        "revdelete-restricted": "এই সীমাবদ্ধতা প্রশাসকের ক্ষেত্রে প্রয়োগ করো",
        "revdelete-unrestricted": "এই সীমাবদ্ধতা প্রশাসকের ক্ষেত্রে তুলে নাও",
+       "logentry-block-block": "$1 {{GENDER:$4|$3}} কে $5 মেয়াদের জন্য {{GENDER:$2|বাধাদান}} করেছেন $6",
        "logentry-move-move": "$1 ব্যবহারকারী $3 পাতাটিকে $4 শিরোনামে {{GENDER:$2|স্থানান্তর}} করেছেন",
        "logentry-move-move-noredirect": "$1 ব্যবহারকারী $3 পাতাটিকে $4 শিরোনামে কোনো পুনর্নির্দেশনা ছাড়াই {{GENDER:$2|স্থানান্তর}} করেছেন",
        "logentry-move-move_redir": "$1 ব্যবহারকারী $3 পাতাটিকে $4 শিরোনামে পুনির্নির্দেশনার মাধ্যমে {{GENDER:$2|স্থানান্তর}} করেছেন",
        "log-name-managetags": "ট্যাগ ব্যবস্থাপনা লগ",
        "rightsnone": "(কিছু নাই)",
        "revdelete-summary": "সম্পাদনা সারাংশ",
+       "feedback-adding": "পাতায় প্রতিক্রিয়া যোগ হচ্ছে...",
+       "feedback-back": "পিছনে",
+       "feedback-bugcheck": "উত্তম! যাচাই করুন যে এই [$1  জানা বাগের] কোন একটি কিনা।",
+       "feedback-bugnew": "আমি যাচাই করেছি। নতুন বাগ নিবন্ধন করুন।",
        "feedback-bugornote": "কারিগরী ত্রুটির বিস্তারিত বর্ণনা জানতে [$1 বাগ রিপোর্ট করুন]।\nঅথবা নিচের এই সরল ফর্মটি ব্যবহার করতে পারেন। \"[$3 $2]\" পাতায় আপনার ব্যবহারকারী নাম সহ মন্তব্যটি প্রকাশিত হবে।",
-       "feedback-subject": "বিষয়:",
-       "feedback-message": "বার্তা:",
        "feedback-cancel": "বাতিল",
-       "feedback-submit": "প্রতিক্রিয়া জমা",
-       "feedback-adding": "পাতায় প্রতিক্রিয়া যোগ হচ্ছে...",
+       "feedback-close": "সম্পন্ন",
+       "feedback-external-bug-report-button": "প্রযুক্তিগত কাজ ফাইল করুন",
+       "feedback-dialog-title": "প্রতিক্রিয়া জমা দিন",
+       "feedback-error-title": "ত্রুটি",
        "feedback-error1": "ত্রুটি: এপিআই হতে অজানা ফলাফল এসেছে",
        "feedback-error2": "ত্রুটি: সম্পাদনা ব্যর্থ",
        "feedback-error3": "ত্রুটি: এপিআই হতে কোন সাড়া নেই",
+       "feedback-message": "বার্তা:",
+       "feedback-subject": "বিষয়:",
+       "feedback-submit": "জমা দাও",
        "feedback-thanks": "ধন্যবাদ! আপনার প্রতিক্রিয়া \"[$2 $1]\" পাতায় পোস্ট করা হয়েছে।",
-       "feedback-close": "সম্পন্ন",
-       "feedback-bugcheck": "উত্তম! যাচাই করুন যে এই [$1  জানা বাগের] কোন একটি কিনা।",
-       "feedback-bugnew": "আমি যাচাই করেছি। নতুন বাগ নিবন্ধন করুন।",
+       "feedback-thanks-title": "আপনাকে ধন্যবাদ!",
+       "feedback-useragent": "ব্যবহারকারী এজেন্ট:",
        "searchsuggest-search": "অনুসন্ধান",
        "searchsuggest-containing": "যা আছে...",
        "api-error-badaccess-groups": "আপনার এই উইকিতে ফাইল আপলোডের অনুমতি নেই।",
        "json-error-ctrl-char": "অক্ষর নিয়ন্ত্রণ ত্রুটি, সম্ভবত ভুল এনকোডকৃত",
        "json-error-syntax": "সিনট্যাক্স ত্রুটি",
        "json-error-utf8": "ত্রুটিপূর্ণ ইউটিএফ-৮ অক্ষর, সম্ভবত ভুল এনকোডকৃত",
-       "json-error-unsupported-type": "এনকোড করা যাবে না এমন একটি মানের ধরন দেয়া হয়েছে"
+       "json-error-unsupported-type": "এনকোড করা যাবে না এমন একটি মানের ধরন দেয়া হয়েছে",
+       "headline-anchor-title": "এই অনুচ্ছেদে সংযোগ"
 }
index 0138d20..f14b841 100644 (file)
        "version-specialpages": "বিশেষ পাতাহানি",
        "version-other": "হের",
        "version-hooks": "কসিগি",
-       "version-version": "(সংস্করণ $1)",
+       "version-version": "($1)",
        "version-license": "লাইসেন্স",
        "version-software": "ইনস্টলঅসে সফটওয়্যার",
        "version-software-product": "পণ্য",
index da14afa..b13ddbc 100644 (file)
@@ -15,7 +15,8 @@
                        "Y-M D",
                        "לערי ריינהארט",
                        "아라",
-                       "Pymouss"
+                       "Pymouss",
+                       "Macofe"
                ]
        },
        "tog-underline": "Liammoù islinennet",
        "delete-warning-toobig": "Bras eo istor ar bajenn-mañ, ouzhpenn {{PLURAL:$1|stumm|stumm}} zo.\nDiverkañ anezhi a c'hallo degas reuz war mont en-dro diaz titouroù {{SITENAME}};\ntaolit evezh bras.",
        "deleteprotected": "Ne c'hallit ket dilemel ar bajenn-mañ rak gwarezet eo bet.",
        "rollback": "disteuler ar c'hemmoù",
-       "rollback_short": "Disteuler",
        "rollbacklink": "disteuler",
        "rollbacklinkcount": "disteurel $1 {{PLURAL:$1|kemm}}",
        "rollbacklinkcount-morethan": "disteurel ouzhpenn $1 {{PLURAL:$1|kemm}}",
        "import-rootpage-nosubpage": "Esaouenn anvioù \"$1\" eus ar bennpajenn ne aotre ket an ispajennoù.",
        "importlogpage": "Log an enporzhiadennoù",
        "importlogpagetext": "Enporzhiadennoù melestradurel eus pajennoù adal wikioù all gant istor ar c'hemmadennoù degaset enno.",
-       "import-logentry-upload": "en/he deus enporzhiet (pellgarget) [[$1]]",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|adweladenn}} enporzhiet",
-       "import-logentry-interwiki": "treuzwikiet $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|adweladenn}} enporzhiet eus $2",
        "javascripttest": "Amprouadenn JavaScript",
-       "javascripttest-title": "Emeur o seveniñ $1 amprouadenn",
        "javascripttest-pagetext-noframework": "Miret eo ar bajenn-mañ evit amprouiñ JavaScript.",
        "javascripttest-pagetext-unknownframework": "Framm amprouiñ \"$1\" dianav.",
        "javascripttest-pagetext-frameworks": "Diuzit unan eus ar frammoù amprouiñ da-heul : $1",
        "javascripttest-pagetext-skins": "Diuzit ar gwiskadur da vezañ implijet evit an amprouadennoù :",
        "javascripttest-qunit-intro": "Sellet ouzh [$1 an teulioù amprouiñ] e mediawiki.org.",
-       "javascripttest-qunit-heading": "Heuliad amprouadennoù QUnit eus JavaScript war MediaWiki",
        "tooltip-pt-userpage": "Ho pajenn implijer",
        "tooltip-pt-anonuserpage": "Ar bajenn implijer evit ar c'homlec'h IP implijet ganeoc'h",
        "tooltip-pt-mytalk": "Ho pajenn gaozeal",
        "logentry-upload-revert": "$1 {{GENDER:$2|en deus|he deus}} ezporzhiet $3",
        "rightsnone": "(netra)",
        "revdelete-summary": "diverradenn eus ar c'hemmoù",
+       "feedback-adding": "Oc'h ouzhpennañ ho soñj war ar bajenn...",
+       "feedback-bugcheck": "Eus ar c'hentañ ! Gwiriit mat n'emañ ket e-touez an [$1 draen diskoachet c'hoazh].",
+       "feedback-bugnew": "Gwiriet em eus. Kemenn un draen nevez",
        "feedback-bugornote": "Ma'z oc'h prest da zeskrivañ ur gudenn deknikel dre ar munud e c'hallit [$1 kemenn un draen].\nA-hend-all e c'hallit ober gant ar furmskrid eeunaet dindan. Ouzhpennet e vo hoc'h evezhiadenn d'ar bajenn \"[$3 $2]\", a-gevret gant hoc'h anv implijer hag anv ar merdeer a rit gantañ.",
-       "feedback-subject": "Danvez :",
-       "feedback-message": "Kemennadenn :",
        "feedback-cancel": "Nullañ",
-       "feedback-submit": "Kas ho soñj",
-       "feedback-adding": "Oc'h ouzhpennañ ho soñj war ar bajenn...",
+       "feedback-close": "Graet",
        "feedback-error1": "Fazi : disoc'h dianav a-berzh an API",
        "feedback-error2": "Fazi : N'eus ket bet gallet degemer ar c'hemmoù",
        "feedback-error3": "Fazi : respont ebet a-berzh an API",
+       "feedback-message": "Kemennadenn :",
+       "feedback-subject": "Danvez :",
+       "feedback-submit": "Kas",
        "feedback-thanks": "Ho trugarekaat ! Postet eo bet hoc'h evezhiadenn d'ar bajenn \"[$2 $1]\".",
-       "feedback-close": "Graet",
-       "feedback-bugcheck": "Eus ar c'hentañ ! Gwiriit mat n'emañ ket e-touez an [$1 draen diskoachet c'hoazh].",
-       "feedback-bugnew": "Gwiriet em eus. Kemenn un draen nevez",
        "searchsuggest-search": "Klask",
        "searchsuggest-containing": "ennañ...",
        "api-error-badaccess-groups": "N'oc'h ket aotreet da enporzhiañ restroù war ar wiki-mañ.",
index 8e2e187..0481bb9 100644 (file)
@@ -18,7 +18,8 @@
                        "Smooth O",
                        "לערי ריינהארט",
                        "아라",
-                       "Milicevic01"
+                       "Milicevic01",
+                       "Macofe"
                ]
        },
        "tog-underline": "Podvuci veze:",
        "import-rootpage-nosubpage": "Imenski prostor \"$1\" osnovne stranice ne dozvoljava podstranice.",
        "importlogpage": "Zapisnik uvoza",
        "importlogpagetext": "Administrativni uvozi stranica sa historijom izmjena sa drugih wikija.",
-       "import-logentry-upload": "uvezena stranica [[$1]] putem postavljanja datoteke",
        "import-logentry-upload-detail": "{{PLURAL:$1|Uvezena jedna revizija|Uvezene $1 revizije|Uvezeno $1 revizija}}",
-       "import-logentry-interwiki": "uveženo (''transwikied'') $1",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|Uvezena $1 revizija|Uvezene $1 revizije|Uvezeno $1 revizija}} od $2",
        "javascripttest": "Testiranje JavaScript-e",
        "javascripttest-pagetext-noframework": "Ova stranica je određena za pokretanje JavaScript testova.",
        "version-parser-function-hooks": "Kuke parserske funkcije",
        "version-hook-name": "Naziv kuke",
        "version-hook-subscribedby": "Pretplaćeno od",
-       "version-version": "(Verzija $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[nema imena]",
        "version-license": "Licenca",
        "version-ext-license": "Licenca",
        "logentry-rights-autopromote": "$1 {{GENDER:$1|je automatski promijenjeno članstvo|su automatski promijenjena članstva}} iz $4 u $5",
        "rightsnone": "(nema)",
        "revdelete-summary": "sažetak",
+       "feedback-adding": "Dodajem povratne informacije na stranicu...",
+       "feedback-bugcheck": "Odlično! Molimo provjerite da se ne radi o nekom [$1 poznatom \"bugu\"].",
+       "feedback-bugnew": "Provjereno. Prijavi novu grešku",
        "feedback-bugornote": "Ako ste spremni detaljno opisati tehnički problem, molimo [$1 prijavite \"bug\" (grešku)].\nInače, možete ispuniti jednostavan obrazac ispod. Vaš komentar bit će dodan na stranicu \"[$3 $2]\" zajedno s Vašim korisničkim imenom.",
-       "feedback-subject": "Tema:",
-       "feedback-message": "Poruka:",
        "feedback-cancel": "Odustani",
-       "feedback-submit": "Pošalji povratnu informaciju",
-       "feedback-adding": "Dodajem povratne informacije na stranicu...",
+       "feedback-close": "Završeno",
        "feedback-error1": "Greška: Neprepoznati rezultat od API",
        "feedback-error2": "Greška: Uređivanje nije uspjelo",
        "feedback-error3": "Greška: Nema odgovora od API",
+       "feedback-message": "Poruka:",
+       "feedback-subject": "Tema:",
+       "feedback-submit": "Pošalji",
        "feedback-thanks": "Hvala! Vaša povratna informacija je postavljena na stranicu „[$2 $1]“.",
-       "feedback-close": "Završeno",
-       "feedback-bugcheck": "Odlično! Molimo provjerite da se ne radi o nekom [$1 poznatom \"bugu\"].",
-       "feedback-bugnew": "Provjereno. Prijavi novu grešku",
        "searchsuggest-search": "Traži",
        "searchsuggest-containing": "sadrži...",
        "api-error-badaccess-groups": "Nemate ovlasti da postavljate datoteke na ovoj wiki.",
index c5d6c7a..c053527 100644 (file)
@@ -46,7 +46,8 @@
                        "ESM",
                        "Loupeter",
                        "Macofe",
-                       "Gerardduenas"
+                       "Gerardduenas",
+                       "Medol"
                ]
        },
        "tog-underline": "Subratlla els enllaços:",
        "disclaimers": "Avís general",
        "disclaimerpage": "Project:Avís general",
        "edithelp": "Ajuda per a l'edició",
+       "helppage-top-gethelp": "Ajuda",
        "mainpage": "Pàgina principal",
        "mainpage-description": "Pàgina principal",
        "policy-url": "Project:Polítiques",
        "pagetitle": "$1 - {{SITENAME}}",
        "pagetitle-view-mainpage": "{{SITENAME}}",
        "backlinksubtitle": "← $1",
-       "retrievedfrom": "Obtingut de \"$1\"",
+       "retrievedfrom": "Obtingut de «$1»",
        "youhavenewmessages": "Tens $1 ($2).",
        "youhavenewmessagesfromusers": "Tens $1 {{PLURAL:$3|d'un altre usuari|de $3 usuaris}} ($2).",
        "youhavenewmessagesmanyusers": "Tens $1 de molts usuaris ($2).",
        "readonly_lag": "La base de dades s'ha bloquejat automàticament mentre els servidors esclaus se sincronitzen amb el mestre",
        "internalerror": "Error intern",
        "internalerror_info": "Error intern: $1",
+       "internalerror-fatal-exception": "Excepció fatal del tipus «$1»",
        "filecopyerror": "No s'ha pogut copiar el fitxer «$1» com «$2».",
        "filerenameerror": "No s'ha pogut reanomenar el fitxer «$1» com «$2».",
        "filedeleteerror": "No s'ha pogut eliminar el fitxer «$1».",
        "ncategories": "$1 {{PLURAL:$1|categoria|categories}}",
        "ninterwikis": "$1 {{PLURAL:$1|interwiki|interwikis}}",
        "nlinks": "$1 {{PLURAL:$1|enllaç|enllaços}}",
-       "nmembers": "$1 {{PLURAL:$1|membre|membres}}",
+       "nmembers": "$1 {{PLURAL:$1|element|elements}}",
        "nmemberschanged": "$1 → $2 {{PLURAL:$2|element|elements}}",
        "nrevisions": "$1 {{PLURAL:$1|revisió|revisions}}",
        "nviews": "$1 {{PLURAL:$1|visita|visites}}",
        "thumbnail_image-missing": "Sembla que falta el fitxer: $1",
        "thumbnail_image-failure-limit": "Hi ha hagut massa intents fallits recents ($1 o més) per dibuixar aquesta miniatura.\nTorneu-ho a provar més endavant.",
        "import": "Importació de pàgines",
-       "importinterwiki": "Importa interwiki",
+       "importinterwiki": "Importa d'un altre wiki",
        "import-interwiki-text": "Trieu un web basat en wiki i un títol de pàgina per a importar.\nEs conservaran les dates de les versions i els noms dels editors.\nTotes les accions d'importació interwiki es conserven al [[Special:Log/import|registre d'importacions]].",
        "import-interwiki-sourcewiki": "Wiki d'origen:",
        "import-interwiki-sourcepage": "Pàgina d'origen:",
        "import-rootpage-nosubpage": "L'espai de noms \"$1\" de la pàgina arrel no permet subpàgines.",
        "importlogpage": "Registre d'importació",
        "importlogpagetext": "Importacions administratives de pàgines amb l'historial des d'altres wikis.",
-       "import-logentry-upload": "ha importat [[$1]] per càrrega de fitxers",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|revisió|revisions}} importades",
-       "import-logentry-interwiki": "s'ha importat $1 via interwiki",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|revisió|revisions}} importades de $2",
        "javascripttest": "Proves de JavaScript",
        "javascripttest-pagetext-noframework": "Es reserva la pàgina per a l'execució de tests amb JavaScript.",
        "version-parser-function-hooks": "Lligams funcionals de l'analitzador",
        "version-hook-name": "Nom del lligam",
        "version-hook-subscribedby": "Subscrit per",
-       "version-version": "(Versió $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[sense nom]",
        "version-license": "Llicència del MediaWiki",
        "version-ext-license": "Llicència",
        "tags-delete-title": "Elimina l'etiqueta",
        "tags-delete-explanation-initial": "Esteu a punt d'eliminar l'etiqueta «$1» de la base de dades.",
        "tags-delete-reason": "Motiu:",
+       "tags-delete-submit": "Suprimeix irreversiblement aquesta etiqueta",
        "tags-delete-not-found": "L'etiqueta «$1» no existeix.",
        "tags-delete-too-many-uses": "L'etiqueta «$1» s'aplica a més {{PLURAL:$2|d'$2 revisió|de $2 revisions}} i, per tant, no pot eliminar-se.",
        "tags-activate-title": "Activa l'etiqueta",
        "tags-activate-not-found": "L'etiqueta «$1» no existeix.",
        "tags-activate-submit": "Activa",
        "tags-deactivate-title": "Desactiva l'etiqueta",
+       "tags-deactivate-question": "Esteu a punt de desactivar l'etiqueta «$1».",
        "tags-deactivate-reason": "Motiu:",
+       "tags-deactivate-not-allowed": "No és possible desactivar l'etiqueta «$1».",
        "tags-deactivate-submit": "Desactiva",
        "comparepages": "Comparar pàgines",
        "compare-page1": "Pàgina 1",
        "log-name-managetags": "Registre de gestió d'etiquetes",
        "rightsnone": "(cap)",
        "revdelete-summary": "el resum d'edició",
+       "feedback-adding": "S'està afegint el comentari a la pàgina...",
+       "feedback-back": "Enrere",
+       "feedback-bugcheck": "Fantàstic! Comproveu que no sigui un dels [$1 problemes ja coneguts].",
+       "feedback-bugnew": "Ja ho he comprovat. Informeu d'un nou problema",
        "feedback-bugornote": "Si podeu descriure un problema tècnic en detall, [$1 informeu-ne].\nAltrament, podeu fer servir un senzill formulari a continuació. El vostre comentari s'afegirà a la pàgina «[$3 $2]», juntament amb el vostre nom d'usuari i el navegador que esteu emprant.",
-       "feedback-subject": "Assumpte:",
-       "feedback-message": "Missatge:",
        "feedback-cancel": "Canceŀla",
-       "feedback-submit": "Envieu la vostra opinió",
-       "feedback-adding": "S'està afegint el comentari a la pàgina...",
+       "feedback-close": "Fet",
+       "feedback-error-title": "Error",
        "feedback-error1": "Error: Resultat de l'API no reconegut",
        "feedback-error2": "Error: Edició fallida",
        "feedback-error3": "Error: No hi ha resposta de l'API",
+       "feedback-message": "Missatge:",
+       "feedback-subject": "Assumpte:",
+       "feedback-submit": "Envia",
        "feedback-thanks": "Gràcies! S'ha publicat la vostra opinió a la pàgina «[$2 $1]».",
-       "feedback-close": "Fet",
-       "feedback-bugcheck": "Fantàstic! Comproveu que no sigui un dels [$1 problemes ja coneguts].",
-       "feedback-bugnew": "Ja ho he comprovat. Informeu d'un nou problema",
+       "feedback-thanks-title": "Gràcies!",
+       "feedback-useragent": "Agent d'usuari:",
        "searchsuggest-search": "Cerca",
        "searchsuggest-containing": "que conté ...",
        "api-error-badaccess-groups": "No teniu permís per a carregar fitxers en aquest wiki.",
        "json-error-utf8": "Caràcters UTF-8 amb errors de format, probablement mal codificats",
        "json-error-recursion": "Una o més referències recursives en el valor per ser codificat",
        "json-error-inf-or-nan": "Un o més valors NAN (número no assignat) o INF (infinit) en el valor per ser codificat",
-       "json-error-unsupported-type": "S'ha donat un valor d'un tipus que no pot ser codificat"
+       "json-error-unsupported-type": "S'ha donat un valor d'un tipus que no pot ser codificat",
+       "headline-anchor-title": "Enllaç a aquesta secció"
 }
index 1b38eb0..41c2ebe 100644 (file)
@@ -18,7 +18,7 @@
        "tog-extendwatchlist": "Шорбина тӀехьажарна могӀам, ша беригге а хийцамаш чубогӀуш, тӀехьаббина боцурш а",
        "tog-usenewrc": "Лелабе дика могӀам керла чу хийцамашна (оьшу JavaScript)",
        "tog-numberheadings": "Ша шех хlитто терахь корташна",
-       "tog-showtoolbar": "Ð\93айÑ\82а Ð»Ð°ÐºÑ\85аÑ\80а Ð³Ó\80иÑ\80Ñ\81ан Ð´Ð°ÐºÑ\8aа Ð½Ð¸Ñ\81йеÑ\88 Ð°Ñ\82Ñ\82он Ð¾Ñ\86 Ñ\82адаÑ\80 Ñ\87оÑ\85Ñ\8c (JavaScript)",
+       "tog-showtoolbar": "Ð\93айÑ\82а Ð»Ð°ÐºÑ\85аÑ\80а Ð³Ó\80иÑ\80Ñ\81ийн Ð¿Ð°Ð½ÐµÐ»Ñ\8c Ñ\82адаÑ\80Ñ\88 Ð´ÐµÑ\87Ñ\83 Ñ\85енаÑ\85Ñ\8c",
        "tog-editondblclick": "Нисъе агӀонаш шозза тӀетаӀийча (JavaScript)",
        "tog-editsectiononrightclick": "Нисде дакъа шозза бакъехьар дахка тӀетаӀийча оцу кортан (JavaScript)",
        "tog-watchcreations": "ТӀетоха ас кхоьллина агӀонаш тергаме могӀам чу",
        "october": "октябрь",
        "november": "ноябрь",
        "december": "декабрь",
-       "january-gen": "январь",
-       "february-gen": "февраль",
-       "march-gen": "март",
-       "april-gen": "апрель",
-       "may-gen": "май",
-       "june-gen": "июнь",
-       "july-gen": "июль",
-       "august-gen": "август",
-       "september-gen": "сентябрь",
-       "october-gen": "октябрь",
-       "november-gen": "ноябрь",
-       "december-gen": "декабрь",
+       "january-gen": "январехь",
+       "february-gen": "февралехь",
+       "march-gen": "мартехь",
+       "april-gen": "апрелехь",
+       "may-gen": "майхь",
+       "june-gen": "июнехь",
+       "july-gen": "июлехь",
+       "august-gen": "августехь",
+       "september-gen": "сентябрехь",
+       "october-gen": "октябрехь",
+       "november-gen": "ноябрехь",
+       "december-gen": "декабрехь",
        "jan": "январь",
        "feb": "февраль",
        "mar": "март",
        "disclaimers": "Бехк тӀецалацар",
        "disclaimerpage": "Project:Бехк тӀецалацар",
        "edithelp": "ГӀо оцу тадарна",
+       "helppage-top-gethelp": "ГӀо",
        "mainpage": "Коьрта агӀо",
        "mainpage-description": "Коьрта агӀо",
        "policy-url": "Project:Бакъо",
        "thisisdeleted": "Хьажа я меттахӀоттае $1?",
        "viewdeleted": "Хьожий $1?",
        "restorelink": "{{PLURAL:$1|1=$1 дӀадаьккхина нийсдар|$1 дӀадяхна нийсдарш}}",
-       "feedlinks": "Ð\9eÑ\86Ñ\83 Ñ\85аÑ\82lаÑ\8cхь:",
+       "feedlinks": "Тайпанехь:",
        "feed-invalid": "Тайпан нийсадоцу талол оцу куьгтаlорна.",
        "feed-unavailable": "Хаитарца йолу асанаш тlекхочучехь яц",
        "site-rss-feed": "$1 — RSS-аса",
        "viewpagelogs": "Гайта хlокху агlонан тептар",
        "nohistory": "ХӀокху агӀона хийцамаш бина хила бац.",
        "currentrev": "Карара верси",
-       "currentrev-asof": "Карара верси оцу $1",
+       "currentrev-asof": "Карара верси $1",
        "revisionasof": "Верси $1",
        "revision-info": "Верси $1; {{GENDER:$6|$2}}$7",
        "previousrevision": "← Хьалха йоьдург",
        "last": "хьалх.",
        "page_first": "хьалхара",
        "page_last": "тlаьххьара",
-       "histlegend": "Ð\9aÑ\85еÑ\82оÑ\80: (Ñ\85Ó\80инÑ\86алеÑ\80а.) â\80\94 Ð¹Ð¾Ð»Ñ\83Ñ\87Ñ\83 Ð±Ð°Ñ\88Ñ\85он ÐºÑ\8aаÑ\81Ñ\82ам; (Ñ\85Ñ\8cалÑ\85.) â\80\94 Ñ\85Ñ\8cалÑ\85леÑ\80ачу башхон къастам; '''ж''' — жимо бозалца болу хийцам.",
+       "histlegend": "Ð\9aÑ\85еÑ\82оÑ\80: (Ñ\85Ó\80инÑ\86алеÑ\80а.) â\80\94 Ð¹Ð¾Ð»Ñ\83Ñ\87Ñ\83 Ð±Ð°Ñ\88Ñ\85он ÐºÑ\8aаÑ\81Ñ\82ам; (Ñ\85Ñ\8cалÑ\85.) â\80\94 Ñ\85Ñ\8cалÑ\85алеÑ\80чу башхон къастам; '''ж''' — жимо бозалца болу хийцам.",
        "history-fieldset-title": "АгӀона хийцамаш",
        "history-show-deleted": "ДӀаяхинарш",
        "histfirst": "ширниш",
        "revdelete-otherreason": "Кхин бахьна/тӀетохар:",
        "revdelete-reasonotherlist": "Кхин бахьна",
        "revdelete-edit-reasonlist": "Бахьанин могӀам нисбар",
-       "revdelete-offender": "Ð\90гÓ\80она Ð²ÐµÑ\80Ñ\81ен автор:",
+       "revdelete-offender": "Ð\90гÓ\80она Ð²ÐµÑ\80Ñ\81ин автор:",
        "suppressionlog": "Хьулдаран тептар",
        "mergehistory": "Нисдарин истори цхьаьнатохар",
        "mergehistory-box": "Шин агӀона нисдарин истори цхьаьнатохар:",
        "searchprofile-articles-tooltip": "$1 чохь лахар",
        "searchprofile-images-tooltip": "Файлаш лахар",
        "searchprofile-everything-tooltip": "Массо агӀонашкахь лахар (дийцаре агӀонашца)",
-       "searchprofile-advanced-tooltip": "Ð\94еÑ\85аÑ\80Ñ\86а Ð¹Ð¾Ð»Ñ\83 Ñ\86Ó\80еÑ\80ийн Ð¼ÐµÑ\82Ñ\82игашкахь лахар",
+       "searchprofile-advanced-tooltip": "Ð\94еÑ\85аÑ\80Ñ\86а Ð¹Ð¾Ð»Ñ\83 Ñ\86Ó\80еÑ\80ийн Ð°Ð½ашкахь лахар",
        "search-result-size": "$1 ({{PLURAL:$2|$2 дош|$2 дешнаш}})",
        "search-result-category-size": "$1 {{PLURAL:$1|юкъаяр}} ($2 {{PLURAL:$2|1=бухара категори|бухара категореш}}, $3 {{PLURAL:$3|1=файл|файлаш}}).",
        "search-redirect": "(дlасахьажийна $1)",
        "search-showingresults": "{{PLURAL:$4|Карийна <strong>$1</strong> — цхьаъ агӀо|И дош карийна <strong>$3</strong> агӀонашкахь, царех гойту $2 агӀо}}",
        "search-nonefound": "Дехаре терра цхьа хӀума ца карийна.",
        "powersearch-legend": "Шуьйра лахар",
-       "powersearch-ns": "ЦÓ\80еÑ\80ийн Ð¼ÐµÑ\82Ñ\82игашкахь лахар:",
+       "powersearch-ns": "ЦÓ\80еÑ\80ийн Ð°Ð½ашкахь лахар:",
        "powersearch-togglelabel": "Билгалдан:",
        "powersearch-toggleall": "Массо",
        "powersearch-togglenone": "ХӀумма цаоьшу",
        "yournick": "Керла куьгтаӀор:",
        "prefs-help-signature": "Дийцаре агӀонаш чохь къуьгтаӀо деза символшца «<nowiki>~~~~</nowiki>», цара гойтур ду хьан къуьгтаӀор а хан а.",
        "badsiglength": "ТӀех деха куьг.\nКуьйган $1 {{PLURAL:$1|символ}} дукха хила цамега.",
-       "yourgender": "Ð\92Ñ\83\99Ñ\83:",
-       "gender-unknown": "хlоттийна яц",
+       "yourgender": "СÑ\82ен-боÑ\8cÑ\80Ñ\88алла",
+       "gender-unknown": "хӀоттийна яц",
        "gender-male": "борша",
        "gender-female": "сте",
        "prefs-help-gender": "ТӀехь доцург: и хаам лелош бу цхьайолу хаамаш чохь декъашхочун пол гучуйоккхуш.\nИ хаам массарна гуш хир бу.",
        "grouppage-bureaucrat": "{{ns:project}}:Бюрократаш",
        "grouppage-suppress": "{{ns:project}}:Ревизораш",
        "right-read": "агӀонашка хьажар",
-       "right-edit": "агӀонаш нийсе",
+       "right-edit": "агӀонаш нисъяр",
        "right-createpage": "АгӀонаш кхоллар (дийцарш дац)",
        "right-createtalk": "Дийцаре агӀонаш кхоллар",
        "right-createaccount": "декъашхошна керла дӀаяздарш кхоллар",
        "right-noratelimit": "чехкалин доза дац",
        "right-import": "кхечу википедешкара агӀонаш импорт ян",
        "right-importupload": "файлаш чуяхарца агӀонаш импорт ян",
-       "right-patrol": "нисдарш хьаьжна сана билгалдар",
-       "right-autopatrol": "нисдарш хьаьжна сана автоматически билгалдан",
-       "right-patrolmarks": "керла нисдарийн хьаьжна билгалонашка хьажар",
+       "right-patrol": "ниÑ\81даÑ\80Ñ\88 Ñ\85Ñ\8cаÑ\8cжжина Ñ\81ана Ð±Ð¸Ð»Ð³Ð°Ð»Ð´Ð°Ñ\80",
+       "right-autopatrol": "ниÑ\81даÑ\80Ñ\88 Ñ\85Ñ\8cаÑ\8cжжина Ñ\81ана Ð°Ð²Ñ\82омаÑ\82иÑ\87еÑ\81ки Ð±Ð¸Ð»Ð³Ð°Ð»Ð´Ð°Ð½",
+       "right-patrolmarks": "кеÑ\80ла Ð½Ð¸Ñ\81даÑ\80ийн Ñ\85Ñ\8cаÑ\8cжжина Ð±Ð¸Ð»Ð³Ð°Ð»Ð¾Ð½Ð°Ñ\88ка Ñ\85Ñ\8cажаÑ\80",
        "right-unwatchedpages": "тергамехь йоцу агӀонийн могӀане хьажар",
        "right-mergehistory": "агӀонаш вовшахтохар",
        "right-userrights": "декъашхойн массо бакъонаш хийцар",
        "action-rollback": "билгала агӀона тӀехьарчу декъашхочо дина нисдарш сиха юхадахар",
        "action-import": "кхечу википедешкара агӀонаш импорт ян",
        "action-importupload": "файлаш чуяхарца агӀонаш импорт ян",
-       "action-patrol": "кхечера нисдарш хьаьжна сана билгалдар",
-       "action-autopatrol": "шен нисдарш хьаьжна сана билгалдар",
+       "action-patrol": "кÑ\85еÑ\87еÑ\80а Ð½Ð¸Ñ\81даÑ\80Ñ\88 Ñ\85Ñ\8cаÑ\8cжжина Ñ\81ана Ð±Ð¸Ð»Ð³Ð°Ð»Ð´Ð°Ñ\80",
+       "action-autopatrol": "Ñ\88ен Ð½Ð¸Ñ\81даÑ\80Ñ\88 Ñ\85Ñ\8cаÑ\8cжжина Ñ\81ана Ð±Ð¸Ð»Ð³Ð°Ð»Ð´Ð°Ñ\80",
        "action-unwatchedpages": "тергамехь йоцу агӀонийн могӀане хьажар",
        "action-mergehistory": "хӀокху агӀона хийцаман истори вовшахтохар",
        "action-userrights": "декъашхойн массо бакъонаш хийцар",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|тӀеххьара чудаларца}}",
        "enhancedrc-history": "истори",
        "recentchanges": "Керла нисдарш",
-       "recentchanges-legend": "Керла нисдарш гар нисдар",
-       "recentchanges-summary": "Лахахь гайтина хене хьаьжна Википедин агӀонашкахь тӀаьхьара бина хийцамаш",
+       "recentchanges-legend": "Керла нисдаршка хьажар тадар",
+       "recentchanges-summary": "Ð\9bаÑ\85аÑ\85Ñ\8c Ð³Ð°Ð¹Ñ\82ина Ñ\85ене Ñ\85Ñ\8cаÑ\8cжжина Ð\92икипедин Ð°Ð³Ó\80онаÑ\88каÑ\85Ñ\8c Ñ\82Ó\80аÑ\8cÑ\85Ñ\8cаÑ\80а Ð±Ð¸Ð½Ð° Ñ\85ийÑ\86амаÑ\88",
        "recentchanges-noresult": "Билгал йинчу хенахь цхьа хийцамаш бина бац.",
        "recentchanges-feed-description": "Тергам бе тlаьхьара вики хийцаман хlокху ларца.",
        "recentchanges-label-newpage": "Оцу нисдарца кхоьллина керла агӀо.",
        "recentchanges-legend-heading": "'''Легенда:&nbsp;'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (хьажа кхин [[Special:NewPages|керла агӀонийн могӀа]])",
        "rcnotefrom": "Лахахь гайтина тӀера <strong>$2</strong> (хийцамаш <strong>$1</strong> кӀезиг).",
-       "rclistfrom": "Гайта хийцам $3 $2 хан",
+       "rclistfrom": "Гайта хийцам {{CURRENTYEAR}} шаран {{CURRENTDAY}} {{CURRENTMONTHNAMEGEN}} {{CURRENTTIME}} бина болу",
        "rcshowhideminor": "$1 кегийра нисдарш",
        "rcshowhideminor-show": "Гайта",
        "rcshowhideminor-hide": "Къайладаха",
        "filehist-current": "карара",
        "filehist-datetime": "Терахь/Хан",
        "filehist-thumb": "Жима",
-       "filehist-thumbtext": "Ð\96имо Ð±Ð°Ñ\88Ñ\85о Ð¾Ñ\86Ñ\83 $1",
+       "filehist-thumbtext": "Ð\96имо Ð²ÐµÑ\80Ñ\81и $1",
        "filehist-nothumb": "Миниатюра яц",
        "filehist-user": "Декъашхо",
        "filehist-dimensions": "Файлан барам",
        "protectedtitles": "ГIаролла дина цIераш",
        "listusers": "Декъашхойн могӀам",
        "listusers-editsonly": "Цхаъ мукъане а хийцам бина декъашхой гайта",
-       "listusers-creationsort": "Кхоьллина хене хьаьжна нисъяр",
+       "listusers-creationsort": "Ð\9aÑ\85оÑ\8cллина Ñ\85ене Ñ\85Ñ\8cаÑ\8cжжина Ð½Ð¸Ñ\81Ñ\8aÑ\8fÑ\80",
        "listusers-desc": "Харжа кӀезиг хиларца",
        "usereditcount": "$1 {{PLURAL:$1|нисдар|нисдарш}}",
        "usercreated": "{{GENDER:$3|дӀавазвелла|дӀаязелла}} $1 $2",
        "nextpage": "Тlаьхьа йогlу агlо ($1)",
        "prevpage": "Хьалхалера агlо ($1)",
        "allpagesfrom": "Гучé яха агӀонаш, йолалуш йолу оцу:",
-       "allpagesto": "Арайахар сацадé оцу:",
+       "allpagesto": "Араяхар сацадé тӀе:",
        "allarticles": "Массо агӀонаш",
        "allinnamespace": "Массо агӀонаш оцу цӀерийн анахь «$1»",
        "allpagessubmit": "Кхочушдé",
        "cachedspecial-refresh-now": "Хьажа тӀехьарчу версега.",
        "categories": "Категореш",
        "categoriespagetext": "{{PLURAL:$1|1=Лахара категореш чохь ю|Лахара категореш чохь ю}} агӀонаш я медиа-файлаш.\nКхузахь гойтуш яц [[Special:UnusedCategories|лелош йоцу категореш]].\nКхин дӀа [[Special:WantedCategories| хийла еза категореш]].",
-       "categoriesfrom": "Гучé яха категореш, оцу:",
+       "categoriesfrom": "Гучé яха категореш, тӀера:",
        "special-categories-sort-count": "нисъе дукхаллица",
        "special-categories-sort-abc": "нисъе абатца",
        "deletedcontributions": "Декъашхочун дӀабяккхина къинхьегам",
        "watchlist-options": "Тергаме могlаман гlирс нисбар",
        "watching": "Тергаме мlогаман юкъаяккха…",
        "unwatching": "Тергаме могӀанан чура дӀаяккхар…",
-       "enotif_reset": "Билгалъе ерриге агӀонаш хьаьжна санна",
+       "enotif_reset": "Ð\91илгалÑ\8aе ÐµÑ\80Ñ\80иге Ð°Ð³Ó\80онаÑ\88 Ñ\85Ñ\8cаÑ\8cжжина Ñ\81анна",
        "enotif_impersonal_salutation": "Декъашхо {{grammar:genitive|{{SITENAME}}}}",
        "enotif_subject_deleted": "Проектан «{{SITENAME}}» агӀо «$1» {{gender:$2|декъашхочо}} $2 дӀаяьккхина",
        "enotif_subject_created": "Проектан «{{SITENAME}}» агӀо «$1» {{gender:$2|декъашхочо}} $2 кхоьллина",
        "editcomment": "Хийцамаш барна гайтина бахьна: ''$1''.",
        "revertpage": "Нисдарш [[Special:Contributions/$2|$2]] ([[User talk:$2|дийцаре]]) юха даьхна версин [[User:$1|$1]]",
        "revertpage-nouser": "Нисдарш (декъашхочун цӀе хьулйина) юхадаьхина версин {{GENDER:$1|[[User:$1|$1]]}}",
-       "rollback-success": "ЮÑ\85адаÑ\8cÑ\85на $1; Ð½Ð¸Ñ\81даÑ\80Ñ\88, $2 Ð²ÐµÑ\80Ñ\81ен.",
+       "rollback-success": "ЮÑ\85адаÑ\8cÑ\85на $1; Ð½Ð¸Ñ\81даÑ\80Ñ\88, $2 Ð²ÐµÑ\80Ñ\81ин.",
        "sessionfailure-title": "Сеансан гӀалат",
        "sessionfailure": "Карара белхан сеансан гӀалат деллачух тера ду;\nиза дешдерг сацийна «сеанс долаерзийтта».\nДехар до, тӀетаӀе «ЮхугӀо» кнопка, кхин агӀо карлаяккха.",
        "protectlogpage": "Гlаролли тептар",
        "undeleteviewlink": "хьажа",
        "undeleteinvert": "Къастае массо",
        "undeletecomment": "Бахьна:",
-       "undeletedrevisions": "{{PLURAL:$1|меÑ\82Ñ\82аÑ\85Ó\80оÑ\82Ñ\82айина}} $1 {{PLURAL:$1|хийцам}}",
+       "undeletedrevisions": "{{PLURAL:$1|меÑ\82Ñ\82аÑ\85Ó\80оÑ\8cÑ\82Ñ\82ина}} $1 {{PLURAL:$1|хийцам}}",
        "undeletedrevisions-files": "меттахӀоьттина $1 {{PLURAL:$1|верси}} а $2 {{PLURAL:$2|файл}} а",
        "undeletedfiles": "$1 {{PLURAL:$1|файл меттахӀоттайина|файлаш меттахӀоттайина}}",
        "cannotundelete": "ГӀалат меттахӀоттайина:\n$1",
        "undelete-show-file-submit": "ХӀаъ",
        "namespace": "Цlерийн ана:",
        "invert": "Хаьржинарг къайлаяккха",
-       "tooltip-invert": "Ð¥Ó\80оÑ\82Ñ\82ае Ñ\85Ó\80аÑ\80а Ð±Ð¸Ð»Ð³Ð°Ð»Ð¾, Ñ\85аÑ\8cÑ\80жинÑ\87Ñ\83 Ñ\86Ó\80еÑ\80ийн Ð°Ð½Ð°Ð½ Ð°Ð³Ó\80онийн Ñ\85ийÑ\86амаÑ\88 ÐºÑ\8aайлабаÑ\85а (кÑ\85ин Ð´Ð¸Ñ\85кина Ñ\86Ó\80еÑ\80ийн Ð¼ÐµÑ\82Ñ\82игаш, гайтина елахь)",
+       "tooltip-invert": "Ð¥Ó\80оÑ\82Ñ\82ае Ñ\85Ó\80аÑ\80а Ð±Ð¸Ð»Ð³Ð°Ð»Ð¾, Ñ\85аÑ\8cÑ\80жинÑ\87Ñ\83 Ñ\86Ó\80еÑ\80ийн Ð°Ð½Ð°Ð½ Ð°Ð³Ó\80онийн Ñ\85ийÑ\86амаÑ\88 ÐºÑ\8aайлабаÑ\85а (кÑ\85ин Ð´Ð¸Ñ\85кина Ñ\86Ó\80еÑ\80ийн Ð°Ð½аш, гайтина елахь)",
        "namespace_association": "Йихкина ана",
        "tooltip-namespace_association": "ХӀоттае хӀара билгало, иштта дийцарийн (я кхин) цӀерийн ана юкъахь хилийта",
        "blanknamespace": "(Коьрта)",
        "export-addns": "ТӀетоха",
        "export-download": "Кховда де файл сана Ӏалашдан",
        "export-templates": "Латадé кепаш",
-       "allmessages": "Гlирса хаамаш",
+       "allmessages": "ГӀирса хаамаш",
        "allmessagesname": "Хаам",
        "allmessagesdefault": "Ӏад дитарца йоза",
        "allmessagescurrent": "Карарчу хенан йоза",
        "importlogpage": "Импортан тептар",
        "importlogpagetext": "Куьйгалхоша агӀонаш импорт яр царна бина хийцамашца кхечу википедеш чура.",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|верси импорт йина|версеш импорт йина}}",
-       "import-logentry-interwiki": "«$1» — викиюкъара импорт",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|верси импорт йина|версеш импорт йина}} $2 чура",
        "javascripttest": "JavaScript хьажар",
        "tooltip-pt-userpage": "Декъашхочуьна агlо",
        "pageinfo-category-subcats": "Бухара категорийн дукхалла",
        "pageinfo-category-files": "Файлийн дукхалла",
        "markaspatrolleddiff": "Билгалйе теллина санна",
-       "markaspatrolledtext": "Билгалъе хӀара агӀо хьаьжна сана",
+       "markaspatrolledtext": "Ð\91илгалÑ\8aе Ñ\85Ó\80аÑ\80а Ð°Ð³Ó\80о Ñ\85Ñ\8cаÑ\8cжжина Ñ\81ана",
        "markedaspatrolled": "ДӀадахка теллина санна хилар",
        "markedaspatrolledtext": "Хаьржина [[:$1]] агӀона верси къобалйина сана билгалйина.",
        "rcpatroldisabled": "ТӀехьара бина хийцамаш къобалбан магийна дац",
        "rcpatroldisabledtext": "ТӀехьара бина хийцамаш къобалбар хӀинца дӀадайина ду.",
        "markedaspatrollederror": "теллина сана билгалъян цало",
        "markedaspatrollednotify": "АгӀо «$1» пайдане хилар билгалдина",
-       "markedaspatrollederrornotify": "Хийцамаш хьаьжна сана билгал бан цабелира.",
+       "markedaspatrollederrornotify": "ХийÑ\86амаÑ\88 Ñ\85Ñ\8cаÑ\8cжжина Ñ\81ана Ð±Ð¸Ð»Ð³Ð°Ð» Ð±Ð°Ð½ Ñ\86абелиÑ\80а.",
        "patrol-log-page": "ТӀехьажаран тептар",
        "patrol-log-header": "Хьажжина версеш йолу тептар.",
        "log-show-hide-patrol": "$1 тӀехьажаран тептар",
        "version-parser-function-hooks": "Cинтаксисан къасторан функци схьалоцурш",
        "version-hook-name": "Схьалуьцачун цӀе",
        "version-hook-subscribedby": "ДӀабазбелла тӀе",
-       "version-version": "(Верси $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[цӀе йоцуш]",
        "version-license": "MediaWiki Лицензи",
        "version-ext-license": "Лицензи",
        "tags-deactivate": "дӀаяйа",
        "tags-hitcount": "$1 {{PLURAL:$1|хийцам|хийцамаш}}",
        "tags-create-heading": "Кхолла керла билгало",
+       "tags-create-explanation": "Юха кхоьллина билгалонаш декъашхошна а боташна а Ӏад йтарца тӀекхочуш хира ю.",
        "tags-create-tag-name": "Билгалонна цӀе:",
        "tags-create-reason": "Бахьна:",
        "tags-create-submit": "Кхолла",
        "logentry-managetags-create": "$1 {{GENDER:$2|Кхоьллина}} билгало «$4»",
        "rightsnone": "(яц)",
        "revdelete-summary": "хийцамах лаьцна",
+       "feedback-adding": "АгӀона хетарг тӀетохар...",
+       "feedback-back": "ЮхагӀо",
        "feedback-bugornote": "Хьайн техникин халонах лаьцна яздан хӀума делахь, дехар до, [$1 хаам бе тхоьга].\nДацахь хьан йиш ю хӀокху атта кепаца «[$3 $2]» агӀонг къамел тӀетоха хьан декъашхочун цӀарца, кхин лелош йолу браузер билгал еш.",
-       "feedback-subject": "Къамел:",
-       "feedback-message": "Хаам:",
        "feedback-cancel": "Цаоьшу",
-       "feedback-submit": "Дахьийта хетарг",
-       "feedback-adding": "АгӀона хетарг тӀетохар...",
        "feedback-close": "Кийчча ю",
+       "feedback-error-title": "ГӀалат",
+       "feedback-message": "Хаам:",
+       "feedback-subject": "Къамел:",
+       "feedback-submit": "Дахьийта",
+       "feedback-thanks-title": "Баркалла!",
        "searchsuggest-search": "Лахар",
        "searchsuggest-containing": "чуьраниг…",
        "api-error-duplicate": "Иштта чулацам болу {{PLURAL:$1|1=[$2 кхин файл]|[$2 кхин файлаш]}} йолуш ю",
        "limitreport-cputime-value": "$1 {{PLURAL:$1|секунд}}",
        "limitreport-walltime": "Йодуш йолу хенахь лелор",
        "limitreport-walltime-value": "$1 секунд",
-       "limitreport-ppvisitednodes": "Препроцессор хьаьжна шадин дукхалла",
+       "limitreport-ppvisitednodes": "Ð\9fÑ\80епÑ\80оÑ\86еÑ\81Ñ\81оÑ\80 Ñ\85Ñ\8cаÑ\8cжжина Ñ\88адин Ð´Ñ\83кÑ\85алла",
        "limitreport-ppgeneratednodes": "Препроцессорс сгенерировать бина шадин дукхалла",
        "limitreport-postexpandincludesize": "Схьаяьстина юккъерчаран барам",
        "limitreport-postexpandincludesize-value": "$1/$2 {{PLURAL:$2|байт}}",
        "mediastatistics-header-executable": "Кхочушдийриш",
        "mediastatistics-header-archive": "Архиваш",
        "json-error-unknown": "JSON бала бу. ГӀалат: $1",
-       "json-error-syntax": "Синтаксин гӀалат"
+       "json-error-syntax": "Синтаксин гӀалат",
+       "headline-anchor-title": "ХӀокху дакъан тӀе хьажорг"
 }
index 42bddbc..6f8efcb 100644 (file)
@@ -14,7 +14,8 @@
                        "رزگار",
                        "아라",
                        "Serwan",
-                       "Ebraminio"
+                       "Ebraminio",
+                       "Macofe"
                ]
        },
        "tog-underline": "ھێڵ ھێنان بەژێر بەستەرەکان:",
        "import-error-invalid": "پەڕەی «$1» ھاوردە ناکرێ چون ناوەکەی نادروستە.",
        "importlogpage": "لۆگی ھاوردن",
        "importlogpagetext": "ھاوردنی پەڕەکان لەگەڵ مێژووی دەستکاری لە ویکییەکانی ترەوە.",
-       "import-logentry-upload": "[[$1]]ی بە بارکردنی پەڕگە ھاورد",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|پێداچوونەوە}} ھاوردە کرا",
-       "import-logentry-interwiki": "$1ی ناوویکی کرد",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|پێداچوونەوە}} لە $2 ھاوردە کرا",
        "javascripttest": "تاقیکردنەوەی جاڤاسکریپت",
        "tooltip-pt-userpage": "پەڕەی بەکارھێنەرییەکەت",
        "version-parser-function-hooks": "Parser function hooks",
        "version-hook-name": "ناوی قولاپ",
        "version-hook-subscribedby": "بەشداربوو لە لایەن",
-       "version-version": "(وەشانی $1)",
+       "version-version": "($1)",
        "version-license": "مۆڵەتنامە",
        "version-ext-colheader-version": "وەشان",
        "version-ext-colheader-description": "وەسف",
        "logentry-upload-overwrite": "$1 وەشانێکی نوێی $3ی {{GENDER:$2|بار کرد}}",
        "rightsnone": "(ھیچ)",
        "revdelete-summary": "پوختەی دەستکاری",
-       "feedback-subject": "بابەت:",
-       "feedback-message": "پەیام:",
        "feedback-cancel": "ھەڵیوەشێنەوە",
-       "feedback-submit": "تێبینییەکان بنێرە",
        "feedback-close": "کرا",
+       "feedback-message": "پەیام:",
+       "feedback-subject": "بابەت:",
+       "feedback-submit": "ناردن",
        "searchsuggest-search": "گەڕان",
        "searchsuggest-containing": "بە لەبەرگرتنەوەی ...",
        "api-error-empty-file": "ئەو پەڕگەیە کە ناردووتە واڵا بوو.",
index 56ba1ce..81e0e4d 100644 (file)
@@ -25,7 +25,9 @@
                        "Utar",
                        "Vks",
                        "YjM",
-                       "לערי ריינהארט"
+                       "לערי ריינהארט",
+                       "Cvanca",
+                       "Macofe"
                ]
        },
        "tog-underline": "Podtrhávat odkazy:",
        "october-date": "$1. října",
        "november-date": "$1. listopadu",
        "december-date": "$1. prosince",
-       "pagecategories": "{{PLURAL:$1|Kategorie|Kategorie|Kategorie}}",
+       "pagecategories": "{{PLURAL:$1|Kategorie}}",
        "category_header": "Stránky v kategorii „$1“",
        "subcategories": "Podkategorie",
        "category-media-header": "Soubory v kategorii „$1“",
        "disclaimers": "Vyloučení odpovědnosti",
        "disclaimerpage": "Project:Vyloučení odpovědnosti",
        "edithelp": "Pomoc při editování",
+       "helppage-top-gethelp": "Nápověda",
        "mainpage": "Hlavní strana",
        "mainpage-description": "Hlavní strana",
        "policy-url": "Project:Pravidla",
        "restorelink": "{{PLURAL:$1|smazanou editaci|$1 smazané editace|$1 smazaných editací}}",
        "feedlinks": "Kanály:",
        "feed-invalid": "Neplatný typ kanálu.",
-       "feed-unavailable": "Kanály nejsou dostupné.",
+       "feed-unavailable": "Kanály nejsou dostupné",
        "site-rss-feed": "RSS kanál {{grammar:2sg|$1}}.",
        "site-atom-feed": "Atom kanál {{grammar:2sg|$1}}.",
        "page-rss-feed": "RSS kanál stránky „$1“",
        "nstab-help": "Nápověda",
        "nstab-category": "Kategorie",
        "nosuchaction": "Neznámý úkon",
-       "nosuchactiontext": "Činnost („action“) uvedená v URL je neplatná.\nZřejmě jste se při zadávání adresy překlepli nebo jste klikli na chybný odkaz.\nMůže se ale jednat také o chybu {{GRAMMAR:2sg|{{SITENAME}}}}.",
+       "nosuchactiontext": "Činnost („action“) uvedená v URL je neplatná.\nZřejmě jste se při zadávání adresy překlepli nebo jste přešli na chybný odkaz.\nMůže se ale jednat také o chybu v softwaru {{GRAMMAR:2sg|{{SITENAME}}}}.",
        "nosuchspecialpage": "Neexistující speciální stránka",
        "nospecialpagetext": "<strong>Zadali jste neplatnou speciální stránku.</strong>\n\nZkuste se podívat na [[Special:SpecialPages|seznam všech existujících speciálních stránek]].",
        "error": "Chyba",
        "databaseerror-query": "Dotaz: $1",
        "databaseerror-function": "Funkce: $1",
        "databaseerror-error": "Chyba: $1",
-       "laggedslavemode": "Upozornění: Stránka nemusí být zcela aktuální.",
+       "laggedslavemode": "<strong>Upozornění:</strong> Stránka nemusí být aktuální.",
        "readonly": "Databáze je uzamčena",
-       "enterlockreason": "Udejte důvod zamčení, včetně odhadu, za jak dlouho dojde k odemčení.",
+       "enterlockreason": "Udejte důvod zamčení, včetně odhadu, za jak dlouho dojde k odemčení",
        "readonlytext": "Databáze je nyní uzamčena, takže nelze ukládat nové doplňky a změny. Důvodem je pravděpodobně pravidelná údržba, po které se vše vrátí do normálního stavu.\n\nSprávce serveru, který databázi zamkl, poskytl toto zdůvodnění: $1",
-       "missing-article": "V databázi nebyl nalezen požadovaný text stránky „$1“ $2.\n\nToto je obvykle způsobeno tím, že jste následovali zastaralý odkaz na rozdíl verzí nebo historickou verzi stránky, jež byla smazána.\n\nNení-li toto váš případ, možná jste nalezli chybu v softwaru. Prosíme, ohlaste to [[Special:ListUsers/sysop|správcům]] spolu s URL této stránky.",
+       "missing-article": "V databázi nebyl nalezen požadovaný text stránky „$1“ $2.\n\nToto je obvykle způsobeno tím, že jste následovali zastaralý odkaz na rozdíl verzí nebo historickou verzi stránky, jež byla smazána.\n\nNení-li toto váš případ, možná jste nalezli chybu v softwaru.\nProsíme, ohlaste to [[Special:ListUsers/sysop|správcům]] spolu s URL této stránky.",
        "missingarticle-rev": "(číslo revize: $1)",
        "missingarticle-diff": "(Rozdíl: $1, $2)",
        "readonly_lag": "Databáze byla automaticky dočasně uzamčena kvůli zpoždění ostatních databázových serverů oproti hlavnímu",
        "viewsource": "Zobrazit zdroj",
        "viewsource-title": "Zobrazení zdroje stránky $1",
        "actionthrottled": "Akce byla pozastavena",
-       "actionthrottledtext": "Vzhledem k protispamovým opatřením nemůžete požadovanou akci provádět příliš častokrát v krátké době. Zkuste to znovu za několik minut.",
+       "actionthrottledtext": "Vzhledem k protispamovým opatřením nemůžete požadovanou akci provádět příliš častokrát v krátké době.\nZkuste to znovu za několik minut.",
        "protectedpagetext": "Tato stránka byla zamčena, aby se předešlo jejímu editování.",
        "viewsourcetext": "Můžete si prohlédnout a zkopírovat zdrojový kód této stránky:",
-       "viewyourtext": "Můžete si prohlédnout a zkopírovat zdrojový kód '''vašich změn''' této stránky:",
+       "viewyourtext": "Můžete si prohlédnout a zkopírovat zdrojový kód <strong>vašich změn</strong> této stránky:",
        "protectedinterface": "Tato stránka obsahuje text softwarového rozhraní a je zamčena kvůli prevenci zneužití.\nPro přidávání a změny překladů pro všechny wiki použijte [//translatewiki.net/ translatewiki.net], projekt pro lokalizaci MediaWiki.",
        "editinginterface": "<strong>Upozornění:</strong> Editujete stránku, která definuje texty rozhraní.\nZměny této stránky ovlivní vzhled uživatelského rozhraní všem uživatelům této wiki.",
        "translateinterface": "Pro přidávání a změny překladů pro všechny wiki použijte [//translatewiki.net/ translatewiki.net], projekt pro lokalizaci MediaWiki.",
        "myprivateinfoprotected": "Nemáte oprávnění měnit své soukromé údaje.",
        "mypreferencesprotected": "Nemáte oprávnění změnit svá nastavení.",
        "ns-specialprotected": "Stránky ve jmenném prostoru {{ns:special}} nelze editovat.",
-       "titleprotected": "Stránku s tímto názvem nelze založit, protože název zamknul uživatel [[User:$1|$1]] s odůvodněním: ''$2''.",
-       "filereadonlyerror": "Nelze změnit soubor „$1“, protože úložiště souborů „$2“ je momentálně pouze pro čtení.\n\nSprávce serveru, který úložiště zamkl, poskytl toto zdůvodnění: „''$3''“.",
+       "titleprotected": "Stránku s tímto názvem nelze založit, protože název zamknul uživatel [[User:$1|$1]] s odůvodněním <em>$2</em>.",
+       "filereadonlyerror": "Nelze změnit soubor „$1“, protože úložiště souborů „$2“ je pouze pro čtení.\n\nSprávce serveru, který úložiště zamkl, poskytl toto zdůvodnění: „$3“.",
        "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)",
        "virus-badscanner": "Špatná konfigurace: neznámý antivirový program: ''$1''",
        "virus-scanfailed": "prověřování selhalo (kód $1)",
        "virus-unknownscanner": "neznámý antivirus:",
-       "logouttext": "'''Nyní jste odhlášeni.'''\n\nUvědomte si, že některé stránky se mohou i nadále zobrazovat, jako byste byli dosud přihlášeni, dokud nevymažete cache prohlížeče.",
+       "logouttext": "<strong>Nyní jste odhlášeni.</strong>\n\nNěkteré stránky se mohou i nadále zobrazovat, jako byste byli dosud přihlášeni, dokud nevymažete cache prohlížeče.",
        "welcomeuser": "Vítejte, uživateli $1!",
        "welcomecreation-msg": "Váš účet byl vytvořen.\nNezapomeňte si upravit své [[Special:Preferences|nastavení {{grammar:2sg|{{SITENAME}}}}]].",
        "yourname": "Uživatelské jméno:",
        "nologin": "Dosud nemáte účet? $1.",
        "nologinlink": "Zaregistrujte se",
        "createaccount": "Vytvořit účet",
-       "gotaccount": "Už jste registrováni? '''$1'''.",
+       "gotaccount": "Už jste registrováni? $1.",
        "gotaccountlink": "Přihlaste se",
        "userlogin-resetlink": "Zapomněli jste přihlašovací údaje?",
        "userlogin-resetpassword-link": "Zapomněli jste heslo?",
        "nocookiesfornew": "Uživatelský účet nebyl založen, neboť jsme nebyli schopni potvrdit jeho původ.\nUjistěte se, že máte povoleny cookies, obnovte tuto stránku a zkuste to znovu.",
        "noname": "{{GENDER:|Nezadal|Nezadala|Nezadali}} jste platné uživatelské jméno.",
        "loginsuccesstitle": "Přihlášení bylo úspěšné",
-       "loginsuccess": "Nyní jste přihlášen na {{grammar:6sg|{{SITENAME}}}} jako uživatel „$1“.",
+       "loginsuccess": "<strong>Nyní jste na {{grammar:6sg|{{SITENAME}}}} {{GENDER:$1|přihlášen jako uživatel|přihlášena jako uživatelka}} „$1“.</strong>",
        "nosuchuser": "Neexistuje uživatel se jménem „$1“. U uživatelských jmen se rozlišují malá/velká písmena. Zkontrolujte zápis, nebo si [[Special:UserLogin/signup|vytvořte nový účet]].",
        "nosuchusershort": "Neexistuje uživatel se jménem „$1“. Zkontrolujte zápis.",
        "nouserspecified": "Musíte zadat uživatelské jméno.",
        "eauthentsent": "Na zadanou adresu byl zaslán potvrzovací e-mail.\nŽádné další zprávy vám však na tuto adresu nebudou odeslány, dokud podle instrukcí v e-mailu nepotvrdíte, že tato adresa skutečně patří vám.",
        "throttled-mailpassword": "Během {{PLURAL:$1|poslední hodiny|posledních $1 hodin}} již bylo heslo jednou zasláno.\nKvůli prevenci zneužívání lze heslo zaslat jen jednou za $1 {{PLURAL:$1|hodinu|hodiny|hodin}}.",
        "mailerror": "Chyba při zasílání e-mailu: $1",
-       "acct_creation_throttle_hit": "Uživatelé používající vaši IP adresu už dnes vytvořili $1 {{PLURAL:$1|účet|účty|účtů}}, což je dovolené maximum. Proto není v tuto chvíli dovoleno z této IP adresy zakládat další účty.",
+       "acct_creation_throttle_hit": "Uživatelé používající vaši IP adresu už dnes vytvořili $1 {{PLURAL:$1|účet|účty|účtů}}, což je dovolené maximum.\nProto není v tuto chvíli dovoleno z této IP adresy zakládat další účty.",
        "emailauthenticated": "Vaše e-mailová adresa byla ověřena $2 v $3.",
        "emailnotauthenticated": "Vaše e-mailová adresa dosud nebyla ověřena.\nU následujících funkcí nebudou zasílány žádné e-maily.",
        "noemailprefs": "Pro zprovoznění následujících možností musíte zadat svou e-mailovou adresu.",
        "resetpass-submit-cancel": "Storno",
        "resetpass-wrong-oldpass": "Nesprávné dočasné nebo aktuální heslo.\nMožná jste si již úspěšně heslo změnili, nebo jste si vyžádali nové dočasné heslo.",
        "resetpass-recycled": "Jako nové heslo si prosím nastavte něco jiného než stávající heslo.",
-       "resetpass-temp-emailed": "Přihlašujete se dočasným heslem, zaslaným e-mailem.\nAbyste dokončili přihlášení, nastavte si zde nové heslo:",
+       "resetpass-temp-emailed": "Přihlašujete se pomocí dočasného hesla, které bylo zasláno e-mailem.\nAbyste dokončili přihlášení, nastavte si nové heslo:",
        "resetpass-temp-password": "Dočasné heslo:",
        "resetpass-abort-generic": "Změna hesla byla zablokována rozšířením.",
        "resetpass-expired": "Platnost vašeho hesla vypršela. Pro přihlášení si nastavte nové heslo.",
        "passwordreset-capture-help": "Pokud zaškrtnete toto políčko, bude e-mail (s dočasným heslem) kromě zaslání uživateli zobrazen i vám.",
        "passwordreset-email": "E-mailová adresa:",
        "passwordreset-emailtitle": "Informace k účtu na {{grammar:6sg|{{SITENAME}}}}",
-       "passwordreset-emailtext-ip": "Někdo (patrně vy, z IP adresy $1) zažádal na {{grammar:6sg|{{SITENAME}}}} ($4) o nastavení nového hesla k vašemu účtu. K této adrese {{PLURAL:$3|je přiřazen následující účet|jsou přiřazeny následující účty}}:\n\n$2\n\n{{PLURAL:$3|Toto dočasné heslo|Tato dočasná hesla}} vyprší {{PLURAL:$5|za jeden den|za $5 dny|za $5 dnů}}.\nNyní byste se měl(a) přihlásit a zvolit si nové heslo. Pokud tento požadavek\nposlal někdo jiný nebo jste si na své staré heslo vzpomněl(a), a nechcete ho\ntedy změnit, můžete tuto zprávu ignorovat a nadále používat původní heslo.",
+       "passwordreset-emailtext-ip": "Někdo (patrně vy, z IP adresy $1) zažádal na {{grammar:6sg|{{SITENAME}}}} ($4) o nastavení nového hesla k vašemu účtu. K této adrese {{PLURAL:$3|je přiřazen následující účet|jsou přiřazeny následující účty}}:\n\n$2\n\n{{PLURAL:$3|Toto dočasné heslo|Tato dočasná hesla}} vyprší za {{PLURAL:$5|jeden den|$5 dny|$5 dnů}}.\nNyní byste se měli přihlásit a zvolit si nové heslo. Pokud tento požadavek poslal někdo jiný nebo jste si na své staré heslo vzpomněli, a nechcete ho tedy změnit, můžete tuto zprávu ignorovat a nadále používat původní heslo.",
        "passwordreset-emailtext-user": "{{gender:$1|Uživatel|Uživatelka}} $1 na {{grammar:6sg|{{SITENAME}}}} {{gender:$1|zažádal|zažádala}} na {{grammar:6sg|{{SITENAME}}}} ($4) o nastavení nového hesla k vašemu\núčtu. K této adrese {{PLURAL:$3|je přiřazen následující účet|jsou přiřazeny následující účty}}:\n\n$2\n\n{{PLURAL:$3|Toto dočasné heslo|Tato dočasná hesla}} vyprší {{PLURAL:$5|za jeden den|za $5 dny|za $5 dnů}}.\nNyní byste se měl(a) přihlásit a zvolit si nové heslo. Pokud tento požadavek\nposlal někdo jiný nebo jste si na své staré heslo vzpomněl(a), a nechcete ho\ntedy změnit, můžete tuto zprávu ignorovat a nadále používat původní heslo.",
        "passwordreset-emailelement": "Uživatelské jméno: $1\nDočasné heslo: $2",
        "passwordreset-emailsent": "E-mail pro získání nového hesla byl odeslán.",
        "showpreview": "Ukázat náhled",
        "showdiff": "Ukázat změny",
        "blankarticle": "<strong>Upozornění:</strong> Stránka, kterou se chystáte založit, je prázdná. Pokud ještě jednou kliknete na „{{int:savearticle}}“, bude založena zcela bez obsahu.",
-       "anoneditwarning": "'''Varování:''' Nejste přihlášen(a). Pokud uložíte jakoukoli editaci, bude vaše IP adresa zveřejněna v historii této stránky. Pokud se <strong>[$1 přihlásíte]</strong> nebo si <strong>[$2 vytvoříte účet]</strong>, budou vaše editace připsány vašemu uživatelskému jménu a získáte i další výhody.",
-       "anonpreviewwarning": "''Nejste přihlášen(a). Uložením zveřejníte svou IP adresu v historii této stránky.''",
-       "missingsummary": "'''Připomenutí:''' Nezadali jste shrnutí editace. Pokud ještě jednou kliknete na Uložit změny, bude vaše editace zapsána bez shrnutí.",
-       "selfredirect": "<strong>Upozornění:</strong> Pokušíte se tuto stránku přesměrovat samu na sebe.\nMožná jste uvedli chybný cíl přesměrování nebo editujete špatnou stránku.\nPokud ještě jednou kliknete na „{{int:savearticle}}“, bude přesměrování přesto vytvořeno.",
+       "anoneditwarning": "<strong>Varování:</strong> Nejste přihlášen(a). Pokud uložíte jakoukoli editaci, bude vaše IP adresa zveřejněna v historii této stránky. Pokud se <strong>[$1 přihlásíte]</strong> nebo si <strong>[$2 vytvoříte účet]</strong>, budou vaše editace připsány vašemu uživatelskému jménu a získáte i další výhody.",
+       "anonpreviewwarning": "<em>Nejste přihlášen(a). Uložením zveřejníte svou IP adresu v historii této stránky.</em>",
+       "missingsummary": "<strong>Připomenutí:</strong> Nezadali jste shrnutí editace. Pokud ještě jednou kliknete na „{{int:savearticle}}“, bude vaše editace zapsána bez shrnutí.",
+       "selfredirect": "<strong>Upozornění:</strong> Pokoušíte se tuto stránku přesměrovat na sebe samu.\nMožná jste zadali chybný cíl přesměrování, nebo editujete špatnou stránku.\nPokud ještě jednou kliknete na „{{int:savearticle}}“, bude i přesto přesměrování vytvořeno.",
        "missingcommenttext": "Zadejte komentář",
-       "missingcommentheader": "'''Připomenutí:''' Nezadali jste předmět/nadpis pro tento komentář.\nPokud ještě jednou kliknete na „{{int:savearticle}}“, bude vaše editace zapsána i bez toho.",
+       "missingcommentheader": "<strong>Připomenutí:</strong> Nezadali jste předmět/nadpis pro tento komentář.\nPokud ještě jednou kliknete na „{{int:savearticle}}“, bude vaše editace uložena bez něj.",
        "summary-preview": "Náhled shrnutí:",
        "subject-preview": "Náhled předmětu/nadpisu:",
+       "previewerrortext": "Při pokusu o zobrazení náhledu vašich změn došlo k chybě.",
        "blockedtitle": "Uživatel zablokován",
-       "blockedtext": "'''Vaší IP adrese či uživatelskému jménu byla zablokována možnost editace.'''\n\nZablokování provedl{{GENDER:$4||a}} $1.\nUdaným důvodem bylo ''$2''.\n\n* Začátek blokování: $8\n* Zablokování vyprší: $6\n* Blokovaný uživatel: $7\n\nPokud chcete zablokování prodiskutovat, můžete kontaktovat {{GENDER:$4|uživatele|uživatelku}} $1 či jiného [[{{MediaWiki:Grouppage-sysop}}|správce]].\nUvědomte si, že nemůžete použít nabídku „Poslat e-mail“, jestliže nemáte ve svém [[Special:Preferences|nastavení]] uvedenu platnou e-mailovou adresu nebo pokud vám byla tato možnost zakázána.\nVaše IP adresa je $3 a&nbsp;identifikační číslo bloku je #$5; tyto údaje uvádějte ve všech dotazech na správce.",
-       "autoblockedtext": "Vaše IP adresa byla automaticky zablokována, protože ji používal jiný uživatel, kterého zablokoval $1.\nUdaný důvod blokování:\n\n:''$2''\n\n* Začátek blokování: $8\n* Konec blokování: $6\n* Původně blokovaný uživatel: $7\n\nZablokování můžete prodiskutovat se správcem $1 nebo některým z dalších [[{{MediaWiki:Grouppage-sysop}}|správců]].\n\nUvědomte si však, že funkci „Poslat e-mail tomuto uživateli“ nemůžete použít, pokud nemáte ve svém [[Special:Preferences|nastavení]] zadaný platný e-mail a nebylo vám zablokováno jeho užívání.\n\nVaše současná IP adresa je $3, číslo vašeho zablokování je #$5.\nProsíme, uveďte tyto údaje při komunikaci se správci.",
+       "blockedtext": "<strong>Vaší IP adrese či uživatelskému jménu byla zablokována možnost editace.<strong>\n\nZablokování provedl{{GENDER:$4||a}} $1.\nUdaným důvodem bylo <em>$2</em>.\n\n* Začátek blokování: $8\n* Zablokování vyprší: $6\n* Blokovaný uživatel: $7\n\nPokud chcete zablokování prodiskutovat, můžete kontaktovat {{GENDER:$4|uživatele|uživatelku}} $1 či jiného [[{{MediaWiki:Grouppage-sysop}}|správce]].\nUvědomte si, že nemůžete použít nabídku „Poslat e-mail“, jestliže nemáte ve svém [[Special:Preferences|nastavení]] uvedenu platnou e-mailovou adresu nebo pokud vám byla tato možnost zakázána.\nVaše IP adresa je $3 a&nbsp;identifikační číslo bloku je #$5; tyto údaje uvádějte ve všech dotazech na správce.",
+       "autoblockedtext": "Vaše IP adresa byla automaticky zablokována, protože ji používal jiný uživatel, kterého zablokoval $1.\nUdaný důvod blokování:\n\n:<em>$2</em>\n\n* Začátek blokování: $8\n* Konec blokování: $6\n* Původně blokovaný uživatel: $7\n\nZablokování můžete prodiskutovat se správcem $1 nebo některým z dalších [[{{MediaWiki:Grouppage-sysop}}|správců]].\n\nUvědomte si však, že funkci „Poslat e-mail tomuto uživateli“ nemůžete použít, pokud nemáte ve svém [[Special:Preferences|uživatelském nastavení]] zadaný platný e-mail a nebylo vám zablokováno jeho užívání.\n\nVaše současná IP adresa je $3, číslo vašeho zablokování je #$5.\nProsíme, uveďte tyto údaje při komunikaci se správci.",
        "blockednoreason": "důvod nebyl zadán",
        "whitelistedittext": "Pro editaci se musíte $1.",
-       "confirmedittext": "Pro editaci stránek je vyžadováno potvrzení vaší e-mailové adresy. Na stránce [[Special:Preferences|nastavení]] zadejte a nechte potvrdit svou e-mailovou adresu.",
+       "confirmedittext": "Pro editaci stránek je vyžadováno potvrzení vaší e-mailové adresy.\nNa stránce [[Special:Preferences|nastavení]] zadejte a nechte potvrdit svou e-mailovou adresu.",
        "nosuchsectiontitle": "Sekce nenalezena",
        "nosuchsectiontext": "Pokoušíte se editovat neexistující sekci.\nMožná byla přesunuta či smazána, zatímco jste si stránku {{GENDER:|prohlížel|prohlížela|prohlíželi}}.",
        "loginreqtitle": "Vyžadováno přihlášení",
        "loginreqlink": "přihlásit",
        "loginreqpagetext": "K prohlížení jiných stránek se musíte $1.",
-       "accmailtitle": "Heslo odesláno.",
+       "accmailtitle": "Heslo odesláno",
        "accmailtext": "Náhodně vygenerované heslo pro uživatele [[User talk:$1|$1]] bylo odesláno na $2. Po přihlášení ho bude možno změnit na [[Special:ChangePassword|stránce pro změnu hesla]].",
        "newarticle": "(Nový)",
        "newarticletext": "Následovali jste odkaz na stránku, která dosud neexistuje.\nPokud ji chcete vytvořit, začněte psát do rámečku níže (více informací najdete v [$1 nápovědě]).\nPokud jste zde omylem, stiskněte ve svém prohlížeči tlačítko <strong>Zpět</strong>.",
-       "anontalkpagetext": "----''Toto je diskusní stránka anonymního uživatele, který si dosud nevytvořil účet nebo ho nepoužívá. K&nbsp;jeho identifikaci proto musíme používat číselnou IP adresu. Takovou IP adresu může sdílet několik uživatelů. Pokud jste anonymní uživatel a&nbsp;máte za to, že jsou vám adresovány irelevantní komentáře, prosíme, [[Special:UserLogin/signup|vytvořte si účet]] nebo [[Special:UserLogin|se přihlaste]], vyhnete se tím budoucí záměně s&nbsp;jinými anonymními uživateli.''",
+       "anontalkpagetext": "----\n<em>Toto je diskusní stránka anonymního uživatele, který si dosud nevytvořil účet nebo ho nepoužívá.</em>\nK&nbsp;jeho identifikaci proto musíme používat číselnou IP adresu. Takovou IP adresu může sdílet několik uživatelů. Pokud jste anonymní uživatel a&nbsp;máte za to, že jsou vám adresovány irelevantní komentáře, prosíme, [[Special:UserLogin/signup|vytvořte si účet]] nebo [[Special:UserLogin|se přihlaste]], vyhnete se tím budoucí záměně s&nbsp;jinými anonymními uživateli.",
        "noarticletext": "Tato stránka zatím neobsahuje žádný text.\nMůžete [[Special:Search/{{PAGENAME}}|zkusit tento název vyhledat]] na jiných stránkách, <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} prohlédnout si příslušné protokolovací záznamy] nebo [{{fullurl:{{FULLPAGENAME}}|action=edit}} tuto stránku založit]</span>.",
        "noarticletext-nopermission": "Tato stránka zatím neobsahuje žádný text.\nMůžete [[Special:Search/{{PAGENAME}}|zkusit tento název vyhledat]] na jiných stránkách nebo <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} si prohlédnout příslušné protokolovací záznamy]</span>, ale na založení této stránky nemáte oprávnění.",
        "missing-revision": "Revize #$1 stránky s názvem „{{FULLPAGENAME}}“ neexistuje.\n\nToto je obvykle způsobeno tím, že jste následovali zastaralý odkaz na historickou verzi stránky, jež byla smazána.\nPodrobnosti mohou být uvedeny v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} knize smazaných stránek].",
-       "userpage-userdoesnotexist": "Uživatelský účet „<nowiki>$1</nowiki>“ není zaregistrován. Zkontrolujte, zda skutečně chcete vytvořit či editovat tuto stránku.",
+       "userpage-userdoesnotexist": "Uživatelský účet „$1“ není zaregistrován.\nZkontrolujte, zda skutečně chcete tuto stránku vytvořit či editovat.",
        "userpage-userdoesnotexist-view": "Uživatelský účet „$1“ není zaregistrován.",
        "blocked-notice-logextract": "Tento uživatel je momentálně zablokován.\nZde je pro přehled zobrazen nejnovější záznam z knihy zablokování:",
-       "clearyourcache": "'''Poznámka:''' Po uložení musíte smazat cache vašeho prohlížeče, jinak změny neuvidíte.\n* '''Firefox / Safari:''' Při kliknutí na ''Aktualizovat'' držte ''Shift'' nebo stiskněte ''Ctrl-F5'' nebo ''Ctrl-R'' (na Macu ''⌘-R'').\n* '''Google Chrome:''' Stiskněte ''Ctrl-Shift-R'' (na Macu ''⌘-Shift-R'').\n* '''Internet Explorer:''' Při kliknutí na ''Aktualizovat'' držte ''Ctrl'' nebo stiskněte ''Ctrl-F5''.\n* '''Opera:''' Smažte obsah cache v menu ''Nástroje → Nastavení''.",
-       "usercssyoucanpreview": "'''Tip:''' Použijte tlačítko „{{int:showpreview}}“ k testování vašeho nového CSS před uložením.",
-       "userjsyoucanpreview": "'''Tip:''' Použijte tlačítko „{{int:showpreview}}“ k testování vašeho nového JavaScriptu před uložením.",
-       "usercsspreview": "'''Pamatujte, že si prohlížíte jen náhled vašeho uživatelského CSS.'''\n'''Zatím nebylo uloženo!'''",
-       "userjspreview": "'''Pamatujte, že testujete a prohlížíte pouze náhled vašeho uživatelského JavaScriptu, dosud nebyl uložen!'''",
-       "sitecsspreview": "'''Pamatujte, že si prohlížíte jen náhled tohoto CSS.'''\n'''Zatím nebylo uloženo!'''",
-       "sitejspreview": "'''Pamatujte, že testujete a prohlížíte pouze náhled tohoto JavaScriptu.'''\n'''Dosud nebyl uložen!'''",
-       "userinvalidcssjstitle": "'''Varování:''' Vzhled „$1“ neexistuje. Nezapomeňte, že uživatelské .css a .js soubory používají malá písmena, např. {{ns:user}}:{{BASEPAGENAME}}/vector.css, nikoli {{ns:user}}:{{BASEPAGENAME}}/Vector.css.",
+       "clearyourcache": "<strong>Poznámka:</strong> Po uložení musíte smazat cache vašeho prohlížeče, jinak změny neuvidíte.\n* <strong>Firefox / Safari:</strong> Při kliknutí na <em>Aktualizovat</em> držte <em>Shift</em> nebo stiskněte <em>Ctrl-F5</em> nebo <em>Ctrl-R</em> (na Macu <em>⌘-R</em>)\n* <strong>Google Chrome:</strong> Stiskněte <em>Ctrl-Shift-R</em> (na Macu <em>⌘-Shift-R</em>)\n* <strong>Internet Explorer:</strong> Při kliknutí na <em>Aktualizovat</em> držte <em>Ctrl</em> nebo stiskněte <em>Ctrl-F5</em>\n* <strong>Opera:</strong> Smažte obsah cache v menu <em>Nástroje → Nastavení</em>",
+       "usercssyoucanpreview": "<strong>Tip:</strong> Použijte tlačítko „{{int:showpreview}}“ k testování vašeho nového CSS před uložením.",
+       "userjsyoucanpreview": "<strong>Tip:</strong> Použijte tlačítko „{{int:showpreview}}“ k testování vašeho nového JavaScriptu před uložením.",
+       "usercsspreview": "<strong>Pamatujte, že si prohlížíte jen náhled vašeho uživatelského CSS, jelikož dosud nebyl uložen!</strong>",
+       "userjspreview": "<strong>Pamatujte, že testujete a prohlížíte pouze náhled vašeho uživatelského JavaScriptu, jelikož dosud nebyl uložen!</strong>'",
+       "sitecsspreview": "<strong>Pamatujte, že si prohlížíte jen náhled tohoto CSS, jelikož dosud nebylo uloženo!</strong>",
+       "sitejspreview": "<strong>Pamatujte, že testujete a prohlížíte pouze náhled tohoto JavaScriptu, jelikož dosud nebyl uložen!</strong>",
+       "userinvalidcssjstitle": "<strong>Varování:</strong> Vzhled „$1“ neexistuje. Nezapomeňte, že uživatelské .css a .js soubory používají malá písmena, např. {{ns:user}}:{{BASEPAGENAME}}/vector.css, nikoli {{ns:user}}:{{BASEPAGENAME}}/Vector.css.",
        "updated": "(Změna uložena)",
-       "note": "'''Poznámka:'''&nbsp;",
-       "previewnote": "'''Pamatujte, že toto je pouze náhled.'''\nZměny zatím nebyly uloženy!",
+       "note": "<strong>Poznámka:</strong>",
+       "previewnote": "<strong>Pamatujte, že toto je pouze náhled.</strong>\nZměny dosud nebyly uloženy!",
        "continue-editing": "Přejít k editačnímu poli",
        "previewconflict": "Tento náhled ukazuje text tak, jak bude vypadat po uložení stránky.",
-       "session_fail_preview": "'''Váš požadavek se nepodařilo zpracovat kvůli ztrátě dat z relace.\nZkuste to prosím znovu.\nPokud se tento problém bude opakovat, zkuste se [[Special:UserLogout|odhlásit]] a znovu přihlásit.'''",
-       "session_fail_preview_html": "'''Váš požadavek se nepodařilo zpracovat kvůli ztrátě dat z relace.'''\n\n''Jelikož má {{SITENAME}} zapnuto používání neomezeného HTML, náhled se kvůli prevenci proti útokům JavaScriptem nezobrazuje.''\n\n'''Pokud jde o zamýšlenou editaci, zkuste to prosím znovu. Pokud se tento problém bude opakovat, zkuste se [[Special:UserLogout|odhlásit]] a znovu přihlásit.'''",
-       "token_suffix_mismatch": "'''Vaše editace byla odmítnuta, protože Váš prohlížeč komolí některé znaky v editovaném textu.\nEditace byla odmítnuta, aby se zabránilo poškození textu stránky.\nToto se někdy může někdy stát, používáte-li chybující webový anonymizér.'''",
-       "edit_form_incomplete": "'''Část editačního formuláře nedorazila na server; překontrolujte úplnost změn a zkuste to znovu.'''",
+       "session_fail_preview": "<strong>Váš požadavek se nepodařilo zpracovat kvůli ztrátě dat z relace.</strong>\nZkuste to prosím znovu.\nPokud se tento problém bude opakovat, zkuste se [[Special:UserLogout|odhlásit]] a znovu přihlásit.",
+       "session_fail_preview_html": "<strong>Váš požadavek se nepodařilo zpracovat kvůli ztrátě dat z relace.</strong>\n\n<em>Jelikož má {{SITENAME}} zapnuto používání neomezeného HTML, náhled se kvůli prevenci proti útokům JavaScriptem nezobrazuje.</em>\n\n<strong>Pokud jde o zamýšlenou editaci, zkuste to prosím znovu.</strong>\nPokud se tento problém bude opakovat, zkuste se [[Special:UserLogout|odhlásit]] a znovu přihlásit.",
+       "token_suffix_mismatch": "<strong>Vaše editace byla odmítnuta, protože Váš prohlížeč komolí některé znaky v editovaném textu.</strong>\nEditace byla odmítnuta, aby se zabránilo poškození textu stránky.\nToto se někdy může stát, používáte-li chybující webový anonymizér.",
+       "edit_form_incomplete": "<strong>Část editačního formuláře nedorazila na server; překontrolujte úplnost změn a zkuste to znovu.</strong>",
        "editing": "Editace stránky $1",
        "creating": "Vytváření $1",
        "editingsection": "Editace stránky $1 (část)",
        "editingcomment": "Editace stránky $1 (nová sekce)",
        "editconflict": "Editační konflikt: $1",
-       "explainconflict": "Někdo změnil stránku po započetí vaší editace.\nVýše vidíte aktuální text stránky.\nVaše změny jsou uvedeny dole.\nMusíte sloučit své změny se stávajícím textem.\n'''Pouze''' výše uvedený text zůstane uchován po kliknutí na „{{int:savearticle}}“.",
+       "explainconflict": "Někdo změnil stránku po započetí vaší editace.\nVýše vidíte aktuální text stránky.\nVaše změny jsou uvedeny dole.\nMusíte sloučit své změny se stávajícím textem.\n<strong>Pouze</strong> výše uvedený text zůstane uchován po kliknutí na „{{int:savearticle}}“.",
        "yourtext": "Váš text",
        "storedversion": "Uložená verze",
-       "nonunicodebrowser": "'''UPOZORNĚNÍ: Váš prohlížeč není schopen pracovat se znaky Unicode. Abyste mohli tuto stránku bezpečně editovat, je použita pomůcka: všechny znaky mimo ASCII jsou zobrazeny v hexadecimálních kódech.'''",
+       "nonunicodebrowser": "<strong>UPOZORNĚNÍ: Váš prohlížeč není schopen pracovat se znaky Unicode.</strong>\nAbyste mohli tuto stránku bezpečně editovat, je použita pomůcka: všechny znaky mimo ASCII jsou v editačním poli zobrazeny v hexadecimálních kódech.",
        "editingold": "'''VAROVÁNÍ: Nyní editujete zastaralou verzi této stránky. Když ji uložíte, všechny pozdější změny se ztratí.'''",
        "yourdiff": "Rozdíly",
        "copyrightwarning": "Všechny příspěvky do {{grammar:2sg|{{SITENAME}}}} jsou zveřejňovány podle $2 (podrobnosti najdete na $1).\nPokud si nepřejete, aby váš text byl nemilosrdně upravován a volně šířen, pak ho do {{grammar:2sg|{{SITENAME}}}} neukládejte.<br />\nUložením příspěvku se zavazujete, že je vaším dílem nebo je zkopírován ze zdrojů, které nejsou chráněny autorským právem (tzv. <em>public domain</em>).\n'''NEVKLÁDEJTE DÍLA CHRÁNĚNÁ AUTORSKÝM PRÁVEM BEZ DOVOLENÍ!'''",
        "import-rootpage-nosubpage": "Ve jmenném prostoru „$1“ kořenové stránky nejsou dovoleny podstránky.",
        "importlogpage": "Kniha importů",
        "importlogpagetext": "Na této stránce se zobrazují správcovské importy stránek včetně historie editací z jiných wiki.",
-       "import-logentry-upload": "naimportoval [[$1]] načtením souboru",
        "import-logentry-upload-detail": "{{PLURAL:$1|naimportována $1 revize|naimportovány $1 revize|naimportováno $1 revizí}}",
-       "import-logentry-interwiki": "přenesl $1",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|naimportována $1 revize|naimportovány $1 revize|naimportováno $1 revizí}} z $2",
        "javascripttest": "Testování JavaScriptu",
        "javascripttest-pagetext-noframework": "Tato stránka je vyhrazena pro spouštění testů JavaScriptu.",
        "logentry-block-reblock": "$1 {{GENDER:$2|změnil|změnila|mění}} nastavení bloku {{GENDER:$4|uživatele|uživatelky}} „$3“ s časem vypršení $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|zablokoval|zablokovala|blokuje}} {{GENDER:$4|uživatele|uživatelku}} „$3“ s časem vypršení $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|změnil|změnila|mění}} nastavení bloku {{GENDER:$4|uživatele|uživatelky}} „$3“ s časem vypršení $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|naimportoval|naimportovala}} $3 načtením souboru",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|naimportoval|naimportovala}} $3 z jiné wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|sloučil|sloučila}} stránku $3 do $4 (revize po $5)",
        "logentry-move-move": "$1 {{GENDER:$2|přesunul|přesunula}} stránku $3 na $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|přesunul|přesunula}} stránku $3 na $4 bez založení přesměrování",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|deaktivoval|deaktivovala}} značku „$4“ pro uživatele a boty",
        "rightsnone": "(žádné)",
        "revdelete-summary": "shrnutí editace",
+       "feedback-adding": "Komentář se přidává na stránku…",
+       "feedback-back": "Zpět",
+       "feedback-bugcheck": "Skvělé! Jen zkontrolujte, zda se nejedná o jednu z [$1 už známých chyb].",
+       "feedback-bugnew": "Zkontroloval(a) jsem to. Chci ohlásit novou chybu.",
        "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:",
-       "feedback-message": "Zpráva:",
        "feedback-cancel": "Storno",
-       "feedback-submit": "Odeslat komentář",
-       "feedback-adding": "Komentář se přidává na stránku…",
+       "feedback-close": "Hotovo",
+       "feedback-external-bug-report-button": "Založit technický úkol",
+       "feedback-dialog-title": "Odeslat názor",
+       "feedback-dialog-intro": "Pomocí níže zobrazeného jednoduchého formuláře můžete odeslat svůj názor. Váš komentář se spolu s vaším uživatelským jménem přidá na stránku „$1“.",
+       "feedback-error-title": "Chyba",
        "feedback-error1": "Chyba: Nerozpoznaný výsledek z API",
        "feedback-error2": "Chyba: Editace se nezdařila",
        "feedback-error3": "Chyba: API nevrátilo žádnou odpověď",
+       "feedback-message": "Zpráva:",
+       "feedback-subject": "Předmět:",
+       "feedback-submit": "Odeslat",
+       "feedback-terms": "Jsem srozuměn s tím, že informace o mém uživatelském agentu zahrnují informace o přesné verzi mého prohlížeče a operačního systému a budou zveřejněny u mého komentáře.",
        "feedback-thanks": "Děkujeme! Váš komentář byl přidán na stránku „[$2 $1]“.",
-       "feedback-close": "Hotovo",
-       "feedback-bugcheck": "Skvělé! Jen zkontrolujte, zda se nejedná o jednu z [$1 už známých chyb].",
-       "feedback-bugnew": "Zkontroloval(a) jsem to. Chci ohlásit novou chybu.",
+       "feedback-thanks-title": "Děkujeme!",
+       "feedback-useragent": "Uživatelský agent:",
        "searchsuggest-search": "Hledat",
        "searchsuggest-containing": "obsahující…",
        "api-error-badaccess-groups": "Nemáte povoleno nahrávat soubory na tuto wiki.",
index df0bddf..f59c963 100644 (file)
@@ -5,7 +5,8 @@
                        "Omnipaedista",
                        "Svetko",
                        "Wolliger Mensch",
-                       "ОйЛ"
+                       "ОйЛ",
+                       "아라"
                ]
        },
        "tog-oldsig": "нꙑнѣшьн҄ь аѵтографъ :",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|бєсѣда]])",
        "version": "MediaWiki обраꙁъ",
        "version-specialpages": "нарочьнꙑ страницѧ",
-       "version-version": "(обраꙁъ $1)",
+       "version-version": "($1)",
        "version-license": "MediaWiki прощєниѥ",
        "version-software-version": "обраꙁъ",
        "redirect-submit": "прѣиди",
index d4349e0..53f9caa 100644 (file)
@@ -8,7 +8,8 @@
                        "Salam",
                        "Александр Сигачёв",
                        "Блокнот",
-                       "아라"
+                       "아라",
+                       "Chuvash2014"
                ]
        },
        "tog-underline": "Ссылкăсене аялтан туртса палармалла:",
        "underline-always": "Яланах",
        "underline-never": "Нихăçан та",
        "underline-default": "Браузер ĕнерлевĕсене усă курмалла",
-       "sunday": "вырсарникун",
+       "sunday": "Ð\92ырсарникун",
        "monday": "Тунтикун",
        "tuesday": "Ытларикун",
        "wednesday": "Юнкун",
        "thursday": "Кĕçнерникун",
        "friday": "Эрнекун",
-       "saturday": "шăматкун",
+       "saturday": "Шăматкун",
        "sun": "Вр",
        "mon": "Тн",
        "tue": "Ыт",
        "thu": "Кç",
        "fri": "Эрн",
        "sat": "Шм",
-       "january": "кăрлач",
-       "february": "нарăс",
-       "march": "пуш",
-       "april": "ака",
-       "may_long": "çу",
-       "june": "çĕртме",
-       "july": "утă",
-       "august": "çурла",
-       "september": "авăн",
-       "october": "юпа",
-       "november": "чӳк",
-       "december": "раштав",
-       "january-gen": "кăрлач уйăхĕн",
-       "february-gen": "нарăс уйăхĕн",
-       "march-gen": "пуш уйăхĕн",
-       "april-gen": "ака уйăхĕн",
-       "may-gen": "çу уйăхĕн",
-       "june-gen": "çĕртме уйăхĕн",
-       "july-gen": "утă уйăхĕн",
-       "august-gen": "çурла уйăхĕн",
-       "september-gen": "авăн уйăхĕн",
-       "october-gen": "юпа уйăхĕн",
-       "november-gen": "чӳк уйăхĕн",
-       "december-gen": "раштав уйăхĕн",
-       "jan": "кăр",
-       "feb": "нар",
-       "mar": "пуш",
-       "apr": "ака",
-       "may": "çу",
-       "jun": "çĕр",
-       "jul": "утă",
-       "aug": "çур",
-       "sep": "авн",
-       "oct": "юпа",
-       "nov": "чӳк",
-       "dec": "раш",
+       "january": "Ð\9aăрлач",
+       "february": "Ð\9dарăс",
+       "march": "Ð\9fуш",
+       "april": "Ð\90ка",
+       "may_long": "Ã\87у",
+       "june": "Ã\87ĕртме",
+       "july": "Утă",
+       "august": "Ã\87урла",
+       "september": "Ð\90вăн",
+       "october": "Юпа",
+       "november": "Чӳк",
+       "december": "Раштав",
+       "january-gen": "Ð\9aăрлач уйăхĕн",
+       "february-gen": "Ð\9dарăс уйăхĕн",
+       "march-gen": "Ð\9fуш уйăхĕн",
+       "april-gen": "Ð\90ка уйăхĕн",
+       "may-gen": "Ã\87у уйăхĕн",
+       "june-gen": "Ã\87ĕртме уйăхĕн",
+       "july-gen": "Утă уйăхĕн",
+       "august-gen": "Ã\87урла уйăхĕн",
+       "september-gen": "Ð\90вăн уйăхĕн",
+       "october-gen": "Юпа уйăхĕн",
+       "november-gen": "Чӳк уйăхĕн",
+       "december-gen": "Раштав уйăхĕн",
+       "jan": "Ð\9aăр",
+       "feb": "Ð\9dар",
+       "mar": "Ð\9fуш",
+       "apr": "Ð\90ка",
+       "may": "Ã\87у",
+       "jun": "Ã\87ĕр",
+       "jul": "Утă",
+       "aug": "Ã\87ур",
+       "sep": "Ð\90вн",
+       "oct": "Юпа",
+       "nov": "Чӳк",
+       "dec": "Раш",
        "pagecategories": "{{PLURAL:$1|1=Категори|Категорисем}}",
        "category_header": "«$1» категорири статьясем",
        "subcategories": "Подкатегорисем",
        "navigation": "Меню",
        "and": "&#32;тата",
        "qbfind": "Шырав",
-       "qbbrowse": "Ð\9aÑ\83Ñ\80Ä\83м",
+       "qbbrowse": "Ð\9fÄ\83Ñ\85",
        "qbedit": "Тӳрлет",
        "qbpageoptions": "Страница ĕнерлевĕсем",
        "qbmyoptions": "Сирĕн ĕнĕрлевсем",
        "faq": "ЫйХу",
        "faqpage": "Project:ЫйХу",
+       "variants": "Вариантсем",
        "errorpagetitle": "Йăнăш",
        "returnto": "$1 страницăна таврăн.",
        "tagline": "{{GRAMMAR:genitive|{{SITENAME}}}}ри материал",
        "help": "Пулăшу",
-       "search": "Шырасси",
-       "searchbutton": "Шырасси",
+       "search": "Шырамалли",
+       "searchbutton": "Шырамалли",
        "go": "Куç",
        "searcharticle": "Куç",
-       "history": "Ð\98Ñ\81Ñ\82оÑ\80и",
+       "history": "СÑ\82Ñ\80аниÑ\86ин Ð¸Ñ\81Ñ\82оÑ\80ийÄ\95",
        "history_short": "Истори",
        "updatedmarker": "эпĕ юлашки хут кĕнĕ хыççăн çĕнелнĕ",
        "printableversion": "Пичетлемелли верси",
        "permalink": "Яланхи вырăн",
        "print": "Пичетле",
-       "edit": "Тӳрлетӳ",
+       "view": "Пăх",
+       "edit": "Тӳрлет",
        "create": "Çĕннине ту",
        "editthispage": "Страницăна тӳрлетесси",
        "create-this-page": "Ку страницăна хатĕрле",
        "templatepage": "Шаблонăн страницине пăх",
        "viewhelppage": "Справка страницине пăх",
        "categorypage": "Категори страницине пăх",
-       "viewtalkpage": "Сӳтсе явнине тишкер",
+       "viewtalkpage": "Сӳтсе явнине пăх",
        "otherlanguages": "Урăх чĕлхесем",
        "redirectedfrom": "($1 çинчен куçарнă)",
        "redirectpagesub": "Куçаракан страница",
        "viewcount": "Ку страницăна $1 хут пăхнă.",
        "protectedpage": "Хӳтĕленĕ статья",
        "jumpto": "Куçас:",
-       "jumptonavigation": "çӳрев",
-       "jumptosearch": "Шырав",
+       "jumptonavigation": "навигаци",
+       "jumptosearch": "шырамалли",
        "aboutsite": "{{SITENAME}} çинчен",
        "aboutpage": "Project:çинчен",
        "copyright": "Ку ăшлăх $1 килĕшӳллĕн сарăлать.",
        "disclaimers": "Яваплăха тивĕçтерменни",
        "disclaimerpage": "Project:Яваплăха тивĕçтерменни",
        "edithelp": "Улшăнусене кĕртме пулăшакан пулăшу",
-       "mainpage": "Тĕп страница",
+       "mainpage": "Тĕп страницă",
        "mainpage-description": "Тĕп страницă",
        "policy-url": "Project:Йĕркесем",
        "portal": "Портал",
        "editlink": "тӳрлет",
        "editsectionhint": "$1 пайне тӳрлет",
        "toc": "Тупмалли",
-       "showtoc": "кăтарт",
+       "showtoc": "кăтартмалла",
        "hidetoc": "кӑтартмалла мар",
        "thisisdeleted": "$1 пăхса каялла тавăрмалла-и?",
        "viewdeleted": "$1 пăхар-и?",
        "page-rss-feed": "«$1» - RSS хăю",
        "page-atom-feed": "«$1» - Atom хăю",
        "red-link-title": "$1 (хальлĕхе çырман)",
-       "nstab-main": "Статья",
+       "nstab-main": "Страницă",
        "nstab-user": "Хутшăнакан страници",
        "nstab-media": "Мультимеди",
        "nstab-special": "Ятарлă страницă",
        "nstab-image": "Файл",
        "nstab-mediawiki": "Пĕлтерӳ",
        "nstab-template": "Шаблон",
-       "nstab-help": "пулăшу",
+       "nstab-help": "Ð\9fулăшу",
        "nstab-category": "Категори",
        "nosuchaction": "Ку ĕçе тăваймастпăр",
        "nosuchactiontext": "URLта çырнă хушăва вики скрипчĕ ăнланмасть",
        "nospecialpagetext": "Эсир ыйтакан ятарлă страница çук. [[Special:SpecialPages|Ятарлă страницăсен списокне]] пăхăр.",
        "error": "Йăнăш",
        "databaseerror": "Пĕлĕм пуххин йăнăшĕ",
+       "databaseerror-function": "$1: функци",
        "laggedslavemode": "Асăрхăр! Страница çинче юлашки улшăнусене кăтартмасăр пултарнă.",
        "readonly": "Пĕлĕм пуххине çырассине чарса хунă",
        "enterlockreason": "Чарнин сăлтавне тата палăртнă вăхăта кăтартăр.",
        "perfcached": "Ку даннăйсене кэшран илнĕ, çавна май унта юлашки улшăнусем палăрмасăр пултараççĕ. A maximum of {{PLURAL:$1|1=one result is|$1 results are}} available in the cache.",
        "perfcachedts": "Ку даннăйсене кэшран илнĕ, юлашки хут вăл $1 вăхăтра çĕнелнĕ. A maximum of {{PLURAL:$4|1=one result is|$4 results are}} available in the cache.",
        "querypage-no-updates": "Ку страницăна хальхи вăхăтра улăштарма чарнă. Ку даннăйсене хальхи вăхăтра çĕнетме май çук.",
-       "viewsource": "Ð\9aÑ\83Ñ\80Ä\83м",
+       "viewsource": "СÑ\82Ñ\80аниÑ\86ине Ð¿Ä\83Ñ\85ни",
        "actionthrottled": "Хăвăртлăха чакарнă",
        "actionthrottledtext": "Спампа кĕрешнине пула ку ĕçе пĕчĕк вăхăт хушшинче ытла нумай тума чарнă. Темиçе минутран тепре туса пăхма пултаратăр.",
        "protectedpagetext": "Ку страницăна тӳрлетме май çук, хӳтĕленĕ.",
        "virus-scanfailed": "скенерланă чухнехи йăнăш (код $1)",
        "virus-unknownscanner": "паллă мар антивирус:",
        "logouttext": "Эсир палласа илмен хутшăнакан евĕр ĕçлетĕр.\nСайт сире ятпа мар, IP-адрес урлă пĕлет.\nЭсир анонимла, е малтанхи евĕрлĕ çĕнĕ сеанс уçса, е  урăх ятпа ĕçлеме пултаратăр.\nХăш-пĕр страницăсем эсир сайта кĕнĕ пек курăнма пултараççĕ, ăна тӳрлетмешкĕн браузер кэшне çĕнетĕр.",
-       "yourname": "Сирĕн ят",
+       "yourname": "Усăкуракан ят:",
+       "userlogin-yourname": "Усă куракан ят",
        "yourpassword": "Вăрттăн сăмах:",
        "yourpasswordagain": "Вăрттăн сăмах тепре çырăр:",
        "remembermypassword": "Ку компьютер çинче мана астуса хăвармалла (for a maximum of $1 {{PLURAL:$1|1=day|days}})",
        "yourdomainname": "Сирĕн домен",
-       "login": "СайÑ\82а Ðºĕр",
+       "login": "Ð\9aÄ\95Ñ\80ĕр",
        "nav-login-createaccount": "Сайта кĕр / регистрацилен",
        "userlogin": "Сайта кĕр",
-       "logout": "Сайтран тухас",
-       "userlogout": "Сайтран тух",
+       "userloginnocreate": "Кĕмелли",
+       "logout": "Сеансне пĕтерни",
+       "userlogout": "Тухрăр",
        "notloggedin": "Эсир сайта кĕмен",
        "nologin": "Эсир халĕ те регистрациленмен-и? '''$1'''.",
        "nologinlink": "Çĕнĕ хутшăнакана регистрацилесси",
        "createaccount": "Çĕнĕ хутшăнакана регистрацилесси",
        "gotaccount": "Эсир регистрациленсе-и? '''$1'''.",
-       "gotaccountlink": "СайÑ\82а Ðºĕр",
+       "gotaccountlink": "Ð\9aÄ\95Ñ\80ĕр",
        "createaccountmail": "эл. почта тăрăх",
+       "createacct-submit": "Аккаунт тумалли",
        "badretype": "Эсир кăтартнă парольсем пĕр пек мар.",
        "userexists": "Эсир усă курас теекен ята йышăннă. Тархасшăн, урăх ят суйласа илĕр.",
        "loginerror": "Хутшăнакана палласа илеймерĕмĕр",
        "accountcreatedtext": "Хутшăнакансем шутне $1 ятлă çĕнĕ хутшăнакана кĕртрĕмĕр.",
        "createaccount-title": "{{SITENAME}}: хутшăнакана хушасси",
        "loginlanguagelabel": "Чĕлхе: $1",
+       "pt-login": "Кĕмелли",
+       "pt-login-button": "Кĕр",
+       "pt-createaccount": "Аккаунт тумалли",
+       "pt-userlogout": "Тухмалли",
        "changepassword": "Пароле улăштар",
        "resetpass_header": "Пароле пăрахăçла",
-       "oldpassword": "Ð\9aивÄ\9b Ð¿Ð°Ñ\80олÑ\8c",
-       "newpassword": "Ã\87Ä\9bнÄ\9b Ð¿Ð°Ñ\80олÑ\8c",
+       "oldpassword": "Ð\9aивÄ\95 Ð¿Ð°Ñ\80олÑ\8c:",
+       "newpassword": "Ã\87Ä\95нÄ\95 Ð¿Ð°Ñ\80олÑ\8c:",
        "resetpass_submit": "Вăрттăн сăмаха лартса сайта кĕр",
        "resetpass_forbidden": "Вăрттăн сăмаха улăштарма май çук",
        "resetpass-submit-cancel": "Пăрахăçла",
        "resetpass-temp-password": "Вăхăтлăх вăрттăн сăмах:",
+       "passwordreset-username": "Усă куракан ят:",
+       "passwordreset-domain": "Домен:",
+       "changeemail-none": "(çук)",
        "bold_sample": "Çурмахулăм текст",
        "bold_tip": "Çурмахулăм текст",
        "italic_sample": "Тайлăк текст",
        "watchthis": "Ку страницăна сăна",
        "savearticle": "Страницăна çырса хур",
        "preview": "Епле курăнĕ",
-       "showpreview": "Малтанлăхи курăну",
+       "showpreview": "Маларах пăхни",
        "showdiff": "Кĕртнĕ улшăнусем",
        "anoneditwarning": "'''Асăрхăр''': Эсир сайта хăвăр çинчен пĕлтермен, çавăнпа та ку страницăна улăштарнин журналне сирĕн IP-адреса çырса хума тивĕ.",
        "missingcommenttext": "Аяларах, тархасшăн, хăвар пĕлтерĕве çырăр.",
        "blockedtext": "'''Ку аккаунта е IP-адреса ĕçлеме чарнă.'''\n\n$1 администратор ĕçлеме чарнă. Сăлтавĕ çакă: ''«$2»''.\n\n* Чарнă вăхăт: $8\n* Çак вăхăтчен чарнă: $6\n* Çакна чарнă: $7\n\n$1 хутшăнакан патне, е ытти [[{{MediaWiki:Grouppage-sysop}}|администраторсем]] патне эсир çыру ярса меншĕн ĕçлеме чарнине сӳтсе явма пултаратăр.\n\nАсăрхар: [[Special:Preferences|хăвăрăн ĕнерлевсенче]] эл. почта адресне çирĕплетмен пулсан, е сайта кĕмен пулсан — администратор патне çыру яраймастăр. Администратор сире çыру яма чарнă пулсан — ку хутĕнче те çыру яраймăр.\n\nСирĕн IP-адрес — $3, чару идентификаторĕ — #$5. Çырусенче, тархасшăн, вĕсене пĕлтерĕр.",
        "blockednoreason": "сăлтавне пĕлтермен",
        "loginreqtitle": "Сайта кĕмелле",
-       "loginreqlink": "сайта кĕр",
+       "loginreqlink": "кĕр",
        "loginreqpagetext": "Ытти страницăсене курмашкăн сирĕн $1.",
        "accmailtitle": "Пароле леçрĕмĕр.",
        "accmailtext": "$1 вăрттăн сăмахне кунта леçрĕмĕр: $2.",
        "copyrightwarning": "Эсир кĕртнĕ, е улăштарнă пур статьясен тексчĕсем $2 ($1 пăхăр) лизензине пăхăнаççĕ. Енчен те эсир кĕртнĕ текста пурте усă курма, тӳрлетсе улăштарма пултарнипе килĕшместĕр пулсан кунта ăна ан кĕртĕр. <br /> Çавăн пекех эсир кĕртнĕ текстăн е авторĕ, е ăна ирĕклĕ усă курма юракан çăлкуçсенчен илнине çирĕплететĕр. <br /> '''АВТОР ПРАВИСЕМПЕ ХӲТĔЛЕНĔ МАТЕРИАЛСЕНЕ АН КĔРТĔР!'''",
        "protectedpagewarning": "'''АСĂРХАТТАРНИ: ку страницăна улшăнусем кĕртессинчен хӳтĕленĕ, ăна тӳрлетме администраторсем кăна пултараççĕ.'''",
        "titleprotectedwarning": "'''Асăрхаттару. Ку страницăпа ĕçлеме чарнă, ăна хăш-пĕр хутшăнакан кăна хатерлеме пултарать.'''",
-       "templatesused": "Ку страница çинче усă курнă шаблонсем:",
+       "templatesused": "Ку страницă çинче усă курнă {{PLURAL:$1|Шаблон|Шаблонсем}}:",
        "templatesusedpreview": "Пăхакан страница çинче усă курнă шаблонсем:",
        "templatesusedsection": "Ку пайра усă курнă шаблонсем:",
        "template-protected": "(сыхланă)",
        "page_last": "юлашки",
        "histfirst": "Пĕрремĕш",
        "histlast": "Юлашки",
-       "historysize": "$1 байт",
+       "historysize": "({{PLURAL:$1|1 байт|$1 байт}})",
        "historyempty": "(пушă)",
-       "history-feed-title": "ТӳÑ\80леÑ\82Ó³сен историйĕ",
+       "history-feed-title": "УлÄ\83Ñ\88Ä\83нÑ\83сен историйĕ",
        "history-feed-description": "Ку страницăна викире улаштарнин историйĕ",
        "rev-deleted-comment": "(комментарине кăларса пăрахнă)",
        "rev-deleted-user": "(автор ятне хуратнă)",
        "revdelete-hide-text": "Страницăн çак верси текстне пытар",
        "revdelete-hide-comment": "Комментарине пытар",
        "revdelete-hide-user": "Автор ятне пытар",
+       "revdelete-radio-set": "Пытарнă",
+       "revdelete-radio-unset": "Курăнакан",
        "revdelete-success": "Версин курăмлăхне улăштартăмăр.",
        "pagehist": "Страница историйĕ",
        "deletedhist": "Кăларса пăрахнисен историйĕ",
        "suppressionlog": "Пытару журналĕ",
        "lineno": "$1-мĕш йĕрке:",
        "editundo": "пăрахăçла",
-       "searchresults": "ТÑ\83пÑ\80Ä\83мÄ\83Ñ\80",
+       "searchresults": "ШÑ\8bÑ\80анÄ\83 Ñ\80езÑ\83лÑ\8cÑ\82аÑ\87Ä\95Ñ\81ем",
        "textmatches": "Статьясенчи текст пĕрпеклĕхĕ",
-       "prevn": "малтанхи {{PLURAL:$1|$1}}",
+       "prevn": "унчченхи {{PLURAL:$1|$1}}",
        "nextn": "малалли {{PLURAL:$1|$1}}",
-       "search-result-size": "$1 ({{PLURAL:$2|1=1 сăмах|$2 сăмах}})",
-       "showingresults": "Аяларах эсир <b>#$2</b> пуçласа кăтартнă <b>$1</b> йĕркене куратăр.",
+       "searchprofile-articles-tooltip": "$1 -ре шырани",
+       "searchprofile-images-tooltip": "Файăлсене шырани",
+       "search-result-size": "$1 ({{PLURAL:$2|1 сăмах|$2 сăмах}})",
+       "search-category": "(категори $1)",
+       "search-interwiki-caption": "Тăван проектсем",
+       "search-relatedarticle": "Çыхăнă",
+       "searchrelated": "çыхăнă",
+       "showingresults": "Аяларах эсир <strong>$2</strong> пуçласа кăтартнă <strong>$1</strong> йĕркене куратăр.",
        "powersearch-legend": "Анлă шырав",
+       "search-external": "Тулти шырамалли",
        "preferences": "Ĕнерлевсем",
        "mypreferences": "Ĕнерлев",
        "prefs-edits": "Тӳрлетӳсен шучĕ:",
-       "prefs-skin": "Ð\95Ñ\80еÑ\88ленӳ",
+       "prefs-skin": "ТиÑ\80",
        "skin-preview": "Малтанхи курăну",
        "datedefault": "Палăртман чухнехи",
        "prefs-rc": "Юлашки улшăнусен страници",
        "prefs-editing": "Тӳрлетни",
        "rows": "Йěркесем",
        "columns": "Юпасем:",
-       "searchresultshead": "Шыраса тупрăмăр",
+       "searchresultshead": "Шырамалли",
        "recentchangesdays": "Çак кунсен хушшинчи юлашки улшăнусене кăтартмалла:",
        "recentchangescount": "Списокра çакăн чухлĕ тӳрлетӳ кăтартмалла:",
        "savedprefs": "Сирĕн ĕнерлевсене сыхласа хăвартăмăр",
        "timezonelegend": "Сехет поясĕ",
        "localtime": "Вырăнти вăхăт",
        "servertime": "Сервер вăхăчě",
+       "timezoneregion-africa": "Африка",
+       "timezoneregion-america": "Америка",
+       "timezoneregion-antarctica": "Антарктика",
+       "timezoneregion-arctic": "Арктика",
+       "timezoneregion-asia": "Ази",
+       "timezoneregion-australia": "Австрали",
+       "timezoneregion-europe": "Европа",
+       "prefs-searchoptions": "Шырамалли",
        "prefs-files": "Файлсем",
        "youremail": "Электронлă почта:",
-       "username": "Хутшăнакан ячĕ:",
-       "yourrealname": "Сирĕн чăн ят (*)",
+       "username": "{{GENDER:$1|Хутшăнаканăн ячĕ}}:",
+       "prefs-registration": "Регистрацин вăхăтчĕ:",
+       "yourrealname": "Чăн-чăн ят:",
        "yourlanguage": "Интерфейс чĕлхи:",
        "yourvariant": "Чĕлхе варианчĕ",
        "yournick": "Сирĕн ят (алă пусма усă курăнĕ):",
        "email": "Эл. почта",
        "prefs-help-email": "Электронлă почта (вăл кирлисем шутне кĕмест пулин те) ытти хутшăнакансене сирĕнпе ун урлă çыхăнма май парать. Çыхăну тытнă вăхăтра ыттисем сирĕн адреса пĕлеймеççĕ.",
        "prefs-help-email-required": "Электронлă почтăн адресне кăтартмалла.",
+       "prefs-editor": "Редактор",
        "userrights": "Хутшăнакансен прависемпе ĕçлесси",
        "userrights-lookup-user": "Хутшăнакансен ушкăнĕсемпе ĕçлесси",
        "userrights-user-editname": "Хутшăнакан ятне кăтартăр:",
        "userrights-groupsmember": "Çак ушкăнсене кĕрет:",
        "userrights-reason": "Сăлтавĕ",
        "group": "Ушкăн:",
+       "group-user": "Хутшăнакансем",
        "group-autoconfirmed": "Автоподтверждённые участники",
        "group-bot": "Ботсем",
        "group-sysop": "Администраторсем",
        "group-bureaucrat": "Бюрократсем",
-       "group-suppress": "РевизоÑ\80Ñ\8b",
+       "group-suppress": "ТÄ\95Ñ\80Ä\95Ñ\81лекенÑ\81ем",
        "group-all": "(пурте)",
        "group-autoconfirmed-member": "автоподтверждённый участник",
-       "group-bot-member": "бот",
-       "group-sysop-member": "администратор",
-       "group-bureaucrat-member": "бюрократ",
-       "group-suppress-member": "Ревизор",
+       "group-bot-member": "{{GENDER:$1|бот}}",
+       "group-sysop-member": "{{GENDER:$1|администратор}}",
+       "group-bureaucrat-member": "{{GENDER:$1|бюрократ}}",
+       "group-suppress-member": "{{GENDER:$1|ревизор}}",
+       "grouppage-user": "{{ns:project}}:Хутшăнакансем",
        "grouppage-autoconfirmed": "{{ns:project}}:Автоподтверждённые участники",
        "grouppage-bot": "{{ns:project}}:Ботсем",
        "grouppage-sysop": "{{ns:project}}:Администраторсем",
        "grouppage-bureaucrat": "{{ns:project}}:Бюрократсем",
-       "grouppage-suppress": "{{ns:project}}:РевизоÑ\80Ñ\8b",
+       "grouppage-suppress": "{{ns:project}}:ТÄ\95Ñ\80Ä\95Ñ\81лекенÑ\81ем",
        "rightslogtext": "Ку пользовательсен прависене улăштарниссен журналě",
+       "enhancedrc-history": "истори",
        "recentchanges": "Улшăнусем",
        "recentchanges-legend": "Çĕнĕ улшăнусен ĕнерлевĕ",
        "recentchanges-label-bot": "Ку улшăнăва бот тунă",
        "recentchanges-legend-newpage": "$1 — çĕнĕ страница",
        "rclistfrom": "Юлашки улшăнусене $3 $2 вăхăтран пуçласа кăтартнă",
        "rcshowhideminor": "пĕчĕк тӳрлетӳсене $1",
-       "rcshowhidebots": "ботсене $1",
+       "rcshowhidebots": "$1 ботсене",
+       "rcshowhidebots-show": "Кăтарт",
        "rcshowhideliu": "сайта кĕнĕскерсене $1",
        "rcshowhideanons": "ячĕсене палăртманскерсене $1",
        "rcshowhidepatr": "тĕрĕсленĕ тӳрлетӳсене $1",
        "rcshowhidemine": "хăвăн тӳрлетӳсене $1",
        "rclinks": "Юлашки $2 кун хушшинче тунă $1 улшăнусене кăтартмалла<br />$3",
        "diff": "танл.",
-       "hist": "истори",
-       "hide": "кăтартмалла мар",
-       "show": "кăтартмалла",
+       "hist": "ист",
+       "hide": "Ð\9aăтартмалла мар",
+       "show": "Ð\9aăтартмалла",
        "minoreditletter": "п",
        "newpageletter": "Ç",
        "rc_categories_any": "Кашни",
        "recentchangeslinked": "Çыхăннă улшăнусем",
        "recentchangeslinked-feed": "Çыхăннă улшăнусем",
        "recentchangeslinked-toolbox": "Çыхăннă улшăнусем",
-       "recentchangeslinked-page": "Страница ячĕ:",
+       "recentchangeslinked-page": "Страницă ячĕ:",
        "upload": "Файла кĕртесси",
        "uploadbtn": "Файла кĕрт",
        "uploadnologin": "Эсир сайта кĕмен.",
        "uploaderror": "Файла кĕртне чухне йăнăш пулчĕ",
        "uploadlogpage": "Файлсене кĕртнине кăтартакан журнал",
        "uploadlogpagetext": "Аяларах эсир юлашкинчен кĕртнĕ файлсене куратăр.\nПур çĕрте те сервер вăхăтне (Гринвич тăрăх, UTC) кăтартнă.",
+       "filename": "Файл ячĕ",
        "filedesc": "Кĕскен ăнлантарни",
        "fileuploadsummary": "Кĕске ăнлантару:",
        "filestatus": "Усă курмалли майсем",
        "upload_source_file": " (сирĕн компьютер çинчи файл)",
        "listfiles-summary": "Ку ятарлă страницăра эсир пур кĕртнĕ файлсене куратăр.\nНумай пулмасть кĕртнисем çулте вырнаçнă.\nЮпа тăррине пуссан йĕркелӳ майĕ улшăнĕ.",
        "listfiles_search_for": "Ӳкерчĕк ячĕ тăрăх шырани:",
+       "imgfile": "файл",
        "listfiles": "Ӳкерчěксен списокě",
        "listfiles_name": "Файл ячĕ",
        "listfiles_user": "Хутшăнакан",
        "unusedtemplatestext": "Ку страница çинче страницăсенче усă курман «Шаблон» ятлă ятсен уçлăхне шутне кĕрекен страницăсене куратăр.",
        "unusedtemplateswlh": "ытти каçăсем",
        "randompage": "Ăнсăртран илнě страницă",
+       "randomincategory-category": "Категори:",
        "randomredirect": "Ăнсăртран илнĕ куçару",
        "statistics": "Статистика",
        "statistics-header-users": "Хутшăнакансен статистики",
        "unusedcategoriestext": "Çак категори страницисем çинче ытти категорисемпе статьясем çук.",
        "notargettitle": "Тĕллевне кăтартман",
        "booksources": "Кĕнекесен çăлкуçĕсем",
+       "booksources-search": "Туп",
        "specialloguserlabel": "Хутшăнакан:",
-       "log": "Ð\96Ñ\83Ñ\80налсем",
+       "log": "Ð\9bогсем",
        "all-logs-page": "Журналсем",
-       "allpages": "Ð\9fÄ\9bÑ\82Ä\9bм страницăсем",
-       "nextpage": "ТепÄ\9bр страницă ($1)",
-       "prevpage": "Ð\9cалÑ\82анÑ\85и Ñ\81Ñ\82Ñ\80аниÑ\86а ($1)",
+       "allpages": "Ð\9fÄ\95Ñ\82Ä\95м страницăсем",
+       "nextpage": "ТепÄ\95р страницă ($1)",
+       "prevpage": "УнÑ\87Ñ\87енÑ\85и Ñ\81Ñ\82Ñ\80аниÑ\86Ä\83 ($1)",
        "allarticles": "Пĕтĕм статьясем",
        "allinnamespace": "Пĕтĕм статьясем («$1» ят уçлăхĕ)",
        "allpagessubmit": "Ту",
        "special-categories-sort-count": "шучĕ тăрăх йĕркеле",
        "special-categories-sort-abc": "алфавит тăрăх йĕркеле",
        "deletedcontributions": "Тулашран тунă ӳсĕм",
+       "linksearch-ok": "Шырамалли",
        "listusers-submit": "Кăтарт",
        "listusers-noresult": "Хутшăнакансем тупăнмарĕç.",
        "listgrouprights-group": "Ушкăн",
        "emailuser": "Хутшăнакана çыру яр... (Письмо участнику)",
        "noemailtitle": "Электронлă почта адресĕ çук",
        "noemailtext": "Ку хутшăнакан электронлă адресне кăтартман е ытти хутшăнакансенчен çыру илесшĕн мар.",
+       "emailusername": "Хутшăнаканăн ячĕ:",
        "emailfrom": "Камран",
        "emailto": "Кам патне",
        "emailsubject": "Çыру теми",
        "emailsenttext": "Сирĕн электронлă çырăва леçрĕмĕр.",
        "watchlist": "Пăхса тăракан страницăсем ят-йышĕ",
        "mywatchlist": "Ман сăнав ят-йышĕ",
+       "watchlistfor2": "$1 $2 валли",
        "nowatchlist": "Эсир пăхса тăракан страницăсен списокĕ пушă.",
        "watchnologin": "Системăна хăвăр ята каламалла",
        "addedwatchtext": "«[[:$1]]» страницăна сирĕн [[Special:Watchlist|сăнав списока]] хушрăмăр. Малашне [[Special:RecentChanges|юлашки улшăнусене кăтартакан страницăра]] унпа çыхăннă улшăнусене хылăм шрифтпа курăнĕç.\nЕнчен те сирĕн ку страницăна сăнас кăмăл пĕтсен, «ан сăна» пускăч çине пусăр.",
        "reverted": "Малтанхи версине тавăрнă",
        "deletecomment": "Сăлтавĕ",
        "rollback": "Тÿрлетÿсене каялла куçарасси",
-       "rollback_short": "Каялла куçарасси",
        "rollbacklink": "каялла тавăр",
        "rollbackfailed": "Каялла куçарнă çухна йăнăш тухнă",
        "protectlogpage": "Хӳтĕлев журналĕ",
        "protectexpiry": "Пĕтет:",
        "protect-level-autoconfirmed": "Статьяна çĕнĕрен регистрациленнĕ, е пачах та регистрациленменнисенчен хӳтĕле",
        "protect-level-sysop": "Администраторсем çеç",
+       "pagesize": "(байт)",
+       "restriction-edit": "Тӳрлет",
        "undelete": "Кăларса пăрахнă страницăсене пăх",
        "viewdeletedpage": "Кăларса пăрахнă страницăсене пăх",
        "undeleterevisions": "Архивра пурĕ $1 верси",
        "undelete-search-box": "Кăларса пăрахнă страницăсен хушшинчи шырав",
        "undelete-search-submit": "Шыра",
        "blanknamespace": "(Тĕп)",
-       "contributions": "Хутшăнакан ӳсĕмĕ",
+       "contributions": "{{GENDER:$1|Усă куракан}} ӳсĕмĕсем",
        "mycontris": "Манăн ӳсĕм",
        "contribsub2": "$1 ӳсĕмĕ ($2)",
        "uctop": " (пуçламăш)",
        "sp-contributions-talk": "Сӳтсе яв",
        "sp-contributions-userrights": "Хутшăнакансен прависемпе ĕçлесси",
        "sp-contributions-search": "Тӳпе шыравĕ",
-       "sp-contributions-submit": "Шырас",
+       "sp-contributions-submit": "Шыра",
        "whatlinkshere": "Кунта килекен каçăсем",
        "linkshere": "Çак страницăсем '''[[:$1]]''' çине илсе килеççĕ:",
        "nolinkshere": "'''[[:$1]]''' страница çине ытти страницăсенчен килме пулмасть.",
+       "whatlinkshere-prev": "{{PLURAL:$1|унчченхи|унчченхи $1}}",
        "whatlinkshere-links": "← каçăсем",
        "whatlinkshere-filters": "Аласем",
        "blockip": "Хăтшăнакана ĕçлеме чар",
        "export": "Статьясен экспорчĕ",
        "export-submit": "Экспортла",
        "export-addcat": "Хуш",
+       "export-addns": "Хуш",
        "export-templates": "Шаблонсене ĕçлеттер",
        "allmessages": "Система пĕлтерĕвĕсем",
        "allmessagesname": "Пĕлтерӳ",
        "allmessagescurrent": "Хальхи текст",
+       "allmessages-filter-translate": "Куçар",
        "thumbnail-more": "Пысăклатмалли",
        "filemissing": "Файл тупăнмарĕ",
        "thumbnail_error": "Пĕчĕк ӳкерчĕке тăваймарăмăр: $1",
        "importinterwiki": "Вики хушшинчи импорт",
        "import-interwiki-submit": "Импортирла",
        "import-interwiki-namespace": "Страницăсене çак ят уçлăхне вырнаçтар:",
+       "import-upload-filename": "Файл ячĕ:",
        "importnopages": "Импортламалли страницăсем çук.",
        "importnofile": "Импортламалли файла тиемен",
        "import-noarticle": "Импортламалли страница çук!",
        "importlogpage": "Импорт журналĕ",
-       "import-logentry-upload": "«[[$1]]» — файлтан импортла",
        "tooltip-pt-userpage": "Сирĕн хутшăнакан страници",
        "tooltip-pt-mytalk": "Сирĕн канашлу страници",
        "tooltip-pt-preferences": "Сирĕн ĕнерлевсем",
        "tooltip-pt-watchlist": "Эсир пăхакан страницисем",
-       "tooltip-pt-logout": "СайÑ\82Ñ\80ан Ñ\82Ñ\83Ñ\85",
+       "tooltip-pt-logout": "СеанÑ\81не Ð¿Ä\95Ñ\82еÑ\80",
        "tooltip-ca-talk": "Статьяна сӳтсе явасси",
        "tooltip-ca-edit": "Эсир ку страницӑна тӳрлетме пултаратӑр. Тархасшӑн ҫырса хӑваричен страницӑ мӗнле пулассине пӑхӑр.",
        "tooltip-ca-addsection": "Çĕнĕ пай ту",
        "tooltip-ca-move": "Страницӑна урӑх ҫӗре куҫарасси",
        "tooltip-ca-watch": "Ку страницӑ хыҫҫӑн сӑнама пуҫласси",
        "tooltip-ca-unwatch": "Ку страницӑ хыҫҫӑн урӑх сӑнамалла мар",
-       "tooltip-search": "Шырав",
+       "tooltip-search": "Шырав {{SITENAME}}",
        "tooltip-p-logo": "Тӗп страницӑ",
        "tooltip-feed-atom": "Ку страницăн Atom куçару",
        "tooltip-ca-nstab-image": "Файлăн страници",
        "scarytranscludetoolong": "[Питĕ шел, URL ытла вăрăм]",
        "deletedwhileediting": "Асăрхăр: эсир тӳрлетнĕ вăхăтра ку страницăна кăларса парахнă!",
        "recreate": "Çĕнĕрен пуçла",
+       "confirm_purge_button": "OK",
+       "confirm-watch-button": "OK",
+       "confirm-unwatch-button": "OK",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← малтанхи страница",
        "imgmultipagenext": "тепĕр страница →",
        "imgmultigo": "Куç!",
        "autoredircomment": "[[$1]] çине куçарни",
        "autosumm-new": "Çĕнни: $1",
        "watchlisttools-view": "Ку тӳрлетӳпе çыхăннăскерсем",
-       "version": "MediaWiki версийĕ",
+       "version": "Верси",
        "fileduplicatesearch": "Пĕр пек файлсен шыравĕ",
        "fileduplicatesearch-legend": "Дубликатсен шыравĕ",
        "fileduplicatesearch-filename": "Файл ячĕ:",
        "specialpages-group-media": "Медиа-материалсемпе тултарăшсем",
        "specialpages-group-users": "Хутшăнакансем тата правасем",
        "specialpages-group-highuse": "Нумай усă куракан страницăсем",
-       "rightsnone": "(çук)"
+       "htmlform-selectorother-other": "Урăххи",
+       "htmlform-no": "Çук",
+       "rightsnone": "(çук)",
+       "feedback-back": "Каялла",
+       "searchsuggest-search": "Шырамалли",
+       "pagelang-select-lang": "Чĕлхе суйлăр",
+       "mediastatistics-header-audio": "Аудио",
+       "mediastatistics-header-video": "Видеосем"
 }
index 469959d..daba7a3 100644 (file)
@@ -12,7 +12,8 @@
                        "Urhixidur",
                        "Xxglennxx",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Tanlinellu cysylltiadau:",
        "import-rootpage-nosubpage": "Nid yw'r parth \"$1\", sef parth y brif dudalen y mewnforir iddi, yn caniatau is-dudalennau.",
        "importlogpage": "Lòg mewnforio",
        "importlogpagetext": "Cofnodion mewnforio tudalennau ynghyd â'u hanes golygu oddi ar wicïau eraill, gan weinyddwyr.",
-       "import-logentry-upload": "wedi mewnforio [[$1]] trwy uwchlwytho ffeil",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|diwygiad|diwygiad|ddiwygiad|diwygiad|diwygiad|diwygiad}} wedi'i fewnforio",
-       "import-logentry-interwiki": "wedi symud $1 (traws-wici)",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|diwygiad|diwygiad|ddiwygiad|diwygiad|diwygiad|diwygiad}} wedi'i fewnforio o $2",
        "javascripttest": "Profi JavaScript",
        "javascripttest-pagetext-noframework": "Neilltuwyd y dudalen hon at gynnal profion JavaScript.",
        "version-parser-function-hooks": "Bachau ffwythiant dosrannu",
        "version-hook-name": "Enw'r bachyn",
        "version-hook-subscribedby": "Tanysgrifwyd gan",
-       "version-version": "(Fersiwn $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[dim enw]",
        "version-license": "Trwydded MediaWiki",
        "version-ext-license": "Trwydded",
        "logentry-upload-revert": "Mae $1 {{GENDER:$2|wedi uwchlwytho}} $3",
        "rightsnone": "(dim)",
        "revdelete-summary": "crynodeb golygu",
+       "feedback-adding": "Wrthi'n ychwanegu adborth i'r dudalen...",
+       "feedback-bugcheck": "Iawn! Gwnewch yn siwr yn gyntaf nag ydy hwn yn un o'r [$1 bygiau hysbys].",
+       "feedback-bugnew": "Edrychais ar y bygiau hysbys. Mae byg newydd gennyf i'w adrodd",
        "feedback-bugornote": "Os ydych yn barod i ddisgrifio problem technegol yn fanwl gallwch [$1 gyflwyno adroddiad am y bỳg]. Fel arall, gallwch ddefnyddio'r ffurflen syml isod. Fe roddir eich sylwadau ar y dudalen \"[$3 $2]\", ynghyd â'ch enw defnyddiwr ac enw'r gweinydd sydd ar waith gennych.",
-       "feedback-subject": "Gwrthrych:",
-       "feedback-message": "Neges:",
        "feedback-cancel": "Diddymer",
-       "feedback-submit": "Cyflwyner yr Adborth",
-       "feedback-adding": "Wrthi'n ychwanegu adborth i'r dudalen...",
+       "feedback-close": "Yn barod",
        "feedback-error1": "Gwall: Canlyniad anhysbys o'r API",
        "feedback-error2": "Gwall: Methodd y golygu",
        "feedback-error3": "Gwall: Dim ymateb gan yr API",
+       "feedback-message": "Neges:",
+       "feedback-subject": "Gwrthrych:",
+       "feedback-submit": "Cyflwyner",
        "feedback-thanks": "Diolch! Gosodwyd eich adborth ar y dudalen \"[$2 $1]\".",
-       "feedback-close": "Yn barod",
-       "feedback-bugcheck": "Iawn! Gwnewch yn siwr yn gyntaf nag ydy hwn yn un o'r [$1 bygiau hysbys].",
-       "feedback-bugnew": "Edrychais ar y bygiau hysbys. Mae byg newydd gennyf i'w adrodd",
        "searchsuggest-search": "Chwilio",
        "searchsuggest-containing": "yn cynnwys...",
        "api-error-badaccess-groups": "Nid oes caniatad gennych i uwchlwytho ffeiliau ar y wici hwn.",
index 988f141..8ea019f 100644 (file)
@@ -47,7 +47,9 @@
                        "Tjernobyl",
                        "Urhixidur",
                        "아라",
-                       "Thomsen"
+                       "Thomsen",
+                       "Knud Winckelmann",
+                       "Macofe"
                ]
        },
        "tog-underline": "Understreg henvisninger:",
@@ -64,6 +66,7 @@
        "tog-watchdefault": "Tilføj sider og filer, jeg redigerer, til min overvågningsliste",
        "tog-watchmoves": "Tilføj sider og filer, jeg flytter, til min overvågningsliste",
        "tog-watchdeletion": "Tilføj sider og filer, jeg sletter, til min overvågningsliste",
+       "tog-watchrollback": "Tilføj sider, hvor jeg har udført en tilbagerulning til min overvågningsliste",
        "tog-minordefault": "Markér som standard alle redigeringer som mindre",
        "tog-previewontop": "Vis forhåndsvisning over redigeringsboksen",
        "tog-previewonfirst": "Vis forhåndsvisning ved første redigering",
        "disclaimers": "Forbehold",
        "disclaimerpage": "Project:Generelle forbehold",
        "edithelp": "Hjælp til redigering",
+       "helppage-top-gethelp": "Hjælp",
        "mainpage": "Forside",
        "mainpage-description": "Forside",
        "policy-url": "Project:Politik",
        "page-rss-feed": "\"$1\" RSS-feed",
        "page-atom-feed": "\"$1\" Atom-feed",
        "red-link-title": "$1 (siden er ikke skrevet endnu)",
-       "sort-descending": "Sorter aftagende",
+       "sort-descending": "Sorter faldende",
        "sort-ascending": "Sorter stigende",
        "nstab-main": "Side",
        "nstab-user": "Brugerside",
        "content-model-text": "almindelig tekst",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Tomt objekt",
+       "content-json-empty-array": "Tomt array",
        "expensive-parserfunction-warning": "Advarsel: Der er for mange beregningstunge oversætter-funktionskald på denne side.\n\nDer bør være færre end {{PLURAL:$2|$2 kald}}, lige nu er der {{PLURAL:$1|$1 kald}}.",
        "expensive-parserfunction-category": "Sider med for mange beregningstunge oversætter-funktioner",
        "post-expand-template-inclusion-warning": "Advarsel: Der er tilføjet for mange skabeloner til denne side, så nogle af dem bliver ikke vist..",
        "revdelete-show-file-confirm": "Er du sikker på, at du vil vise en slettet version af filen \"<nowiki>$1</nowiki>\" fra den $2, klokken $3?",
        "revdelete-show-file-submit": "Ja",
        "logdelete-selected": "{{PLURAL:$1|Valgt logindførsel|Valgte logindførsler}}:",
+       "revdelete-text-text": "Slettede version vil stadigt fremgå af sidehistorikken, men dele af indholdet vil ikke være offentlig tilgængeligt.",
+       "revdelete-text-others": "Andre administratorer vil fortsat have adgang til det skjulte indhold og have mulighed for at genskabe det, med mindre andre begrænsninger er sat.",
        "revdelete-confirm": "Vær venlig at bekræfte at du vil gøre dette, at du forstår konsekvenserne, og at du gør det i overensstemmelse med [[{{MediaWiki:Policy-url}}|retningslinjerne]].",
        "revdelete-suppress-text": "Der bør '''kun''' skjules i de følgende tilfælde:\n* Potentielt injurierende oplysninger\n* Upassende personlige oplysninger\n*: ''hjemmeadresser og -telefonnumre, CPR-numre og lign.''",
        "revdelete-legend": "Fastlægge begrænsninger for versionerne:",
        "revdelete-hide-image": "Skjul filindhold",
        "revdelete-hide-name": "Skjul handling og mål",
        "revdelete-hide-comment": "Redigeringssammendrag",
-       "revdelete-hide-user": "Brugerens brugernavn/IP-adrsse",
+       "revdelete-hide-user": "Brugerens brugernavn/IP-adresse",
        "revdelete-hide-restricted": "Skjul også informationen for administratorer",
        "revdelete-radio-same": "(ingen ændring)",
        "revdelete-radio-set": "Skjult",
        "prefs-personal": "Brugerdata",
        "prefs-rc": "Seneste ændringer",
        "prefs-watchlist": "Overvågningsliste",
+       "prefs-editwatchlist": "Rediger overvågningsliste",
+       "prefs-editwatchlist-raw": "Rediger rå overvågningsliste",
+       "prefs-editwatchlist-clear": "Ryd din overvågningsliste",
        "prefs-watchlist-days": "Antal dage der skal vises i overvågningslisten:",
        "prefs-watchlist-days-max": "Højst $1 {{PLURAL:$1|dag|dage}}",
        "prefs-watchlist-edits": "Antal redigeringer der vises i udvidet overvågningsliste:",
        "specialpage-empty": "Der er ingen resultater at vise.",
        "lonelypages": "Forældreløse sider",
        "lonelypagestext": "Følgende sider er ikke henvist til eller inkluderet på andre sider på {{SITENAME}}:",
-       "uncategorizedpages": "Ikke kategoriserede sider",
+       "uncategorizedpages": "Ikke-kategoriserede sider",
        "uncategorizedcategories": "Ikke kategoriserede kategorier",
-       "uncategorizedimages": "Ikke kategoriserede filer",
+       "uncategorizedimages": "Ikke-kategoriserede filer",
        "uncategorizedtemplates": "Ikke kategoriserede skabeloner",
        "unusedcategories": "Ubrugte kategorier",
        "unusedimages": "Ubrugte filer",
        "protect-othertime": "Anden tid:",
        "protect-othertime-op": "anden tid",
        "protect-existing-expiry": "Nugældende udløbstid: $2 $3",
+       "protect-existing-expiry-infinity": "Eksisterende udløbstid: uendelig",
        "protect-otherreason": "Anden/uddybende årsag:",
        "protect-otherreason-op": "Anden årsag",
        "protect-dropdown": "* Almindelge besyttelsesårsager\n** Gentagen hærværk\n** Gentagen spam\n** Redigeringskrig\n** Side med mange besøgende",
        "import-rootpage-nosubpage": "Navnerummet \"$1\" tillader ikke undersider af rodsiderne.",
        "importlogpage": "Importlog",
        "importlogpagetext": "Administrativ import af sider med versionshistorik fra andre Wikis.",
-       "import-logentry-upload": "[[$1]] blev importeret",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|version|versioner}} importeret",
-       "import-logentry-interwiki": "$1 blev importeret (Transwiki)",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|version|versioner}} importeret fra $2",
        "javascripttest": "Test af JavaScript",
        "javascripttest-pagetext-noframework": "Denne side er reserveret til at teste JavaScript.",
        "tooltip-pt-mycontris": "Liste over dine bidrag",
        "tooltip-pt-login": "Du opfordres til at logge på, men det er ikke obligatorisk.",
        "tooltip-pt-logout": "Log af",
+       "tooltip-pt-createaccount": "Du opfordres til at oprette en konto og logge på, men det er ikke obligatorisk",
        "tooltip-ca-talk": "Diskussion om indholdet på siden",
        "tooltip-ca-edit": "Du kan redigere denne side. Brug venligst forhåndsvisning før du gemmer.",
        "tooltip-ca-addsection": "Start et nyt afsnit",
        "duplicate-defaultsort": "Advarsel: Standardsorteringsnøglen \"$2\" tilsidesætter den tidligere sorteringsnøgle \"$1\".",
        "version": "Information om MediaWiki",
        "version-extensions": "Installerede udvidelser",
-       "version-skins": "Udseender",
+       "version-skins": "Installerede udseender",
        "version-specialpages": "Specialsider",
        "version-parserhooks": "Parserfunktioner",
        "version-variables": "Variabler",
        "version-parser-function-hooks": "Parserfunktioner",
        "version-hook-name": "Navn",
        "version-hook-subscribedby": "Brugt af",
-       "version-version": "(Version $1)",
+       "version-version": "($1)",
+       "version-no-ext-name": "[intet navn]",
        "version-license": "MediaWiki Licens",
        "version-ext-license": "Licens",
        "version-ext-colheader-name": "Udvidelse",
+       "version-skin-colheader-name": "Udseende",
        "version-ext-colheader-version": "Version",
        "version-ext-colheader-license": "Licens",
        "version-ext-colheader-description": "Beskrivelse",
        "version-entrypoints": "URL-adresser til indgangspunkter",
        "version-entrypoints-header-entrypoint": "Indgangspunkt",
        "version-entrypoints-header-url": "URL",
+       "version-libraries": "Installerede biblioteker",
+       "version-libraries-library": "Bibliotek",
+       "version-libraries-version": "Version",
        "redirect": "Omdirigering pga. fil, bruger-, side- eller udgave-ID",
        "redirect-legend": "Omstilling til en fil eller en side",
        "redirect-summary": "Denne specialside omdirigerer til en fil (hvis filnavnet er angivet), en side (hvis udgave ID'et eller side ID'et er angivet) eller en brugerside (hvis et numerisk brugernummer er angivet). Eksempler på brug: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]],[[{{#Special:Redirect}}/revision/328429]] eller [[{{#Special:Redirect}}/user/101]].",
        "tags-tag": "Tagnavn",
        "tags-display-header": "Udseende på ændringslister",
        "tags-description-header": "Beskrivelse af betydning",
+       "tags-source-header": "Kilde",
        "tags-active-header": "Aktivt?",
        "tags-hitcount-header": "Taggede ændringer",
+       "tags-actions-header": "Handlinger",
        "tags-active-yes": "Ja",
        "tags-active-no": "Nej",
        "tags-edit": "redigér",
+       "tags-delete": "slet",
+       "tags-activate": "aktiver",
+       "tags-deactivate": "deaktiver",
        "tags-hitcount": "{{PLURAL:$1|en ændring|$1 ændringer}}",
        "comparepages": "Sammenlign sider",
        "compare-page1": "Side 1",
        "revdelete-uname-unhid": "brugernavnet er ikke længere skjult",
        "revdelete-restricted": "tilføjede begrænsninger for administratorer",
        "revdelete-unrestricted": "fjernede begrænsninger for administratorer",
+       "logentry-block-block": "$1 {{GENDER:$2|blokerede}} {{GENDER:$4|$3}} med en udløbstid på $5 $6",
+       "logentry-block-reblock": "$1 {{GENDER:$2|ændrede}} blokeringsindstillinger for {{GENDER:$4|$3}} med en udløbstid på $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|ændrede}} blokeringsindstillinger for {{GENDER:$4|$3}} med en udløbstid på $5 $6",
        "logentry-move-move": "$1 {{GENDER:$2|flyttede}} siden $3 til $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|flyttede}} siden $3 til $4 uden at efterlade en omdirigering",
        "logentry-move-move_redir": "$1 {{GENDER:$2|flyttede}} siden $3 til $4 hen over en omdirigering",
        "logentry-upload-revert": "$1 {{GENDER:$2|lagde}} $3 op",
        "rightsnone": "(-)",
        "revdelete-summary": "redigeringsbeskrivelse",
+       "feedback-adding": "Tilføjer kommentar til side...",
+       "feedback-bugcheck": "Skønt! Men tjek venligst, at det ikke er en af de [$1 kendte fejl].",
+       "feedback-bugnew": "Jeg har kontrolleret. Rapporter en ny fejl.",
        "feedback-bugornote": "Hvis du er klar til at beskrive et teknisk problem i detaljer, bedes du [$1 rapportere en fejl].\nEllers kan du bruge den enkle formular nedenfor. Din kommentar vil blive tilføjet siden \"[$3 $2]\" sammen med dit brugernavn og den browser, du anvender.",
-       "feedback-subject": "Emne:",
-       "feedback-message": "Besked:",
        "feedback-cancel": "Afbryd",
-       "feedback-submit": "Send kommentar",
-       "feedback-adding": "Tilføjer kommentar til side...",
+       "feedback-close": "Færdig",
        "feedback-error1": "Fejl: Ukendt resultat fra API",
        "feedback-error2": "Fejl: Redigering mislykkedes",
        "feedback-error3": "Fejl: Intet svar fra API",
+       "feedback-message": "Besked:",
+       "feedback-subject": "Emne:",
+       "feedback-submit": "Send",
        "feedback-thanks": "Tak! Dine tilbagemeldinger er blevet noteret på siden \"[$2 $1]\".",
-       "feedback-close": "Færdig",
-       "feedback-bugcheck": "Skønt! Men tjek venligst, at det ikke er en af de [$1 kendte fejl].",
-       "feedback-bugnew": "Jeg har kontrolleret. Rapporter en ny fejl.",
        "searchsuggest-search": "Søg",
        "searchsuggest-containing": "indeholder...",
        "api-error-badaccess-groups": "Du har ikke tilladelse til at overføre filer til denne wiki.",
index 40befca..f0b7993 100644 (file)
@@ -95,7 +95,7 @@
        "tog-watchrollback": "Seiten, bei denen ich eine Zurücksetzung durchgeführt habe, automatisch beobachten",
        "tog-minordefault": "Eigene Änderungen standardmäßig als geringfügig markieren",
        "tog-previewontop": "Vorschau oberhalb des Bearbeitungsfensters anzeigen",
-       "tog-previewonfirst": "Beim ersten Bearbeiten immer die Vorschau anzeigen",
+       "tog-previewonfirst": "Vorschau beim ersten Bearbeiten immer anzeigen",
        "tog-enotifwatchlistpages": "Bei Änderungen an beobachteten Seiten oder Dateien E-Mails senden",
        "tog-enotifusertalkpages": "Bei Änderungen an meiner Benutzer-Diskussionsseite E-Mails senden",
        "tog-enotifminoredits": "Auch bei kleinen Änderungen an Seiten und Dateien E-Mails senden",
        "disclaimers": "Impressum",
        "disclaimerpage": "Project:Impressum",
        "edithelp": "Bearbeitungshilfe",
+       "helppage-top-gethelp": "Hilfe",
        "mainpage": "Hauptseite",
        "mainpage-description": "Hauptseite",
        "policy-url": "Project:Richtlinien",
        "missingcommentheader": "'''Achtung:''' Du hast kein Betreff/Überschrift eingegeben. Wenn du erneut auf „{{int:savearticle}}“ klickst, wird deine Bearbeitung ohne Überschrift gespeichert.",
        "summary-preview": "Vorschau der Zusammenfassungszeile:",
        "subject-preview": "Vorschau der Zusammenfassungszeile:",
+       "previewerrortext": "Beim Versuch, eine Vorschau deiner Änderungen anzuzeigen, ist ein Fehler aufgetreten.",
        "blockedtitle": "Benutzer ist gesperrt",
        "blockedtext": "'''Dein Benutzername oder deine IP-Adresse wurde gesperrt.'''\n\nDie Sperrung wurde vom Administrator $1 durchgeführt.\nAls Grund wurde ''$2'' angegeben.\n\n* Beginn der Sperre: $8\n* Ende der Sperre: $6\n* Sperre betrifft: $7\n\nDu kannst $1 oder einen der anderen [[{{MediaWiki:Grouppage-sysop}}|Administratoren]] kontaktieren, um über die Sperre zu diskutieren.\nDu kannst die „E-Mail an diesen Benutzer“-Funktion nicht nutzen, solange keine gültige E-Mail-Adresse in deinen [[Special:Preferences|Benutzerkonto-Einstellungen]] eingetragen ist oder diese Funktion für dich gesperrt wurde.\nDeine aktuelle IP-Adresse ist $3 und die Sperrkennung lautet $5.\nBitte füge alle Informationen jeder Anfrage hinzu, die du stellst.",
        "autoblockedtext": "Deine IP-Adresse wurde automatisch gesperrt, da sie von einem anderen Benutzer genutzt wurde, der von $1 gesperrt wurde.\nAls Grund wurde angegeben:\n\n:''$2''\n\n* Beginn der Sperre: $8\n* Ende der Sperre: $6\n* Sperre betrifft: $7\n\nDu kannst $1 oder einen der anderen [[{{MediaWiki:Grouppage-sysop}}|Administratoren]] kontaktieren, um über die Sperre zu diskutieren.\n\nDu kannst die „E-Mail an diesen Benutzer“-Funktion nicht nutzen, solange keine gültige E-Mail-Adresse in deinen [[Special:Preferences|Benutzerkonto-Einstellungen]] eingetragen ist oder diese Funktion für dich gesperrt wurde.\n\nDeine aktuelle IP-Adresse ist $3, und die Sperr-ID ist $5.\nBitte füge alle Informationen jeder Anfrage hinzu, die du stellst.",
        "newarticletext": "Du bist einem Link zu einer Seite gefolgt, die nicht vorhanden ist.\nUm diese Seite anzulegen, trage deinen Text in das untenstehende Bearbeitungsfeld ein (weitere Informationen auf der [$1 Hilfeseite]).\nSofern du fälschlicherweise hier bist, klicke auf die Schaltfläche '''Zurück''' deines Browsers.",
        "anontalkpagetext": "----''Diese Seite dient dazu, einem nicht angemeldeten Benutzer Nachrichten zu hinterlassen. Es wird seine IP-Adresse zur Identifizierung verwendet. IP-Adressen können von mehreren Benutzern gemeinsam verwendet werden. Wenn du mit den Kommentaren auf dieser Seite nichts anfangen kannst, richten sie sich vermutlich an einen früheren Inhaber deiner IP-Adresse und du kannst sie ignorieren. Du kannst dir auch ein [[Special:UserLogin/signup|Benutzerkonto erstellen]] oder dich [[Special:UserLogin|anmelden]], um künftig Verwechslungen mit anderen anonymen Benutzern zu vermeiden.''",
        "noarticletext": "Diese Seite enthält momentan noch keinen Text.\nDu kannst sie <span class=\"plainlinks\">[{{fullurl:{{FULLPAGENAME}}|action=edit}} bearbeiten]</span>,\nihren Titel auf anderen Seiten [[Special:Search/{{PAGENAME}}|suchen]]\noder die zugehörigen <span class=\"plainlinks\">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} Logbücher betrachten]</span>.",
-       "noarticletext-nopermission": "Diese Seite enthält momentan noch keinen Text und du bist auch nicht berechtigt diese Seite zu erstellen.\nDu kannst ihren Titel auf anderen Seiten [[Special:Search/{{PAGENAME}}|suchen]] oder die zugehörigen <span class=\"plainlinks\">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} Logbücher betrachten].</span>",
+       "noarticletext-nopermission": "Diese Seite enthält momentan noch keinen Text und du bist auch nicht dazu berechtigt, diese Seite zu erstellen.\nDu kannst ihren Titel auf anderen Seiten [[Special:Search/{{PAGENAME}}|suchen]] oder die zugehörigen <span class=\"plainlinks\">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} Logbücher betrachten].</span>",
        "missing-revision": "Die Version $1 der Seite namens „{{FULLPAGENAME}}“ ist nicht vorhanden.\n\nDieser Fehler wird normalerweise von einem veralteten Link zur Versionsgeschichte einer Seite verursacht, die zwischenzeitlich gelöscht wurde.\nEinzelheiten sind im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Lösch-Logbuch] einsehbar.",
        "userpage-userdoesnotexist": "Das Benutzerkonto „<nowiki>$1</nowiki>“ ist nicht vorhanden. Bitte prüfe, ob du diese Seite wirklich erstellen/bearbeiten willst.",
        "userpage-userdoesnotexist-view": "Das Benutzerkonto „$1“ ist nicht vorhanden.",
        "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.",
        "deleteprotected": "Du kannst diese Seite nicht löschen, da sie geschützt wurde.",
-       "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.",
+       "deleting-backlinks-warning": "'''Warnung:''' Es verweisen noch [[Special:WhatLinksHere/{{FULLPAGENAME}}|andere Seiten]] auf diese zu löschende Seite oder sie ist noch an anderer Stelle eingebunden.",
        "rollback": "Zurücksetzen der Änderungen",
        "rollbacklink": "Zurücksetzen",
        "rollbacklinkcount": "{{PLURAL:$1|Eine Version|$1 Versionen}} zurücksetzen",
        "sp-contributions-uploads": "Hochgeladene Dateien",
        "sp-contributions-logs": "Logbücher",
        "sp-contributions-talk": "Diskussion",
-       "sp-contributions-userrights": "Benutzerrechteverwaltung",
+       "sp-contributions-userrights": "Benutzerrechte­verwaltung",
        "sp-contributions-blocked-notice": "{{GENDER:$1|Dieser Benutzer|Diese Benutzerin|Dieser Benutzer}} ist derzeit gesperrt. Es folgt der aktuelle Eintrag aus dem Benutzersperr-Logbuch:",
        "sp-contributions-blocked-notice-anon": "Diese IP-Adresse ist zurzeit gesperrt.\nZur Information folgt der aktuelle Auszug aus dem Sperr-Logbuch:",
        "sp-contributions-search": "Suche nach Benutzerbeiträgen",
        "import-rootpage-nosubpage": "Im Namensraum „$1“ der Stammseite sind keine Unterseiten erlaubt.",
        "importlogpage": "Import-Logbuch",
        "importlogpagetext": "Administrativer Import von Seiten mit Versionsgeschichte von anderen Wikis.",
-       "import-logentry-upload": "importierte „[[$1]]“ von einer Datei",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|Version|Versionen}} importiert",
-       "import-logentry-interwiki": "importierte „$1“ (Transwiki)",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|Version|Versionen}} von $2 importiert",
        "javascripttest": "JavaScript-Test",
        "javascripttest-pagetext-noframework": "Diese Seite ist JavaSkript-Tests vorbehalten.",
        "tooltip-pt-mycontris": "Liste eigener Beiträge",
        "tooltip-pt-login": "Sich anzumelden wird gerne gesehen, ist jedoch nicht zwingend erforderlich.",
        "tooltip-pt-logout": "Abmelden",
-       "tooltip-pt-createaccount": "Wir ermutigen dich ein Benutzerkonto zu erstellen und dich anzumelden. Es ist jedoch nicht zwingend erforderlich.",
+       "tooltip-pt-createaccount": "Wir ermutigen dich dazu, ein Benutzerkonto zu erstellen und dich anzumelden. Es ist jedoch nicht zwingend erforderlich.",
        "tooltip-ca-talk": "Diskussion zum Seiteninhalt",
-       "tooltip-ca-edit": "Du kannst diese Seite bearbeiten. Bitte nutze auch die Vorschaufunktion vor dem Speichern.",
+       "tooltip-ca-edit": "Du kannst diese Seite bearbeiten. Bitte nutze die Vorschaufunktion vor dem Speichern.",
        "tooltip-ca-addsection": "Neuen Abschnitt beginnen",
        "tooltip-ca-viewsource": "Diese Seite ist geschützt. Ihr Quelltext kann dennoch angesehen und kopiert werden.",
        "tooltip-ca-history": "Frühere Versionen dieser Seite",
        "pageinfo-hidden-categories": "Versteckte {{PLURAL:$1|Kategorie|Kategorien}} ($1)",
        "pageinfo-templates": "Eingebundene {{PLURAL:$1|Vorlage|Vorlagen}} ($1)",
        "pageinfo-transclusions": "Eingebunden in {{PLURAL:$1|1 Seite|$1 Seiten}}",
-       "pageinfo-toolboxlink": "Informationen zur Seite",
+       "pageinfo-toolboxlink": "Seiten­informationen",
        "pageinfo-redirectsto": "Weiterleitungen nach",
        "pageinfo-redirectsto-info": "Information",
        "pageinfo-contentpage": "Gezählt als eine Inhaltsseite",
        "fileduplicatesearch-noresults": "Es wurde keine Datei namens „$1“ gefunden.",
        "specialpages": "Spezialseiten",
        "specialpages-note-top": "Legende",
-       "specialpages-note": "* Normale Spezialseiten.\n* <span class=\"mw-specialpagerestricted\">Spezialseiten mit beschränktem Zugang.</span>",
+       "specialpages-note": "* Reguläre Spezialseiten\n* <span class=\"mw-specialpagerestricted\">Zugriffsbeschränkte Spezialseiten</span>",
        "specialpages-group-maintenance": "Wartungslisten",
        "specialpages-group-other": "Andere Spezialseiten",
        "specialpages-group-login": "Benutzerkonto",
        "revdelete-uname-unhid": "Benutzername freigegeben",
        "revdelete-restricted": "Einschränkungen gelten auch für Administratoren",
        "revdelete-unrestricted": "Einschränkungen für Administratoren aufgehoben",
-       "logentry-block-block": "$1 {{GENDER:$2|sperrte}} {{GENDER:$4|$3}} mit einer Sperrdauer von $5 $6",
+       "logentry-block-block": "$1 {{GENDER:$2|sperrte}} {{GENDER:$4|$3}} für eine Dauer von $5 $6",
        "logentry-block-unblock": "$1 {{GENDER:$2|hat}} die Sperre von {{GENDER:$4|$3}} aufgehoben",
        "logentry-block-reblock": "$1 {{GENDER:$2|änderte}} die Sperreinstellungen für {{GENDER:$4|$3}} mit einer Sperrdauer von $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|sperrte}} {{GENDER:$4|$3}} mit einer Sperrdauer von $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|änderte}} die Sperreinstellungen für {{GENDER:$4|$3}} mit einer Sperrdauer von $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|importierte}} $3 durch das Hochladen einer Datei",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|importierte}} $3 aus einem anderen Wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|vereinigte}} $3 in die Seite „$4“ (Versionen bis zum $5)",
        "logentry-move-move": "$1 {{GENDER:$2|verschob}} die Seite $3 nach $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|verschob}} die Seite $3 nach $4, ohne dabei eine Weiterleitung anzulegen",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|deaktivierte}} die Markierung „$4“ zur Verwendung durch Benutzer und Bots",
        "rightsnone": "(–)",
        "revdelete-summary": "Zusammenfassungskommentar",
+       "feedback-adding": "Rückmeldung wird zur Seite hinzugefügt …",
+       "feedback-back": "Zurück",
+       "feedback-bugcheck": "Super! Bitte überprüfe noch, ob es sich hierbei nicht um einen bereits [$1 bekannten Fehler] handelt.",
+       "feedback-bugnew": "Ich habe es überprüft. Den neuen Fehler melden.",
        "feedback-bugornote": "Sofern du detailliert ein technisches Problem beschreiben möchtest, melde bitte [$1 einen Fehler].\nAnderenfalls kannst du auch das untenstehende einfache Formular nutzen. Dein Kommentar wird, zusammen mit deinem Benutzernamen und der Version des von dir verwendeten Webbrowsers sowie Betriebssystems, auf der Seite „[$3 $2]“ hinzugefügt.",
-       "feedback-subject": "Betreff:",
-       "feedback-message": "Nachricht:",
        "feedback-cancel": "Abbrechen",
-       "feedback-submit": "Rückmeldung senden",
-       "feedback-adding": "Rückmeldung wird zur Seite hinzugefügt …",
+       "feedback-close": "Erledigt",
+       "feedback-external-bug-report-button": "Eine technische Aufgabe einreichen",
+       "feedback-dialog-title": "Rückmeldung senden",
+       "feedback-dialog-intro": "Du kannst das einfache Formular unten verwenden, um deine Rückmeldung einzureichen. Dein Kommentar wird zusammen mit deinem Benutzernamen zur Seite „$1“ hinzugefügt.",
+       "feedback-error-title": "Fehler",
        "feedback-error1": "Fehler: Unbekanntes Ergebnis der API",
        "feedback-error2": "Fehler: Bearbeitung gescheitert",
        "feedback-error3": "Fehler: Keine Antwort von der API",
+       "feedback-message": "Nachricht:",
+       "feedback-subject": "Betreff:",
+       "feedback-submit": "Senden",
+       "feedback-terms": "Ich akzeptiere, dass mein User Agent Informationen über meinen Browser und meine Betriebssystemversion enthält, die zusammen mit meiner Rückmeldung veröffentlicht werden.",
+       "feedback-termsofuse": "Ich erlaube das Übermitteln der Rückmeldung in Übereinstimmung mit den Nutzungsbedingungen.",
        "feedback-thanks": "Vielen Dank. Deine Rückmeldung wurde auf der Seite „[$2 $1]“ gespeichert.",
-       "feedback-close": "Erledigt",
-       "feedback-bugcheck": "Super! Bitte überprüfe noch, ob es sich hierbei nicht um einen bereits [$1 bekannten Fehler] handelt.",
-       "feedback-bugnew": "Ich habe es überprüft. Den neuen Fehler melden.",
+       "feedback-thanks-title": "Danke!",
+       "feedback-useragent": "User Agent:",
        "searchsuggest-search": "Suchen",
        "searchsuggest-containing": "enthält …",
        "api-error-badaccess-groups": "Du hast nicht die Berechtigung Dateien in dieses Wiki hochzuladen.",
index 81eeead..b680641 100644 (file)
@@ -20,7 +20,8 @@
                        "Geitost",
                        "Microchip08",
                        "아라",
-                       "Calak"
+                       "Calak",
+                       "Macofe"
                ]
        },
        "tog-underline": "Bınê gırey de xete bance:",
        "import-rootpage-nosubpage": "Qan de bınnaman reçe de \"$1\" re mısade nedano.",
        "importlogpage": "Defterê seyırio idxal",
        "importlogpagetext": "wiki yo ke nişane biyo tera kırıştışê zerredayişi nêbeno.",
-       "import-logentry-upload": "dosyayê bar kerdişî ra [[$1]] împort biyo",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|çımraviyarnayış|çımraviyarnayışi}}",
-       "import-logentry-interwiki": "$1 transwiki biyo",
        "import-logentry-interwiki-detail": "$2 ra $1 {{PLURAL:$1|çımraviyarnayış|çımraviyarnayışi}}",
        "javascripttest": "Cerebnayışê JavaScripti",
        "javascripttest-pagetext-noframework": "Na pela testanê JavaScripta gurweynayışi re abıryaya.",
        "metadata-fields": "Resımê meydanê metadataê ke na pele de benê lista, pela resımmocnaene de ke tabloê metadata gına waro, gureniyenê.\nÊ bini zey sayekerdoğan nımiyenê.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "metadata-langitem": "'''$2:''' $1",
        "metadata-langitem-default": "$1",
-       "exif-imagewidth": "Herayey",
+       "exif-imagewidth": "Herayiye",
        "exif-imagelength": "Berziye",
        "exif-bitspersample": "yew parçe de biti",
        "exif-compression": "Planê kompresyoni",
        "logentry-rights-autopromote": "$1 otomatikmen $4 ra $5 {{GENDER:$2|terfi bi}}",
        "rightsnone": "(çıniyo)",
        "revdelete-summary": "kılmvatışê vuriyayişi",
+       "feedback-adding": "Pela rê peyxeberdar defêno...",
+       "feedback-bugcheck": "Harika! Sadece [xırabina ke $1 ] çınyayışê cı kontrol keno.",
+       "feedback-bugnew": "Mı qontrol ke. Xetaya newi xeber ke",
        "feedback-bugornote": "Jew mersela teferruato teknik esta şıma reca malumatê şıma hazıro se [ $1  jew xırab rapor] bıvinê.Zewbi zi, formê cerê xo rê şenê karfiyê. Vatışê xo pela da \"[ $3  $2 ]\", namey karber dê xoya piya u wasteriya karfiye.",
-       "feedback-subject": "Mewzu:",
-       "feedback-message": "Mesac:",
        "feedback-cancel": "Bıtexelne",
-       "feedback-submit": "Peyxeberdar Bırşe",
-       "feedback-adding": "Pela rê peyxeberdar defêno...",
+       "feedback-close": "Biya star",
        "feedback-error1": "Xeta: API ra neticey ne vıcyay",
        "feedback-error2": "Xeta: Timar kerdış nebı",
        "feedback-error3": "Xeta: API ra cewab çıno",
+       "feedback-message": "Mesac:",
+       "feedback-subject": "Mewzu:",
+       "feedback-submit": "Bırışe",
        "feedback-thanks": "Teşekkur kemê! Vatışê şıma pela da \"[$2 $1]\" esta.",
-       "feedback-close": "Biya star",
-       "feedback-bugcheck": "Harika! Sadece [xırabina ke $1 ] çınyayışê cı kontrol keno.",
-       "feedback-bugnew": "Mı qontrol ke. Xetaya newi xeber ke",
        "searchsuggest-search": "Cı geyre",
        "searchsuggest-containing": "Estên...",
        "api-error-badaccess-groups": "Ena wiki de dosya barkerdışi rê mısade nêdeyêno.",
index e079cf5..d57a9c8 100644 (file)
@@ -17,7 +17,8 @@
                        "Tlustulimu",
                        "Tlustulimu Nepl1",
                        "아라",
-                       "TMg"
+                       "TMg",
+                       "Macofe"
                ]
        },
        "tog-underline": "Wótkaze pódšmarnuś:",
        "unusedimages": "Njewužywane dataje",
        "wantedcategories": "Póžedane kategorije",
        "wantedpages": "Póžedane boki",
+       "wantedpages-summary": "Toś ten specialny bok nalicujo wšykne boki, kótarež hyšći njeeksistěruju, na kótarež ale wót eksistěrujucych bokow se wótkazuju.",
        "wantedpages-badtitle": "Njepłaśiwy titel we wuslědku: $1",
        "wantedfiles": "Póžedane dataje",
        "wantedfiletext-cat": "Slědujuce dataje se wužywaju, ale njeeksistěruja. Dataje z cuzych repozitoriumow daju se nalicyś, lěcrownož eksistěruju. Take wopacne pozitiwy su <del>pśešmarnjone</del>. Mimo togo se boki w [[:$1]] nalicyju, kótarež dataje zasajźuju, kótarež njeeksistěruju.",
        "delete-warning-toobig": "Toś ten bok ma z wěcej ako $1 {{PLURAL:$1|wersiju|wersijomaj|wersijami|wersijami}} dłujke stawizny. Jich wulašowanje móžo źěło datoweje banki na {{SITENAME}} kazyś;\npóstupujśo z glědanim.",
        "deleting-backlinks-warning": "'''Warnowanje:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Druge boki]] wótkazuju k bokoju abo bok jo hynźi zapśěgnjony, kótaryž coš wulašowaś.",
        "rollback": "Wobźěłanja slědk wześ",
-       "rollback_short": "anulěrowaś",
        "rollbacklink": "anulěrowaś",
        "rollbacklinkcount": "$1 {{PLURAL:$1|změnu|změnje|změny|změnow}} slědk wześ",
        "rollbacklinkcount-morethan": "wěcej ako $1 {{PLURAL:$1|změnu|změnje|změny|změnow}} slědk wześ",
        "import-rootpage-nosubpage": "Mjenjowy rum \"$1\" kórjenjowego boka njedowólujo pódboki.",
        "importlogpage": "Log-lisćinu importěrowaś",
        "importlogpagetext": "Administratiwne importěrowanje bokow ze stawiznami z drugich wikijow.",
-       "import-logentry-upload": "jo se [[$1]]  pśez nagrawańske nagraśe importěrowała.",
        "import-logentry-upload-detail": "{{PLURAL:$1|$1 wersija|$1 wersiji|$1 wersije}}",
-       "import-logentry-interwiki": "Dataja $1 jo se importěrowała (transwiki).",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|$1 wersija|$1 wersiji|$1 wersije}} wót $2",
        "javascripttest": "JavaScriptowy test",
-       "javascripttest-title": "Testy $1 se pśewjeduju",
        "javascripttest-pagetext-noframework": "Toś ten bok jo pśewjedowanjeju javascriptowych testow pśewóstajony.",
        "javascripttest-pagetext-unknownframework": "Njeznaty wobłuk \"$1\".",
        "javascripttest-pagetext-frameworks": "Pšosym wubjeŕ jaden ze slědujucych testowańskich wobłukow: $1",
        "javascripttest-pagetext-skins": "Wubjeŕ drastwu za pśewjeźenje testow:",
        "javascripttest-qunit-intro": "Glědaj [$1 testowańsku dokumentaciju] na mediawiki.org.",
-       "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit test suite",
        "tooltip-pt-userpage": "Twój wužywarski bok",
        "tooltip-pt-anonuserpage": "Wužywarski bok za IP-adresu, z kótarejuž bok wobźěłajoš",
        "tooltip-pt-mytalk": "Twój diskusijny bok",
        "iranian-calendar-m11": "Bahman",
        "iranian-calendar-m12": "Esfand",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|diskusija]])",
-       "unknown_extension_tag": "Njeznaty tag rozšyrjenja „$1“",
        "duplicate-defaultsort": "Glědaj: Standardny sortěrowański kluc (DEFAULT SORT KEY) \"$2\" pśepišo pjerwjej wužyty kluc \"$1\".",
        "version": "Wersija",
        "version-extensions": "Instalowane rozšyrjenja",
        "specialpages-group-wiki": "Daty a rědy",
        "specialpages-group-redirects": "Dalej pósrědnjajuce boki",
        "specialpages-group-spam": "Spamowe rědy",
+       "specialpages-group-developer": "Rědy wuwiwarjow",
        "blankpage": "Prozny bok",
        "intentionallyblankpage": "Toś ten bok jo z wótglědom prozny.",
        "external_image_whitelist": " #Wóstaj toś tu smužku rowno tak jo<pre>\n#Zapódaj fragmenty regularnych wurazow (jano źěl mjazy //) dołojce\n#Toś te budu se pśirunowaś z URL ekseternych wobrazow\n#Te, kótarež makaju se, zwobraznuju se ako wobraze, howac pokažo se jano wótkaz k wobrazoju\n#Ze smužkami, kótarež zachopiju se z #, wobchadaju ako z komentarami\n#To njeźiwa na wjelikopisanje\n\n#Staj wše fragmenty regularnych wurazow nad smužku. Wóstaj toś tu smužku rowno tak jo</pre>",
        "logentry-rights-autopromote": "$1 jo se awtomatiski wót $4 do $5 {{GENDER:$2|pśirědował|pśirědowała}}",
        "rightsnone": "(nic)",
        "revdelete-summary": "Zespominanje wobźěłanja",
+       "feedback-adding": "Komentar pśidawa se bokoju...",
+       "feedback-bugcheck": "Wjelicnje! Pśekontrolěruj jano, lěc to njejo jadna z [$1 znatych zmólkow].",
+       "feedback-bugnew": "Som pśekontrolěrował. Nowu zmólku k wěsći daś",
        "feedback-bugornote": "Jolic sy zwólny, techniski problem nadrobnje wopisaś, [$1 daj pšosym zmólku k wěsći].\nHować móžoš slědujucy jadnory formular wužywaś. Twój komentar pśidajo se bokoju \"[$3 $2]\", z twójim wužywarskim mjenim a z wobglědowakom, kótaryž wužywaš.",
-       "feedback-subject": "Tema:",
-       "feedback-message": "Powěsć:",
        "feedback-cancel": "Pśetergnuś",
-       "feedback-submit": "Komentar wótpósłaś",
-       "feedback-adding": "Komentar pśidawa se bokoju...",
+       "feedback-close": "Dokóńcony",
        "feedback-error1": "Zmólka: Njepóznaty wuslědk wót API",
        "feedback-error2": "Zmólka: Wobźěłanje njejo se raźiło",
        "feedback-error3": "Zmólka: Žedne wótegrono wót API",
+       "feedback-message": "Powěsć:",
+       "feedback-subject": "Tema:",
+       "feedback-submit": "Wótpósłaś",
        "feedback-thanks": "Źěkujomy se! Twój komentar jo se k bokoju \"[$2 $1]\" pósłał.",
-       "feedback-close": "Dokóńcony",
-       "feedback-bugcheck": "Wjelicnje! Pśekontrolěruj jano, lěc to njejo jadna z [$1 znatych zmólkow].",
-       "feedback-bugnew": "Som pśekontrolěrował. Nowu zmólku k wěsći daś",
        "searchsuggest-search": "Pytaś",
        "searchsuggest-containing": "wopśimujo...",
        "api-error-badaccess-groups": "Njamaš pšawo dataje do toś togo wikija nagraś.",
index d67a809..b115620 100644 (file)
@@ -95,7 +95,7 @@
        "december-gen": "Dicèmber",
        "jan": "Znê",
        "feb": "Fer",
-       "mar": "Mêr",
+       "mar": "Mêrz",
        "apr": "Avr",
        "may": "Mâg",
        "jun": "Zóg",
        "disclaimers": "Avertèinsi",
        "disclaimerpage": "Project:Avertèinsi generêli",
        "edithelp": "Léber dal spiegasiòun",
+       "helppage-top-gethelp": "Ajót",
        "mainpage": "Préma pàgina",
        "mainpage-description": "Pàgina principêla",
        "policy-url": "Project:Léni 'd cundòta",
        "readonly_lag": "Al databêş l'é stê bluchê in avtomàtich per permèter a i terminêl cun al databêş schiêv ed mètres in pâs cun al master",
        "internalerror": "Erōr intêren",
        "internalerror_info": "Erōr intêren: $1",
+       "internalerror-fatal-exception": "Erōr ch' an pōl mìa èser corèt dal gener \"$1\"",
        "filecopyerror": "An n'é mìa pusébil cupiêr al file \"$1\" in \"$2\".",
        "filerenameerror": "An n'é mìa pusébil cambiêr al nòm ed \"$1\" in \"$2\".",
        "filedeleteerror": "An n'é mìa pusébil scanşlêr al file \"$1\".",
        "createaccount": "Fà la tó inscrisiòun",
        "gotaccount": "Gh'èt bèle un ingrès? $1",
        "gotaccountlink": "Và dèinter",
-       "userlogin-resetlink": "T'ét scurdê j elemèint p'r al tó ingrès?",
+       "userlogin-resetlink": "T'ét e-scurdê la cêva p'r al tó ingrès?",
        "userlogin-resetpassword-link": "T' ét scurdê la cêva 'd ingrès?",
        "userlogin-helplink2": "Ajót per l'ingrès",
        "userlogin-loggedin": "T'ét bèle coleghê {{GENDER:$1|$1}}. \nDrōva al mōdul ché sòta cme un êter utèint.",
        "prefs-rc": "Ûltmi mudéfichi",
        "prefs-watchlist": "Tgnîr sòt ôc",
        "prefs-editwatchlist": "Mudéfica la lésta 'd qui da tgnîr sòt ôc",
+       "prefs-editwatchlist-label": "Mudéfica dal pàgini ed la lésta ch' a' s tîn sòt ôc:",
+       "prefs-editwatchlist-edit": "Guêrda e tó via i tétol int la lésta ch'ét tîn sòt ôc",
        "prefs-editwatchlist-raw": "Mudéfica la lésta in furmê tèst",
+       "prefs-editwatchlist-clear": "Scanşèla la tó lésta di tgnû 'd ôc",
        "prefs-watchlist-days": "Nómer ed dé da fêr vèder int i tgnû 'd ôc specêl:",
        "prefs-watchlist-days-max": "Mâsim $1 {{PLURAL:$1|dé}}",
        "prefs-watchlist-edits": "Nómer 'd mudéfichi da fêr vèder cun al funsiòun pió şvilupêdi:",
        "right-override-export-depth": "Pôrta fōra al pàgini cun insèm al pàgini coleghêdi per 'na larghèsa ed 5",
        "right-sendemail": "Spidés pôsta eletrônica a êter utèint",
        "right-passwordreset": "A vèd i mesâg 'd arnōv ed la cêva 'ed ingrès",
+       "right-managechangetags": "Fà e tó via i [[Special:Tags|tag]] dal databêş",
        "newuserlogpage": "Utèint nōv",
        "newuserlogpagetext": "Ché sòt a gh' é la lésta di nōv utèint.",
        "rightslog": "Diré ed j utèint",
        "action-viewmyprivateinfo": "guêrda al tō infurmasiòun personêli",
        "action-editmyprivateinfo": "mudéfica al tō infurmasiòun personêli",
        "action-editcontentmodel": "câmbia al mudèl dèinter a 'na pàgina",
+       "action-managechangetags": "fà e tó via i tag dal databêş",
        "nchanges": "$1\n{{PLURAL:$1|mudéfica|mudéfichi}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|da l'ûltma vîşita}}",
        "enhancedrc-history": "stòria",
        "tmp-write-error": "Erōr de scritûra dal file pruvişôri.",
        "large-file": "A 's arcmânda d' andêr d'ed sōver la larghèsa ed $1 per ógni file; còst l'é grôs $2.",
        "largefileserver": "Al file al và fōra dal j amzûri permési da l'impustasiòun dal prugrâma.",
+       "emptyfile": "Al file apèina carghê al sèmbra vōd. \nCòst al pré èser duvû a un erōr int al nòm dal file. Verifichêr ch'es vōl dabòun carghêr cól file ché.",
+       "windows-nonascii-filename": "Cla wiki ché l'an permèt mìa i nòm di file cun i carâter specêl.",
+       "fileexists": "Un file cun cól nòm ché al gh'é bèle. Verifichêr préma <strong>[[:$1]]</strong> s' an s'é mìa sicûr ed vrèir scrévregh inséma. \n[[$1|thumb]]",
+       "filepageexists": "La pàgina de spiegasiòun de sté file l'é bèle stêda fâta a l'indirés <strong>[[:$1]]</strong>, anca s' an gh'é mìa incòra un file cun sté nòm. La spiegasiòun ed l'elemèint mésa da carghêr l'an gnirà mìa fâta vèder inséma la pàgina de spiegasiòun. Per fêr in môd che l'elemèint a 's vèda inséma la pàgina de spiegasiòun, a srà necesâri mudifichêrla a mân. [[$1|thumb]]",
+       "fileexists-extension": "Un file cun l'istès nòm al ghé bèle: [[$2|thumb]]\n*Nòm dal file carghê: <strong>[[:$1]]</strong>\n*Nòm dal file che gh'é: <strong>[[:$2]]</strong>  \nVōt fōrsi siēlier un nòm pió carateréstich?",
+       "fileexists-thumbnail-yes": "Al file carghê al sèmbra èsere 'na miniadûra ''(thumbnail)''. [[$1|thumb]] Verifichêr, per cunfròunt, al file <strong>[[:$1]]</strong>. Se 's trâta ed l'istèsa figûra, int al j amzûri uriginêli, an n'é mìa necesâri carghêr êtri miniadûri.",
+       "file-thumbnail-no": "Al nòm dal file al cumincia cun <strong>$1</strong>; la sèmbra dòunca èser 'na miniadûra ''(thumbnail)''. Se 's gh'à la figûra int la qualitê uriginêla, as prèiga 'd carghêrla. In chêş contrâri, as prèiga 'd cambiêr al nòm dal file.",
+       "fileexists-forbidden": "Un file cun un nòm cumpâgn al gh'é bèle e an 's pōl mìa scrévregh inséma. Tunêr indrē e cambiêr al nòm cun al nòm ch'es vōl carghêr al file. [[File:$1|thumb|center|$1]]",
+       "fileexists-shared-forbidden": "Un file cun un nòm cumpâgn al gh'é bèle int l'archévi dal risórsi multimediêli spartîdi. S' es vōl incòra carghêr al file, tunêr indrē e cambiêr al nòm cun al nòm ch'es vōl carghêr al file. [[File:$1|thumb|center|$1]]",
+       "file-exists-duplicate": "Cōl file ché l'é 'na côpia {{PLURAL:$1|dal segvèint|di segvèint}} file:",
+       "file-deleted-duplicate": "Un file cumpâgn a còst ([[:$1]]) l'é stê scanşlê tèimp fa. Verifichêr la stôria dal scanşladûri préma 'd carghêrel incòra ed nōv.",
+       "file-deleted-duplicate-notitle": "Un file cumpâgn a còst l'é stê scanşlê tèimp fa, e al tétol l'é stê tôt via. Dmânda a quelchidûn  ch' al gh'à la pusibilitê ed vèdeer i file scanşlê 'd verifichêr la situasiòun préma 'd andêr avânti cun al carghêrel incòra 'd nōv.",
+       "uploadwarning": "Avîş che s'é drē carghêr",
+       "uploadwarning-text": "Per piaşèir câmbia ché sòta la spiegasiòun dal file e prōv' incòra.",
+       "savefile": "Sêlva 'l file",
+       "uploaddisabled": "La cârga dal file l'é bluchêda.",
+       "copyuploaddisabled": "La cârga per mèz  'd URL l'é blucêda.",
+       "uploaddisabledtext": "La cârga di file an n'é mìa atîva.",
+       "php-uploaddisabledtext": "La cârga dal file cun PHP l'é bluchêda. Cuntròla che 'l file_uploads al sìa bèin impustê.",
+       "uploadscripted": "Cól file ché al gh'à un côdis o di script, che prén èser mìa capî bèin da un navigadōr internèt.",
+       "uploadscriptednamespace": "Cól file SVG ché al gh'à un namespace '$1' mìa permés.",
+       "uploadinvalidxml": "Al côdis XML int al file al pōl mìa èser lavurê bèin.",
+       "uploadvirus": "Cól fil ché al ghè un 'virus'! Particulêr: $1",
        "license": "Licèinsa:",
        "license-header": "Licèinsa",
        "nolicense": "Nisóna licèinsa sgnêda",
        "htmlform-reset": "Scanşèla 'l mudéfichi",
        "htmlform-selectorother-other": "Êter",
        "rightsnone": "(nisûn)",
-       "feedback-subject": "Argomèint:",
+       "feedback-cancel": "Scanşela",
        "feedback-message": "Mesâg",
-       "feedback-cancel": "Scanşela"
+       "feedback-subject": "Argomèint:"
 }
index 56936bb..7a4da02 100644 (file)
@@ -40,7 +40,8 @@
                        "Calak",
                        "Auslaender",
                        "Milicevic01",
-                       "Ah3kal"
+                       "Ah3kal",
+                       "Macofe"
                ]
        },
        "tog-underline": "Υπογράμμιση συνδέσμων:",
        "uploaderror": "Σφάλμα στο ανέβασμα αρχείου",
        "upload-recreate-warning": "'''Προειδοποίηση: Ένα αρχείο με αυτό το όνομα έχει διαγραφεί ή μετακινηθεί.'''\n\nΤο αρχείο διαγραφών και μετακινήσεων για αυτή τη σελίδα παρέχεται εδώ για διευκόλυνση:",
        "uploadtext": "Μπορείτε να χρησιμοποιήσετε την παρακάτω φόρμα για να επιφορτώσετε αρχεία. Για να δείτε ήδη επιφορτωμένα αρχεία, πηγαίνετε στη [[Special:FileList|λίστα επιφορτωμένων αρχείων]] ή στο [[Special:Log/upload|ιστορικό επιφορτώσεων]]. Οι διαγραφές έχουν καταγραφεί στη σελίδα [[Special:Log/delete|αρχείο διαγραφών]].\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>''' (χρήση μίας εκδοχής 200 pixel σε πλάτος σε ένα κουτάκι στο αριστερό περιθώριο με περιγραφή 'alt text')\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' (άμεση σύνδεση με το αρχείο χωρίς εμφάνιση του ίδιου του αρχείου)",
-       "upload-permitted": "Επιτρεπτοί τύποι αρχείων: $1.",
-       "upload-preferred": "Τύποι αρχείων που προτιμούνται: $1.",
-       "upload-prohibited": "Απαγορευμένοι τύποι αρχείου: $1.",
+       "upload-permitted": "{{PLURAL:$2|Επιτρεπτός τύπος αρχείων|Επιτρεπτοί τύποι αρχείων}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|Τύπος αρχείων που προτιμάται|Τύποι αρχείων που προτιμούνται}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Απαγορευμένος τύπος αρχείων|Απαγορευμένοι τύποι αρχείων}}: $1.",
        "uploadlogpage": "Αρχείο καταγραφών ανεβάσματος αρχείων",
        "uploadlogpagetext": "Παρακάτω είναι ο κατάλογος με τις πιο πρόσφατες αποθηκεύσεις αρχείων. Επισκεφθείτε τον [[Special:NewFiles|πίνακα νέων αρχείων]] για μία πιο οπτική επισκόπηση.",
        "filename": "Όνομα αρχείου",
        "deleteprotected": "Δεν μπορείτε να διαγράψετε αυτή τη σελίδα επειδή είναι προστατευόμενη.",
        "deleting-backlinks-warning": "\"'Προσοχή:\"' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Άλλες σελίδες]] συνδέουν ή ενσωματώνουν τη σελίδα που πρόκειται να διαγράψετε.",
        "rollback": "Επαναφορά επεξεργασιών",
-       "rollback_short": "Επαναφορά",
        "rollbacklink": "αναστροφή",
        "rollbacklinkcount": "Επαναφορά $1 {{PLURAL:$1|επεξεργασίας|επεξεργασιών}}",
        "rollbacklinkcount-morethan": "επαναφορά περισσότερων από $1 {{PLURAL:$1|επεξεργασία|επεξεργασίες}}",
        "thumbnail_gd-library": "Ατελής ενεργοποίηση της βιβλιοθήκης GD: αγνοούμενη λειτουργία $1",
        "thumbnail_image-missing": "Το αρχείο φαίνεται να λείπει: $1",
        "import": "Εισαγωγή σελίδων",
-       "importinterwiki": "Εισαγωγή από άλλο Wiki",
-       "import-interwiki-text": "Î\95Ï\80ιλέξÏ\84ε Î­Î½Î± wiki ÎºÎ±Î¹ Ï\84ίÏ\84λο Ï\83ελίδαÏ\82 Î³Î¹Î± Ï\84ην ÎµÎ¹Ï\83αγÏ\89γή.\nÎ\9fι Î·Î¼ÎµÏ\81ομηνίεÏ\82 Ï\84Ï\89ν Î±Î½Î±Î¸ÎµÏ\89Ï\81ήÏ\83εÏ\89ν ÎºÎ±Î¹ Ï\84α Î¿Î½Ï\8cμαÏ\84α Ï\84Ï\89ν Ï\83Ï\85νÏ\84ακÏ\84Ï\8eν Î¸Î± Î´Î¹Î±Ï\84ηÏ\81ηθοÏ\8dν.\nÎ\8cλεÏ\82 Î¿Î¹ ÎµÎ½Î­Ï\81γειεÏ\82 ÎµÎ¹Ï\83αγÏ\89γήÏ\82 Î¼ÎµÏ\84αξÏ\8d wiki καταγράφονται στο [[Special:Log/import|αρχείο καταγραφής εισαγωγών]].",
+       "importinterwiki": "Εισαγωγή από άλλο wiki",
+       "import-interwiki-text": "Î\95Ï\80ιλέξÏ\84ε Î­Î½Î± wiki ÎºÎ±Î¹ Ï\84ίÏ\84λο Ï\83ελίδαÏ\82 Î³Î¹Î± Ï\84ην ÎµÎ¹Ï\83αγÏ\89γή.\nÎ\9fι Î·Î¼ÎµÏ\81ομηνίεÏ\82 Ï\84Ï\89ν Î±Î½Î±Î¸ÎµÏ\89Ï\81ήÏ\83εÏ\89ν ÎºÎ±Î¹ Ï\84α Î¿Î½Ï\8cμαÏ\84α Ï\84Ï\89ν Ï\83Ï\85νÏ\84ακÏ\84Ï\8eν Î¸Î± Î´Î¹Î±Ï\84ηÏ\81ηθοÏ\8dν.\nÎ\8cλεÏ\82 Î¿Î¹ ÎµÎ½Î­Ï\81γειεÏ\82 ÎµÎ¹Ï\83αγÏ\89γήÏ\82 Î±Ï\80Ï\8c Î¬Î»Î»Î± wiki καταγράφονται στο [[Special:Log/import|αρχείο καταγραφής εισαγωγών]].",
        "import-interwiki-sourcewiki": "Πηγαίο wiki:",
        "import-interwiki-sourcepage": "Πηγαία σελίδα:",
        "import-interwiki-history": "Αντιγραφή όλων των εκδόσεων του ιστορικού για αυτή τη σελίδα",
        "importcantopen": "Το αρχείο εισαγωγής δεν ήταν δυνατόν να ανοιχθεί",
        "importbadinterwiki": "Εσφαλμένος διαγλωσσικός σύνδεσμος",
        "importsuccess": "Η εισαγωγή πέτυχε!",
-       "importnosources": "Δεν έχουν καθοριστεί πηγές για την εισαγωγή από άλλο Wiki και η απευθείας φόρτωση στο ιστορικό έχει απενεργοποιηθεί.",
+       "importnosources": "Δεν έχουν καθοριστεί wiki από τα οποία μπορεί να γίνει εισαγωγή και η απευθείας φόρτωση στο ιστορικό έχει απενεργοποιηθεί.",
        "importnofile": "Δεν επιφορτώθηκε κανένα αρχείο εισαγωγής.",
        "importuploaderrorsize": "Το ανέβασμα του αρχείου εισαγωγής απέτυχε. Το μέγεθος του αρχείου ξεπερνά το επιτρεπόμενο όριο.",
        "importuploaderrorpartial": "Το ανέβασμα του αρχείου εισαγωγής απέτυχε. Το αρχείο ανέβηκε μόνο εν μέρει.",
        "import-rootpage-invalid": "Η δεδομένη ριζική σελίδα είναι μη έγκυρος τίτλος",
        "importlogpage": "Αρχείο καταγραφής εισαγωγών",
        "importlogpagetext": "Διαχειριστικές εισαγωγές σελίδων με ιστορικό επεξεργασίας από άλλα wiki.",
-       "import-logentry-upload": "εισάχθηκε η σελίδα [[$1]] με επιφόρτωση αρχείου",
        "import-logentry-upload-detail": "{{PLURAL:$1|Εισήχθη $1 αναθεώρηση|Εισήχθησαν $1 αναθεωρήσεις}}",
-       "import-logentry-interwiki": "η σελίδα $1 εισάχθηκε μεταξύ wiki",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|Εισήχθη $1 αναθεώρηση|Εισήχθησαν $1 αναθεωρήσεις}} από $2",
        "javascripttest": "Δοκιμή JavaScript",
        "javascripttest-pagetext-noframework": "Αυτή η σελίδα είναι δεσμευμένη για την εκτέλεση δοκιμών σε JavaScript.",
        "tooltip-pt-mycontris": "Κατάλογος των συνεισφορών σας",
        "tooltip-pt-login": "Σας ενθαρρύνουμε να συνδεθείτε&middot; ωστόσο δεν είναι υποχρεωτικό",
        "tooltip-pt-logout": "Έξοδος",
+       "tooltip-pt-createaccount": "Σας ενθαρρύνουμε να δημιουργήσετε ένα λογαριασμό και να συνδεθείτε· ωστόσο, δεν είναι υποχρεωτικό",
        "tooltip-ca-talk": "Συζήτηση για τη σελίδα περιεχομένου",
        "tooltip-ca-edit": "Μπορείτε να επεξεργαστείτε αυτή τη σελίδα. Παρακαλούμε χρησιμοποιήστε το κουμπί προεπισκόπησης πριν την αποθήκευση.",
        "tooltip-ca-addsection": "Ξεκίνημα νέας ενότητας",
        "version-parser-function-hooks": "Άγκιστρα συναρτήσεων του συντακτικού αναλυτή",
        "version-hook-name": "Όνομα άγκιστρου",
        "version-hook-subscribedby": "Υπογεγραμμένο από",
-       "version-version": "(Έκδοση $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[χωρίς όνομα]",
        "version-license": "Άδεια MediaWiki",
        "version-ext-license": "Άδεια χρήσης",
        "compare-revision-not-exists": "Η αναθεώρηση που καθορίσατε δεν υπάρχει.",
        "dberr-problems": "Λυπούμαστε! Αυτός ο ιστότοπος αντιμετωπίζει τεχνικές δυσκολίες.",
        "dberr-again": "Δοκιμάστε να περιμενένετε λίγα λεπτά και να ανανεώσετε.",
-       "dberr-info": "(Î\94εν Î¼Ï\80οÏ\81εί Î½Î± ÎµÏ\80ικοινÏ\89νήÏ\83ει Î¼Îµ Ï\84ον ÎµÎ¾Ï\85Ï\80ηÏ\81εÏ\84ηÏ\84ή Ï\84ηÏ\82 Î²Î¬Ï\83ηÏ\82 δεδομένων: $1)",
-       "dberr-info-hidden": "(Δεν είναι δυνατή η επικοινωνία με τον εξυπηρετητή της βάσης δεδομένων)",
+       "dberr-info": "(Î\94εν ÎµÎ¯Î½Î±Î¹ Î´Ï\85ναÏ\84ή Î· Ï\80Ï\81Ï\8cÏ\83βαÏ\83η Ï\83Ï\84η Î²Î¬Ï\83η δεδομένων: $1)",
+       "dberr-info-hidden": "(Δεν είναι δυνατή η πρόσβαση στη βάση δεδομένων)",
        "dberr-usegoogle": "Μπορείτε να δοκιμάσετε να ψάξετε στο Google εν τω μεταξύ.",
        "dberr-outofdate": "Σημειώστε ότι οι ενδείξεις τους περί του περιεχομένου μας ενδέχεται να μην είναι ενημερωμένες.",
        "dberr-cachederror": "Το ακόλουθο είναι ένα αντίγραφο από την μνήμη της σελίδας που ζητήσατε και ενδέχεται να μην είναι ενημερωμένο.",
        "logentry-upload-revert": "{{GENDER:$2|Ο|Η}} $1 ανέβασε το $3",
        "rightsnone": "(κανένα)",
        "revdelete-summary": "επεξεργασία σύνοψης",
+       "feedback-adding": "Προσθήκη σχολίων στην σελίδα...",
+       "feedback-bugcheck": "Ωραία! Ελέγξτε μόνο ότι δεν είναι ήδη ένα από τα [$1 γνωστά σφάλματα].",
+       "feedback-bugnew": "Έλεγξα. Αναφέρετε ένα νέο σφάλμα",
        "feedback-bugornote": "Εάν είστε έτοιμοι να περιγράψετε ένα τεχνικό πρόβλημα λεπτομερώς παρακαλούμε [$1  κάντε μια αναφορά σφάλματος].\nΔιαφορετικά, μπορείτε να χρησιμοποιήσετε την παρακάτω απλή φόρμα. Το σχόλιό σας θα προστεθεί στη σελίδα \"[$3  $2]\", μαζί με το όνομα χρήστη σας.",
-       "feedback-subject": "Θέμα:",
-       "feedback-message": "Μήνυμα:",
        "feedback-cancel": "Ακύρωση",
-       "feedback-submit": "Υποβολή σχολίων",
-       "feedback-adding": "Προσθήκη σχολίων στην σελίδα...",
+       "feedback-close": "Ολοκληρώθηκε",
        "feedback-error1": "Σφάλμα: Μη αναγνωρίσιμο αποτέλεσμα από το API",
        "feedback-error2": "Σφάλμα: Η επεξεργασία απέτυχε",
        "feedback-error3": "Σφάλμα: Καμία απάντηση από το API",
+       "feedback-message": "Μήνυμα:",
+       "feedback-subject": "Θέμα:",
+       "feedback-submit": "Υποβολή",
        "feedback-thanks": "Ευχαριστούμε! Τα σχόλιά σας έχουν καταχωρηθεί στη σελίδα \"[$2 $1]\".",
-       "feedback-close": "Ολοκληρώθηκε",
-       "feedback-bugcheck": "Ωραία! Ελέγξτε μόνο ότι δεν είναι ήδη ένα από τα [$1 γνωστά σφάλματα].",
-       "feedback-bugnew": "Έλεγξα. Αναφέρετε ένα νέο σφάλμα",
        "searchsuggest-search": "Αναζήτηση",
        "searchsuggest-containing": "περιέχει...",
        "api-error-badaccess-groups": "Δεν επιτρέπεται να ανεβάσετε αρχεία σε αυτό το wiki.",
index 31c766f..bf65202 100644 (file)
        "edithelp": "Editing help",
        "edithelppage": "https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Editing_pages",
        "helppage": "https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents",
+       "helppage-top-gethelp": "Help",
        "mainpage": "Main Page",
        "mainpage-description": "Main page",
        "policy-url": "Project:Policy",
        "missingcommentheader": "<strong>Reminder:</strong> You have not provided a subject/headline for this comment.\nIf you click \"{{int:savearticle}}\" again, your edit will be saved without one.",
        "summary-preview": "Summary preview:",
        "subject-preview": "Subject/headline preview:",
+       "previewerrortext": "An error occurred while attempting to preview your changes.",
        "blockedtitle": "User is blocked",
        "blockedtext": "<strong>Your username or IP address has been blocked.</strong>\n\nThe block was made by $1.\nThe reason given is <em>$2</em>.\n\n* Start of block: $8\n* Expiry of block: $6\n* Intended blockee: $7\n\nYou can contact $1 or another [[{{MediaWiki:Grouppage-sysop}}|administrator]] to discuss the block.\nYou cannot use the \"email this user\" feature unless a valid email address is specified in your [[Special:Preferences|account preferences]] and you have not been blocked from using it.\nYour current IP address is $3, and the block ID is #$5.\nPlease include all above details in any queries you make.",
        "autoblockedtext": "Your IP address has been automatically blocked because it was used by another user, who was blocked by $1.\nThe reason given is:\n\n:<em>$2</em>\n\n* Start of block: $8\n* Expiry of block: $6\n* Intended blockee: $7\n\nYou may contact $1 or one of the other [[{{MediaWiki:Grouppage-sysop}}|administrators]] to discuss the block.\n\nNote that you may not use the \"email this user\" feature unless you have a valid email address registered in your [[Special:Preferences|user preferences]] and you have not been blocked from using it.\n\nYour current IP address is $3, and the block ID is #$5.\nPlease include all above details in any queries you make.",
        "editingsection": "Editing $1 (section)",
        "editingcomment": "Editing $1 (new section)",
        "editconflict": "Edit conflict: $1",
+       "editnotice-notext": "-",
        "explainconflict": "Someone else has changed this page since you started editing it.\nThe upper text area contains the page text as it currently exists.\nYour changes are shown in the lower text area.\nYou will have to merge your changes into the existing text.\n<strong>Only</strong> the text in the upper text area will be saved when you press \"{{int:savearticle}}\".",
        "yourtext": "Your text",
        "storedversion": "Stored revision",
        "logentry-block-reblock": "$1 {{GENDER:$2|changed}} block settings for {{GENDER:$4|$3}} with an expiry time of $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|blocked}} {{GENDER:$4|$3}} with an expiry time of $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|changed}} block settings for {{GENDER:$4|$3}} with an expiry time of $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|imported}} $3 by file upload",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|imported}} $3 from another wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|merged}} $3 into $4 (revisions up to $5)",
        "logentry-move-move": "$1 {{GENDER:$2|moved}} page $3 to $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|moved}} page $3 to $4 without leaving a redirect",
        "newuserlog-autocreate-entry": "Account created automatically",
        "rightslogentry": "changed group membership for $1 from $2 to $3",
        "rightslogentry-autopromote": "was automatically promoted from $2 to $3",
+       "feedback-adding": "Adding feedback to page...",
+       "feedback-back": "Back",
+       "feedback-bugcheck": "Great! Just check that it is not already one of the [$1 known bugs].",
+       "feedback-bugnew": "I checked. Report a new bug",
        "feedback-bugornote": "If you are ready to describe a technical problem in detail please [$1 report a bug].\nOtherwise, you can use the easy form below. Your comment will be added to the page \"[$3 $2]\", along with your username.",
-       "feedback-subject": "Subject:",
-       "feedback-message": "Message:",
        "feedback-cancel": "Cancel",
-       "feedback-submit": "Submit Feedback",
-       "feedback-adding": "Adding feedback to page...",
+       "feedback-close": "Done",
+       "feedback-external-bug-report-button": "File a technical task",
+       "feedback-dialog-title": "Submit feedback",
+       "feedback-dialog-intro": "You can use the easy form below to submit your feedback. Your comment will be added to the page \"$1\", along with your username.",
+       "feedback-error-title": "Error",
        "feedback-error1": "Error: Unrecognized result from API",
        "feedback-error2": "Error: Edit failed",
        "feedback-error3": "Error: No response from API",
+       "feedback-message": "Message:",
+       "feedback-subject": "Subject:",
+       "feedback-submit": "Submit",
+       "feedback-terms": "I understand that my user agent information includes information about my exact browser and operating system version and will be shared publicly alongside my feedback.",
+       "feedback-termsofuse": "I agree to provide feedback in accordance with the Terms of Use.",
        "feedback-thanks": "Thanks! Your feedback has been posted to the page \"[$2 $1]\".",
-       "feedback-close": "Done",
-       "feedback-bugcheck": "Great! Just check that it is not already one of the [$1 known bugs].",
-       "feedback-bugnew": "I checked. Report a new bug",
+       "feedback-thanks-title": "Thank you!",
+       "feedback-useragent": "User agent:",
        "searchsuggest-search": "Search",
        "searchsuggest-containing": "containing...",
        "api-error-badaccess-groups": "You are not permitted to upload files to this wiki.",
        "json-error-inf-or-nan": "One or more NAN or INF values in the value to be encoded",
        "json-error-unsupported-type": "A value of a type that cannot be encoded was given",
        "headline-anchor-title": "Link to this section",
-       "section-symbol": "§"
+       "section-symbol": "§",
+       "special-characters-group-latin": "Latin",
+       "special-characters-group-latinextended": "Latin extended",
+       "special-characters-group-ipa": "IPA",
+       "special-characters-group-symbols": "Symbols",
+       "special-characters-group-greek": "Greek",
+       "special-characters-group-cyrillic": "Cyrillic",
+       "special-characters-group-arabic": "Arabic",
+       "special-characters-group-arabicextended": "Arabic extended",
+       "special-characters-group-persian": "Persian",
+       "special-characters-group-hebrew": "Hebrew",
+       "special-characters-group-bangla": "Bangla",
+       "special-characters-group-tamil": "Tamil",
+       "special-characters-group-telugu": "Telugu",
+       "special-characters-group-sinhala": "Sinhala",
+       "special-characters-group-gujarati": "Gujarati",
+       "special-characters-group-devanagari": "Devanagari",
+       "special-characters-group-thai": "Thai",
+       "special-characters-group-lao": "Lao",
+       "special-characters-group-khmer": "Khmer",
+       "special-characters-title-endash": "en dash",
+       "special-characters-title-emdash": "em dash",
+       "special-characters-title-minus": "minus sign"
 }
index 6969629..1dcef6e 100644 (file)
                        "Jonathan rrr",
                        "Paynekiller92",
                        "Kroji",
-                       "JasterTDC"
+                       "JasterTDC",
+                       "Laurenslimb"
                ]
        },
        "tog-underline": "Subrayar los enlaces:",
        "disclaimers": "Aviso legal",
        "disclaimerpage": "Project:Limitación general de responsabilidad",
        "edithelp": "Ayuda de edición",
+       "helppage-top-gethelp": "Ayuda",
        "mainpage": "Página principal",
        "mainpage-description": "Página principal",
        "policy-url": "Project:Políticas",
        "page_last": "últimas",
        "histlegend": "Selección de diferencias: marca las casillas correspondientes a las versiones a comparar y pulsa Intro o el botón de abajo.<br />\nLeyenda: <strong>(act)</strong> = diferencias con la versión actual,\n<strong>(ant)</strong> = diferencias con la versión anterior, <strong>m</strong> = edición menor",
        "history-fieldset-title": "Buscar en el historial",
-       "history-show-deleted": "Solo ediciones ocultadas",
+       "history-show-deleted": "Solo eliminadas",
        "histfirst": "primeras",
        "histlast": "últimas",
        "historysize": "({{PLURAL:$1|1 byte|$1 bytes}})",
        "prefs-editwatchlist-edit": "Ver y quitar los títulos de tu lista de seguimiento",
        "prefs-editwatchlist-raw": "Editar tu lista de seguimiento en modo texto",
        "prefs-editwatchlist-clear": "Limpiar tu lista de seguimiento",
-       "prefs-watchlist-days": "Número de días a mostrar en la lista de seguimiento:",
+       "prefs-watchlist-days": "Número de días que mostrar en la lista de seguimiento:",
        "prefs-watchlist-days-max": "Máximo $1 {{PLURAL:$1|día|días}}",
-       "prefs-watchlist-edits": "Número máximo de ediciones a mostrar en la lista expandida:",
+       "prefs-watchlist-edits": "Número máximo de ediciones que mostrar en la lista expandida:",
        "prefs-watchlist-edits-max": "Cantidad máxima: 1000",
        "prefs-watchlist-token": "Clave de lista de seguimiento:",
        "prefs-misc": "Miscelánea",
        "prefs-email": "Opciones de correo electrónico",
        "prefs-rendering": "Apariencia",
        "saveprefs": "Guardar",
-       "restoreprefs": "Restaurar la configuración predeterminada",
+       "restoreprefs": "Restaurar la configuración predeterminada (en todas las secciones)",
        "prefs-editing": "Edición",
        "rows": "Filas:",
        "columns": "Columnas:",
        "searchresultshead": "Búsquedas",
        "stub-threshold": "Límite para cambiar a formato de <a href=\"#\" class=\"stub\">enlace a esbozo</a> (en bytes):",
        "stub-threshold-disabled": "Desactivado",
-       "recentchangesdays": "Días que mostrar en Cambios recientes:",
-       "recentchangesdays-max": "(máximo {{PLURAL:$1|un día|$1 días}})",
+       "recentchangesdays": "Días que mostrar en los cambios recientes:",
+       "recentchangesdays-max": "Máximo {{PLURAL:$1|un día|$1 días}}",
        "recentchangescount": "N.º de ediciones que mostrar de manera predeterminada:",
-       "prefs-help-recentchangescount": "Esto incluye cambios recientes, historiales de página, y registros.",
+       "prefs-help-recentchangescount": "Esto incluye cambios recientes, historiales de páginas y registros.",
        "prefs-help-watchlist-token2": "Esta es la clave secreta del canal de suscripción de tu lista de seguimiento.\nCualquier persona que la conozca podría leer tu lista, así que no la compartas.\n[[Special:ResetTokens|Pulsa aquí si necesitas restablecerla]].",
        "savedprefs": "Se han guardado tus preferencias.",
        "timezonelegend": "Huso horario:",
        "recentchanges-legend-heading": "'''Leyenda:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (véase también la [[Special:NewPages|lista de páginas nuevas]])",
        "rcnotefrom": "Debajo aparece{{PLURAL:$5| el cambio|n los cambios}} desde <strong>$3, $4</strong> (se muestran hasta <strong>$1</strong>).",
-       "rclistfrom": "Mostrar nuevos cambios desde $2, $3",
+       "rclistfrom": "Mostrar cambios nuevos desde las $2 del $3",
        "rcshowhideminor": "$1 ediciones menores",
        "rcshowhideminor-show": "Mostrar",
        "rcshowhideminor-hide": "Ocultar",
        "recentchangeslinked-feed": "Cambios relacionados",
        "recentchangeslinked-toolbox": "Cambios relacionados",
        "recentchangeslinked-title": "Cambios relacionados con «$1»",
-       "recentchangeslinked-summary": "Esta página es una lista de los últimos cambios en las páginas enlazadas desde una página (o en las pertenecientes a una categoría). Las páginas que están en tu [[Special:Watchlist|lista de seguimiento]] aparecen en '''negrita'''.",
+       "recentchangeslinked-summary": "Esta página es una lista de los últimos cambios en las páginas enlazadas desde una página dada (o en las pertenecientes a una categoría dada). Las páginas que están en tu [[Special:Watchlist|lista de seguimiento]] aparecen en <strong>negrita</strong>.",
        "recentchangeslinked-page": "Nombre de la página:",
        "recentchangeslinked-to": "Mostrar los cambios en páginas enlazadas con la página seleccionada",
        "upload": "Subir archivo",
        "unusedimages": "Imágenes sin uso",
        "wantedcategories": "Categorías requeridas",
        "wantedpages": "Páginas requeridas",
+       "wantedpages-summary": "Lista de páginas inexistentes con el mayor número de enlaces a ellas, excluyendo páginas con únicamente redirecciones. Para una lista de páginas con redirecciones apuntando a ellas, consulte [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Título inválido en conjunto de resultados: $1",
        "wantedfiles": "Ficheros requeridos",
        "wantedfiletext-cat": "Los siguientes archivos están en uso, pero no existen. Es posible que algunos de ellos estén almacenados en repositorios externos y se hayan incluido aquí por error; dichas entradas aparecen <del>tachadas</del>. De igual manera, las páginas que incluyen archivos inexistentes se enumeran en [[:$1]].",
        "unusedimagestext": "Los siguientes archivos existen pero no están insertados en ninguna página.\nPor favor note que otros sitios web pueden vincular a un archivo con un URL directo, y por tanto pueden ser listados aquí a pesar de estar en uso activo.",
        "unusedcategoriestext": "Las siguientes categorías han sido creadas, pero ningún artículo o categoría las utiliza.",
        "notargettitle": "No hay página objetivo",
-       "notargettext": "Especifique sobre qué página desea llevar a cabo esta acción.",
+       "notargettext": "No has especificado sobre qué página deseas llevar a cabo esta acción.",
        "nopagetitle": "No existe la página destino",
        "nopagetext": "La página destino que ha especificado no existe.",
        "pager-newer-n": "{{PLURAL:$1|1 siguiente|$1 siguientes}}",
        "protect_expiry_old": "El tiempo de expiración está en el pasado.",
        "protect-unchain-permissions": "Desbloquear opciones de protección adicionales",
        "protect-text": "Puedes ver y modificar el nivel de protección de la página '''$1'''.",
-       "protect-locked-blocked": "No puede cambiar los niveles de protección estando bloqueado. A continuación se muestran las opciones actuales de la página '''$1''':",
+       "protect-locked-blocked": "No puedes cambiar los niveles de protección estando bloqueado.\nA continuación se muestran las opciones actuales de la página <strong>$1</strong>:",
        "protect-locked-dblock": "Los niveles de protección no se pueden cambiar debido a un bloqueo activo de la base de datos.\nA continuación se muestran las opciones actuales de la página '''$1''':",
-       "protect-locked-access": "Su cuenta no tiene permiso para cambiar los niveles de protección de una página.\nA continuación se muestran las opciones actuales de la página '''$1''':",
+       "protect-locked-access": "Tu cuenta no tiene permiso para cambiar los niveles de protección de una página.\nA continuación se muestran las opciones actuales de la página <strong>$1</strong>:",
        "protect-cascadeon": "Actualmente esta página está protegida porque está incluida en {{PLURAL:$1|la siguiente página|las siguientes páginas}}, que tienen activada la opción de protección en cascada. Puedes cambiar el nivel de protección de esta página, pero no afectará a la protección en cascada.",
        "protect-default": "Permitir todos los usuarios",
        "protect-fallback": "Solo permitir usuarios con el permiso «$1»",
        "undeletepage": "Ver y restaurar páginas borradas",
        "undeletepagetitle": "'''Las siguientes son las revisiones borradas de [[:$1|$1]]'''.",
        "viewdeletedpage": "Ver páginas borradas",
-       "undeletepagetext": "{{PLURAL:$1|La siguiente página ha sido borrada pero aún está en el archivo y puede ser restaurada.|Las siguientes $1 páginas han sido borradas pero aún están en el archivo y pueden ser restauradas.}}\nPuede que el archivo se limpie periódicamente.",
+       "undeletepagetext": "{{PLURAL:$1|La siguiente página ha sido borrada, pero aún está en el archivo y puede ser restaurada.|Las siguientes $1 páginas han sido borradas, pero aún están en el archivo y pueden ser restauradas.}}\nPuede que el archivo se limpie periódicamente.",
        "undelete-fieldset-title": "Restaurar revisiones",
        "undeleteextrahelp": "Para restaurar todo el historial de la página, deja todas las casillas sin seleccionar y pulsa en <strong><em>{{int:undeletebtn}}</em></strong>. Para realizar una restauración selectiva, marca las revisiones que deban restaurarse y pulsa en <strong><em>{{int:undeletebtn}}</em></strong>.",
        "undeleterevisions": "$1 {{PLURAL:$1|revisión|revisiones}} archivadas",
-       "undeletehistory": "Si restauras una página, todas sus revisiones serán restauradas al historial.\nSi una nueva página con el mismo nombre ha sido creada desde que se borró la original, las versiones restauradas aparecerán como historial anterior, y la revisión actual de la página actual no se reemplazará automáticamente.",
+       "undeletehistory": "Si restauras la página, todas sus revisiones se restaurarán en el historial.\nSi una nueva página con el mismo nombre se ha creado desde que se borró la original, las versiones restauradas aparecerán en el historial previo.",
        "undeleterevdel": "No se deshará el borrado si éste resulta en el borrado parcial de la última revisión de la página. En tal caso, desmarque o muestre las revisiones borradas más recientes. Las revisiones de archivos que no tiene permitido ver no se restaurarán.",
        "undeletehistorynoadmin": "El artículo ha sido borrado. La razón de su eliminación se indica abajo en el resumen, así como los detalles de las ediciones realizadas antes del borrado. El texto completo del artículo está disponible sólo para usuarios con permisos de administrador.",
        "undelete-revision": "Edición borrada de $1 (fechada $4, a $5) por $3:",
        "blocklogpage": "Registro de bloqueos",
        "blocklog-showlog": "Este usuario ha sido bloqueado previamente. Debajo se provee el registro de bloqueos para mayor referencia:",
        "blocklog-showsuppresslog": "Este usuario ha sido bloqueado y ocultado. Se provee el registro de supresiones para más detalle:",
-       "blocklogentry": "bloqueó a [[$1]] $3 durante un plazo de $2",
+       "blocklogentry": "bloqueó a [[$1]] durante un plazo de $2 $3",
        "reblock-logentry": "cambió el bloqueo para  [[$1]] con una caducidad de $2 $3",
        "blocklogtext": "Esto es un registro de acciones de bloqueo y desbloqueo de usuarios.\nLas direcciones IP bloqueadas automáticamente no aparecen aquí.\nConsulta la [[Special:BlockList|lista de bloqueos]] para ver la lista de bloqueos y prohibiciones de operar en vigor.",
        "unblocklogentry": "desbloqueó a $1",
        "allmessagesname": "Nombre",
        "allmessagesdefault": "Texto predeterminado",
        "allmessagescurrent": "Texto actual",
-       "allmessagestext": "Esta es una lista de mensajes del sistema disponibles en el espacio de nombres MediaWiki:\nPor favor visita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Localización MediaWiki] y [//translatewiki.net translatewiki.net] si deseas contribuir con la localización genérica MediaWiki.",
+       "allmessagestext": "Esta es una lista de mensajes del sistema disponibles en el espacio de nombres MediaWiki.\nPor favor, visita [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation Localización MediaWiki] y [//translatewiki.net translatewiki.net] si deseas contribuir a la localización genérica de MediaWiki.",
        "allmessagesnotsupportedDB": "Esta página no está disponible porque '''$wgUseDatabaseMessages''' está deshabilitado.",
        "allmessages-filter-legend": "Filtro",
        "allmessages-filter": "Filtrar por estado de personalización:",
        "thumbnail_image-failure-limit": "Ha habido muchos intentos recientes ($1 o más) para representar esta miniatura. Inténtalo de nuevo más tarde.",
        "import": "Importar páginas",
        "importinterwiki": "Importar desde otro wiki",
-       "import-interwiki-text": "Selecciona un wiki y un título de página para importar.\nLas fechas de revisiones y los nombres de editores se preservarán.\nTodas las importaciones transwiki se registran en el [[Special:Log/import|registro de importaciones]].",
+       "import-interwiki-text": "Selecciona un wiki y un título de página para importar.\nLas fechas de revisiones y los nombres de editores se preservarán.\nTodas las importaciones de otros wikis se registran en el [[Special:Log/import|registro de importaciones]].",
        "import-interwiki-sourcewiki": "Wiki de origen:",
        "import-interwiki-sourcepage": "Página de origen:",
        "import-interwiki-history": "Copiar todas las versiones históricas para esta página",
        "importcantopen": "No se pudo importar el archivo",
        "importbadinterwiki": "Enlace interwiki anómalo",
        "importsuccess": "¡La importación se ha realizado con éxito!",
-       "importnosources": "No hay fuentes de importación transwiki y no está permitido subir directamente el historial.",
+       "importnosources": "No se definieron wikis de los cuales importar y no está permitido subir directamente el historial.",
        "importnofile": "No se subieron archivos de importación.",
        "importuploaderrorsize": "Falló la carga del archivo de importaciones.\nSu tamaño es superior al máximo permitido.",
        "importuploaderrorpartial": "Falló la subida del fichero de importación.\nSe subió sólo parcialmente.",
        "import-rootpage-nosubpage": "El espacio de nombres \"$1\" de la página raíz no permite subpáginas.",
        "importlogpage": "Registro de importaciones",
        "importlogpagetext": "Importaciones administrativas de páginas con historial desde otros wikis.",
-       "import-logentry-upload": "importó [[$1]] por subida de archivo",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|revisión importada|revisiones importadas}}",
-       "import-logentry-interwiki": "transwikificada $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|revisión importada|revisiones importadas}} desde $2",
        "javascripttest": "Pruebas de JavaScript",
        "javascripttest-pagetext-noframework": "Esta página está reservada para ejecutar pruebas de JavaScript.",
        "tooltip-pt-login": "Te recomendamos iniciar sesión, aunque no es obligatorio",
        "tooltip-pt-logout": "Salir de la sesión",
        "tooltip-pt-createaccount": "Te recomendamos crear una cuenta e iniciar sesión; sin embargo, no es obligatorio",
-       "tooltip-ca-talk": "Discusión acerca del artículo",
+       "tooltip-ca-talk": "Discusión acerca de la página de contenido",
        "tooltip-ca-edit": "Puedes editar esta página. Utiliza el botón de previsualización antes de guardar",
        "tooltip-ca-addsection": "Iniciar una sección nueva",
        "tooltip-ca-viewsource": "Esta página está protegida.\nPuedes ver su código fuente",
        "tooltip-n-mainpage": "Visitar la página principal",
        "tooltip-n-mainpage-description": "Visitar la página principal",
        "tooltip-n-portal": "Acerca del proyecto, lo que puedes hacer, dónde encontrar información",
-       "tooltip-n-currentevents": "Información de contexto sobre acontecimientos actuales",
+       "tooltip-n-currentevents": "Encuentra información de contexto sobre acontecimientos actuales",
        "tooltip-n-recentchanges": "Lista de cambios recientes en el wiki",
        "tooltip-n-randompage": "Cargar una página al azar",
        "tooltip-n-help": "El lugar para aprender",
        "metadata-help": "Este archivo contiene información adicional, probablemente añadida por la cámara digital o el escáner usado para crearlo o digitalizarlo.\nSi el archivo ha sido modificado desde su estado original, pueden haberse perdido algunos detalles.",
        "metadata-expand": "Mostrar datos detallados",
        "metadata-collapse": "Ocultar datos detallados",
-       "metadata-fields": "Los campos de metadatos que se listan en este mensaje se mostrarán en la página de descripción de la imagen aún cuando la tabla de metadatos esté plegada.\nExisten otros campos que se mantendrán ocultos por defecto.\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": "Los campos de metadatos listados en este mensaje se mostrarán en la página de descripción de la imagen cuando la tabla de metadatos esté plegada.\nOtros campos se mantendrán ocultos por defecto.\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": "Anchura",
        "exif-imagelength": "Altura",
        "exif-bitspersample": "Bits por componente",
        "revdelete-uname-unhid": "nombre de usuario mostrado",
        "revdelete-restricted": "restricciones para administradores aplicadas",
        "revdelete-unrestricted": "restricciones para administradores eliminadas",
+       "logentry-block-block": "$1 {{GENDER:$2|bloqueó}} a {{GENDER:$4|$3}} durante un plazo de $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|desbloqueó}} {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|cambió}} la configuración del bloqueo de {{GENDER:$4|$3}} durante un plazo de $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|bloqueó}} {{GENDER:$4|$3}} durante un plazo de $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|cambió}} la configuración del bloqueo de {{GENDER:$4|$3}} durante un plazo de $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|importó}} $3 subiendo un archivo",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|importó}} $3 desde otro wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|combinó}} $3 en $4 (revisiones hasta el $5)",
-       "logentry-move-move": "$1 movió la página $3 a $4",
+       "logentry-move-move": "$1 {{GENDER:$2|trasladó}} 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 {{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}}",
-       "logentry-newusers-create": "La cuenta de usuario $1 ha sido creada",
+       "logentry-newusers-create": "Se ha {{GENDER:$2|creado}} la cuenta de usuario $1",
        "logentry-newusers-create2": "La cuenta de usuario $3 ha sido creada por $1",
        "logentry-newusers-byemail": "la cuenta de usuario $3 ha sido creada por $1 y la contraseña ha sido enviada por correo",
-       "logentry-newusers-autocreate": "La cuenta $1 fue creada automáticamente",
+       "logentry-newusers-autocreate": "La cuenta $1 se {{GENDER:$2|creó}} automáticamente",
        "logentry-rights-rights": "$1 modificó los grupos a los que pertenece $3: de $4 a $5",
        "logentry-rights-rights-legacy": "$1 modificó los grupos a los que pertenece $3",
        "logentry-rights-autopromote": "$1 ha sido {{GENDER:$2|promocionado|promocionada}} automáticamente de $4 a $5",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|desactivó}} la etiqueta «$4» para evitar su uso por usuarios y bots",
        "rightsnone": "(ninguno)",
        "revdelete-summary": "resumen de edición",
+       "feedback-adding": "Añadiendo comentarios a la página...",
+       "feedback-back": "Volver",
+       "feedback-bugcheck": "¡Perfecto! Únicamente comprueba que no sea un [$1 fallo conocido].",
+       "feedback-bugnew": "Lo he comprobado. Informar de un nuevo fallo.",
        "feedback-bugornote": "Si estás preparado para describir en detalle un problema técnico, [$1 informa de un bug] por favor.\n\nEn otro caso, puedes usar el siguiente formulario. Tu comentario será añadido a la página [$3 $2], junto con tu nombre de usuario y el navegador que usas.",
-       "feedback-subject": "Asunto:",
-       "feedback-message": "Mensaje:",
        "feedback-cancel": "Cancelar",
-       "feedback-submit": "Enviar comentarios",
-       "feedback-adding": "Añadiendo comentarios a la página...",
+       "feedback-close": "Hecho",
+       "feedback-external-bug-report-button": "Enviar una tarea técnica",
+       "feedback-dialog-title": "Enviar comentarios",
+       "feedback-dialog-intro": "Puedes usar el formulario sencillo debajo para enviar tus comentarios. Ellos se agregarán a la página \"$1\", junto con tu nombre de usuario.",
+       "feedback-error-title": "Error",
        "feedback-error1": "Error: No se reconoce resultado de API",
        "feedback-error2": "Error: Falló la edición",
        "feedback-error3": "Error: No hay respuesta de la API",
+       "feedback-message": "Mensaje:",
+       "feedback-subject": "Asunto:",
+       "feedback-submit": "Enviar",
+       "feedback-terms": "Entiendo que la información de mi agente de usuario incluye información sobre la versión exacta de mi navegador y mi sistema operativo y serán compartidos públicamente junto a mis comentarios.",
+       "feedback-termsofuse": "Acepto proporcionar comentarios de acuerdo con los Términos de uso.",
        "feedback-thanks": "¡Gracias! Su comentario ha sido anotado en la página [$2  $1].",
-       "feedback-close": "Hecho",
-       "feedback-bugcheck": "¡Perfecto! Únicamente comprueba que no sea un [$1 fallo conocido].",
-       "feedback-bugnew": "Lo he comprobado. Informar de un nuevo fallo.",
+       "feedback-thanks-title": "¡Muchas gracias!",
+       "feedback-useragent": "Agente de usuario:",
        "searchsuggest-search": "Buscar",
        "searchsuggest-containing": "que contiene...",
        "api-error-badaccess-groups": "No puedes cargar archivos en este wiki.",
        "limitreport-expensivefunctioncount": "Cuenta de la funcion expansiva del analizador",
        "expandtemplates": "Expandir plantillas",
        "expand_templates_intro": "Esta página especial toma un texto wiki y expande todas sus plantillas recursivamente.\nTambién expande las funciones sintácticas como <code><nowiki>{{</nowiki>#language:…}}</code>, y variables como\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>. De hecho, expande casi cualquier cosa que esté entre llaves dobles.",
-       "expand_templates_title": "Título de la página, útil para expandir {{PAGENAME}} o similares",
+       "expand_templates_title": "Título de la página, útil para expandir {{FULLPAGENAME}} o similares:",
        "expand_templates_input": "Texto a expandir:",
-       "expand_templates_output": "Resultado:",
+       "expand_templates_output": "Resultado",
        "expand_templates_xml_output": "Salida XML",
        "expand_templates_html_output": "Salida HTML en crudo",
        "expand_templates_ok": "Aceptar",
        "json-error-recursion": "Una o más referencias recursivas en el valor por codificar",
        "json-error-inf-or-nan": "Hay uno o más valores «NAN» o «INF» en el valor que se codificará",
        "json-error-unsupported-type": "Se proporcionó un valor en un tipo que no se puede codificar",
-       "headline-anchor-title": "Enlazar a esta sección"
+       "headline-anchor-title": "Enlace a esta sección"
 }
index 4aa7182..46ca745 100644 (file)
@@ -22,7 +22,8 @@
                        "Võrok",
                        "WikedKentaur",
                        "לערי ריינהארט",
-                       "Boxmein"
+                       "Boxmein",
+                       "Roland"
                ]
        },
        "tog-underline": "Linkide allakriipsutus:",
        "copyrightpage": "{{ns:project}}:Autoriõigus",
        "currentevents": "Sündmused",
        "currentevents-url": "Project:Sündmused",
-       "disclaimers": "Hoiatused",
-       "disclaimerpage": "Project:Hoiatused",
+       "disclaimers": "Lahtiütlused",
+       "disclaimerpage": "Project:Üldine lahtiütlus",
        "edithelp": "Redigeerimisjuhend",
+       "helppage-top-gethelp": "Abi",
        "mainpage": "Esileht",
        "mainpage-description": "Esileht",
        "policy-url": "Project:Reeglid",
        "portal": "Kogukonnavärav",
        "portal-url": "Project:Kogukonnavärav",
        "privacy": "Privaatsus",
-       "privacypage": "Project:Privaatsus",
+       "privacypage": "Project:Privaatsuseeskiri",
        "badaccess": "Õigus puudub",
        "badaccess-group0": "Sul pole õigust sooritada toimingut, mida üritasid.",
        "badaccess-groups": "Tegevus, mida üritasid, on piiratud kasutajatele {{PLURAL:$2|rühmas|ühes neist rühmadest}}: $1.",
        "readonly_lag": "Andmebaas on automaatselt lukustatud, seniks kuni ''slave''-andmebaasid on uuendatud.",
        "internalerror": "Sisemine viga",
        "internalerror_info": "Sisemine viga: $1",
+       "internalerror-fatal-exception": "Saatuslik erandtöötluse tõrge: $1",
        "filecopyerror": "Ei saanud faili \"$1\" kopeerida nimega \"$2\".",
        "filerenameerror": "Ei saanud faili \"$1\" failiks \"$2\" ümber nimetada.",
        "filedeleteerror": "Faili nimega \"$1\" ei ole võimalik kustutada.",
        "unusedimages": "Kasutamata failid",
        "wantedcategories": "Kõige oodatumad kategooriad",
        "wantedpages": "Kõige oodatumad leheküljed",
+       "wantedpages-summary": "Loend puuduvatest lehekülgedest, millele viitab kõige rohkem linke, välja arvatud leheküljed, millele viitavad ainult ümbersuunamised. Puuduvad leheküljed, millele viitavad ümbersuunamised, on loetletud leheküljel [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Tulemuste seas on vigane pealkiri: $1",
        "wantedfiles": "Kõige oodatumad failid",
        "wantedfiletext-cat": "Järgmised failid puuduvad, aga on lehekülgedel kasutuses. Siin võivad olla loetletud ka välistes hoidlates asuvad failid, hoolimata sellest, et nad tegelikult olemas on. Loendi sellised valeliikmed on <del>läbi kriipsutatud</del>. Lisaks on puuduvaid faile sisaldavad leheküljed loetletud asukohas [[:$1]].",
        "ipblocklist-localblock": "Kohalik blokeering",
        "ipblocklist-otherblocks": "{{PLURAL:$1|Muu blokeering|Muud blokeeringud}}",
        "infiniteblock": "igavene",
-       "expiringblock": "aegub $1 $2",
+       "expiringblock": "aegumistähtaeg $1, $2",
        "anononlyblock": "ainult nimetuna",
        "noautoblockblock": "IP-aadressi ei blokita automaatselt",
        "createaccountblock": "kontode loomine keelatud",
        "thumbnail_image-missing": "Fail näib puuduvat: $1",
        "thumbnail_image-failure-limit": "Selle pisipildi viimistlemine on hiljuti liiga palju kordi ($1 või rohkem) ebaõnnestunud. Palun proovi hiljem uuesti.",
        "import": "Lehekülgede import",
-       "importinterwiki": "Vikidevaheline import",
-       "import-interwiki-text": "Vali importimiseks viki ja lehekülje pealkiri.\nRedigeerimisajad ja kaastööliste nimed säilitatakse.\nKõik vikidevahelised toimingud on [[Special:Log/import|impordilogis]].",
+       "importinterwiki": "Importimine teisest vikist",
+       "import-interwiki-text": "Vali importimiseks viki ja lehekülje pealkiri.\nRedigeerimisajad ja kaastööliste nimed säilitatakse.\nKõik teisest vikist importimised on [[Special:Log/import|impordilogis]].",
        "import-interwiki-sourcewiki": "Lähteviki:",
        "import-interwiki-sourcepage": "Alliklehekülg:",
        "import-interwiki-history": "Kopeeri selle lehekülje kogu ajalugu",
        "importcantopen": "Ei saa imporditavat faili avada",
        "importbadinterwiki": "Vigane vikidevaheline link",
        "importsuccess": "Importimine edukalt lõpetatud!",
-       "importnosources": "Ühtegi vikidevahelist impordiallikat pole määratletud ja otsene ajaloo üleslaadimine on keelatud.",
+       "importnosources": "Määratletud pole ühtegi vikit, kust importida, ja otsene ajaloo üleslaadimine on keelatud.",
        "importnofile": "Ühtegi imporditavat faili ei laaditud üles.",
        "importuploaderrorsize": "Üleslaaditava faili import ebaõnnestus.\nFail on lubatust suurem.",
        "importuploaderrorpartial": "Imporditava faili üleslaadimine ebaõnnestus.\nFail oli vaid osaliselt üleslaaditud.",
        "import-rootpage-nosubpage": "Juurlehekülje nimeruumis \"$1\" pole alamleheküljed lubatud.",
        "importlogpage": "Impordilogi",
        "importlogpagetext": "Importimislogi kuvab leheküljed, mille redigeerimisajalugu pärineb teistest vikidest.",
-       "import-logentry-upload": "importis faili üleslaadimisega lehekülje [[$1]]",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|redaktsioon|redaktsiooni}} imporditud",
-       "import-logentry-interwiki": "importis teisest vikist lehekülje $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|redaktsioon|redaktsiooni}} imporditud asukohast $2",
        "javascripttest": "JavaScripti katsetamine",
        "javascripttest-pagetext-noframework": "Seda lehekülge hoitakse JavaScripti katsete jaoks.",
        "patrol-log-header": "See on kontrollitud redaktsioonide logi.",
        "log-show-hide-patrol": "$1 kontrollimislogi",
        "deletedrevision": "Kustutatud vanem versioon $1",
-       "filedeleteerror-short": "Faili $1 kustutamine ebaõnnestus",
-       "filedeleteerror-long": "Faili kustutamine ebaõnnestus:\n\n$1",
+       "filedeleteerror-short": "Tõrge faili kustutamisel: $1",
+       "filedeleteerror-long": "Faili kustutamisel esines tõrkeid:\n\n$1",
        "filedelete-missing": "Faili \"$1\" ei saa kustutada, sest seda ei ole.",
        "filedelete-old-unregistered": "Etteantud failiversiooni \"$1\" pole andmebaasis.",
        "filedelete-current-unregistered": "Fail \"$1\" ei ole andmebaasis.",
        "revdelete-uname-unhid": "nähtavaks tehti kasutajanimi",
        "revdelete-restricted": "kehtestati piirangud administraatoritele",
        "revdelete-unrestricted": "eemaldati administraatoritelt piirangud",
+       "logentry-block-block": "$1 {{GENDER:$2|blokeeris}} kasutaja {{GENDER:$4|$3}}; aegumistähtaeg $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|eemaldas}} kasutaja {{GENDER:$4|$3}} blokeeringu",
+       "logentry-block-reblock": "$1 {{GENDER:$2|muutis}} kasutaja {{GENDER:$4|$3}} blokeeringut; aegumistähtaeg $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|blokeeris}} kasutaja {{GENDER:$4|$3}}; aegumistähtaeg $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|muutis}} kasutaja {{GENDER:$4|$3}} blokeeringut; aegumistähtaeg $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|importis}} lehekülje $3 faili üleslaadimise teel",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|importis}} lehekülje $3 teisest vikist",
        "logentry-merge-merge": "$1 {{GENDER:$2|liitis}} lehekülje $3 leheküljega $4 (kuni redaktsioonini $5)",
        "logentry-move-move": "$1 {{GENDER:$2|teisaldas}} lehekülje $3 pealkirja $4 alla",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|teisaldas}} lehekülje $3 pealkirja $4 alla ümbersuunamist maha jätmata",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|keelas}} märgise \"$4\" kasutamise kasutajate ja robotite jaoks",
        "rightsnone": "(puudub)",
        "revdelete-summary": "resümee",
+       "feedback-adding": "Tagasiside lisamine leheküljele...",
+       "feedback-back": "Tagasi",
+       "feedback-bugcheck": "Hästi! Kontrolli vaid, ega tegu pole juba [$1 teada oleva veaga].",
+       "feedback-bugnew": "Kontrollisin. Teata uuest veast",
        "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:",
-       "feedback-message": "Sõnum:",
        "feedback-cancel": "Loobu",
-       "feedback-submit": "Saada tagasiside",
-       "feedback-adding": "Tagasiside lisamine leheküljele...",
+       "feedback-close": "Valmis",
+       "feedback-external-bug-report-button": "Koosta tehniline tööülesanne",
+       "feedback-dialog-title": "Tagasiside saatmine",
+       "feedback-dialog-intro": "Selle lihtsa vormi abil saad tagasisidet saata. Leheküljele \"$1\" lisatakse sinu kommentaar, mille juures on sinu kasutajanimi.",
+       "feedback-error-title": "Tõrge",
        "feedback-error1": "Tõrge: Tundmatu API tulemus",
        "feedback-error2": "Tõrge: Redigeerimine ebaõnnestus",
        "feedback-error3": "Tõrge: API ei vasta",
+       "feedback-message": "Sõnum:",
+       "feedback-subject": "Teema:",
+       "feedback-submit": "Saada",
+       "feedback-terms": "Mõistan, et minu kasutajaagendi andmed sisaldavad teavet minu veebilehitseja ja operatsioonisüsteemi täpse versiooni kohta ning need andmed tehakse minu tagasiside juures avalikuks.",
+       "feedback-termsofuse": "Olen nõus andma tagasisidet vastavalt kasutustingimustele.",
        "feedback-thanks": "Aitäh! Sinu tagasiside on postitatud leheküljele \"[$2 $1]\".",
-       "feedback-close": "Valmis",
-       "feedback-bugcheck": "Hästi! Kontrolli vaid, ega tegu pole juba [$1 teada oleva veaga].",
-       "feedback-bugnew": "Kontrollisin. Teata uuest veast",
+       "feedback-thanks-title": "Aitäh!",
+       "feedback-useragent": "Kasutajaagent:",
        "searchsuggest-search": "Otsi",
        "searchsuggest-containing": "sisalduv...",
        "api-error-badaccess-groups": "Sul pole selles vikis üleslaadimisõigust.",
        "json-error-utf8": "Väärdunud UTF-8 märgid; need võivad olla valesti kodeeritud",
        "json-error-recursion": "Vähemalt üks rekursiivne viide kodeeritavas väärtuses",
        "json-error-inf-or-nan": "Vähemalt üks NAN- või INF-väärtus kodeeritavas väärtuses",
-       "json-error-unsupported-type": "Ette tuli tüüp, mille väärtust ei saa kodeerida"
+       "json-error-unsupported-type": "Ette tuli tüüp, mille väärtust ei saa kodeerida",
+       "headline-anchor-title": "Lingi selle alaosa juurde"
 }
index 74baa82..0f7989d 100644 (file)
@@ -20,7 +20,9 @@
                        "පසිඳු කාවින්ද",
                        "아라",
                        "Joxemai",
-                       "Arkaitz Barnetik"
+                       "Arkaitz Barnetik",
+                       "Sator",
+                       "Macofe"
                ]
        },
        "tog-underline": "Azpimarratu loturak:",
        "otherlanguages": "Erdaretan",
        "redirectedfrom": "($1(e)tik birzuzenduta)",
        "redirectpagesub": "Birbideratze orria",
+       "redirectto": "Hona birzuzentzen du:",
        "lastmodifiedat": "Orrialdearen azken aldaketa: $2, $1.",
        "viewcount": "Orrialde hau {{PLURAL:$1|behin|$1 aldiz}} bisitatu da.",
        "protectedpage": "Babestutako orrialdea",
        "disclaimers": "Mugaketak",
        "disclaimerpage": "Project:Erantzukizunen mugaketa orokorra",
        "edithelp": "Aldaketak egiteko laguntza",
+       "helppage-top-gethelp": "Laguntza",
        "mainpage": "Azala",
        "mainpage-description": "Azala",
        "policy-url": "Project:Politikak",
        "suspicious-userlogout": "Saioa amaitzeko egin duzun eskaria ukatu da. Izan ere, ematen du eskari hori gaizki dabilen nabigatzaile edo cache proxy batek bidali duela.",
        "createacct-another-realname-tip": "Benetako izena hautazkoa da.\nEmatea erabakitzen baduzu hori erabiliko da lanaren atribuzioa egiterako garaian.",
        "pt-login": "Saioa hasi",
+       "pt-login-button": "Saioa hasi",
        "pt-createaccount": "Sortu kontua",
        "pt-userlogout": "Saioa itxi",
        "php-mail-error-unknown": "PHPren mail() funtzioan arazo ezezagun bat egon da.",
        "import-rootpage-nosubpage": "Jatorri orrialdearen «$1» izen-tarteak ez du baimentzen azpi-orrialderik.",
        "importlogpage": "Inportazio erregistroa",
        "importlogpagetext": "Beste wiki batzutatik historial eta guzti egindako orrialdeen inportazio administratiboak.",
-       "import-logentry-upload": "[[$1]] igoera bitartez inportatu da",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|berrikuspen|berrikuspen}}",
-       "import-logentry-interwiki": "$1 wiki artean mugitu da",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|berrikuspen|berrikuspen}} $2-(e)tik",
        "javascripttest": "JavaScript frogatzen",
        "javascripttest-pagetext-noframework": "Orrialde hau JavaScript frogak egiteko gordeta dago.",
        "version-parser-function-hooks": "Parser funtzio estentsioak",
        "version-hook-name": "Estentsioaren izena",
        "version-hook-subscribedby": "Hauen harpidetzarekin",
-       "version-version": "(Bertsioa $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[izenik gabe]",
        "version-license": "MediaWiki Lizentzia",
        "version-ext-license": "Lizentzia",
        "logentry-newusers-create2": "$1 wikilariak $3 erabiltzaile kontua sortu du",
        "rightsnone": "(bat ere ez)",
        "revdelete-summary": "aldaketaren laburpena",
-       "feedback-subject": "Gaia:",
-       "feedback-message": "Mezua:",
-       "feedback-cancel": "Utzi",
-       "feedback-submit": "Feedbacka bidali",
        "feedback-adding": "Orriari feedbacka gehitzen...",
+       "feedback-bugnew": "Txekeatu dut. Bug berria bidaliko",
+       "feedback-cancel": "Utzi",
+       "feedback-close": "Egina",
        "feedback-error1": "Akatsa: APIaren emaitza ez ezagunak",
        "feedback-error2": "Akatsa: Aldaketa ez da egin",
        "feedback-error3": "Akatsa: APIaren erantzunik gabe",
-       "feedback-close": "Egina",
-       "feedback-bugnew": "Txekeatu dut. Bug berria bidaliko",
+       "feedback-message": "Mezua:",
+       "feedback-subject": "Gaia:",
+       "feedback-submit": "Bidali",
        "searchsuggest-search": "Bilatu",
        "searchsuggest-containing": "edukian...",
        "api-error-badaccess-groups": "Ez duzu baimendik fitxategi hauek wiki honetara igotzeko.",
index 414ad12..427c023 100644 (file)
@@ -7,7 +7,8 @@
                        "Urhixidur",
                        "Xuacu",
                        "아라",
-                       "Babanwalia"
+                       "Babanwalia",
+                       "Henares"
                ]
        },
        "tog-underline": "Surrayal atihus:",
        "delete-edit-reasonlist": "Eital razonis del esborrau",
        "delete-warning-toobig": "Esta páhina tieni un estorial d'eicionis grandi, mas de $1 revisionis. Esborralu puei causal pobremas enas operacionis la basi e datus de {{SITENAME}}; atua con cudiau.",
        "rollback": "Revertil eicionis",
-       "rollback_short": "Revertil",
        "rollbacklink": "revertil",
        "rollbackfailed": "Marru revirtiendu",
        "cantrollback": "Nu se puei eshazel la eición; el úrtimu colabutaol es el únicu autol d´esta páhina.",
        "import-upload": "Empuntal datus XML",
        "importlogpage": "Emporteal rustrihu",
        "importlogpagetext": "Emporteacionis alministrativas de páhinas con estorial d'edicionis d'otras güiquis.",
-       "import-logentry-upload": "á emporteau [[$1]] pol empuntu d'archivu",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|revisión|revisionis}}",
-       "import-logentry-interwiki": "trasgüiquipeau $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|revisión|revisionis}} dendi $2",
        "tooltip-pt-userpage": "La mi páhina d'usuáriu",
        "tooltip-pt-anonuserpage": "La páhina d'usuáriu la IP dendi la qu'eita",
        "iranian-calendar-m10": "10 mes Jalāli",
        "iranian-calendar-m11": "11 mes Jalāli",
        "iranian-calendar-m12": "12 mes Jalāli",
-       "unknown_extension_tag": "estensión andarria: \"$1\"",
        "version": "Velsión",
        "version-extensions": "Estensionis istalás",
        "version-specialpages": "Páhinas especialis",
        "version-other": "Otru",
        "version-hook-name": "Nombri el Hook",
        "version-hook-subscribedby": "Suscritu pol",
-       "version-version": "(Velsión $1)",
+       "version-version": "($1)",
        "version-license": "Licéncia",
        "version-software": "Software istalau",
        "version-software-product": "Proutu",
        "revdelete-unrestricted": "las restricionis a los çahorilis án siu esborrás",
        "rightsnone": "(dengunu)",
        "revdelete-summary": "eital sumáriu",
+       "searchsuggest-search": "Buscal",
        "expand_templates_preview": "Previsoreal"
 }
index 701f154..2dd4ff3 100644 (file)
@@ -44,7 +44,8 @@
                        "فلورانس",
                        "Saeidpourbabak",
                        "Arash.pt",
-                       "Signal89"
+                       "Signal89",
+                       "Macofe"
                ]
        },
        "tog-underline": "خط کشیدن زیر پیوندها:",
        "disclaimers": "تکذیب‌نامه‌ها",
        "disclaimerpage": "Project:تکذیب‌نامهٔ عمومی",
        "edithelp": "راهنمای ویرایش‌کردن",
+       "helppage-top-gethelp": "راهنما",
        "mainpage": "صفحهٔ اصلی",
        "mainpage-description": "صفحهٔ اصلی",
        "policy-url": "Project:سیاست‌ها",
        "blocked-mailpassword": "نشانی آی‌پی شما از ویرایش بازداشته شده‌است و از این رو به منظور جلوگیری از سوءاستفاده اجازهٔ بهره‌گیری از قابلیت بازیابی گذرواژه را ندارد.",
        "eauthentsent": "یک نامه برای تأیید نشانی رایانامه به نشانی موردنظر ارسال شد.\nقبل از اینکه نامهٔ دیگری قابل ارسال به این نشانی باشد، باید دستورهایی که در آن نامه آمده است را جهت تأیید این مساله که این نشانی متعلق به شماست، اجرا کنید.",
        "throttled-mailpassword": "یک رایانامهٔ بازنشانی گذرواژه در $1 {{PLURAL:$1|ساعت|ساعت}} گذشته فرستاده شده است.\nبرای جلوگیری از سوءاستفاده، هر $1 {{PLURAL:$1|ساعت|ساعت}} تنها یک رایانامهٔ بازنشانی گذرواژه فرستاده می‌شود.",
-       "mailerror": "خطا در فرستادن پست الکترونیکی: $1",
+       "mailerror": "خطا در فرستادن رایانامه: $1",
        "acct_creation_throttle_hit": "بازدیدکنندگان این ویکی که از نشانی آی‌پی شما استفاده می‌کنند در روز گذشته {{PLURAL:$1|یک حساب کاربری|$1 حساب کاربری}} ساخته‌اند، که بیشترین تعداد مجاز در آن بازهٔ زمانی است.\nبه همین خاطر، بازدیدکنندگانی که از این نشانی آی‌پی استفاده می‌کنند نمی‌توانند در حال حاضر حساب جدیدی بسازند.",
        "emailauthenticated": "نشانی رایانامهٔ شما در $2 ساعت $3 تصدیق شد.",
        "emailnotauthenticated": "نشانی رایانامهٔ شما هنوز تصدیق نشده‌است.\nبرای هیچ‌یک از ویژگی‌های زیر رایانامه ارسال نخواهد شد.",
        "missingcommentheader": "'''یادآوری:''' شما موضوع/عنوان این یادداشت را مشخص نکرده‌اید.\nاگر دوباره دکمهٔ «{{int:savearticle}}» را فشار دهید ویرایش شما بدون آن ذخیره خواهد شد.",
        "summary-preview": "پیش‌نمایش خلاصه:",
        "subject-preview": "پیش‌نمایش موضوع/عنوان:",
+       "previewerrortext": "در زمان تلاش برای نمایش دادن تغییرات شما، خطای رخ داد.",
        "blockedtitle": "کاربر بسته شده‌است",
        "blockedtext": "'''دسترسی حساب کاربری یا نشانی آی‌پی شما بسته شده‌است.'''\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:''$2''\n\n* شروع قطع دسترسی: $8\n* پایان قطع دسترسی: $6\n* کاربری هدف قطع دسترسی: $7\n\nشما می‌توانید با $1 یا  [[{{MediaWiki:Grouppage-sysop}}|مدیری]] دیگر تماس بگیرید و در این باره صحبت کنید.\nتوجه کنید که شما نمی‌توانید از ویژگی «فرستادن رایانامه به این کاربر» استفاده کنید مگر آنکه نشانی رایانامه معتبری در [[Special:Preferences|ترجیحات کاربری]] خودتان ثبت کرده باشید و نیز باید امکان استفاده از این ویژگی برای شما قطع نشده باشد.\nنشانی آی‌پی فعلی شما $3 و شمارهٔ قطع دسترسی شما $5 است.\nلطفاً تمامی جزئیات فوق را در کلیهٔ درخواست‌هایی که در این باره مطرح می‌کنید ذکر کنید.",
        "nonunicodebrowser": "'''هشدار: مرورگر شما با استانداردهای یونیکد سازگار نیست.'''\nراه حلی به کار گرفته شده تا شما بتوانید صفحات را با امنیت ویرایش کنید: کاراکترهای غیر ASCII به صورت کدهایی در مبنای شانزده به شما نشان داده می‌شوند.",
        "editingold": "'''هشدار: شما در حال ویرایش نسخه‌ای قدیمی از این صفحه هستید.'''\nاگر ذخیره‌اش کنید، هر تغییری که پس از این نسخه انجام شده‌است از بین خواهد رفت.",
        "yourdiff": "تفاوت‌ها",
-       "copyrightwarning": "لطفاً توجه داشته باشید که فرض می‌شود کلیهٔ مشارکت‌های شما با {{SITENAME}} تحت «$2» منتشر می‌شوند (برای جزئیات بیشتر به $1 مراجعه کنید).\nاگر نمی‌خواهید نوشته‌هایتان بی‌رحمانه ویرایش شده و به دلخواه توزیع شود، اینجا نفرستیدشان.<br />\nهمچنین شما دارید به ما قول می‌دهید که خودتان این را نوشته‌اید، یا آن را از یک منبع آزاد با مالکیت عمومی یا مشابه آن برداشته‌اید.\n'''کارهای دارای حق تکثیر (copyright) را بی‌اجازه نفرستید!'''",
-       "copyrightwarning2": "لطفاً توجه داشته باشید که فرض می‌شود کلیهٔ مشارکت‌های شما با {{SITENAME}} ممکن است توسط دیگر مشارکت‌کنندگان ویرایش شوند، تغییر یابند یا حذف شوند.\nاگر نمی‌خواهید نوشته‌هایتان بی‌رحمانه ویرایش شود، اینجا نفرستیدشان.<br />\nهمچنین شما دارید به ما قول می‌دهید که خودتان این را نوشته‌اید، یا آن را از یک منبع آزاد با مالکیت عمومی یا مشابه آن برداشته‌اید (برای جزئیات بیشتر به $1 مراجعه کنید).\n'''کارهای دارای حق تکثیر (copyright) را بی‌اجازه نفرستید!'''",
+       "copyrightwarning": "لطفاً توجه داشته‌باشید که همهٔ مشارکت‌ها در {{SITENAME}} منتشرشده تحت $2 در نظر گرفته‌می‌شوند ($1 را برای جزئیات بیشتر ببینید).\nاگر نمی‌خواهید نوشته‌هایتان بی‌رحمانه ویرایش و توزیع شوند؛ بنابراین، آنها را اینجا ارائه نکنید.<br />\nشما همچنین به ما تعهد می‌کنید که خودتان این را نوشته‌اید یا آن را از یک منبع با مالکیت عمومی یا مشابه آزاد آن برداشته‌اید ($1 را برای جزئیات بیشتر ببینید).\n<strong>کارهای دارای حق تکثیر را بدون اجازه ارائه نکنید!</strong>",
+       "copyrightwarning2": "لطفاً توجه داشته‌باشید که همهٔ مشارکت‌ها در {{SITENAME}} ممکن است توسط دیگر مشارکت‌کنندگان تغییر یابند، ویرایش یا حذف شوند.\nاگر نمی‌خواهید نوشته‌هایتان بی‌رحمانه ویرایش شوند؛ بنابراین، آنها را اینجا ارائه نکنید.<br />\nشما همچنین به ما تعهد می‌کنید که خودتان این را نوشته‌اید یا آن را از یک منبع با مالکیت عمومی یا مشابه آزاد آن برداشته‌اید ($1 را برای جزئیات بیشتر ببینید).\n<strong>کارهای دارای حق تکثیر را بدون اجازه ارائه نکنید!</strong>",
        "longpageerror": "'''خطا: متنی که ارسال کرده‌اید {{PULAR:$1|یک کیلوبایت|$1 کیلوبایت}} طول دارد. این مقدار از مقدار بیشینهٔ {{PLURAL:$2|یک کیلوبایت|$2 کیلوبایت}} بیشتر است.'''\nنمی‌توان آن را ذخیره کرد.",
        "readonlywarning": "'''هشدار: پایگاه داده برای نگهداری قفل شده‌است، به همین علت هم‌اکنون نمی‌توانید ویرایش‌هایتان را ذخیره کنید.'''\nاگر می‌خواهید متن را در یک پروندهٔ متنی کپی کنید و برای آینده ذخیره‌اش کنید.\n\nمدیری که آن را قفل کرده این توضیح را ارائه کرده‌است: $1",
        "protectedpagewarning": "'''هشدار: این صفحه قفل شده‌است تا فقط کاربران با دسترسی مدیریت بتوانند ویرایشش کنند.'''\nآخرین موارد سیاهه در زیر آمده‌است:",
        "editundo": "خنثی‌سازی",
        "diff-empty": "(بدون تفاوت)",
        "diff-multi-sameuser": "({{PLURAL:$1|یک نسخهٔ میانی|$1 نسخهٔ میانی}}ِ همین کاربر نمایش داده نشده است)",
-       "diff-multi-otherusers": "({{PLURAL:$1|Û\8cÚ© Ù\86سخÙ\87Ù\94 Ù\85تÙ\88سط|$1 Ù\86سخÙ\87â\80\8cÙ\87اÛ\8c Ù\85تÙ\88سط}} ØªÙ\88سط {{PLURAL:$2|کاربر Ø¯Û\8cگرÛ\8c|$2 Ú©Ø§Ø±Ø¨Ø±Ø§Ù\86}} نشان داده نشده)",
-       "diff-multi-manyusers": "({{PLURAL:$1|Û\8cÚ©|$1}} Ù\88Û\8cراÛ\8cØ´ Ù\85Û\8cاÙ\86Û\8c ØªÙ\88سط Ø¨Û\8cØ´ Ø§Ø² {{PLURAL:$2|Û\8cÚ©|$2}} Ú©Ø§Ø±Ø¨Ø± Ù\86شاÙ\86 Ø¯Ø§Ø¯Ù\87 Ù\86شدÙ\87â\80\8cاست)",
+       "diff-multi-otherusers": "({{PLURAL:$1|Û± Ù\86سخÙ\87Ù\94 Ù\85Û\8cاÙ\86Û\8c|$1 Ù\86سخÙ\87â\80\8cÙ\94 Ù\85Û\8cاÙ\86Û\8c}} Ù\88Û\8cراÛ\8cØ´ Ø´Ø¯Ù\87 ØªÙ\88سط {{PLURAL:$2|Û± Ú©Ø§Ø±Ø¨Ø±|$2 Ú©Ø§Ø±Ø¨Ø±}} نشان داده نشده)",
+       "diff-multi-manyusers": "({{PLURAL:$1|Û\8cÚ©|$1}} Ù\86سخÙ\87â\80\8cÙ\94 Ù\85Û\8cاÙ\86Û\8c Ù\88Û\8cراÛ\8cØ´ Ø´Ø¯Ù\87 ØªÙ\88سط Ø¨Û\8cØ´ Ø§Ø² {{PLURAL:$2|Û\8cÚ©|$2}} Ú©Ø§Ø±Ø¨Ø± Ù\86شاÙ\86 Ø¯Ø§Ø¯Ù\87 Ù\86شدÙ\87 است)",
        "difference-missing-revision": "{{PLURAL:$2|یک ویرایش|$2 ویرایش}}  از تفاوت نسخه‌ها ($1) {{PLURAL:$2|یافت|یافت}}  نشد.\n\nمعمولاً در اثر پیوند به تاریخچهٔ به‌روز نشدهٔ صفحهٔ حذف شده است.\nمی‌توانید جزئیات بیشتر را در [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} سیاههٔ حذف] بیابید.",
        "searchresults": "نتایج جستجو",
        "searchresults-title": "نتایج جستجو برای «$1»",
        "prefs-watchlist-token": "رمز فهرست پی‌گیری:",
        "prefs-misc": "متفرقه",
        "prefs-resetpass": "تغییر گذرواژه",
-       "prefs-changeemail": "دگرش Ø¯Ø± Ù\86شاÙ\86Û\8c Ù¾Ø³Øª Ø§Ù\84کترÙ\88Ù\86Û\8cÚ©Û\8c",
+       "prefs-changeemail": "تغÛ\8cÛ\8cر Ø±Ø§Û\8cاÙ\86اÙ\85Ù\87",
        "prefs-setemail": "کار گذاشتن نشانی پست الکترونیکی",
        "prefs-email": "گزینه‌های پست الکترونیکی",
        "prefs-rendering": "نمایش صفحه",
        "deletedcontributions-title": "مشارکت‌های حذف‌شده",
        "sp-deletedcontributions-contribs": "مشارکت‌ها",
        "linksearch": "جستجوی پیوندهای بیرونی",
-       "linksearch-pat": "جستجÙ\88Û\8c Ø§Ù\84Ú¯و:",
+       "linksearch-pat": "اÙ\84Ú¯Ù\88Û\8c Ø¬Ø³ØªØ¬و:",
        "linksearch-ns": "فضای نام:",
        "linksearch-ok": "جستجو",
        "linksearch-text": "نشانه‌هایی مانند «‎*.wikipedia.org» را می‌توان استفاده کرد.\nحداقل یک دامنه سطح بالا ، به عنوان مثال \"*.org\" نیاز دارد.<br />\n{{PLURAL:$2|پروتکل|پروتکل‌های}} پشتیبانی‌شده: <code>$1</code> (پیش‌فرض برای http:// در صورت مشخص نشدن پروتکل تنظیم شده‌است).",
        "trackingcategories-nodesc": "توضیحی وجود ندارد.",
        "trackingcategories-disabled": "رده غیرفعال‌شده است",
        "mailnologin": "نشانی‌ای از فرستنده موجود نیست",
-       "mailnologintext": "برای فرستادن پست الکترونیکی به کاربران دیگر باید [[Special:UserLogin|به سیستم وارد شوید]] و نشانی پست الکترونیکی معتبری در [[Special:Preferences|ترجیح‌های]] خود داشته باشید.",
-       "emailuser": "پست Ø§Ù\84کترÙ\88Ù\86Û\8cÚ©Û\8c",
+       "mailnologintext": "برای فرستادن رایانامه به کاربران دیگر باید [[Special:UserLogin|به سامانه وارد شوید]] و نشانی رایانامهٔ معتبری در [[Special:Preferences|ترجیحات]] خود داشته باشید.",
+       "emailuser": "Ù\81رستادÙ\86 Ù\86اÙ\85Ù\87 Ø¨Ù\87 Ø§Û\8cÙ\86 Ú©Ø§Ø±Ø¨Ø±",
        "emailuser-title-target": "فرستادن پست الکترونیکی به {{GENDER:$1|کاربر}}",
        "emailuser-title-notarget": "فرستادن پست الکترونیکی به کاربر",
        "emailpage": "رایانامه به کاربر",
        "emailpagetext": "شما می‌توانید از فرم زیر برای ارسال یک رایانامه به این {{GENDER:$1|کاربر}} استفاده کنید.\nنشانی رایانامه‌ای که در [[Special:Preferences|ترجیحات کاربریتان]] وارد کرده‌اید در نشانی فرستنده (From) نامه خواهد آمد، تا گیرنده بتواند پاسخ دهد.",
-       "defemailsubject": "پست الکترونیکی {{SITENAME}} از طرف کاربر «$1»",
+       "defemailsubject": "رایانامه {{SITENAME}} از طرف کاربر «$1»",
        "usermaildisabled": "رایانامهٔ کاربر غیرقعال است",
        "usermaildisabledtext": "شما در این ویکی نمی‌توانید به دیگر کاربران رایانامه بفرستید",
        "noemailtitle": "نشانی رایانامه موجود نیست",
        "emailccsubject": "رونوشت پیغام شما به $1: $2",
        "emailsent": "رایانامه فرستاده شد",
        "emailsenttext": "پیام پست الکترونیکی شما فرستاده شد.",
-       "emailuserfooter": "این پست الکترونیکی با استفاده از ویژگی «پست الکترونیکی» {{SITENAME}} توسط $1 به $2 فرستاده شد.",
+       "emailuserfooter": "این رایانامه با استفاده از ویژگی «فرستادن نامه به این کاربر» {{SITENAME}} توسط $1 به $2 فرستاده شد.",
        "usermessage-summary": "گذاشتن پیغام سامانه.",
        "usermessage-editor": "پیغام رسان سامانه",
        "watchlist": "فهرست پی‌گیری",
        "import-rootpage-nosubpage": "فضای نام  \"$1\" صفحهٔ مبنا اجازهٔ زیرصفحه نمی‌دهد.",
        "importlogpage": "سیاههٔ درون‌ریزی‌ها",
        "importlogpagetext": "درون‌ریزی صفحات به همراه تاریخچهٔ ویرایش آن‌ها از ویکی‌های دیگر.",
-       "import-logentry-upload": "[[$1]] را از طریق بارگذاری پرونده درون‌ریزی کرد",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|نسخه|نسخه}} واردشده",
-       "import-logentry-interwiki": "$1 را تراویکی کرد",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|نسخه|نسخه}} واردشده از $2",
        "javascripttest": "آزمایش جاوا اسکریپت",
        "javascripttest-pagetext-noframework": "این صفحه برای اجرای آزمایش‌های جاوا اسکریپت کنار گذاشته شده‌است.",
        "tooltip-feed-rss": "خبرنامه آراس‌اس برای این صفحه",
        "tooltip-feed-atom": "خبرنامهٔ اتم برای این صفحه",
        "tooltip-t-contributions": "فهرست مشارکت‌های این کاربر",
-       "tooltip-t-emailuser": "فرستادن پست الکترونیکی به این کاربر",
+       "tooltip-t-emailuser": "فرستادن رایانامه به این کاربر",
        "tooltip-t-info": "اطلاعات بیشتر دربارهٔ این صفحه",
        "tooltip-t-upload": "بارگذاری تصاویر و پرونده‌های دیگر",
        "tooltip-t-specialpages": "فهرستی از همهٔ صفحه‌های ویژه",
        "watchlistedit-raw-legend": "ویرایش فهرست خام پی‌گیری‌ها",
        "watchlistedit-raw-explain": "عنوان‌های موجود در فهرست پی‌گیری‌های شما در زیر نشان داده شده‌اند، و شما می‌توانید مواردی را حذف یا اضافه کنید؛ هر مورد در یک سطر جداگانه باید قرار بگیرد.\nدر پایان، دکمهٔ «{{int:Watchlistedit-raw-submit}}» را بفشارید.\nتوجه کنید که شما می‌توانید از [[Special:EditWatchlist|ویرایشگر استاندارد فهرست پی‌گیری‌ها]] هم استفاده کنید.",
        "watchlistedit-raw-titles": "عنوان‌ها:",
-       "watchlistedit-raw-submit": "به روز رساندن پی‌گیری‌ها",
+       "watchlistedit-raw-submit": "به‌روزرسانی پی‌گیری‌ها",
        "watchlistedit-raw-done": "فهرست پی‌گیری‌های شما به روز شد.",
        "watchlistedit-raw-added": "$1 عنوان به فهرست پی‌گیری‌ها اضافه {{PLURAL:$1|شد|شدند}}:",
        "watchlistedit-raw-removed": "$1 عنوان حذف {{PLURAL:$1|شد|شدند}}:",
        "version-parser-function-hooks": "قلاب‌های عملگر تجزیه‌گر",
        "version-hook-name": "نام قلاب",
        "version-hook-subscribedby": "وارد شده توسط",
-       "version-version": "(نسخه  $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[بدون نام]",
        "version-svn-revision": "(&رلم;r$2)",
        "version-license": "اجازه‌نامهٔ مدیاویکی",
        "tags-create-warnings-below": "آیا مایل به ادامه ایجاد تگ هستید؟",
        "tags-delete-title": "حذف برچسب",
        "tags-delete-explanation-initial": "شما در حال حذف تگ «$1» از پایگاه داده هستید.",
+       "tags-delete-explanation-in-use": "این از {{PLURAL:$2|$2 ویرایش یا ورودی سیاهه|همهٔ $2 ویرایش و/یا ورودی سیاهه}} حذف خواهد شد با وجودی که الان تائید شده‌است.",
        "tags-delete-explanation-warning": "این عمل <strong>غیر قابل بازگشت</strong> است، حتی توسط مدیران پایگاه داده. مطمئن باشید که این همان تگی است که می‌خواهید آن‌را حذف کنید.",
+       "tags-delete-explanation-active": "<strong>برچسب \"$1\" هنوز فعال است و در آینده اعمال خواهد شد.</strong> برای جلوگیری از این اتفاق، به قسمت(‌هایی) که برچسب فعال شده رفته و از آنجا غیرفعالش کنید.",
        "tags-delete-reason": "دلیل:",
        "tags-delete-submit": "این تگ را به‌صورت غیرقابل بازگشت حذف کن",
+       "tags-delete-not-allowed": "برچسب‌هایی که در یک افزونه تعریف می‌شوند قابل حذف نیستند، مگر اینکه آن افزونه در این مورد خاص این قابلیت را بدهد.",
        "tags-delete-not-found": "تگ «$1» وجود ندارد.",
+       "tags-delete-too-many-uses": "برچسب \"$1\" در بیش از $2 نسخه اعمال شده است و نمی‌توان آن را حذف نمود.",
+       "tags-delete-warnings-after-delete": "برچسب \"$1\" با موفقیت حذف شد، اما با {{PLURAL:$2|خطای|خطاهای}} زیر همراه بود:",
        "tags-activate-title": "فعال‌سازی برچسب",
        "tags-activate-question": "شما در حال فعال‌سازی تگ «$1» هستید.",
        "tags-activate-reason": "دلیل:",
        "revdelete-uname-unhid": "نام کاربری را آشکار کرد",
        "revdelete-restricted": "مدیران را محدود کرد",
        "revdelete-unrestricted": "محدودیت مدیران را لغو کرد",
+       "logentry-block-block": "$1 {{GENDER:$4|$3}} را تا $5 {{GENDER:$2|بست}} $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|بازکرد}} {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|تنظیمات}} بستن {{GENDER:$4|$3}} را به پایان قطع دسترسی $5 $6 تغییر داد.",
+       "logentry-suppress-block": "$1 {{GENDER:$2|بسته شد}} {{GENDER:$4|$3}} با پایان قطع دسترسی در زمان $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|تنظیمات}} بستن برای  {{GENDER:$4|$3}} به پایان قطع دسترسی  $5 $6 تغییر یافت",
+       "logentry-import-upload": "$1 $3 را توسط بارگذار پرونده {{GENDER:$2|درون‌ریزی کرد}}",
+       "logentry-import-interwiki": "$1 $3 را از ویکی دیگر {{GENDER:$2|درون‌ریز کرد}}",
        "logentry-merge-merge": "$1  $3  را به  $4 {{GENDER:$2| ادغام کرد}} (نسخه تا  $5)",
        "logentry-move-move": "$1 صفحهٔ $3 را به $4 {{GENDER:$2|منتقل کرد}}",
        "logentry-move-move-noredirect": "$1 صفحهٔ $3 را بدون برجای‌گذاشتن تغییرمسیر به $4 {{GENDER:$2|منتقل کرد}}",
        "logentry-upload-overwrite": "$1 نسخهٔ تازه‌ای از $3 را {{GENDER:$2|بارگذاری کرد}}",
        "logentry-upload-revert": "$1 {{GENDER:$2|بارگذاری کرد}} $3",
        "log-name-managetags": "تاریخچه مدیریت تگ",
+       "log-description-managetags": "این صفحه امور مدیریتی مربوط به [[Special:Tags|برچسب‌ها]] را فهرست می‌کند. سیاهه فقط حاوی فعالیت‌هایی است که توسط یک مدیر به صورت دستی انجام شده‌اند؛ برچسب‌ها ممکن است توسط نرم‌افزار ویکی ساخته یا حذف بشوند بدون اینکه هیچ ورودی در این سیاهه ثبت گردد.",
        "logentry-managetags-create": "$1 برچسب «$4» را {{GENDER:$2|ایجاد کرد}}",
+       "logentry-managetags-delete": "$1 برچسب را از \"$4\" {{GENDER:$2|حذف کرد}} (حذف شده از $5 {{PLURAL:$5|نسخه یا ورودی سیاهه|نسخه یا/و ورودی سیاهه}})",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|برچسب}} فعال شده \"$4\" برای کاربران و ربات‌ها",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|برچسب}} غیرفعال شده \"$4\" برای کاربران و ربات‌ها",
        "rightsnone": "(هیچ)",
        "revdelete-summary": "خلاصه ویرایش",
+       "feedback-adding": "افزودن بازخورد به صفحه...",
+       "feedback-back": "بازگشت",
+       "feedback-bugcheck": "عالی‌است! فقط بررسی کنید که از [$1 ایرادهای شناخته‌شده] نباشد.",
+       "feedback-bugnew": "بررسی کردم. ایرادی تازه را گزارش بده",
        "feedback-bugornote": "اگر آماده‌اید تا مشکلی فنی را با جزئیاتش شرح دهید لطفاً [$1 یک ایراد گزارش دهید]. در غیر این صورت می‌توانید از فرم سادهٔ زیر استفاده کنید. نظر شما به همراه نام کاربری و مرورگرتان به صفحهٔ «[$3 $2]» افزوده خواهد شد.",
-       "feedback-subject": "موضوع:",
-       "feedback-message": "پیغام:",
        "feedback-cancel": "لغو",
-       "feedback-submit": "ارسال بازخورد",
-       "feedback-adding": "افزودن بازخورد به صفحه...",
+       "feedback-close": "انجام شد",
+       "feedback-external-bug-report-button": "پرونده‌سازی یک عمل فنی",
+       "feedback-dialog-title": "ارسال یک بازخورد",
+       "feedback-dialog-intro": "شما می توانید از فرم زیر برای بازخورد استفاده کنید. متن شما همراه با نام کاربریتان به صفحهٔ \"$1\" افزوده خواهد شد.",
+       "feedback-error-title": "خطا",
        "feedback-error1": "خطا: پاسخ‌های ناشناخته از رابط برنامه‌نویسی نرم‌افزار",
        "feedback-error2": "خطا: شکست در ویرایش",
        "feedback-error3": "خطا: عدم پاسخ از رابط برنامه‌نویسی نرم‌افزار",
+       "feedback-message": "پیغام:",
+       "feedback-subject": "موضوع:",
+       "feedback-submit": "ارسال",
+       "feedback-terms": "من اطلاع دارم که اطلاعات یوز ایجنتم دربارهٔ مرورگر و نسخهٔ سیستم عاملی که استفاده می‌کنم، به صورت عمومی همراه با نام کاربریم به اشتراک گذاشته می‌شود.",
+       "feedback-termsofuse": "موافق با قرار دادن بازخورد بر پایهٔ شرایط استفاده هستم.",
        "feedback-thanks": "سپاس! بازخورد شما در صفحهٔ «[$1 $2]» ثبت شد.",
-       "feedback-close": "انجام شد",
-       "feedback-bugcheck": "عالی‌است! فقط بررسی کنید که از [$1 ایرادهای شناخته‌شده] نباشد.",
-       "feedback-bugnew": "بررسی کردم. ایرادی تازه را گزارش بده",
+       "feedback-thanks-title": "با تشکر!",
+       "feedback-useragent": "رابط کاربر:",
        "searchsuggest-search": "جستجو",
        "searchsuggest-containing": "صفحه‌های دربردارنده...",
        "api-error-badaccess-groups": "شما اجازهٔ بارگذاری پرونده‌ها را در این ویکی ندارید.",
        "json-error-recursion": "ارجاع بازگشتی یک یا بیشتر در مقداری که کذگذاری می‌شود",
        "json-error-inf-or-nan": "مقادیر INF یا NAN یک یا بیشتر در مقداری که کدگذاری می‌شود",
        "json-error-unsupported-type": "یک مقداری نوعی که نمی‌تواند کدگذاری شود داده شده است",
-       "headline-anchor-title": "پیوند به این قسمت"
+       "headline-anchor-title": "پیوند به این بخش"
 }
index c9e210a..5e7a0b6 100644 (file)
@@ -43,7 +43,8 @@
                        "MrTapsa",
                        "SMAUG",
                        "SuperPete",
-                       "McSalama"
+                       "McSalama",
+                       "Macofe"
                ]
        },
        "tog-underline": "Linkkien alleviivaus:",
        "disclaimers": "Vastuuvapaus",
        "disclaimerpage": "Project:Vastuuvapaus",
        "edithelp": "Muokkausohjeet",
+       "helppage-top-gethelp": "Ohjeet",
        "mainpage": "Etusivu",
        "mainpage-description": "Etusivu",
        "policy-url": "Project:Käytännöt",
        "readonly_lag": "Tietokanta on automaattisesti lukittu, jotta kaikki tietokantapalvelimet saisivat kaikki tuoreet muutokset",
        "internalerror": "Sisäinen virhe",
        "internalerror_info": "Sisäinen virhe: $1",
+       "internalerror-fatal-exception": "Vakava virhe, jonka tyyppi on \"$1\"",
        "filecopyerror": "Tiedostoa <b>$1</b> ei voitu kopioida tiedostoksi <b>$2</b>.",
        "filerenameerror": "Tiedostoa <b>$1</b> ei voitu nimetä uudelleen nimellä <b>$2</b>.",
        "filedeleteerror": "Tiedostoa <b>$1</b> ei voitu poistaa.",
        "media_tip": "Tiedostolinkki",
        "sig_tip": "Allekirjoitus aikaleiman kanssa",
        "hr_tip": "Vaakasuora viiva",
-       "summary": "Yhteenveto",
-       "subject": "Aihe tai otsikko",
+       "summary": "Yhteenveto:",
+       "subject": "Aihe tai otsikko:",
        "minoredit": "Tämä on pieni muutos",
        "watchthis": "Tarkkaile tätä sivua",
        "savearticle": "Tallenna sivu",
        "unusedimages": "Käyttämättömät tiedostot",
        "wantedcategories": "Halutut luokat",
        "wantedpages": "Halutut sivut",
+       "wantedpages-summary": "Luettelo olemattomista sivuista, joihin johtaa eniten linkkejä. Luettelossa ei kuitenkaan ole sellaisia sivuja, joihin johtaa ainoastaan uudelleenohjauksia. Jos haluat nähdä luettelon niistä olemattomista sivuista, joihin on linkki uudelleenohjauksista, katso sivua [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Virheellinen otsikko tuloksissa: $1",
        "wantedfiles": "Halutut tiedostot",
        "wantedfiletext-cat": "Seuraavia tiedostoja käytetään, mutta niitä ei ole olemassa. Ulkopuolissa mediavarastoissa olevat tiedostot voivat näkyä tällä listalla, vaikka ne ovat olemassa. Tällaiset väärät merkinnät on <del>yliviivattu</del>. Lisäksi sellaiset sivut, joihin on sisällytetty tiedostoja, jotka eivät ole olemassa, on luetteloitu [[:$1|täällä]].",
        "thumbnail_image-missing": "Tiedosto näyttää puuttuvan: $1",
        "thumbnail_image-failure-limit": "Tätä kuvaketta on yritetty tulkita epäonnistuneesti liian monta kertaa ($1 tai enemmän). Ole hyvä ja yritä myöhemmin uudelleen.",
        "import": "Tuo sivuja",
-       "importinterwiki": "Tuo sivuja muista wikeistä (transwiki import)",
-       "import-interwiki-text": "Valitse wiki ja sivun nimi tuontia varten.\nVersioiden päivämäärät ja muokkaajien nimet säilyvät ennallaan. \nKaikki wikienväliset tuontitapahtumat kirjataan [[Special:Log/import|tuontilokiin]].",
+       "importinterwiki": "Tuo sivuja toisesta wikistä",
+       "import-interwiki-text": "Valitse wiki ja sivun nimi tuontia varten.\nVersioiden päivämäärät ja muokkaajien nimet säilyvät ennallaan. \nKaikki tuonnit muista wikeistä kirjataan [[Special:Log/import|tuontilokiin]].",
        "import-interwiki-sourcewiki": "Lähdewiki:",
        "import-interwiki-sourcepage": "Lähdesivu:",
        "import-interwiki-history": "Kopioi sivun koko historia ja kaikki versiot",
        "importcantopen": "Tuontitiedoston avaus epäonnistui",
        "importbadinterwiki": "Kelpaamaton wikienvälinen linkki",
        "importsuccess": "Tuonti onnistui!",
-       "importnosources": "Wikienvälisiä tuontilähteitä ei ole määritelty ja suorat historiatallennukset on poistettu käytöstä.",
+       "importnosources": "Ei ole määritetty yhtään sellaista wikiä, josta voisi tuoda aineistoa. Tämän lisäksi sivuhistorioiden suorat tuontitallennukset on poistettu käytöstä.",
        "importnofile": "Mitään tuotavaa tiedostoa ei lähetetty.",
        "importuploaderrorsize": "Tuontitiedoston tallennus epäonnistui. Tiedosto on suurempi kuin sallittu yläraja.",
        "importuploaderrorpartial": "Tuontitiedoston tallennus epäonnistui. Tiedostosta oli lähetetty vain osa.",
        "import-rootpage-nosubpage": "Annetun perussivun nimiavaruus \"$1\" ei salli alasivuja.",
        "importlogpage": "Tuontiloki",
        "importlogpagetext": "Loki ylläpitäjien toisista wikeistä tuomista sivuista, joissa on muokkaushistoriaa.",
-       "import-logentry-upload": "toi sivun [[$1]] tiedostomuodossa",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|versio|versiota}} tuotiin",
-       "import-logentry-interwiki": "toi toisesta wikistä sivun $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|versio|versiota}} tuotiin wikistä $2",
        "javascripttest": "JavaScriptin testaus",
        "javascripttest-pagetext-noframework": "Tämä sivu on varattu JavaScript-testien suorittamiseen.",
        "tags-delete-title": "Hävitä merkkaus pysyvästi",
        "tags-delete-explanation-initial": "Olet parhaillaan poistamassa (eli tuhoamassa pysyvästi) merkkauksen \"$1\" tietokannasta.",
        "tags-delete-explanation-in-use": "Se poistuu {{PLURAL:$2|$2 sivun versiosta tai lokimerkinnästä|kaikista $2 sivuversiosta tai lokimerkinnöistä}}, joissa se tällä hetkellä on käytössä.",
-       "tags-delete-explanation-warning": "Tämä toimenpide on <strong>peruuttamaton</strong> and <strong>poistettua merkkausta ei voida palauttaa takaisin</strong>. Siihen eivät pysty edes tietokannan ylläpito. Sinun pitää olla täysin varma, että haluat poistettavaksi juuri tämän merkkauksen.",
+       "tags-delete-explanation-warning": "Tämä toimenpide on <strong>peruuttamaton</strong> ja <strong>poistettua merkkausta ei voi palauttaa takaisin</strong>. Siihen ei pysty edes tietokannan ylläpitohenkilöstö. Sinun pitää olla täysin varma, että haluat poistettavaksi juuri tämän merkkauksen.",
        "tags-delete-explanation-active": "<stron>Merkkaus \"$1\" on edelleen käytössä ja sitä käytetään myös jatkossa.</strong>. Jos haluat merkkauksen pois käytöstä, mene sinne missä merkkaus on asetettu ja ota se pois siellä.",
        "tags-delete-reason": "Syy:",
        "tags-delete-submit": "Tuhoa tämä merkkaus peruuttamattomasti ja pysyvästi",
        "revdelete-uname-unhid": "käyttäjätunnus palautettu näkyviin",
        "revdelete-restricted": "asetti rajoitukset ylläpitäjille",
        "revdelete-unrestricted": "poisti rajoitukset ylläpitäjiltä",
+       "logentry-block-block": "$1 {{GENDER:$2|esti}} käyttäjän {{GENDER:$4|$3}}. Eston kesto on $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|poisti muokkauseston}} käyttäjältä {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|muutti}} eston asetuksia kohteessa {{GENDER:$4|$3}}. Eston kesto on $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|esti}} käyttäjän {{GENDER:$4|$3}}. Eston kesto on $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|muutti}} eston asetuksia kohteessa {{GENDER:$4|$3}}. Eston kesto on $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|toi}} kohteen $3 tiedostotallennuksella",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|toi}} kohteen $3 muusta wikistä",
        "logentry-merge-merge": "$1 {{GENDER:$2|yhdisti}} sivun $3 sivuun $4 (versiot $5 saakka)",
        "logentry-move-move": "$1 {{GENDER:$2|siirsi}} sivun $3 uudelle nimelle $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|siirsi}} sivun $3 uudelle nimelle $4 luomatta ohjausta",
        "log-name-managetags": "Merkkausten hallinnan loki",
        "log-description-managetags": "Tällä sivulla on luettelo tehtävistä, jotka koskevat [[Special:Tags|merkkauksia]]. Lokissa ovat vain ne toimenpiteet, jotka ylläpitäjä on suorittanut käsin. Merkkauksia voi syntyä ja poistua myös wikin ohjelmiston kautta eivätkä ne näy tässä lokissa.",
        "logentry-managetags-create": "$1 {{GENDER:$2|on luonut}} merkkauksen \"$4\"",
-       "logentry-managetags-delete": "$1 {{GENDER:$2|tuhosi}} merkkauksen \"$4\" (poistettu $5 {{PLURAL:$5|sivun versiosta tai lokimerkinnästä|sivun versiosta tai lokimerkinnästä}})",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|tuhosi}} merkkauksen \"$4\" (poistettu $5 {{PLURAL:$5|sivuversiosta tai lokimerkinnästä}})",
        "logentry-managetags-activate": "$1 {{GENDER:$2|aktivoi}} merkkauksen \"$4\" käyttäjien ja bottien käytettäväksi",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|otti pois käytöstä}} merkkauksen \"$4\" käyttäjiltä ja boteilta",
        "rightsnone": "(ei oikeuksia)",
        "revdelete-summary": "yhteenvedon",
+       "feedback-adding": "Lisätään palautetta sivulle...",
+       "feedback-back": "Takaisin",
+       "feedback-bugcheck": "Hyvä! Varmista vielä, että ohjelmointivirhettä ei löydy [$1 tunnettujen virheiden luettelosta].",
+       "feedback-bugnew": "Olen varmistanut. Ilmoitan uuden ohjelmointivirheen",
        "feedback-bugornote": "Jos voit kuvailla teknisen ongelman tarkasti – [$1 ilmoita ohjelmointivirheestä].\nMuussa tapauksessa voit käyttää alla olevaa helpompaa lomaketta. Kommenttisi lisätään sivulle [$3 $2], ja siinä on mukana käyttäjätunnuksesi.",
-       "feedback-subject": "Otsikko",
-       "feedback-message": "Viesti",
        "feedback-cancel": "Peruuta",
-       "feedback-submit": "Lähetä palaute",
-       "feedback-adding": "Lisätään palautetta sivulle...",
+       "feedback-close": "Valmis",
+       "feedback-external-bug-report-button": "Lähetä tekninen tehtävä",
+       "feedback-dialog-title": "Lähetä palautetta",
+       "feedback-dialog-intro": "Voit käyttää tätä helppoa lomaketta palautteesi lähettämiseen. Kommenttisi lisätään sivulle \"$1\" käyttäjätunnuksesi kera.",
+       "feedback-error-title": "Virhe",
        "feedback-error1": "Virhe: Ohjelmointirajapinnan vastausta ei tunnistettu",
        "feedback-error2": "Virhe: Muokkaus epäonnistui",
        "feedback-error3": "Virhe: Ohjelmointirajapinta ei vastaa",
+       "feedback-message": "Viesti",
+       "feedback-subject": "Otsikko",
+       "feedback-submit": "Lähetä",
+       "feedback-terms": "Ymmärrän, että minua koskeva \"user agent\" -tieto sisältää tiedon siitä, mitä yksittäistä selainta ja käyttöjärjestelmää minä käytän ja että nämä tiedot tulevat näkymään julkisesti kaikille palautteeni yhteydessä.",
+       "feedback-termsofuse": "Sitoudun lähettämään palautteen käyttöehtojen määräysten mukaisesti.",
        "feedback-thanks": "Kiitos. Palautteesi on jätetty sivulle [$2 $1].",
-       "feedback-close": "Valmis",
-       "feedback-bugcheck": "Hyvä! Varmista vielä, että ohjelmointivirhettä ei löydy [$1 tunnettujen virheiden luettelosta].",
-       "feedback-bugnew": "Olen varmistanut. Ilmoitan uuden ohjelmointivirheen",
+       "feedback-thanks-title": "Kiitos!",
+       "feedback-useragent": "User agent:",
        "searchsuggest-search": "Hae",
        "searchsuggest-containing": "sisältää...",
        "api-error-badaccess-groups": "Sinulla ei ole oikeutta tallentaa tiedostoja tähän wikiin.",
        "limitreport-templateargumentsize": "Mallineen argumenttien koko<br />(template argument size)",
        "limitreport-templateargumentsize-value": "$1/$2 {{PLURAL:$2|tavu|tavua}}",
        "limitreport-expansiondepth": "Highest expansion depth",
-       "limitreport-expensivefunctioncount": "Vaativien parserfunktioiden määrä",
+       "limitreport-expensivefunctioncount": "Vaativien jäsenninfunktioiden lukumäärä",
        "expandtemplates": "Laajenna mallineet",
        "expand_templates_intro": "Tämä toimintosivu ottaa syötteeksi tekstiä ja laajentaa kaikki siinä olevat mallineet rekursiivisesti.\nSe myös laajentaa tuetut parserifunktiot kuten\n<code><nowiki>{{</nowiki>#language:...}}</code> ja -muuttujat kuten\n<code><nowiki>{{</nowiki>CURRENTDAY}}</code>.\nKäytännössä se laajentaa melkein kaiken, joka on kaksoisaaltosulkeiden sisällä.",
        "expand_templates_title": "Otsikko (esimerkiksi muuttujaa {{FULLPAGENAME}} varten)",
        "json-error-utf8": "Huonosti muotoiltuja UTF-8 merkkejä; mahdollisesti koodattu virheellisesti",
        "json-error-recursion": "Joku arvossa (value) oleva rekursiivinen viite pitää vielä muuttaa koodiksi",
        "json-error-inf-or-nan": "Joku NAN- tai INF-arvo arvossa (value) pitää muuttaa koodiksi",
-       "json-error-unsupported-type": "On annettu sellainen tyypin arvo, jota ei voi muuttaa koodiksi"
+       "json-error-unsupported-type": "On annettu sellainen tyypin arvo, jota ei voi muuttaa koodiksi",
+       "headline-anchor-title": "Linkitä tähän osioon"
 }
index 7d02461..0bf854a 100644 (file)
        "version-other": "Annað",
        "version-hooks": "Krókur",
        "version-hook-name": "Krókurnavn",
-       "version-version": "(Versjón $1)",
+       "version-version": "($1)",
        "version-license": "MediaWiki Lisensur",
        "version-poweredby-credits": "Henda wiki verður rikin av '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
        "version-poweredby-others": "onnur",
index bdb0189..157c5bd 100644 (file)
                        "JackPotte",
                        "Weft",
                        "Raulel",
-                       "Nicolapps"
+                       "Nicolapps",
+                       "Yzelf",
+                       "0x010C",
+                       "Thibaut120094",
+                       "NemesisIII"
                ]
        },
        "tog-underline": "Souligner les liens :",
        "tog-extendwatchlist": "Étendre la liste de suivi pour afficher toutes les modifications et pas uniquement les plus récentes",
        "tog-usenewrc": "Grouper les changements par page dans les modifications récentes et la liste de suivi",
        "tog-numberheadings": "Numéroter automatiquement les titres de section",
-       "tog-showtoolbar": "Afficher la barre d'outils de modification (nécessite JavaScript)",
-       "tog-editondblclick": "Modifier des pages sur double-clic (nécessite JavaScript)",
-       "tog-editsectiononrightclick": "Activer la modification de sections par clic droit sur les titres (nécessite JavaScript)",
+       "tog-showtoolbar": "Afficher la barre d'outils de modification",
+       "tog-editondblclick": "Modifier des pages sur double-clic",
+       "tog-editsectiononrightclick": "Activer la modification de sections par clic droit sur les titres",
        "tog-watchcreations": "Ajouter les pages que je crée et les fichiers que j'importe à ma liste de suivi",
        "tog-watchdefault": "Ajouter les pages et les fichiers que je modifie à ma liste de suivi",
        "tog-watchmoves": "Ajouter les pages et les fichiers que je renomme à ma liste de suivi",
        "unprotectthispage": "Changer la protection de cette page",
        "newpage": "Nouvelle page",
        "talkpage": "Discussion sur cette page",
-       "talkpagelinktext": "Discussion",
+       "talkpagelinktext": "discussion",
        "specialpage": "Page spéciale",
        "personaltools": "Outils personnels",
        "articlepage": "Voir la page de contenu",
        "disclaimers": "Avertissements",
        "disclaimerpage": "Project:Avertissements généraux",
        "edithelp": "Aide",
+       "helppage-top-gethelp": "Aide",
        "mainpage": "Accueil",
        "mainpage-description": "Accueil",
        "policy-url": "Project:Règles",
        "hidetoc": "masquer",
        "collapsible-collapse": "masquer",
        "collapsible-expand": "afficher",
-       "confirmable-confirm": "Êtes-vous sûr{{GENDER:$1||e|(e)}} ?",
+       "confirmable-confirm": "Êtes-vous sûr{{GENDER:$1||e}} ?",
        "confirmable-yes": "Oui",
        "confirmable-no": "Non",
        "thisisdeleted": "Désirez-vous afficher ou restaurer $1 ?",
        "readonly_lag": "La base de données a été automatiquement verrouillée pendant que les serveurs secondaires rattrapent leur retard sur le serveur principal.",
        "internalerror": "Erreur interne",
        "internalerror_info": "Erreur interne : $1",
+       "internalerror-fatal-exception": "Erreur fatale de type \"$1\"",
        "filecopyerror": "Impossible de copier le fichier « $1 » vers « $2 ».",
        "filerenameerror": "Impossible de renommer le fichier « $1 » en « $2 ».",
        "filedeleteerror": "Impossible de supprimer le fichier « $1 ».",
        "virus-badscanner": "Mauvaise configuration : scanneur de virus inconnu : ''$1''",
        "virus-scanfailed": "Échec de la recherche (code $1)",
        "virus-unknownscanner": "antivirus inconnu :",
-       "logouttext": "'''Vous êtes à présent déconnecté{{GENDER:||e|(e)}}.'''\n\nNotez que certaines pages peuvent être encore affichées comme si vous étiez toujours connecté, jusqu’à ce que vous effaciez le cache de votre navigateur.",
+       "logouttext": "'''Vous êtes à présent déconnecté{{GENDER:||e}}.'''\n\nNotez que certaines pages peuvent être encore affichées comme si vous étiez toujours connecté, jusqu’à ce que vous effaciez le cache de votre navigateur.",
        "welcomeuser": "Bienvenue, $1&nbsp;!",
        "welcomecreation-msg": "Votre compte a été créé.\nN'oubliez pas de modifier [[Special:Preferences|vos préférences pour {{SITENAME}}]].",
        "yourname": "Nom d'utilisateur :",
        "userlogin-signwithsecure": "Utiliser une connexion sécurisée",
        "yourdomainname": "Votre domaine :",
        "password-change-forbidden": "Vous ne pouvez pas modifier les mots de passe sur ce wiki.",
-       "externaldberror": "Une erreur s'est produite avec la base de données d'authentification externe, ou bien vous n'êtes pas autorisé{{GENDER:||e|(e)}} à mettre à jour votre compte externe.",
+       "externaldberror": "Une erreur s'est produite avec la base de données d'authentification externe, ou bien vous ne pouvez pas mettre à jour votre compte externe.",
        "login": "Connexion",
        "nav-login-createaccount": "Créer un compte ou se connecter",
        "userlogin": "Créer un compte ou se connecter",
        "loginerror": "Erreur de connexion",
        "createacct-error": "Erreur lors de la création du compte",
        "createaccounterror": "Impossible de créer le compte : $1",
-       "nocookiesnew": "Le compte utilisateur a été créé, mais vous n'êtes pas connecté{{GENDER:||e|(e)}}. {{SITENAME}} utilise des cookies pour la connexion mais vous les avez désactivés. Veuillez les activer et vous reconnecter avec le même nom et le même mot de passe.",
+       "nocookiesnew": "Le compte utilisateur a été créé, mais vous n'êtes pas connecté{{GENDER:||e}}. {{SITENAME}} utilise des cookies pour la connexion mais vous les avez désactivés. Veuillez les activer et vous reconnecter avec le même nom et le même mot de passe.",
        "nocookieslogin": "{{SITENAME}} utilise des cookies pour la connexion mais vous les avez désactivés. Veuillez les activer et vous reconnecter.",
        "nocookiesfornew": "Le compte utilisateur n'a pas été créé, car nous n'avons pas pu identifier son origine.\nVérifiez que vous avez activé les cookies, rechargez la page et réessayez.",
        "noname": "Vous n'avez pas saisi un nom d'utilisateur valide.",
        "loginsuccesstitle": "Connexion réussie",
-       "loginsuccess": "Vous êtes maintenant connecté{{GENDER:$1||e|(e)}} à {{SITENAME}} en tant que « $1 ».",
+       "loginsuccess": "Vous êtes maintenant connecté{{GENDER:$1||e}} à {{SITENAME}} en tant que « $1 ».",
        "nosuchuser": "L'utilisateur « $1 » n'existe pas.\nLes noms d'utilisateurs sont sensibles à la casse.\nVérifiez l'orthographe, ou [[Special:UserLogin/signup|créez un nouveau compte]].",
        "nosuchusershort": "Il n'y a pas de contributeur avec le nom « $1 ». Veuillez vérifier l'orthographe.",
        "nouserspecified": "Vous devez saisir un nom d'utilisateur.",
        "resetpass-submit-cancel": "Annuler",
        "resetpass-wrong-oldpass": "Mot de passe actuel ou temporaire invalide.\nVous avez peut-être déjà changé votre mot de passe ou demandé un nouveau mot de passe temporaire.",
        "resetpass-recycled": "Veuillez réinitialiser votre mot de passe à quelque chose d’autre que l’actuel.",
-       "resetpass-temp-emailed": "Vous êtes connecté{{GENDER:||e|(e)}} avec un code temporaire fourni par courriel.\nPour terminer la connexion, vous devez fournir un nouveau mot de passe ici :",
+       "resetpass-temp-emailed": "Vous êtes connecté{{GENDER:||e}} avec un code temporaire fourni par courriel.\nPour terminer la connexion, vous devez fournir un nouveau mot de passe ici :",
        "resetpass-temp-password": "Mot de passe temporaire :",
        "resetpass-abort-generic": "La modification du mot de passe a été annulée par une extension.",
        "resetpass-expired": "Votre mot de passe a expiré. Veuillez en fournir un nouveau pour vous connecter.",
        "passwordreset-capture-help": "Si vous cochez cette case, le courriel (avec le mot de passe temporaire) vous sera affiché en même temps qu'il sera envoyé à l'utilisateur.",
        "passwordreset-email": "Adresse de courriel :",
        "passwordreset-emailtitle": "Détails du compte sur {{SITENAME}}",
-       "passwordreset-emailtext-ip": "Quelqu'un (probablement vous, depuis l'adresse IP $1) a demandé un réinitialisation de votre mot de passe pour {{SITENAME}} ($4). {{PLURAL:$3|Le compte utilisateur suivant est associé|Les comptes utilisateurs suivants sont associés}} à cette adresse de courriel :\n\n$2\n\n{{PLURAL:$3|Ce mot de passe temporaire expirera|Ces mots de passe temporaires expireront}} dans {{PLURAL:$5|un jour|$5 jours}}. Vous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou que vous vous êtes souvenu{{GENDER:||e|(e)}} de votre mot de passe initial, et ne souhaitez plus le modifier, vous pouvez ignorer ce message et continuer à utiliser votre ancien mot de passe.",
-       "passwordreset-emailtext-user": "L'utilisateur $1 sur {{SITENAME}} a demandé un réinitialisation de votre mot de passe pour {{SITENAME}} ($4). {{PLURAL:$3|Le compte utilisateur suivant est associé|Les comptes utilisateurs suivants sont associés}} à cette adresse de courriel :\n\n$2\n\n{{PLURAL:$3|Ce mot de passe temporaire expirera|Ces mots de passe temporaires expireront}} dans {{PLURAL:$5|un jour|$5 jours}}. Vous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou que vous vous êtes souvenu{{GENDER:||e|(e)}} de votre mot de passe initial, et ne souhaitez plus le modifier, vous pouvez ignorer ce message et continuer à utiliser votre ancien mot de passe.",
+       "passwordreset-emailtext-ip": "Quelqu'un (probablement vous, depuis l'adresse IP $1) a demandé un réinitialisation de votre mot de passe pour {{SITENAME}} ($4). {{PLURAL:$3|Le compte utilisateur suivant est associé|Les comptes utilisateurs suivants sont associés}} à cette adresse de courriel :\n\n$2\n\n{{PLURAL:$3|Ce mot de passe temporaire expirera|Ces mots de passe temporaires expireront}} dans {{PLURAL:$5|un jour|$5 jours}}. Vous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou que vous avez retrouvé votre mot de passe initial, et ne souhaitez plus le modifier, vous pouvez ignorer ce message et continuer à utiliser votre ancien mot de passe.",
+       "passwordreset-emailtext-user": "L'utilisateur $1 sur {{SITENAME}} a demandé un réinitialisation de votre mot de passe pour {{SITENAME}} ($4). {{PLURAL:$3|Le compte utilisateur suivant est associé|Les comptes utilisateurs suivants sont associés}} à cette adresse de courriel :\n\n$2\n\n{{PLURAL:$3|Ce mot de passe temporaire expirera|Ces mots de passe temporaires expireront}} dans {{PLURAL:$5|un jour|$5 jours}}. Vous devez maintenant vous connecter et choisir un nouveau mot de passe. Si cette demande ne provient pas de vous, ou que vous avez retrouvé votre mot de passe initial, et ne souhaitez plus le modifier, vous pouvez ignorer ce message et continuer à utiliser votre ancien mot de passe.",
        "passwordreset-emailelement": "Nom d'utilisateur : $1\nMot de passe temporaire : $2",
        "passwordreset-emailsent": "Un courriel de réinitialisation de mot de passe a été envoyé.",
        "passwordreset-emailsent-capture": "Un courriel de réinitialisation de mot de passe a été envoyé, qui est affiché ci-dessous.",
        "showdiff": "Voir les modifications",
        "blankarticle": "<strong>Attention :</strong> La page que vous créez est vide.\nSi vous cliquez de nouveau sur « {{int:savearticle}} », la page sera créée sans aucun contenu.",
        "anoneditwarning": "<strong>Attention :</strong> Vous n’êtes pas connecté. Votre adresse IP sera visible de tout le monde si vous faites des modifications. Si vous <strong>[$1 vous connectez]</strong> ou <strong>[$2 créez un compte]</strong>, vos modifications seront attribuées à votre nom d’utilisateur, entre autres avantages.",
-       "anonpreviewwarning": "''Vous n’êtes pas identifié(e). Sauvegarder enregistrera votre adresse IP dans l’historique des modifications de la page.''",
+       "anonpreviewwarning": "''Vous n’êtes pas identifié{{GENDER:||e}}. Sauvegarder enregistrera votre adresse IP dans l’historique des modifications de la page.''",
        "missingsummary": "'''Rappel :''' vous n'avez pas encore fourni le résumé de votre modification.\nSi vous cliquez de nouveau sur le bouton « {{int:savearticle}} », la publication sera faite sans nouvel avertissement.",
        "selfredirect": "<strong>Attention :</strong> Vous êtes en train de rediriger la page vers elle-même.\nVous pouvez avoir spécifié la mauvaise cible pour la redirection, ou vous modifiez peut-être la mauvaise page.\nSi vous cliquez de nouveau sur « {{int:savearticle}} », la redirection sera créée tout de même.",
        "missingcommenttext": "Veuillez entrer un commentaire ci-dessous.",
        "missingcommentheader": "'''Rappel :''' vous n'avez pas fourni de sujet ou de titre à ce commentaire.\nSi vous cliquez de nouveau sur « {{int:Savearticle}} », votre modification sera enregistrée sans titre.",
        "summary-preview": "Aperçu du résumé :",
        "subject-preview": "Prévisualisation du sujet/titre :",
+       "previewerrortext": "Une erreur s’est produite lors de la tentative de prévisualisation de vos modifications.",
        "blockedtitle": "L’utilisateur est bloqué.",
        "blockedtext": "'''Votre compte utilisateur ou votre adresse IP a été bloqué.'''\n\nLe blocage a été effectué par $1.\nLa raison invoquée est la suivante : ''$2''.\n\n* Début du blocage : $8\n* Expiration du blocage : $6\n* Compte bloqué : $7.\n\nVous pouvez contacter $1 ou un autre [[{{MediaWiki:Grouppage-sysop}}|administrateur]] pour en discuter.\nVous ne pouvez utiliser la fonction « {{MediaWiki:emailpage}} » que si une adresse de courriel valide est spécifiée dans vos [[Special:Preferences|préférences]] et que si cette fonctionnalité n’a pas été bloquée.\nVotre adresse IP actuelle est $3 et votre identifiant de blocage est $5.\nVeuillez préciser ces indications dans toutes les requêtes que vous ferez.",
        "autoblockedtext": "Votre adresse IP a été bloquée automatiquement car elle a été utilisée par un autre utilisateur, lui-même bloqué par $1.\nLa raison invoquée est :\n\n:''$2''\n\n* Début du blocage : $8\n* Expiration du blocage : $6\n* Compte bloqué : $7\n\nVous pouvez contacter $1 ou l’un des autres [[{{MediaWiki:Grouppage-sysop}}|administrateurs]] pour discuter de ce blocage.\n\nNotez que vous ne pourrez utiliser la fonctionnalité d’envoi de courriel que si vous avez une adresse de courriel validée dans vos [[Special:Preferences|préférences]] et que si cette fonctionnalité n’a pas été désactivée.\n\nVotre adresse IP actuelle est $3, et le numéro de blocage est $5.\nVeuillez préciser ces indications dans toutes les requêtes que vous ferez.",
        "accmailtitle": "Mot de passe envoyé.",
        "accmailtext": "Un mot de passe généré aléatoirement pour [[User talk:$1|$1]] a été envoyé à $2.\nIl peut être modifié sur la page ''[[Special:ChangePassword|Changement de mot de passe]]'' après connexion.",
        "newarticle": "(Nouveau)",
-       "newarticletext": "Vous avez suivi un lien vers une page qui n’existe pas encore. \nAfin de créer cette page, entrez votre texte dans la boîte ci-après (vous pouvez consulter [$1 la page d’aide] pour plus d’informations). \nSi vous êtes arrivé{{GENDER:||e|(e)}} ici par erreur, cliquez sur le bouton '''retour''' de votre navigateur.",
+       "newarticletext": "Vous avez suivi un lien vers une page qui n’existe pas encore. \nAfin de créer cette page, entrez votre texte dans la boîte ci-après (vous pouvez consulter [$1 la page d’aide] pour plus d’informations). \nSi vous êtes arrivé{{GENDER:||e}} ici par erreur, cliquez sur le bouton '''retour''' de votre navigateur.",
        "anontalkpagetext": "---- ''Vous êtes sur la page de discussion d'un utilisateur anonyme qui n'a pas encore créé de compte ou qui n'en utilise pas. Pour cette raison, nous devons utiliser son adresse IP pour l'identifier. Une adresse IP peut être partagée par plusieurs utilisateurs. Si vous êtes un{{GENDER:||e|}} utilisat{{GENDER:|eur|rice|eur}} anonyme et si vous constatez que des commentaires qui ne vous concernent pas vous ont été adressés, vous pouvez [[Special:UserLogin/signup|créer un compte]] ou [[Special:UserLogin|vous connecter]] afin d'éviter toute confusion future avec d'autres contributeurs anonymes.''",
        "noarticletext": "Il n’y a pour l’instant aucun texte sur cette page.\nVous pouvez [[Special:Search/{{PAGENAME}}|lancer une recherche sur ce titre]] dans les autres pages,\n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} rechercher dans les opérations liées]\nou [{{fullurl:{{FULLPAGENAME}}|action=edit}} créer cette page]</span>.",
        "noarticletext-nopermission": "Il n'y a pour l'instant aucun texte sur cette page.\nVous pouvez [[Special:Search/{{PAGENAME}}|faire une recherche sur ce titre]] dans les autres pages,\nou <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} rechercher dans les journaux associés]</span>.",
        "sectioneditnotsupported-text": "La modification d'une section n'est pas prise en charge pour cette page.",
        "permissionserrors": "Erreur de permissions",
        "permissionserrorstext": "Vous n'avez pas la permission d'effectuer l'opération demandée pour {{PLURAL:$1|la raison suivante|les raisons suivantes}} :",
-       "permissionserrorstext-withaction": "Vous n'êtes pas autorisé{{GENDER:||e|(e)}} à $2, pour {{PLURAL:$1|la raison suivante|les raisons suivantes}} :",
+       "permissionserrorstext-withaction": "Vous ne pouvez pas $2, pour {{PLURAL:$1|la raison suivante|les raisons suivantes}} :",
        "recreate-moveddeleted-warn": "'''Attention : vous êtes en train de recréer une page qui a été précédemment supprimée.'''\n\nAssurez-vous qu'il est pertinent de poursuivre les modifications sur cette page. Le journal des suppressions et des déplacements est affiché ci-dessous :",
        "moveddeleted-notice": "Cette page a été supprimée. Le journal des suppressions et des déplacements est affiché ci-dessous pour référence.",
        "log-fulllog": "Voir le journal complet",
        "content-failed-to-parse": "Échec de l’analyse syntaxique du contenu de $2 pour le modèle $1: $3",
        "invalid-content-data": "Données du contenu non valides",
        "content-not-allowed-here": "Le contenu « $1 » n’est pas autorisé sur la page [[$2]]",
-       "editwarning-warning": "Quitter cette page vous fera perdre toutes les modifications que vous avez faites.\nSi vous êtes connecté{{GENDER:||e|(e)}}, vous pouvez désactiver cet avertissement dans la section « {{int:prefs-editing}} » de vos préférences.",
+       "editwarning-warning": "Quitter cette page vous fera perdre toutes les modifications que vous avez faites.\nSi vous êtes connecté{{GENDER:||e}}, vous pouvez désactiver cet avertissement dans la section « {{int:prefs-editing}} » de vos préférences.",
        "editpage-notsupportedcontentformat-title": "Format de contenu non pris en charge",
        "editpage-notsupportedcontentformat-text": "Le format de contenu $1 n'est pas pris en charge par le modèle de contenu $2 .",
        "content-model-wikitext": "wikitexte",
        "unusedimages": "Fichiers orphelins",
        "wantedcategories": "Catégories les plus demandées",
        "wantedpages": "Pages les plus demandées",
+       "wantedpages-summary": "Liste des pages inexistantes ayant le plus de lien vers elles, en excluant les pages n’ayant que des redirections pointant vers elles. Pour avoir une liste des pages inexistantes qui ont des redirections pointant vers elles, voyez [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Titre invalide dans les résultats : $1",
        "wantedfiles": "Fichiers les plus demandés",
        "wantedfiletext-cat": "Les fichiers suivants sont utilisés, mais n'existent pas localement. S'ils se trouvent sur un dépôt partagé, ils peuvent être listés ici, bien qu'ils soient, de fait, déjà disponibles. Tous ces faux positifs seront <del>barrés</del>. En outre, les pages qui intègrent des fichiers qui n'existent pas sont répertoriées dans [[:$1]].",
        "listusersfrom": "Afficher les utilisateurs à partir de :",
        "listusers-submit": "Lister",
        "listusers-noresult": "Aucun utilisateur trouvé. Vérifiez aussi les variantes de casse.",
-       "listusers-blocked": "(bloqué{{GENDER:$1||e|(e)}})",
+       "listusers-blocked": "(bloqué{{GENDER:$1||e}})",
        "activeusers": "Liste des utilisateurs actifs",
        "activeusers-intro": "Ceci est une liste des utilisateurs qui ont exercé une quelconque activité au cours {{PLURAL:$1|de la dernière journée|des $1 derniers jours}}.",
        "activeusers-count": "$1 {{PLURAL:$1|action|actions}} lors {{PLURAL:$3|du dernier jour|des $3 derniers jours}}",
        "protect_expiry_old": "La date d'expiration est déjà passée.",
        "protect-unchain-permissions": "Déverrouiller davantage d’options de protection",
        "protect-text": "Vous pouvez consulter et modifier le niveau de protection de la page '''$1'''.",
-       "protect-locked-blocked": "Vous ne pouvez pas modifier les niveaux de protection tant que vous êtes bloqué{{GENDER:||e|(e)}}.\nVoici les réglages actuels de la page '''$1''' :",
+       "protect-locked-blocked": "Vous ne pouvez pas modifier les niveaux de protection durant votre blocage.\nVoici les réglages actuels de la page '''$1''' :",
        "protect-locked-dblock": "Le niveau de protection ne peut pas être modifié car la base de données est verrouillée.\nVoici les réglages actuels de la page '''$1''' :",
        "protect-locked-access": "Vous n'avez pas les droits nécessaires pour modifier les niveaux de protection de pages.\nVoici les réglages actuels de la page '''$1''' :",
        "protect-cascadeon": "Cette page est protégée car incluse dans {{PLURAL:$1|la page suivante, qui a été protégée|les pages suivantes, qui ont été protégées}} avec l'option « protection en cascade » activée. Vous pouvez changer le niveau de protection de cette page sans que cela n'affecte la protection en cascade.",
        "undelete-error": "Page d’erreur d’annulation",
        "undelete-error-short": "Erreur lors de la restauration du fichier : $1",
        "undelete-error-long": "Des erreurs ont été rencontrées lors de la restauration du fichier :\n\n$1",
-       "undelete-show-file-confirm": "Êtes-vous sûr{{GENDER:||e|(e)}} de vouloir visionner une version supprimée du fichier « <nowiki>$1</nowiki> » datant du $2 à $3 ?",
+       "undelete-show-file-confirm": "Êtes-vous sûr{{GENDER:||e}} de vouloir consulter une version supprimée du fichier « <nowiki>$1</nowiki> » datant du $2 à $3 ?",
        "undelete-show-file-submit": "Oui",
        "undelete-revision-row": "$1 $2 ($3) $4 — $5 $6 $7 $8 $9",
        "namespace": "Espace de noms :",
        "ipbcreateaccount": "Empêcher la création de compte",
        "ipbemailban": "Empêcher l'utilisateur d'envoyer des courriels",
        "ipbenableautoblock": "Bloquer automatiquement la dernière adresse IP utilisée par l'utilisateur et toutes ses IPs ultérieures qu'il pourrait essayer",
-       "ipbsubmit": "Bloquer cet utilisateur",
+       "ipbsubmit": "Bloquer",
        "ipbother": "Autre durée :",
        "ipboptions": "2 heures:2 hours,1 jour:1 day,3 jours:3 days,1 semaine:1 week,2 semaines:2 weeks,1 mois:1 month,3 mois:3 months,6 mois:6 months,1 an:1 year,indéfiniment:infinite",
        "ipbhidename": "Masquer le nom d'utilisateur des modifications et des listes",
        "ipbwatchuser": "Suivre les pages utilisateur et de discussion de cet utilisateur",
        "ipb-disableusertalk": "Empêcher l'utilisateur de modifier sa page de discussion pendant le blocage",
-       "ipb-change-block": "Bloquer à nouveau cet utilisateur avec ces paramètres",
+       "ipb-change-block": "Modifier les paramètres de blocage",
        "ipb-confirm": "Confirmer le blocage",
        "badipaddress": "Adresse IP incorrecte",
        "blockipsuccesssub": "Blocage réussi",
-       "blockipsuccesstext": "[[Special:Contributions/$1|$1]] a été bloqué{{GENDER:$1||e|}}.<br />\nConsultez la [[Special:BlockList|liste des blocages]] pour revoir les blocages.",
+       "blockipsuccesstext": "[[Special:Contributions/$1|$1]] a été bloqué{{GENDER:$1||e}}.<br />\nConsultez la [[Special:BlockList|liste des blocages]] pour revoir les blocages.",
        "ipb-blockingself": "Vous êtes sur le point de bloquer votre propre compte ! Êtes-vous certain{{GENDER:||e}} de vouloir faire cela ?",
-       "ipb-confirmhideuser": "Vous êtes sur le point de bloquer un utilisateur avec « cacher l'utilisateur » activé. Cela supprime le nom de l'utilisateur dans toutes les listes et les entrées du journal. Êtes-vous sûr{{GENDER:||e|(e)}} de vouloir le faire ?",
+       "ipb-confirmhideuser": "Vous êtes sur le point de bloquer un utilisateur avec « cacher l'utilisateur » activé. Cela supprime le nom de l'utilisateur dans toutes les listes et les entrées du journal. Êtes-vous sûr{{GENDER:||e}} de vouloir le faire ?",
        "ipb-confirmaction": "Si vous êtes sûr{{GENDER:||e|(e)}} de vraiment vouloir le faire, veuillez cocher le champ « {{int:ipb-confirm}} » en bas.",
        "ipb-edit-dropdown": "Modifier les motifs de blocage par défaut",
        "ipb-unblock-addr": "Débloquer $1",
        "sorbs_create_account_reason": "Votre adresse IP est listée comme mandataire ouvert dans le DNSBL utilisé par {{SITENAME}}.\nVous ne pouvez pas créer un compte.",
        "xffblockreason": "Une adresse IP dans l'en-tête X-Forwarded-For, soit la vôtre ou celle d'un serveur proxy que vous utilisez, a été bloquée. La raison du blocage initial est : $1",
        "cant-see-hidden-user": "L’utilisateur que vous tentez de bloquer a déjà été bloqué et masqué. N’ayant pas le droit ''hideuser'', vous ne pouvez pas voir ou modifier le blocage de cet utilisateur.",
-       "ipbblocked": "Vous ne pouvez pas bloquer ou débloquer d'autres utilisateurs, parce que vous êtes vous-même bloqué{{GENDER:||e|}}.",
+       "ipbblocked": "Vous ne pouvez pas bloquer ou débloquer d'autres utilisateurs, parce que vous êtes vous-même bloqué{{GENDER:||e}}.",
        "ipbnounblockself": "Vous n'êtes pas autorisé{{GENDER:||e}} à vous débloquer vous-même",
        "lockdb": "Verrouiller la base de données",
        "unlockdb": "Déverrouiller la base de données",
        "movearticle": "Renommer la page :",
        "moveuserpage-warning": "'''Attention :''' Vous êtes sur le point de renommer une page d’utilisateur. Veuillez noter que seule la page sera renommée et que l’utilisateur '''ne''' sera '''pas''' renommé.",
        "movecategorypage-warning": "<strong>Avertissement :</strong> Vous êtes sur le point de renommer une page de catégorie. Veuillez noter que seule la page sera renommée et que toutes les pages dans l'ancienne catégorie ne seront <em>pas</em> transférées dans la nouvelle.",
-       "movenologintext": "Pour pouvoir renommer une page, vous devez être [[Special:UserLogin|identifié{{GENDER:||e|(e)}}]] avec un compte utilisateur enregistré et d'ancienneté suffisante.",
+       "movenologintext": "Pour pouvoir renommer une page, vous devez être [[Special:UserLogin|identifié{{GENDER:||e}}]] avec un compte utilisateur enregistré et d'ancienneté suffisante.",
        "movenotallowed": "Vous n'avez pas la permission de renommer les pages.",
        "movenotallowedfile": "Vous n'avez pas la permission de renommer les fichiers.",
        "cant-move-user-page": "Vous n’avez pas la permission de renommer les pages principales d’utilisateurs.",
        "thumbnail_image-missing": "Le fichier suivant est introuvable : $1",
        "thumbnail_image-failure-limit": "Il y a eu récemment trop de tentatives échouées ($1 ou plus) pour restituer cette vignette. Veuillez réessayer ultérieurement.",
        "import": "Importer des pages",
-       "importinterwiki": "Importation inter-wiki",
-       "import-interwiki-text": "Sélectionnez un wiki et un titre de page à importer.\nLes dates des versions et les noms des contributeurs seront préservés.\nToutes les actions d'importation inter-wiki sont consignées dans l'[[Special:Log/import|historique des importations]].",
+       "importinterwiki": "Importer à partir d'un autre wiki",
+       "import-interwiki-text": "Sélectionnez un wiki et un titre de page à importer.\nLes dates des versions et les noms des contributeurs seront préservés.\nToutes les actions d'importation à partir d'autres wikis sont consignées dans l'[[Special:Log/import|historique des importations]].",
        "import-interwiki-sourcewiki": "Wiki source :",
        "import-interwiki-sourcepage": "Page source :",
        "import-interwiki-history": "Copier toutes les versions de l’historique de cette page",
        "importcantopen": "Impossible d'ouvrir le fichier à importer",
        "importbadinterwiki": "Mauvais lien inter-wiki",
        "importsuccess": "L'importation a réussi !",
-       "importnosources": "Aucune source d'importation inter-wiki n'a été définie et l'import direct d'historiques est désactivé.",
+       "importnosources": "Aucun wiki source n'a été défini et l'import direct d'historiques est désactivé.",
        "importnofile": "Aucun fichier d'importation n'a été envoyé.",
        "importuploaderrorsize": "L'import du fichier a échoué.\nSa taille est supérieure au maximum autorisé pour l'import de fichier.",
        "importuploaderrorpartial": "L'import du fichier échoué.\nSon contenu n'a été transféré que partiellement.",
        "import-nonewrevisions": "Aucune révision importée (toutes étaient déjà présentes, ou ignorées du fait d’erreurs).",
        "xml-error-string": "$1 à la ligne $2, colonne $3 (octet $4) : $5",
        "import-upload": "Import de données XML",
-       "import-token-mismatch": "Perte des données de session. Veuillez réessayez.",
+       "import-token-mismatch": "Perte des données de session. Veuillez réessayer.",
        "import-invalid-interwiki": "Impossible d'importer depuis le wiki spécifié.",
        "import-error-edit": "La page « $1 » n’a pas été importée parce que vous n’êtes pas autorisé à la modifier.",
        "import-error-create": "La page « $1 » n’a pas été importée parce que vous n’êtes pas autorisé à la créer.",
        "import-rootpage-nosubpage": "L'espace de noms « $1 » de la page racine n'autorise pas les sous-pages.",
        "importlogpage": "Journal des importations",
        "importlogpagetext": "Importations administratives de pages d'autres wikis, avec leur historique de modification.",
-       "import-logentry-upload": "a importé [[$1]] par envoi de fichier",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|révision importée|révisions importées}}",
-       "import-logentry-interwiki": "a importé $1 d'un wiki à l'autre",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|révision importée|révisions importées}} depuis $2",
        "javascripttest": "Test de JavaScript",
        "javascripttest-pagetext-noframework": "Cette page est réservée pour l'exécution des tests JavaScript.",
        "tooltip-pt-preferences": "Vos préférences",
        "tooltip-pt-watchlist": "La liste des pages dont vous suivez les modifications",
        "tooltip-pt-mycontris": "La liste de vos contributions",
-       "tooltip-pt-login": "Vous êtes encouragé{{GENDER:||e|(e)}} à vous identifier ; ce n'est cependant pas obligatoire.",
+       "tooltip-pt-login": "Il est recommandé de vous identifier ; ce n'est cependant pas obligatoire.",
        "tooltip-pt-logout": "Se déconnecter",
        "tooltip-pt-createaccount": "Il vous est conseillé de créer un compte et de vous connecter ; cependant, ce n’est pas obligatoire",
        "tooltip-ca-talk": "Discussion au sujet de cette page de contenu",
        "tooltip-p-logo": "Page principale",
        "tooltip-n-mainpage": "Visiter la page d'accueil du site",
        "tooltip-n-mainpage-description": "Aller à l'accueil",
-       "tooltip-n-portal": "À propos du projet",
+       "tooltip-n-portal": "À propos du projet, ce que vous pouvez faire, où trouver des informations",
        "tooltip-n-currentevents": "Trouver les informations de fond sur l'actualité du moment",
        "tooltip-n-recentchanges": "Liste des modifications récentes sur le wiki",
        "tooltip-n-randompage": "Afficher une page au hasard",
        "version-parser-function-hooks": "Fonctions étendues de l'analyseur syntaxique",
        "version-hook-name": "Nom du greffon",
        "version-hook-subscribedby": "Abonnés :",
-       "version-version": "(version $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[pas de nom]",
        "version-license": "Licence MediaWiki",
        "version-ext-license": "Licence",
        "revdelete-uname-unhid": "nom d'utilisateur affiché",
        "revdelete-restricted": "restrictions appliquées aux administrateurs",
        "revdelete-unrestricted": "restrictions retirées pour les administrateurs",
-       "logentry-block-block": "$1 {{GENDER:$2|a bloqué}} {{GENDER:$4|$3}} pour un temps d'expiration de $5 $6",
+       "logentry-block-block": "$1 {{GENDER:$2|a bloqué}} {{GENDER:$4|$3}} $5 $6",
        "logentry-block-unblock": "$1 {{GENDER:$2|a débloqué}} {{GENDER:$4|$3}}",
-       "logentry-block-reblock": "$1 {{GENDER:$2|a modifié}} les paramètres de blocage pour {{GENDER:$4|$3}} avec un temps d'expiration de $5 $6",
-       "logentry-suppress-block": "$1 {{GENDER:$2|a bloqué}} {{GENDER:$4|$3}} pour une durée de $5 $6",
-       "logentry-suppress-reblock": "$1 {{GENDER:$2|a modifié}} les paramètres de blocage pour {{GENDER:$4|$3}} avec un temps d'expiration de $5 $6",
+       "logentry-block-reblock": "$1 {{GENDER:$2|a modifié}} les paramètres de blocage pour {{GENDER:$4|$3}} $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|a bloqué}} {{GENDER:$4|$3}} $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|a modifié}} les paramètres de blocage pour {{GENDER:$4|$3}} $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|a importé}} $3 par téléchargement de fichier",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|a importé}} $3 depuis un autre wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|a fusionné}} $3 en $4 (révisions jusqu’à $5)",
        "logentry-move-move": "$1 {{GENDER:$2|a déplacé}} la page $3 vers $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|a déplacé}} la page $3 vers $4 sans laisser de redirection",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|a désactivé}} la balise « $4 » pour l’usage des utilisateurs et des robots",
        "rightsnone": "(aucun)",
        "revdelete-summary": "résumé de modification",
+       "feedback-adding": "Ajout de vos commentaires à la page...",
+       "feedback-back": "Retour",
+       "feedback-bugcheck": "Formidable ! Vérifiez simplement que ce n'est pas un des [$1 bogues déjà connus].",
+       "feedback-bugnew": "J'ai vérifié. Signaler un nouveau bogue",
        "feedback-bugornote": "Si vous êtes prêt à décrire un problème technique en détail, veuillez [$1 signaler un bogue].\nSinon, vous pouvez utiliser le formulaire simplifié ci-dessous. Votre commentaire sera ajouté à la page « [$3 $2] », avec votre nom d'utilisateur.",
-       "feedback-subject": "Objet :",
-       "feedback-message": "Message :",
        "feedback-cancel": "Annuler",
-       "feedback-submit": "Envoyer vos commentaires",
-       "feedback-adding": "Ajout de vos commentaires à la page...",
+       "feedback-close": "Fait",
+       "feedback-external-bug-report-button": "Signaler un bug technique",
+       "feedback-dialog-title": "Soumettre un commentaire",
+       "feedback-dialog-intro": "Vous pouvez utiliser le simple formulaire ci-dessous pour faire parvenir vos commentaires. Votre commentaire sera ajouté à la page « $1 », ainsi que votre nom d’utilisateur.",
+       "feedback-error-title": "Erreur",
        "feedback-error1": "Erreur : Résultat de l'IPA non reconnu",
        "feedback-error2": "Erreur : la modification a échoué",
        "feedback-error3": "Erreur : aucune réponse de l'API",
-       "feedback-thanks": "Merci ! Votre commentaire a été publié sur la page \"[$2 $1]\".",
-       "feedback-close": "Fait",
-       "feedback-bugcheck": "Formidable ! Vérifiez simplement que ce n'est pas un des [$1 bogues déjà connus].",
-       "feedback-bugnew": "J'ai vérifié. Signaler un nouveau bogue",
+       "feedback-message": "Message :",
+       "feedback-subject": "Objet :",
+       "feedback-submit": "Envoyer",
+       "feedback-terms": "Je comprends que les informations de mon agent utilisateur incluent des informations sur mon navigateur et ma version de système d’exploitation et qu’elles seront partagées publiquement avec mes commentaires.",
+       "feedback-termsofuse": "J’accepte de fournir un avis en accord avec les Conditions d’utilisation.",
+       "feedback-thanks": "Merci ! Votre commentaire a été publié sur la page « [$2 $1] ».",
+       "feedback-thanks-title": "Merci !",
+       "feedback-useragent": "Agent utilisateur :",
        "searchsuggest-search": "Rechercher",
        "searchsuggest-containing": "contenant...",
        "api-error-badaccess-groups": "Vous n'êtes pas autorisé à verser des fichiers sur ce wiki.",
index 8052343..f3a43cb 100644 (file)
@@ -8,7 +8,8 @@
                        "RoyAlcatraz",
                        "Urhixidur",
                        "Zetud",
-                       "Hangmanwa7id"
+                       "Hangmanwa7id",
+                       "Stisc-14"
                ]
        },
        "tog-underline": "Souligner les liens:",
        "missingcommentheader": "'''Attention :''' Vous avez pas mis de sujet pour ce commentaire. Si vous cliquez le bouton \"Sauver\" encore, votre changement va être sauvé sans sujet.",
        "summary-preview": "Vue d'avance de la description:",
        "subject-preview": "Vue d'avance du sujet:",
+       "previewerrortext": "Une erreur est survenue pendant la tentative pour visualiser tes modifications.",
        "blockedtitle": "L'useur est bloqué",
        "blockedtext": "'''Votre compte d'useur (ou votre adresse IP) est bloqué.'''\n\nLe blocage a été fait par $1.  La raison donnée est ''$2''.\n\n* La date du blocage: $8\n* Le blocage va être ôté: $6\n* L'useur bloqué: $7\n\nVous pouvez contacter $1 ou un autre [[{{MediaWiki:Grouppage-sysop}}|administrateur]] pour discuter le blocage.  Vous pouvez pas user la fonction 'envoyer un e-mail à cet useur' hormis que vous avez une adresse e-mail confirmée dans votre [[Special:Preferences|réglage de compte]] et vous avez la permission de l'user.  Votre adresse IP est $3, et le numéro du blocage est #$5.  Mettez donc cette information dans toutes vos demandes.",
        "autoblockedtext": "Le système a bloqué votre adresse IP parce qu'alle a été usée par un autre useur qu'était bloqué par $1.\n\nLa raison donnée est: ''$2''\n\n* La date du blocage: $8\n* Le blocage va être ôté: $6\n\nVous pouvez contacter $1 ou un autre [[{{MediaWiki:Grouppage-sysop}}|administrateur]] pour discuter le blocage.\n\nNotez donc que vous pouvez pas user la fonction 'envoyer un e-mail à cet useur' hormis que vous avez une adresse e-mail confirmée dans votre [[Special:Preferences|réglage de compte]] et vous avez la permission de l'user.\n\nVotre numéro de blocage est #$5.  Mettez donc cette information dans toutes vos demandes.",
index 7adc6a3..7f202d2 100644 (file)
@@ -6,7 +6,8 @@
                        "Reedy",
                        "לערי ריינהארט",
                        "아라",
-                       "Soul Train"
+                       "Soul Train",
+                       "Macofe"
                ]
        },
        "tog-underline": "Solegnér los lims :",
        "delete-toobig": "Ceta pâge at un grôs historico de changements avouéc més de $1 vèrsion{{PLURAL:$1||s}}.\nLa suprèssion de pâges d’ense est étâye rètrenta por prèvegnir des pèrturbacions emprèvues de {{SITENAME}}.",
        "delete-warning-toobig": "Ceta pâge at un grôs historico de changements avouéc més de $1 vèrsion{{PLURAL:$1||s}}.\nLa suprimar pôt troblar la mârche de la bâsa de balyês de {{SITENAME}} ;\na fâre avouéc prudence.",
        "rollback": "Rèvocar los changements",
-       "rollback_short": "Rèvocar",
        "rollbacklink": "rèvocar",
        "rollbacklinkcount": "rèvocar $1 changement{{PLURAL:$1||s}}",
        "rollbacklinkcount-morethan": "rèvocar més de $1 changement{{PLURAL:$1||s}}",
        "import-options-wrong": "{{PLURAL:$2|Crouyo chouèx|Crouyos chouèx}} : <nowiki>$1</nowiki>",
        "importlogpage": "Jornal de les importacions",
        "importlogpagetext": "Importacions administratives de pâges avouéc lor historico de changements dês d’ôtros vouiquis.",
-       "import-logentry-upload": "at importâ [[$1]] per tèlèchargement de fichiér",
        "import-logentry-upload-detail": "$1 vèrsion{{PLURAL:$1||s}}",
-       "import-logentry-interwiki": "at importâ $1 per entèrvouiqui",
        "import-logentry-interwiki-detail": "$1 vèrsion{{PLURAL:$1||s}} dês $2",
        "javascripttest": "Èprôva de JavaScript",
-       "javascripttest-title": "Èprôves de $1 en cors",
        "javascripttest-qunit-intro": "Vêde la [$1 documentacion de les èprôves] dessus mediawiki.org.",
-       "javascripttest-qunit-heading": "Suita d’èprôva QUnit de JavaScript dessus MediaWiki",
        "tooltip-pt-userpage": "Voutra pâge usanciér",
        "tooltip-pt-anonuserpage": "La pâge usanciér de l’adrèce IP avouéc laquinta vos contribuâd",
        "tooltip-pt-mytalk": "Voutra pâge de discussion",
        "hebrew-calendar-m11-gen": "d’av",
        "hebrew-calendar-m12-gen": "d’èloul",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|discutar]])",
-       "unknown_extension_tag": "Balisa d’èxtension « $1 » encognua",
        "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-parser-function-hooks": "Grèfons de les fonccions du parsor",
        "version-hook-name": "Nom du grèfon",
        "version-hook-subscribedby": "Soscrit per",
-       "version-version": "(Vèrsion $1)",
+       "version-version": "($1)",
        "version-svn-revision": "(v$2)",
        "version-license": "Licence",
        "version-poweredby-credits": "Ceti vouiqui fonccione grâce a '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
        "specialpages-group-wiki": "Balyês du vouiqui et outils",
        "specialpages-group-redirects": "Pâges spèciâles redirigiês",
        "specialpages-group-spam": "Outils anti-spame",
+       "specialpages-group-developer": "Outils u dèvelopor",
        "blankpage": "Pâge voueda",
        "intentionallyblankpage": "Ceta pâge est lèssiê èxprès voueda.",
        "external_image_whitelist": "  #Lèssiéd ceta legne justo d’ense.<pre>\n#Endicâd los bocons d’èxprèssions racionèles (solament la partia endicâ entre-mié los //) ce-desot.\n#Corrèspondront avouéc los lims hipèrtèxtos de les émâges (ben liyês) de defôr.\n#Celos que corrèspondont sè montreront coment des émâges, ôtrament solament un lim de vers l’émâge serat montrâ.\n#Les legnes que començont per un # seront considèrâs coment des comentèros.\n#Ceta lista est pas sensibla a la câssa.\n\n#Betâd tôs los bocons d’èxprèssions racionèles (*RegEx*) en-dessus de ceta legne. Lèssiéd ceta legne justo d’ense.</pre>",
        "logentry-rights-autopromote": "$1 est étâ nomâ ôtomaticament de $4 a $5",
        "rightsnone": "(nion)",
        "revdelete-summary": "rèsumâ du changement",
+       "feedback-adding": "Aponsa de voutros avis a la pâge...",
+       "feedback-bugcheck": "Formidâblo ! Controlâd simplament qu’o est pas yona de les [$1 cofieries ja cognues].",
+       "feedback-bugnew": "J’é controlâ. Signalar una cofierie novèla",
        "feedback-bugornote": "Se vos éte prèst a dècrire un problèmo tècnico en dètaly, volyéd [$1 signalar una cofierie].\nÔtrament, vos pouede utilisar lo formulèro simplifiâ ce-desot. Voutron comentèro serat apondu a la pâge « [$3 $2] », avouéc voutron nom d’usanciér et lo navigator que vos utilisâd.",
-       "feedback-subject": "Sujèt :",
-       "feedback-message": "Mèssâjo :",
        "feedback-cancel": "Anular",
-       "feedback-submit": "Mandar voutron avis",
-       "feedback-adding": "Aponsa de voutros avis a la pâge...",
+       "feedback-close": "Fêt",
        "feedback-error1": "Èrror : rèsultat de l’API pas recognu",
        "feedback-error2": "Èrror : lo changement at pas reussi",
        "feedback-error3": "Èrror : gins de rèponsa de l’API",
+       "feedback-message": "Mèssâjo :",
+       "feedback-subject": "Sujèt :",
+       "feedback-submit": "Sometre",
        "feedback-thanks": "Grant-marci ! Voutron avis at étâ postâ sur la pâge « [$2 $1] ».",
-       "feedback-close": "Fêt",
-       "feedback-bugcheck": "Formidâblo ! Controlâd simplament qu’o est pas yona de les [$1 cofieries ja cognues].",
-       "feedback-bugnew": "J’é controlâ. Signalar una cofierie novèla",
        "searchsuggest-search": "Rechèrchiér",
        "searchsuggest-containing": "que contint...",
        "api-error-badaccess-groups": "Vos éte pas ôtorisâ a tèlèchargiér des fichiérs sur ceti vouiqui.",
index f5e4182..8c6c777 100644 (file)
        "redirectedfrom": "(Widjerfeerd faan $1)",
        "redirectpagesub": "Widjerfeerang",
        "redirectto": "Widjerfeer tu:",
-       "lastmodifiedat": "Detdiar sidj as tuleetst di $1, am a klook $2 anert wurden.",
+       "lastmodifiedat": "Detdiar sidj as tuleetst di $1, am a klook $2 feranert wurden.",
        "viewcount": "Aw jüdeer sid as  {{PLURAL:$1|iinjsen|$1 tunge}} tugram wörden.",
        "protectedpage": "Sääkerd sid",
        "jumpto": "Waksle tu:",
        "disclaimers": "Disclaimers",
        "disclaimerpage": "Project:Disclaimers",
        "edithelp": "Halep bi't bewerkin",
+       "helppage-top-gethelp": "Halep",
        "mainpage": "Hoodsidj",
        "mainpage-description": "Hoodsidj",
        "policy-url": "Project:Reegeln",
        "readonly_lag": "Det dootenbeenk as speret wurden, amdat jo ferdiald dootenbeenken (slaves) jo mä di hoodserver (master) ufglik kön.",
        "internalerror": "Süsteemfeeler",
        "internalerror_info": "Süsteemfeeler: $1",
+       "internalerror-fatal-exception": "Böös ütjnoomfeeler faan di slach \"$1\"",
        "filecopyerror": "Det datei $1 küd ei efter $2 kopiaret wurd.",
        "filerenameerror": "Det datei $1 küd ei efter $2 amnäämd wurd.",
        "filedeleteerror": "Det datei $1 küd ei stregen wurd.",
        "group-sysop": "Administratooren",
        "group-bureaucrat": "Bürokraaten",
        "group-suppress": "Oversighter",
-       "group-all": "(Aaltumaal)",
+       "group-all": "(Aal a)",
        "group-user-member": "{{GENDER:$1|Brüker}}",
        "group-autoconfirmed-member": "{{GENDER:$1|Registriaret brüker}}",
        "group-bot-member": "{{GENDER:$1|Bot}}",
        "right-override-export-depth": "Sidjen an onersidjen bit tu en jipde faan 5 eksportiare",
        "right-sendemail": "E-mails tu ööder brükern schüür",
        "right-passwordreset": "Paaswurd faan en brüker turagsaat an det e-mail diartu uunluke",
+       "right-managechangetags": "[[Special:Tags|Markiarangen]] iinracht an uun't dootenbeenk strik",
        "newuserlogpage": "Neiuunmeldangs-logbuk",
        "newuserlogpagetext": "Detheer as en logbuk faan nei iinracht brükerkonten.",
        "rightslog": "Brükerrochten-logbuk",
        "action-viewmyprivateinfo": "din priwoot dooten uuntulukin",
        "action-editmyprivateinfo": "din priwoot dooten tu bewerkin",
        "action-editcontentmodel": "det model faan det sidj tu bewerkin",
+       "action-managechangetags": "markiarangen iinracht an uun't dootenbeenk strik",
        "nchanges": "$1 {{PLURAL:$1|feranrang|feranrangen}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|sant dan leetst beschük}}",
        "enhancedrc-history": "Ferluup",
        "recentchanges": "Leetst feranrangen",
        "recentchanges-legend": "Iinstelangen för't uunwisin",
-       "recentchanges-summary": "Üüb detdiar sidj könst dü a leetst feranrangen faan't Nordfriisk Wikipedia ferfulge.",
+       "recentchanges-summary": "Üüb detdiar sidj könst dü a leetst feranrangen faan detheer Wiki-projekt ferfulge.",
        "recentchanges-noresult": "Uun di uunjiwen tidjrüm san sok feranrangen ei föörnimen wurden.",
-       "recentchanges-feed-description": "Mä didiar feed könst dü a leetst feranrangen faan't Nordfriisk Wikipedia ferfulge.",
+       "recentchanges-feed-description": "Mä didiar feed könst dü a leetst feranrangen faan detheer Wiki-projekt ferfulge.",
        "recentchanges-label-newpage": "Nei sidj uunlaanj",
        "recentchanges-label-minor": "Letj feranrang",
        "recentchanges-label-bot": "Feranrang faan en bot",
        "unusedimages": "Datein, diar ei brükt wurd",
        "wantedcategories": "Kategoriin, diar brükt wurd",
        "wantedpages": "Sidjen, diar brükt wurd",
+       "wantedpages-summary": "List faan sidjen, diar't goorei jaft, mä a miast ferwisangen, oober saner sidjen, huar bluas üüb ferwiset woort. För en list faan sidjen, diar't goorei jaft, oober mä ferwisangen luke bi [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Diar as en artiikelnööm ei tuläät uun: $1",
        "wantedfiles": "Datein, diar brükt wurd",
        "wantedfiletext-cat": "Jodiar datein wurd brükt, oober san ei diar. Datein faan ööder archiiwen wurd apfeerd, san oober <del>trochstregen</del>. An jo sidjen, diar sok datein brük, stun uun  [[:$1]].",
        "thumbnail_image-missing": "Det datei as wel ei diar: $1",
        "thumbnail_image-failure-limit": "Detdiar föörskaubil as uun a leetst tidj tufölsis ($1 of muarsis) feranert wurden. Ferschük det leeder man noch ans.",
        "import": "Sidjen importiare",
-       "importinterwiki": "Transwiki import",
-       "import-interwiki-text": "Schük en Wiki an en sidj tu importiarin ütj. A werjuunen an brükernöömer bliiw erhäälen.\nTranswiki-import-aktjuunen wurd uun't [[Special:Log/import|Import-logbuk]] fäästhäälen.",
+       "importinterwiki": "Faan en ööder Wiki importiare",
+       "import-interwiki-text": "Schük en Wiki an en sidj tu importiarin ütj. A werjuunen an brükernöömer bliiw erhäälen.\nImporten faan ööder Wikis wurd uun't [[Special:Log/import|Import-logbuk]] fäästhäälen.",
        "import-interwiki-sourcewiki": "Faan hün Wiki:",
        "import-interwiki-sourcepage": "Faan hün sidj:",
        "import-interwiki-history": "Aal a werjuunen faan det sidj importiare",
        "importcantopen": "Det import-datei küd ei eeben maaget wurd.",
        "importbadinterwiki": "Ferkiard interwiki-link",
        "importsuccess": "Import klaar!",
-       "importnosources": "För di transwiki-import san nian kwelen uunden. Dü könst werjuunen ei direkt huuchschüür.",
+       "importnosources": "För di import san nian ööder Wikis uunden. Dü könst werjuunen ei direkt huuchschüür.",
        "importnofile": "Diar as nian importdatei bestemet wurden.",
        "importuploaderrorsize": "Bi't huuchschüüren faan det importdatei as wat skiaf gingen. Det datei as tu grat.",
        "importuploaderrorpartial": "Bi't huuchschüüren faan det importdatei as wat skiaf gingen. Det datei as bluas dialwiis huuchschüürd wurden.",
        "import-rootpage-nosubpage": "Uun di nöömrüm „$1“ jaft at nian onersidjen.",
        "importlogpage": "Import-logbuk",
        "importlogpagetext": "Administratiif import faan sidjen mä aal a werjuunen faan ööder Wikis.",
-       "import-logentry-upload": "„[[$1]]“ faan en datei importiaret",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|werjuun|werjuunen}} importiaret",
-       "import-logentry-interwiki": "„$1“ mä transwiki importiaret",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|werjuun|werjuunen}} faan $2 importiaret",
        "javascripttest": "JavaScript-test",
        "javascripttest-pagetext-noframework": "Detdiar sidj as för JavaScript-tests föörsen.",
        "tags-tag": "Kääntiaken-nööm",
        "tags-display-header": "Nööm üüb feranrangslisten",
        "tags-description-header": "Widjloftag beskriiwang",
+       "tags-source-header": "Kwel",
        "tags-active-header": "Aktiif?",
        "tags-hitcount-header": "Kääntiakent feranrangen",
+       "tags-actions-header": "Aktjuunen",
        "tags-active-yes": "Ja",
        "tags-active-no": "Naan",
+       "tags-source-extension": "Faan en ütjwidjang fäästlaanj",
+       "tags-source-manual": "Manuel faan brükern of bots iinracht",
+       "tags-source-none": "Woort ei muar brükt",
        "tags-edit": "bewerke",
+       "tags-delete": "strik",
+       "tags-activate": "aktiwiare",
+       "tags-deactivate": "de-aktiwiare",
        "tags-hitcount": "$1 {{PLURAL:$1|feranrang|feranrangen}}",
+       "tags-manage-no-permission": "Dü mutst nian feranrangsmarkiarangen bewerke.",
+       "tags-create-heading": "En nei markiarang iinracht",
+       "tags-create-explanation": "Normoolerwiis wurd nei markiarangen för't bewerkin faan brükern an bots iinracht.",
+       "tags-create-tag-name": "Markiarangsnööm:",
+       "tags-create-reason": "Grünj:",
+       "tags-create-submit": "Maage",
+       "tags-create-no-name": "Dü skel en markiarangsnööm uundu.",
+       "tags-create-invalid-chars": "Markiarangsnöömer mut nian komas (<code>,</code>) of swäärsstreger (<code>/</code>) haa.",
+       "tags-create-invalid-title-chars": "Markiarangsnöömer mut nian tiakens haa, diar uk uun sidjennöömer ei föörkem mut.",
+       "tags-create-already-exists": "Det markiarang \"$1\" jaft at al.",
+       "tags-create-warnings-above": "{{PLURAL:$2|Detdiar wäärnang as|Jodiar wäärnangen san}} apdaaget, üs det markiarang \"$1\" iinracht wurd skul:",
+       "tags-create-warnings-below": "Wel dü mä't iinrachten faan detdiar markiarang widjer maage?",
+       "tags-delete-title": "Markiarang strik",
+       "tags-delete-explanation-initial": "Dü beest diarbi, det markiarang \"$1\" uun't dootenbeenk tu striken.",
+       "tags-delete-explanation-in-use": "Hat woort faan {{PLURAL:$2|$2 werjuun of logbuk-iindrach|aal $2 werjuunen an/of logbuk-iindracher}} strgen, huar't uugenblakelk noch iindraanj as.",
+       "tags-delete-explanation-warning": "Detdiar aktjuun könst dü <strong>ei turagdrei</strong> an <strong>koon ei weder turaghaalet wurd</strong>, uk ei faan dootenbeenk-administartooren. Wees seeker, dat dü detdiar markiarang würelk strik wel.",
+       "tags-delete-explanation-active": "<strong>Det markiarang \"$1\" as noch aktiif an woort uk widjerhen iinsaat.</strong> Wan dü det ei wel, gung tu det(jo) steed(en), huar det markiarang iinracht wurden as, an strik det diar.",
+       "tags-delete-reason": "Grünj:",
+       "tags-delete-submit": "Detdiar markiarang för iiwag strik",
+       "tags-delete-not-allowed": "Markiarangen, diar faan en ütjwidjang fäästlaanj wurden san, kön ei stregen wurd, wan det diar ei mögelk maaget wurden as.",
+       "tags-delete-not-found": "Det markiarang \"$1\" jaft at ei.",
+       "tags-delete-too-many-uses": "Det markiarang \"$1\" as mä muar üs $2 {{PLURAL:$2|werjuun|werjuunen}} ferbünjen an koon ei stregen wurd.",
+       "tags-delete-warnings-after-delete": "Det markiarang \"$1\" as stregen wurden, man diar {{PLURAL:$2|as ian wäärnang|san wäärnangen}} aptreeden:",
+       "tags-activate-title": "Markiarang aktiwiare",
+       "tags-activate-question": "Dü beest diarbi, det markiarang \"$1\" tu aktiwiarin.",
+       "tags-activate-reason": "Grünj:",
+       "tags-activate-not-allowed": "Dü könst det markiarang \"$1\" ei aktiwiare.",
+       "tags-activate-not-found": "Det markiarang \"$1\" jaft at ei.",
+       "tags-activate-submit": "Aktiwiare",
+       "tags-deactivate-title": "Markiarang de-aktiwiare",
+       "tags-deactivate-question": "Dü beest diarbi, det markiarang \"$1\" tu de-aktiwiarin.",
+       "tags-deactivate-reason": "Grünj:",
+       "tags-deactivate-not-allowed": "Dü könst det markiarang \"$1\" ei de-aktiwiare.",
+       "tags-deactivate-submit": "De-aktiwiare",
        "comparepages": "Sidjen ferglik",
        "compare-page1": "Sidj 1",
        "compare-page2": "Sidj 2",
        "revdelete-uname-unhid": "brükernööm weder tu sen",
        "revdelete-restricted": "mögelkhaiden för administratooren wechnimen",
        "revdelete-unrestricted": "mögelkhaiden för administratooren ütjwidjet",
+       "logentry-block-block": "$1 {{GENDER:$2|hää}} {{GENDER:$4|$3}} speret mä en sperdüür faan $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|hää det sper}} för {{GENDER:$4|$3}} apheewen.",
+       "logentry-block-reblock": "$1 {{GENDER:$2|hää}} det sper för {{GENDER:$4|$3}} feranert mä en sperdüür faan $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|hää}} {{GENDER:$4|$3}} speret mä en sperdüür faan $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|hää}} det sper för {{GENDER:$4|$3}} feranert mä en sperdüür faan $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|hää}} $3 importiaret an en datei huuchschüürd",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|hää}} $3 faan en ööder Wiki importiaret",
        "logentry-merge-merge": "$1 {{GENDER:$2|hää}} $3 mä det sidj „$4“ (werjuunen bit tu di $5) tuupfeerd",
        "logentry-move-move": "$1 {{GENDER:$2}} hää det sidj $3 efter $4 fersköwen.",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2}} hää det sidj $3 efter $4 saner widjerfeerang fersköwen.",
        "logentry-upload-upload": "$1 {{GENDER:$2|hää}} $3 huuchschüürd",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|hää}} en nei werjuun faan $3 huuchschüürd",
        "logentry-upload-revert": "$1 {{GENDER:$2|hää}} $3 huuchschüürd",
+       "log-name-managetags": "Markiarangs-logbuk",
+       "log-description-managetags": "Üüb detdiar sidj stun apgoowen mä [[Special:Tags|markiarangen]]. Uun det logbuk stun bluas aktjuunen faan en administaraator; diar kön oober uk feranrangen faan't Wiki-software föörnimen wurd, diar ei uun detheer logbuk stun.",
+       "logentry-managetags-create": "$1 {{GENDER:$2|hää}} det markiarang \"$4\" iinracht",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|hää}} det markiarang „$4“ stregen (faan {{PLURAL:$5|ian werjuun of ään logbuk-iindrach|$5 werjuunen an/of logbuk-iindracher}} wechnimen).",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|hää}} det markiarang \"$4\" för't bewerkin faan brükern of bots iinracht.",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|hää}} det markiarang \"$4\" för't bewerkin faan brükern of bots de-aktiwiaret.",
        "rightsnone": "(-)",
        "revdelete-summary": "tuhuupefootings-komäntoor",
+       "feedback-adding": "Komentaar woort tu det sidj skrewen ...",
+       "feedback-back": "Turag",
+       "feedback-bugcheck": "Gud! Luke noch ans efter, of det ei ferlicht en [$1 bekäänden feeler] as.",
+       "feedback-bugnew": "Haa ik efterluket. Nei feeler melde.",
        "feedback-bugornote": "Wan dü en technisk probleem beskriiw wel, wees so gud an skriiw [$1 am di feeler].\nÖöders könst dü uk det formulaar oner brük. Dan komentaar woort tuup mä dan brükernööm an det werjuun faan dan browser üüb det sidj „[$3 $2]“ skrewen.",
-       "feedback-subject": "Teemo:",
-       "feedback-message": "Mädialang:",
        "feedback-cancel": "Ufbreeg",
-       "feedback-submit": "Komentaar ufsjüür",
-       "feedback-adding": "Komentaar woort tu det sidj skrewen ...",
+       "feedback-close": "Klaar",
+       "feedback-external-bug-report-button": "En technisk apgoow iinschüür",
+       "feedback-dialog-title": "Komentaar ufsjüür",
+       "feedback-dialog-intro": "Dü könst det ianfach formulaar diar oner för dan komentaar brük. Dan komentaar komt tuup mä dan brükernööm tu det sidj „$1“.",
+       "feedback-error-title": "Diar as wat skiaf gingen",
        "feedback-error1": "Feeler: Ünbekäänd API-bööd",
        "feedback-error2": "Feeler: Bewerkin as skiaf gingen.",
        "feedback-error3": "Feeler: Nian API-oonswaar",
+       "feedback-message": "Mädialang:",
+       "feedback-subject": "Teemo:",
+       "feedback-submit": "Ufschüür",
+       "feedback-terms": "Ik haa det begreben, dat uun min brüker-informatjuunen uk informatjuunen auer man browser an min bedrifssüsteem stun an dat jo tuup mä man komentaar öfentelk diald wurd.",
+       "feedback-termsofuse": "Ik steme tu, dat man komentaar efter a brüker-reegeln uunwiset woort.",
        "feedback-thanks": "Föl soonk. Dan komentaar as üüb det sidj „[$2 $1]“ skrewen wurden.",
-       "feedback-close": "Klaar",
-       "feedback-bugcheck": "Gud! Luke noch ans efter, of det ei ferlicht en [$1 bekäänden feeler] as.",
-       "feedback-bugnew": "Haa ik efterluket. Nei feeler melde.",
+       "feedback-thanks-title": "Föl soonk!",
+       "feedback-useragent": "Brüker-agent:",
        "searchsuggest-search": "Schük",
        "searchsuggest-containing": "diar banen as ...",
        "api-error-badaccess-groups": "Dü mutst nian datein tu detdiar Wiki huuchschüür.",
        "json-error-utf8": "Ferkiard UTF-8-tiakens, ferlicht ferkiard kodiaret.",
        "json-error-recursion": "Ian of muar rekursiif referensen uun a wäärs tu kodiarin.",
        "json-error-inf-or-nan": "Ään of muar NAN of INF wäärser uun a wäärs tu kodiarin.",
-       "json-error-unsupported-type": "Diar stäänt en wäärs faan en typ, diar ei kodiaret wurd koon."
+       "json-error-unsupported-type": "Diar stäänt en wäärs faan en typ, diar ei kodiaret wurd koon.",
+       "headline-anchor-title": "Ferwisang tu detdiar kirew"
 }
index 9887e73..e4f8d1d 100644 (file)
        "duplicate-defaultsort": "'''Avîs:''' La clâf predeterminade par l'ordenament \"$2\" invalide la clâf predeterminade precedente \"$1\".",
        "version": "Version",
        "version-variables": "Variabilis",
-       "version-version": "(Version $1)",
+       "version-version": "($1)",
        "version-license": "Licence",
        "version-software-version": "Version",
        "fileduplicatesearch-filename": "Non dal file:",
index 3ed2027..a748333 100644 (file)
@@ -12,7 +12,8 @@
                        "Urhixidur",
                        "לערי ריינהארט",
                        "아라",
-                       "Robin0van0der0vliet"
+                       "Robin0van0der0vliet",
+                       "Macofe"
                ]
        },
        "tog-underline": "Keppelings ûnderstreekje:",
        "revdelete-unrestricted": "hat beheinings foar behearders goedmakke",
        "rightsnone": "(gjin)",
        "revdelete-summary": "gearfetting bewurkje",
-       "feedback-subject": "Ûnderwerp:",
-       "feedback-message": "Berjocht:",
        "feedback-cancel": "Annulearje",
-       "feedback-submit": "Feedback ferstjoere",
        "feedback-close": "Dien",
+       "feedback-message": "Berjocht:",
+       "feedback-subject": "Ûnderwerp:",
+       "feedback-submit": "Ferstjoere",
        "searchsuggest-search": "Sykje",
        "api-error-unknown-code": "Unbekende flater: \"$1\".",
        "api-error-unknownerror": "Unbekende flater: \"$1\".",
index a269e4a..b50d4bc 100644 (file)
        "deletereasonotherlist": "Fáth eile",
        "deletereason-dropdown": "*Fáthanna coitianta scriosta\n** Iarratas ón údar\n** Sárú cóipchirt\n** Loitiméireacht",
        "rollback": "Athruithe a rolladh siar",
-       "rollback_short": "Roll siar",
        "rollbacklink": "roll siar",
        "rollbacklinkcount": "Roll siar $1 {{PLURAL:$1|athrú|athruithe}}",
        "rollbackfailed": "Theip an rolladh siar",
        "watchlisttools-raw": "Cuir do amhliosta faire in eagar",
        "version": "Leagan",
        "version-other": "Eile",
-       "version-version": "(Leagan $1)",
+       "version-version": "($1)",
        "version-license": "Ceadúnas",
        "version-software": "Bogearraí suiteáilte",
        "version-software-version": "Leagan",
        "specialpages-group-spam": "Uirlisí turscar",
        "blankpage": "Leathanach bán",
        "htmlform-selectorother-other": "Eile",
-       "feedback-message": "Teachtaireacht:",
        "feedback-cancel": "Cealaigh",
+       "feedback-message": "Teachtaireacht:",
        "searchsuggest-search": "Cuardaigh",
        "expand_templates_remove_comments": "Scrios nótaí tráchta",
        "expand_templates_preview": "Réamhamharc"
index 8cfff81..80eff46 100644 (file)
        "deletereasonotherlist": "别𠮶理由",
        "deletereason-dropdown": "*常用删除𠮶理由\n** 写𠮶人自家𠮶要求\n** 侵犯版权\n** 特试破坏",
        "rollback": "还原修改",
-       "rollback_short": "还原",
        "rollbacklink": "还原",
        "rollbackfailed": "还原失败",
        "cantrollback": "还原伓正;最末𠮶贡献人系文章𠮶唯一作者。",
        "watchlisttools-view": "眵吖相关更改",
        "watchlisttools-edit": "眵吖同到编写监视列表",
        "watchlisttools-raw": "编写原始监视列表",
-       "unknown_extension_tag": "伓认得𠮶扩展标签 \"$1\"",
        "duplicate-defaultsort": "'''警告:'''预设𠮶排序键 \"$2\" 覆蓋先头𠮶预设排序键 \"$1\"。",
        "version": "版本",
        "version-extensions": "装正𠮶插件",
        "version-parser-extensiontags": "解析器扩展标签",
        "version-hook-name": "钩子名",
        "version-hook-subscribedby": "订阅人",
-       "version-version": "(版本 $1)",
+       "version-version": "($1)",
        "version-license": "许可证",
        "version-poweredby-credits": "个只 Wiki 由 '''[https://www.mediawiki.org/ MediaWiki]''' 驱动,版权所有 © 2001-$1 $2。",
        "version-software": "装正𠮶软件",
index 6203e9d..2837d29 100644 (file)
        "deletereasonotherlist": "別嗰理由",
        "deletereason-dropdown": "*常用刪除嗰理由\n** 寫嗰人自家嗰要求\n** 侵犯版權\n** 特試破壞",
        "rollback": "還原修改",
-       "rollback_short": "還原",
        "rollbacklink": "還原",
        "rollbackfailed": "還原失敗",
        "cantrollback": "還原伓正;頂晏嗰貢獻人係文章嗰唯一作者。",
        "watchlisttools-view": "望下相關更改",
        "watchlisttools-edit": "望吖同到編寫監視列表",
        "watchlisttools-raw": "編寫原始監視列表",
-       "unknown_extension_tag": "伓認得嗰擴展標籤 \"$1\"",
        "duplicate-defaultsort": "'''警告:'''預設嗰排序鍵 \"$2\" 覆蓋先頭嗰預設排序鍵 \"$1\"。",
        "version": "版本",
        "version-extensions": "裝正嗰插件",
        "version-parser-extensiontags": "解析器擴展標籤",
        "version-hook-name": "鉤子名",
        "version-hook-subscribedby": "訂閱人",
-       "version-version": "(版本 $1)",
+       "version-version": "($1)",
        "version-license": "許可證",
        "version-poweredby-credits": "箇隻 Wiki 由 '''[https://www.mediawiki.org/ MediaWiki]''' 驅動,版權所有 © 2001-$1 $2。",
        "version-software": "裝正嗰軟件",
index 0dc55f8..ac14972 100644 (file)
@@ -8,7 +8,8 @@
                        "Steafan31",
                        "לערי ריינהארט",
                        "아라",
-                       "GunChleoc"
+                       "GunChleoc",
+                       "Macofe"
                ]
        },
        "tog-underline": "Fo-loidhneadh nan ceanglaichean:",
@@ -36,7 +37,7 @@
        "tog-shownumberswatching": "Nochd àireamh nan cleachdaichean a tha a' cumail sùil air",
        "tog-oldsig": "An t-earr-sgrìobhadh làithreach:",
        "tog-fancysig": "Làimhsich an t-earr-sgrìobhadh mar wikitext (gun cheangal leis fhèin)",
-       "tog-uselivepreview": "Cleachd an ro-shealladh beò (deuchainneach)",
+       "tog-uselivepreview": "Cleachd an ro-shealladh beò",
        "tog-forceeditsummary": "Cuir ceist nuair a dh'fhàgas mi gearr-chunntas an deasachaidh bàn",
        "tog-watchlisthideown": "Falaich mo mhùthaidhean fhèin air mo chlàr-faire",
        "tog-watchlisthidebots": "Falaich mùthaidhean nam bot air mo chlàr-faire",
        "pool-queuefull": "Tha ciutha nam pròiseasan làn",
        "pool-errorunknown": "Mearachd neo-aithnichte",
        "pool-servererror": "Chan eil seirbheis cunntadh nan amar ri fhaighinn ($1).",
+       "poolcounter-usage-error": "Mearachd cleachdaidh: $1",
        "aboutsite": "Mu dhèidhinn {{SITENAME}}",
        "aboutpage": "Project:Mu dhèidhinn",
        "copyright": "Tha susbaint ri làimh fo $1 mur eil an caochladh 'ga innse.",
        "disclaimers": "Aithrisean-àichidh",
        "disclaimerpage": "Project:Aithris-àichidh choitcheann",
        "edithelp": "Cobhair deasachaidh",
+       "helppage-top-gethelp": "Cobhair",
        "mainpage": "Prìomh dhuilleag",
        "mainpage-description": "Prìomh dhuilleag",
        "policy-url": "Project:Poileasaidh",
        "readonly_lag": "Chaidh an stòr-dàta a ghlasadh leis fhèin fhad 's a tha frithealaichean nan stòr-dàta tràilleach air dheireadh a' mhaighstir",
        "internalerror": "Ion-mhearachd",
        "internalerror_info": "Ion-mhearachd: $1",
+       "internalerror-fatal-exception": "Eisgeachd mharbhtach dhen t-seòrsa \"$1\"",
        "filecopyerror": "Cha b' urrainn dhuinn lethbhreac dhen fhaidhle \"$1\" a chur gu \"$2\".",
        "filerenameerror": "Cha do ghabh ainm an fhaidhle \"$1\" atharrachadh gu \"$2\".",
        "filedeleteerror": "Cha do ghabh am faidhle \"$1\" a sguabadh às.",
        "directorycreateerror": "Cha do ghabh am pasgan \"$1\" a chruthachadh.",
+       "directoryreadonlyerror": "Tha am pasgan \"$1\" ri leughadh a-mhàin.",
+       "directorynotreadableerror": "Cha ghabh am pasgan \"$1\" leughadh.",
        "filenotfound": "Cha do ghabh am faidhle \"$1\" a lorg.",
        "unexpected": "Luach ris nach robh dùil: \"$1\"=\"$2\".",
        "formerror": "Mearachd: cha do ghabh am foirm a chur a-null",
        "viewsourcetext": "'S urrainn dhut coimhead air tùs na duilleige seo 's lethbhreac a dhèanamh dheth:",
        "viewyourtext": "'S urrainn dhut coimhead air <strong>na dheasaich thu</strong> 's lethbhreac a dhèanamh dheth air an duilleag seo:",
        "protectedinterface": "Bheir an duilleag seo dhut teacsa eadar-aghaidh airson a' bhathar-bhog air an uicidh seo 's chaidh a ghlasadh gus casg a chur air mì-chleachdadh. Gus eadar-theangachadh atharrachadh no a chur ris airson gach uicidh, cleachd [//translatewiki.net/ translatewiki.net], pròiseactan eadar-theangachadh MediaWiki.",
-       "editinginterface": "<strong>Rabhadh:</strong> Tha thu a' deasachadh duilleag a tha 'ga chleachdadh a chum teacsa eadar-aghaidh a sholar airson a' bhathar-bhog.\nMa dh'atharraicheas tu an duilleag seo, bidh buaidh ann air coltas na h-eadar-aghaidh mar a chì càch e air an uicidh seo.\nGus eadar-theangachadh atharrachadh no a chur ris airson gach uicidh, cleachd [//translatewiki.net/ translatewiki.net], pròiseactan eadar-theangachadh MediaWiki.",
+       "editinginterface": "<strong>Rabhadh:</strong> Tha thu a' deasachadh duilleag a tha 'ga chleachdadh a chum teacsa eadar-aghaidh a sholar airson a' bhathar-bhog.\nMa dh'atharraicheas tu an duilleag seo, bidh buaidh ann air coltas na h-eadar-aghaidh mar a chì càch e air an uicidh seo.",
+       "translateinterface": "Gus eadar-theangachadh atharrachadh no a chur ris airson gach uicidh, cleachd [//translatewiki.net/ translatewiki.net], am pròiseact eadar-theangachaidh aig MediaWiki.",
        "cascadeprotected": "Chaidh an duilleag seo a dhìon o dheasachadh a chionn 's gu bheil e am broinn {{PLURAL:$1|na duilleige|nan duilleagan}} a leanas a chaidh a dhìon 's an roghainn \"mar eas\" air:\n$2",
        "namespaceprotected": "Chan eil cead agad duilleagan san ainm-spàs <strong>$1</strong> a dheasachadh.",
        "customcssprotected": "Chan eil cead agad an duilleag CSS seo a dheasachadh a chionn 's gu bheil na roghainnean pearsanta aig cleachdaiche eile innte.",
        "anoneditwarning": "<strong>Rabhadh:</strong> Chan eil thu air logadh a-steach. Chithear an seòladh IP agad gu poblach ma nì thu deasachadh sam bith. Ma nì thu <strong>[$1 logadh a-steach]</strong> no ma <strong>[$2 chruthaicheas tu cunntas]</strong>, thèid d' ainm a chur ris na dheasaich thu 's gheibh thu buannachd a bharrachd às cuideachd.",
        "anonpreviewwarning": "<em>Chan eil thu air logadh a-steach. Ma nì thu sàbhaladh, thèid an seòladh IP agad a chlàradh ann an eachdraidh deasachadh na duilleige seo.</em>",
        "missingsummary": "<strong>Cuimhnich:</strong> Cha dug thu seachad gearr-chunntas air na dh'atharraich thu.\nMa bhriogas tu air \"{{int:savearticle}}\" a-rithist, thèid na dheasaich thu a shàbhaladh as aonais gearr-chunntais.",
+       "selfredirect": "<strong>Rabhadh:</strong> Tha thu ag ath-stiùireadh duilleag dha fhèin.\nDh'fhaoidte gun do shònraich thu an t-amas cearr airson an ath-stiùiridh no gu bheil thu a' deasachadh an duilleag cearr.\nMa nì thu briogadh air \"{{int:savearticle}}\" a-rithist,m thèid an ath-stiùireadh a chruthachadh co-dhiù.",
        "missingcommenttext": "Cuir a-steach beachd gu h-ìosal.",
        "missingcommentheader": "<strong>Cuimhnich:</strong> Cha dug thu seachad cuspair/ceann airson a' bheachd seo.\nMa bhriogas tu air \"{{int:savearticle}}\" a-rithist, thèid na dheasaich thu a shàbhaladh as aonais.",
        "summary-preview": "Ro-shealladh a' ghearr-chunntais:",
        "content-model-text": "teacsa lom",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-model-json": "JSON",
+       "content-json-empty-object": "Oibseact falamh",
+       "content-json-empty-array": "Arraigh fhalamh",
+       "duplicate-args-category": "Duilleagan a chleachdas argamaidean dùblaichte ann an gairm teamplaid",
+       "duplicate-args-category-desc": "Tha gairmean teamplaid sa bheil argamaidean dùblaichte air an duilleag seo, can <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> no <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "<strong>Rabhadh:</strong> Tha cus gairmean a' pharsair cosgail san duilleag seo.\n\nBu chòir nas lugha na $2 {{PLURAL:$2|ghairm|ghairm|gairmean|gairm}} a bhith ann ach tha $1 {{PLURAL:$1|ghairm|ghairm|gairmean|gairm}} ann.",
        "expensive-parserfunction-category": "Duilleagan le cus expensive parser function calls",
        "post-expand-template-inclusion-warning": "<strong>Rabhadh:</strong> Tha meud na teamplaide ro mhòr.\nCha dèid cuid dhith a ghabhail a-steach.",
        "history-feed-empty": "Chan eil an duilleag a dh'iarr thu ann.\nDh'fhaoidte gun deach a sguabadh às an uicidh no gun deach ainm ùr a chur air.\nFeuch is [[Special:Search|lorg duilleagan ùra iomachaidh air an uicidh]]",
        "rev-deleted-comment": "(chaidh gearr-chunntas an deasachaidh a thoirt air falbh)",
        "rev-deleted-user": "(chaidh an t-ainm-cleachdaiche a thoirt air falbh)",
-       "rev-deleted-event": "(chaidh gnìomh an loga a thoirt air falbh)",
+       "rev-deleted-event": "(chaidh fiosrachadh an loga a thoirt air falbh)",
        "rev-deleted-user-contribs": "[chaidh an t-ainm-cleachdaiche no an seòladh IP a thoirt air falbh - chaidh an deasachadh fhalach o liosta na h-obrach]",
        "rev-deleted-text-permission": "Chaidh mùthadh na duilleige seo <strong>a sguabadh às</strong>.\nGheibh thu mion-fhiosrachadh air [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ann an loga nan rudan a chaidh a sguabadh às].",
        "rev-suppressed-text-permission": "Chaidh mùthadh na duilleige seo <strong>a mhùchadh</strong>.\nGheibh thu mion-fhiosrachadh air [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} ann an loga nan rudan a chaidh a mhùchadh].",
        "revdelete-legend": "Suidhich cuingeachaidhean na faicsinneachd",
        "revdelete-hide-text": "Teacsa a' mhùthaidh",
        "revdelete-hide-image": "Falaich susbaint an fhaidhle",
-       "revdelete-hide-name": "Falaich an gnìomh agus an targaid",
+       "revdelete-hide-name": "Falaich an targaid agus na paramadairean",
        "revdelete-hide-comment": "Gearr-chunntas an deasachaidh",
        "revdelete-hide-user": "Ainm-cleachdaiche/seòladh IP an deasaiche",
        "revdelete-hide-restricted": "Mùch dàta o rianairean agus càch",
        "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-redirect": "(ag ath-sheòladh $1)",
        "search-section": "(earrann $1)",
+       "search-category": "(roinn-seòrsa $1)",
        "search-file-match": "(a' freagairt ri susbaint an fhaidhle)",
        "search-suggest": "An e na leanas a bha fa-near dhut: $1",
        "search-interwiki-caption": "Pròiseactan co-cheangailte",
        "prefs-personal": "Pròifil",
        "prefs-rc": "Mùthaidhean ùra",
        "prefs-watchlist": "An clàr-faire",
+       "prefs-editwatchlist": "Deasaich an clàr-faire",
+       "prefs-editwatchlist-label": "Deasaich na tha air a' chlàr-fhaire agad:",
+       "prefs-editwatchlist-edit": "Seall agus thoir air falbh tiotalan air a' chlàr-fhaire agad",
+       "prefs-editwatchlist-raw": "Deasaich còd a' chlàir-fhaire",
+       "prefs-editwatchlist-clear": "Glan an clàr-faire agad",
        "prefs-watchlist-days": "Co mheud latha a sheallar air a' chlàr-fhaire:",
        "prefs-watchlist-days-max": "$1 {{PLURAL:$1|latha|latha|làithean|latha}} air a' char as motha",
        "prefs-watchlist-edits": "An àireamh as motha de mhùthaidhean a thèid a shealltainn air a' chlàr-fhaire leudaichte:",
        "gender-female": "Deasaichidh i duilleagan na h-Uicipeid",
        "prefs-help-gender": "Cha leig thu leas an roghainn seo a shuidheachadh.\nCleachdaidh am bathar-bog an luach aice gus bruidhinn riut le d' ainm 's iomradh a thoirt ort gu càch leis a' ghnè ghramataigeach iomchaidh.\nBidh am fiosrachadh seo poblach.",
        "email": "Post-d:",
-       "prefs-help-realname": "Cha leig thu leas innse dè am fìor-ainm a tha ort.\nMa bheir thu seachad e, thèid seo a chleachdadh gus urram a thoirt dhut airson do chuid obrach.",
+       "prefs-help-realname": "Cha leig thu leas innse dè am fìor-ainm a tha ort.\nMa bheir thu seachad e, thèid a chleachdadh gus urram a thoirt dhut airson do chuid obrach.",
        "prefs-help-email": "Chan leig thu leas post-dealain a chur ann ach bidh feum air ma dhìochuimhnicheas tu am facal-faire agad 's ma dh'iarras tu fear ùr.",
        "prefs-help-email-others": "'S urrainn dhut leigeil le daoine eile post-dealain a chur thugad tro cheangal air duilleag a' chleachdaiche no deasbaireachd agad.\nChan fhaicear an seòladh fhèin nuair a chuireas cuideigin post-dealain thugad.",
        "prefs-help-email-required": "Tha feum air seòladh puist-d.",
        "right-protect": "Cead leibheilean an dìona atharrachadh 's duilleagan le dìon o bhith mar eas a dheasachadh",
        "right-editprotected": "Cead gus duilleagan le dìon \"{{int:protect-level-sysop}}\" a dheasachadh",
        "right-editsemiprotected": "Cead gus duilleagan le dìon \"{{int:protect-level-autoconfirmed}}\" a dheasachadh",
+       "right-editcontentmodel": "Deasaich modail susbaint duilleige",
        "right-editinterface": "Cead gus eadar-aghaidh nan cleachdaichean a dheasachadh",
        "right-editusercssjs": "Cead gus faidhlichean CSS 's JavaScript càich a dheasachadh",
        "right-editusercss": "Cead gus faidhlichean CSS càich a dheasachadh",
        "right-override-export-depth": "Cead gus duilleagan às-phortadh, a' gabhail a-seach duilleagan ceangailte suas ri doimhneachd de 5",
        "right-sendemail": "Cead gus puist-d a chur gu cleachdaichean eile",
        "right-passwordreset": "Cead gus puist-d ath-shuidheachadh nam facal-faire a shealltainn",
+       "right-managechangetags": "Cruthaich is toir air falbh [[Special:Tags|tagaichean]] on stòr-dàta",
        "newuserlogpage": "Loga cruthachadh nan cleachdaichean",
        "newuserlogpagetext": "Seo loga nan cleachdaichean a chaidh a chruthachadh.",
        "rightslog": "Loga ceadan a' chleachdaiche",
        "action-viewmywatchlist": "seall an clàr-faire agad",
        "action-viewmyprivateinfo": "seall am fiosrachadh prìobhaideach agad",
        "action-editmyprivateinfo": "deasaich am fiosrachadh prìobhaideach agad",
+       "action-editcontentmodel": "deasaich modail susbaint duilleige",
+       "action-managechangetags": "cruthaich is thoir air falbh tagaichean on stòr-dàta",
        "nchanges": "$1 {{PLURAL:$1|mhùthadh|mhùthadh|mùthaidhean|mùthadh}}",
        "enhancedrc-since-last-visit": "$1 on tadhal mu dheireadh",
        "enhancedrc-history": "eachdraidh",
        "uploaderror": "Mearachd leis an luchdadh suas",
        "upload-recreate-warning": "<strong>Rabhadh: Chaidh faidhle air a bheil an t-ainm seo a sguabadh às no a ghluasad.</strong>\n\nSeo dhut loga an sguabaidh às 's nan gluasad airson na duilleige seo:",
        "uploadtext": "Cleachd am foirm gu h-ìosal gus faidhlichean a luchdadh suas.\nGus na faidhlichean a chaidh a luchdadh suas roimhe a shealltainn no a lorg annta, rach gu [[Special:FileList|liosta nam faidhlichean air an luchdadh suas]], thèid (ath-)luchdaidhean suas a chur ri [[Special:Log/upload|loga nan luchdaidhean suas]] cuideachd 's na chaidh a sguabadh às ri [[Special:Log/delete|loga nan sguabaidhean às]].\n\nCleachd ceangal ann an aon dhe na cruthan seo gus faidhle a chur am broinn duilleige:\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code></strong> gus an tionndadh slàn dhen fhaidhle a chleachdadh\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|teacsa alt]]</nowiki></code></strong> cus dreach a tha 200 piogsail a leud a chleachdadh a nochdas ann am bogsa air a' mharghan chlì le \"teacsa alt\" mar thuairisgeul\n* <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code></strong> gus ceangal a dhèanamh ris an fhaidhle gu dìreach gun a bhith a' sealltainn an fhaidhle",
-       "upload-permitted": "Seòrsaichean faidhle a tha ceadaichte: $1.",
-       "upload-preferred": "Seòrsaichean faidhle as docha leinn: $1.",
-       "upload-prohibited": "Seòrsaichean faidhle nach eil ceadaichte: $1.",
+       "upload-permitted": "{{PLURAL:$2|1=seòrsa|seòrsaichean}} faidhle a tha ceadaichte: $1.",
+       "upload-preferred": "{{PLURAL:$2|1=seòrsa|seòrsaichean}} faidhle as docha leinn: $1.",
+       "upload-prohibited": "{{PLURAL:$2|1=seòrsa|seòrsaichean}} faidhle nach eil ceadaichte: $1.",
        "uploadlogpage": "Loga an luchdaidh suas",
        "uploadlogpagetext": "Chì thu na faidhlichean a chaidh a luchdadh suas o chionn goirid gu h-ìosal.\nSeall [[Special:NewFiles|gailearaidh nam faidhlichean ùra]] airson foir-shealladh nas lèirsinniche.",
        "filename": "Ainm-faidhle",
        "import-rootpage-nosubpage": "Cha cheadaich an t-ainm-spàs \"$1\" aig an duilleag freumha fo-duilleagan.",
        "importlogpage": "Loga an ion-phortachaidh",
        "importlogpagetext": "Ion-phortachadh rianachd de dhuilleagan aig a bheil eachdraidh mhùthaidhean o uicidhean eile.",
-       "import-logentry-upload": "chaidh [[$1]] ion-phortachadh le luchdadh suas faidhle",
        "import-logentry-upload-detail": "Chaidh $1 {{PLURAL:$1|mhùthadh|mùthadh|mùthaidhean|mùthadh}} ion-phortachadh",
-       "import-logentry-interwiki": "air fhaighinn 'na thar-uicidh $1",
        "import-logentry-interwiki-detail": "Chaidh $1 {{PLURAL:$1|mhùthadh|mhùthadh|mùthaidhean|mùthadh}} ion-phortachadh o $2",
        "javascripttest": "Deuchainn air JavaScript",
        "javascripttest-pagetext-noframework": "Tha an duilleag seo glèidhte airson deuchainnean JavaScript a ruith.",
        "logentry-upload-revert": "Luchdaich $1 $3 suas",
        "rightsnone": "(chan eil gin)",
        "revdelete-summary": "gearr-chunntas an deasachaidh",
+       "feedback-adding": "A' cur beachd ri duilleag...",
+       "feedback-bugcheck": "Taghta! Dearbhaich nach eil e air [$1 liosta nam bugaichean air a bheil sinn eòlach] mar-thà.",
+       "feedback-bugnew": "Dhearbh mi seo. Dèan aithris air buga ur",
        "feedback-bugornote": "Ma tha fiosrachadh mionaideach agad air duilgheadas teicnigeach, feuch an dèan thu [$1 aithris air buga].\nMur eil, 's urrainn dhut am foirm furasta a chleachdadh gu h-ìosal. Thèid do bheachd a chur ris an duilleag \"[$3 $2]\" is d' ainm-cleachdaiche a chur ris.",
-       "feedback-subject": "Cuspair:",
-       "feedback-message": "Teachdaireachd:",
        "feedback-cancel": "Sguir dheth",
-       "feedback-submit": "Cuir do bheachd a-null",
-       "feedback-adding": "A' cur beachd ri duilleag...",
+       "feedback-close": "Dèanta",
        "feedback-error1": "Mearachd: Chan aithnich sinn toradh an API",
        "feedback-error2": "Mearachd: Dh'fhàillig leis an deasachadh",
        "feedback-error3": "Mearachd: Cha d' fhuair sinn freagairt on API",
+       "feedback-message": "Teachdaireachd:",
+       "feedback-subject": "Cuspair:",
+       "feedback-submit": "Cuir a-null",
        "feedback-thanks": "Mòran taing! Chaidh do bheachd a phostadh air an duilleag \"[$2 $1]\".",
-       "feedback-close": "Dèanta",
-       "feedback-bugcheck": "Taghta! Dearbhaich nach eil e air [$1 liosta nam bugaichean air a bheil sinn eòlach] mar-thà.",
-       "feedback-bugnew": "Dhearbh mi seo. Dèan aithris air buga ur",
        "searchsuggest-search": "Lorg",
        "searchsuggest-containing": "anns a bheil...",
        "api-error-badaccess-groups": "Chan eil cead agad gus faidhlichean a luchdadh suas dhan uicidh seo.",
index 4b1b64d..f3bdf85 100644 (file)
@@ -19,7 +19,9 @@
                        "Josep Maria 15.",
                        "Fisterraeomar",
                        "Breogan2008",
-                       "VaiPolaSombra"
+                       "VaiPolaSombra",
+                       "Macofe",
+                       "Banjo"
                ]
        },
        "tog-underline": "Subliñar as ligazóns:",
        "disclaimers": "Advertencias",
        "disclaimerpage": "Project:Advertencia xeral",
        "edithelp": "Axuda de edición",
+       "helppage-top-gethelp": "Axuda",
        "mainpage": "Portada",
        "mainpage-description": "Portada",
        "policy-url": "Project:Políticas e normas",
        "portal": "Portal da comunidade",
        "portal-url": "Project:Portal da comunidade",
-       "privacy": "Política de protección de datos",
+       "privacy": "Política de privacidade",
        "privacypage": "Project:Política de protección de datos",
        "badaccess": "Erro de permisos",
        "badaccess-group0": "Non ten os permisos necesarios para executar a acción que solicitou.",
        "right-markbotedits": "Marcar as edicións desfeitas como edicións dun bot",
        "right-noratelimit": "Non ser afectado polos límites de frecuencia",
        "right-import": "Importar páxinas doutros wikis",
-       "right-importupload": "Importar páxinas desde un ficheiro cargado",
+       "right-importupload": "Importar páxinas desde un ficheiro subido",
        "right-patrol": "Marcar edicións como patrulladas",
        "right-autopatrol": "Ter as edicións marcadas automaticamente como patrulladas",
        "right-patrolmarks": "Ver os cambios que están marcados coma patrullados",
        "import-rootpage-nosubpage": "O espazo de nomes \"$1\" da páxina raíz non permite as subpáxinas.",
        "importlogpage": "Rexistro de importacións",
        "importlogpagetext": "Importacións administrativas de páxinas procedentes doutros wikis xunto co seu historial de edicións.",
-       "import-logentry-upload": "importou \"[[$1]]\" mediante a carga dun ficheiro",
        "import-logentry-upload-detail": "{{PLURAL:$1|Importouse $1 revisión|Importáronse $1 revisións}}",
-       "import-logentry-interwiki": "importou \"$1\"",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|Importouse $1 revisión|Importáronse $1 revisións}} desde $2",
        "javascripttest": "Proba de JavaScript",
        "javascripttest-pagetext-noframework": "Esta páxina está reservada para executar probas do JavaScript.",
        "logentry-block-reblock": "$1 {{GENDER:$2|cambiou}} as configuracións do bloqueo de {{GENDER:$4|$3}} cunha caducidade de $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|bloqueou}} a {{GENDER:$4|$3}} cun tempo de duración de $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|cambiou}} as configuracións do bloqueo de {{GENDER:$4|$3}} cunha caducidade de $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|importou}} $3 por medio da carga de ficheiros",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|importou}} $3 dende outra wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|fusionou}} \"$3\" con \"$4\" (revisións ata o $5)",
        "logentry-move-move": "$1 {{GENDER:$2|moveu}} a páxina \"$3\" a \"$4\"",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|moveu}} a páxina \"$3\" a \"$4\" sen deixar unha redirección",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|desactivou}} a etiqueta \"$4\" para impedir o seu uso por usuarios e bots",
        "rightsnone": "(ningún)",
        "revdelete-summary": "o resumo de edición",
+       "feedback-adding": "Enviando os comentarios...",
+       "feedback-back": "Volver",
+       "feedback-bugcheck": "Perfecto! Comprobe que aínda non está entre os [$1 erros coñecidos].",
+       "feedback-bugnew": "Comprobeino. Informar deste novo erro",
        "feedback-bugornote": "Se está listo para describir un problema técnico en detalle, [$1 informe do erro].\nEn caso contrario, pode empregar o formulario sinxelo inferior. O seu comentario aparecerá na páxina \"[$3 $2]\" xunto ao seu nome de usuario e o navegador que está usando.",
-       "feedback-subject": "Asunto:",
-       "feedback-message": "Mensaxe:",
        "feedback-cancel": "Cancelar",
-       "feedback-submit": "Enviar os comentarios",
-       "feedback-adding": "Enviando os comentarios...",
+       "feedback-close": "Feito",
+       "feedback-external-bug-report-button": "Gardar unha tarefa técnica",
+       "feedback-dialog-title": "Enviar opinión",
+       "feedback-dialog-intro": "Pode usar o formulario simple de abaixo para enviar a súa opinión. O seu comentario será engadido á páxina \"$1\", xunto co seu nome de usuario.",
+       "feedback-error-title": "Erro",
        "feedback-error1": "Erro: Resultado da API non recoñecido",
        "feedback-error2": "Erro: Fallo de edición",
        "feedback-error3": "Erro: Non hai resposta da API",
+       "feedback-message": "Mensaxe:",
+       "feedback-subject": "Asunto:",
+       "feedback-submit": "Enviar",
+       "feedback-terms": "Comprendo que a miña información inclúe datos exactos do meu navegador e versión de sistema operativo e poderá ser compartida públicamente xunto aos meus comentarios.",
+       "feedback-termsofuse": "Concordo en proporcionar as miñas opinións de acordo cos Termos de Uso.",
        "feedback-thanks": "Grazas! Os seus comentarios publicáronse na páxina \"[$2 $1]\".",
-       "feedback-close": "Feito",
-       "feedback-bugcheck": "Perfecto! Comprobe que aínda non está entre os [$1 erros coñecidos].",
-       "feedback-bugnew": "Comprobeino. Informar deste novo erro",
+       "feedback-thanks-title": "Grazas!",
+       "feedback-useragent": "Axente de usuario:",
        "searchsuggest-search": "Procurar",
        "searchsuggest-containing": "que conteña...",
        "api-error-badaccess-groups": "Non ten os permisos necesarios para cargar ficheiros neste wiki.",
index 45ed4cd..4b99ef0 100644 (file)
        "deletereason-dropdown": "*Κοιναὶ αἰτίαι διαγραφῆς\n** Αἴτησις τοῦ δημιουργοῦ\n** Παραβίασις δικαιωμάτων\n** Βαρβαρότης",
        "delete-edit-reasonlist": "Μεταγράφειν τὰς αἰτίας διαγραφῆς",
        "rollback": "Ἀναστρέφειν μεταγραφάς",
-       "rollback_short": "Ἀναστροφή",
        "rollbacklink": "ἀναστροφή",
        "rollbackfailed": "Ἀναστροφὴ μὴ ἐπιτυχής",
        "cantrollback": "Μὴ δυνατὴ ἡ ἀναστροφὴ·\nὁ ὕστατος ἐρανιστὴς ἐστὶ μόνον δημιουργὸς τῆσδε τῆς δέλτου.",
        "watchlisttools-view": "Ὁρᾶν τὰς συναφεῖς μεταβολὰς",
        "watchlisttools-edit": "Ὁρᾶν τε καὶ μεταγράφειν τὰ ἐφορωμένα",
        "watchlisttools-raw": "Μεταγράφειν τὸν πρωτογενῆ κατάλογον ἐφορωμένων",
-       "unknown_extension_tag": "Ἄγνωτον σήμαντρον ἐπεκτάσεων \"$1\"",
        "duplicate-defaultsort": "Eἴδησις: Ἡ προκαθωρισμένη κλεὶς ταξινομήσεως \"$2\" ὑπερκαλύπτει προηγουμένην προκαθωρισμένην κλεῖδα ταξινομήσεως \"$1\".",
        "version": "Ἐπανόρθωμα",
        "version-extensions": "Ἐγκατεστημέναι ἐπεκτάσεις",
        "version-parser-function-hooks": "Ἀγγύλαι ἐνεργειῶν λεξιαναλυτικοῦ προγράμματος",
        "version-hook-name": "Ὄνομα ἀγκύλης",
        "version-hook-subscribedby": "Ὑπογεγραφυῖα ὑπὸ",
-       "version-version": "(Ἔκδοσις $1)",
+       "version-version": "($1)",
        "version-license": "Ἄδεια",
        "version-poweredby-others": "ἄλλα",
        "version-software": "Ἐγκατεστημένον λογισμικόν",
        "specialpages-group-wiki": "Βικι-δεδομένα καὶ στοιχεῖα",
        "specialpages-group-redirects": "Ἀναδιευθύνειν εἰδικὰς δέλτους",
        "specialpages-group-spam": "Ἐργαλεῖα κατὰ τῶν ἀνεπιθυμήτων διαγγελιῶν",
+       "specialpages-group-developer": "Ἐργαλεῖα ἀναπτυκτῶν",
        "blankpage": "Κενὴ δέλτος",
        "intentionallyblankpage": "Ἥδε ἡ δέλτος ἀφίεται ἐσκεμμένως κενὴ οὖσα χρήσιμος ὡς σημεῖον ἀναφορᾶς, κτλ.",
        "external_image_whitelist": " #Ἄφες τήνδε τὴν γραμμὴν ὥσπερ ἐστὶν ἐν τῷ παρόντι<pre>\n#Ὰπόθες ἅπαντα τὰ τεμάχια συνήθων ἐκφράσεων (μόνον τὸ μέρος τὸ μεταξὺ τῶν //) κάτωθεν\n#Αὗται ἀντιστοιχήσασαι μετὰ τῶν URL τῶν ἐξωτέρων (hotlinked) εἰκόνων ἔσονται\n#Αἱ ἀντιστιχοῦσαι, δεικνυμέναι ἔσονται ὡς εἰκόνες· εἰ δὲ μή, εἷς μόνον σύνδεσμος πρὸς τὴν εἰκόνα δείξεται\n#Αἱ γραμμαὶ αἱ ἀρχόμεναι ἐκ τοῦ # θεωροῦνται σχόλια\n#Ὅδε ὁ κατάλογος οὐ διακρίνεται εἰς κεφαλαῖα καὶ μικρὰ γράμματα\n\n#Ὰπόθες ἅπαντα τὰ τεμάχια συνήθων ἐκφράσεων ἄνωθεν τῆσδε τῆς γραμμῆς. Ἄφες τήνδε τὴν γραμμὴν ὡς ἔστι ἐν τῷ παρόντι</pre>",
index f06d070..dd47af1 100644 (file)
@@ -18,7 +18,8 @@
                        "The Evil IP address",
                        "Urhixidur",
                        "לערי ריינהארט",
-                       "80686"
+                       "80686",
+                       "아라"
                ]
        },
        "tog-underline": "Links unterstryche",
        "version-parser-function-hooks": "Parser-Funktione",
        "version-hook-name": "Schnittstellename",
        "version-hook-subscribedby": "Ufruef vu",
-       "version-version": "(Version $1)",
+       "version-version": "($1)",
        "version-license": "Lizänz",
        "version-ext-license": "Lizänz",
        "version-ext-colheader-name": "Erwyterig",
        "logentry-rights-autopromote": "$1 isch automatisch vu $4 zue $5 zuegordnet wore",
        "rightsnone": "(keini)",
        "revdelete-summary": "Zämmefassig",
+       "feedback-adding": "Ruggmäldig wird zur Syte dezuegfiegt …",
+       "feedback-bugcheck": "Schen! Bitte iberprief no, eb s sich doderby nit um e scho [$1 bekannte Fähler] handlet.",
+       "feedback-bugnew": "Ich haa s iberprieft. Dr nej Fähler mälde.",
        "feedback-bugornote": "Wän Du detailliert e tächnisch Probläm witt bschryybe, no mäld bitte [$1 ne Fähler].\nSunscht chasch au s eifach Formular unte nutze. Dyy Kommentar wird, zämme mit Dyym Benutzername un dr Version vu Dyym Webbrowser un em Betribssyschtem, uf dr Syte „[$3 $2]“ zuegfiegt.",
-       "feedback-subject": "Beträff:",
-       "feedback-message": "Noochricht:",
        "feedback-cancel": "Abbräche",
-       "feedback-submit": "Ruggmäldig abschigge",
-       "feedback-adding": "Ruggmäldig wird zur Syte dezuegfiegt …",
+       "feedback-close": "Isch gmacht",
        "feedback-error1": "Fäälermäldig: Unbekannts Ergebniss vo de API",
        "feedback-error2": "Fääler: Bearbeitig fehlgschlo",
        "feedback-error3": "Fäälermäldig: Kei Antwort vo de API",
+       "feedback-message": "Noochricht:",
+       "feedback-subject": "Beträff:",
+       "feedback-submit": "Ruggmäldig abschigge",
        "feedback-thanks": "Dankschen. Dyy Ruckmäldig isch uf dr Syte „[$2 $1]“ gspycheret wore.",
-       "feedback-close": "Isch gmacht",
-       "feedback-bugcheck": "Schen! Bitte iberprief no, eb s sich doderby nit um e scho [$1 bekannte Fähler] handlet.",
-       "feedback-bugnew": "Ich haa s iberprieft. Dr nej Fähler mälde.",
        "searchsuggest-search": "Suechi",
        "searchsuggest-containing": "din het s …",
        "api-error-badaccess-groups": "Du derfsch keini Dateie in des Wiki uffelade.",
index 3723585..7946f02 100644 (file)
@@ -22,7 +22,8 @@
                        "Sushant savla",
                        "לערי ריינהארט",
                        "아라",
-                       "Vyom"
+                       "Vyom",
+                       "Macofe"
                ]
        },
        "tog-underline": "કડીઓની નીચે લીટી (અંડરલાઇન):",
        "import-error-invalid": "પાનું \"$1\" આયાત થયું નથી કારણ કે તેનું નામ આ વિકિ માટે અયોગ્ય છે.",
        "importlogpage": "આયાત માહિતિ પત્રક",
        "importlogpagetext": "અન્ય  વિકિમાંથી ઈતિહાસ સહિત પાનાની પ્રબંધકીય આયાત",
-       "import-logentry-upload": "ફાઇલ ચઢાવનાર દ્વારા [[$1]] આયાત કરાઇ",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|પુનરાવર્તન|પુનરાવર્તનો}} આયાત કરેલ છે",
-       "import-logentry-interwiki": "આંતરવિકિ  $1",
        "import-logentry-interwiki-detail": "$2 માંથી આયાત કરેલ $1 {{PLURAL:$1|પુનરાવર્તન|પુનરાવર્તનો}}",
        "javascripttest": "જાવા સ્ક્રીપ્ટ પરીક્ષણ",
        "javascripttest-pagetext-noframework": "આ પાનું જાવા સ્ક્રીપ્ટ ચલાવવા આરક્ષિત છે.",
        "version-parser-function-hooks": "પદચ્છેદ કાર્ય ખૂંટા",
        "version-hook-name": "ખૂંટાનું નામ્",
        "version-hook-subscribedby": "દ્વ્રારા લાભાન્વીત",
-       "version-version": "(આવૃત્તિ $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[નામ નથી]",
        "version-license": "મીડિઆવિકિ લાયસન્સ",
        "version-ext-license": "લાયસન્સ",
        "logentry-newusers-autocreate": "વપરાશકર્તા ખાતું $1 આપમેળે {{GENDER:$2|બનાવવામાં આવ્યું હતું}}",
        "rightsnone": "(કંઈ નહી)",
        "revdelete-summary": "સંપાદનનો સંક્ષિપ્ત અહેવાલ",
+       "feedback-adding": "પ્રતિભાવ આ પાના પર ઉમેરાઈ રહ્યો છે.",
+       "feedback-bugcheck": "સરસ! જરા જોઈ લેશો કે આ  પહેલેથી જ હાજર [$1 known bugs] નથીને?",
+       "feedback-bugnew": "મેં તપાસ્યું.  નવી ત્રુટીની જાણ કરો.",
        "feedback-bugornote": "જો તમે તકનીકી સમસ્યા વર્ણવવા માંગતા હોય તો  કૃપયા [$1 report a bug] એ બગ અહીં નોંધાવો.\nઅન્યથા, તમે નીચે આપેલ સરળ ફોર્મ વાપરી શકો છો. તમારા સભ્ય નામ અને કયું બ્રાઉઝર વાપરો છો તેની માહિતી સાથે, તમારી ટિપ્પણીનો \"[$3 $2]\" પાનામાં સમાવેશ કરાશે.",
-       "feedback-subject": "વિષય:",
-       "feedback-message": "સંદેશ",
        "feedback-cancel": "રદ કરો",
-       "feedback-submit": "પ્રતિભાવ આપો",
-       "feedback-adding": "પ્રતિભાવ આ પાના પર ઉમેરાઈ રહ્યો છે.",
+       "feedback-close": "સંપન્ન",
        "feedback-error1": "ક્ષતિ:API તરફથી અજાણ પરિણામ",
        "feedback-error2": "ક્ષતિ:ફેરફાર નિષ્ફળ",
        "feedback-error3": "ત્રુટી: API તરફથી કોઈ પ્રત્યુત્તર નથી",
+       "feedback-message": "સંદેશ",
+       "feedback-subject": "વિષય:",
+       "feedback-submit": "જમા કરો",
        "feedback-thanks": "આભર! તમારા પ્રતિભાવને \"[$2 $1]\" પાના પર મુકાયા છે.",
-       "feedback-close": "સંપન્ન",
-       "feedback-bugcheck": "સરસ! જરા જોઈ લેશો કે આ  પહેલેથી જ હાજર [$1 known bugs] નથીને?",
-       "feedback-bugnew": "મેં તપાસ્યું.  નવી ત્રુટીની જાણ કરો.",
        "searchsuggest-search": "શોધો",
        "searchsuggest-containing": "ધરાવતી...",
        "api-error-badaccess-groups": "આ વિકિ પર ફાઈલ ચઢાવવાની પરવાનગી તમને નથી.",
index 8bfbdbd..b972f29 100644 (file)
        "deleteotherreason": "Fa elley/tooilley:",
        "deletereasonotherlist": "Fa elley",
        "deletereason-dropdown": "*Fa scryssey cadjin\n** Aghin yn ughtar\n** Brishey choip-chiart\n** Cragheydys",
-       "rollback_short": "Aahogherys",
        "rollbacklink": "aahogher",
        "editcomment": "V'eh \"''$1''\" giare-choontys y reaghey.",
        "protectlogpage": "Lioar choadee",
        "version": "Lhieggan",
        "version-specialpages": "Duillagyn er lheh",
        "version-other": "Elley",
-       "version-version": "(Lhieggan $1)",
+       "version-version": "($1)",
        "version-license": "Kiedoonys",
        "version-software-version": "Lhieggan",
        "fileduplicatesearch-filename": "Ennym y choadan:",
index e8169dd..65176b1 100644 (file)
@@ -6,7 +6,8 @@
                        "Kolonahe",
                        "Node ue",
                        "Singularity",
-                       "Xqt"
+                       "Xqt",
+                       "Macofe"
                ]
        },
        "tog-underline": "Kahalalo i nā loulou:",
        "htmlform-yes": "ʻAe",
        "htmlform-chosen-placeholder": "Koho i kekahi koho",
        "rightsnone": "(ʻaʻohe)",
-       "feedback-subject": "Kumunui:",
-       "feedback-message": "Pūlono:",
-       "feedback-cancel": "Hoʻōki",
-       "feedback-submit": "Hoʻouna i nā Manaʻo",
        "feedback-adding": "Ke hoʻohui nei i ka manaʻo i ka ʻaoʻao...",
+       "feedback-cancel": "Hoʻōki",
        "feedback-close": "Ua pau",
+       "feedback-message": "Pūlono:",
+       "feedback-subject": "Kumunui:",
+       "feedback-submit": "Waiho",
        "searchsuggest-search": "Huli",
        "api-error-unknown-code": "Hewa ʻikeʻole: \"$1\".",
        "api-error-unknown-warning": "Akahele ʻikeʻole: \"$1\".",
index 23529df..9235b4b 100644 (file)
        "disclaimers": "הבהרה משפטית",
        "disclaimerpage": "Project:הבהרה משפטית",
        "edithelp": "עזרה לעריכה",
+       "helppage-top-gethelp": "עזרה",
        "mainpage": "עמוד ראשי",
        "mainpage-description": "עמוד ראשי",
        "policy-url": "Project:נהלים",
        "missingcommentheader": "<strong>תזכורת:</strong> לא הזנת נושא/כותרת להודעה זו.\nלחיצה חוזרת על הכפתור \"{{int:savearticle}}\" תגרום לעריכה שלך להישמר ללא נושא/כותרת.",
        "summary-preview": "תצוגה מקדימה של התקציר:",
        "subject-preview": "תצוגה מקדימה של הנושא/הכותרת:",
+       "previewerrortext": "אירעה שגיאה בעת הניסיון להציג תצוגה מקדימה של השינויים שלך.",
        "blockedtitle": "המשתמש חסום",
        "blockedtext": "'''שם המשתמש או כתובת ה־IP שלכם נחסמו.'''\n\nהחסימה בוצעה על ידי $1. הסיבה שניתנה לכך היא '''$2'''.\n\n* תחילת החסימה: $8\n* פקיעת החסימה: $6\n* החסימה שבוצעה: $7\n\nבאפשרותכם ליצור קשר עם $1 או עם כל אחד מ[[{{MediaWiki:Grouppage-sysop}}|מפעילי המערכת]] האחרים כדי לדון על החסימה.\nאינכם יכולים להשתמש בתכונת \"שליחת דואר אלקטרוני למשתמש זה\" אם לא ציינתם כתובת דוא\"ל תקפה ב[[Special:Preferences|העדפות המשתמש שלכם]] או אם נחסמתם משליחת דוא\"ל.\nכתובת ה־IP שלכם היא $3, ומספר החסימה שלכם הוא #$5.\nאנא ציינו את כל הפרטים הללו בכל פנייה למפעילי המערכת.",
        "autoblockedtext": "כתובת ה־IP שלכם נחסמה באופן אוטומטי כיוון שמשתמש אחר, שנחסם על־ידי $1, השתמש בה.\nהסיבה שניתנה לחסימה היא:\n\n:<em>$2</em>\n\n* תחילת החסימה: $8\n* פקיעת החסימה: $6\n* החסימה שבוצעה: $7\n\nבאפשרותכם ליצור קשר עם $1 או עם כל אחד מ[[{{MediaWiki:Grouppage-sysop}}|מפעילי המערכת]] האחרים כדי לדון בחסימה.\n\nבאפשרותכם להשתמש בתכונת \"שליחת דואר אלקטרוני למשתמש זה\", אלא אם לא ציינתם כתובת דוא\"ל תקינה ב[[Special:Preferences|העדפות המשתמש שלכם]] או אם נחסמתם משליחת דוא\"ל.\n\nכתובת ה־IP שלכם היא $3, ומספר החסימה שלכם הוא #$5.\nאנא ציינו את כל הפרטים הללו בכל פנייה למפעילי המערכת.",
        "sessionfailure": "נראה שיש בעיה בחיבורכם לאתר;\nפעולתכם בוטלה כאמצעי זהירות נגד התחזות לתקשורת ממחשבכם.\nאנא חזרו לדף הקודם, העלו אותו מחדש ונסו שוב.",
        "protectlogpage": "יומן הגנות",
        "protectlogtext": "להלן רשימה של שינויי ההגנה על דפים.\nראו גם את [[Special:ProtectedPages|רשימת הדפים המוגנים]] הנוכחית.",
-       "protectedarticle": "הפעיל הגנה על [[$1]]",
-       "modifiedarticleprotection": "שינה את רמת ההגנה של \"[[$1]]\"",
-       "unprotectedarticle": "ביטל את ההגנה על [[$1]]",
+       "protectedarticle": "הפעיל הגנה על הדף \"[[$1]]\"",
+       "modifiedarticleprotection": "שינה את רמת ההגנה של הדף \"[[$1]]\"",
+       "unprotectedarticle": "ביטל את ההגנה על הדף \"[[$1]]\"",
        "movedarticleprotection": "העביר את הגדרות ההגנה מ\"[[$2]]\" ל\"[[$1]]\"",
-       "protect-title": "שינוי רמת ההגנה של \"$1\"",
-       "protect-title-notallowed": "הצגת רמת ההגנה של \"$1\"",
+       "protect-title": "שינוי רמת ההגנה של הדף \"$1\"",
+       "protect-title-notallowed": "הצגת רמת ההגנה של הדף \"$1\"",
        "prot_1movedto2": "[[$1]] הועבר לשם [[$2]]",
        "protect-badnamespace-title": "מרחב שם שבו לא ניתן להגן על דפים",
        "protect-badnamespace-text": "לא ניתן להגן על דפים במרחב שם זה.",
        "import-rootpage-nosubpage": "מרחב השם \"$1\" של דף הבסיס אינו מאפשר דפי־משנה.",
        "importlogpage": "יומן ייבוא",
        "importlogpagetext": "ייבוא מנהלי של דפים (כולל היסטוריית העריכות שלהם) מאתרי ויקי אחרים.",
-       "import-logentry-upload": "ייבא את [[$1]] באמצעות העלאת קובץ",
        "import-logentry-upload-detail": "{{PLURAL:$1|גרסה אחת יובאה|$1 גרסאות יובאו}}",
-       "import-logentry-interwiki": "ייבא את $1 בייבוא בין־אתרי",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|גרסה אחת של הדף $2 יובאה|$1 גרסאות של הדף $2 יובאו}}",
        "javascripttest": "בדיקת JavaScript",
        "javascripttest-pagetext-noframework": "דף זה שמור להרצת בדיקות JavaScript.",
        "logentry-block-reblock": "$1 {{GENDER:$2|שינה|שינתה}} את הגדרות החסימה של {{GENDER:$4|$3}} עם זמן פקיעה של $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|חסם|חסמה}} את {{GENDER:$4|$3}} עם זמן פקיעה של $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|שינה|שינתה}} את הגדרות החסימה של {{GENDER:$4|$3}} עם זמן פקיעה של $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|ייבא|ייבאה}} את $3 באמצעות העלאת קובץ",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|ייבא|ייבאה}} את $3 מאתר ויקי אחר",
        "logentry-merge-merge": "$1 {{GENDER:$2|מיזג|מיזגה}} את $3 לתוך $4 (גרסאות עד $5)",
        "logentry-move-move": "$1 {{GENDER:$2|העביר|העבירה}} את הדף $3 ל{{GRAMMAR:תחילית|$4}}",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|העביר|העבירה}} את הדף $3 ל{{GRAMMAR:תחילית|$4}} בלי להשאיר הפניה",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|ביטל|ביטלה}} את הפעלת התגית \"$4\" לשימוש על־ידי משתמשים ובוטים",
        "rightsnone": "(כלום)",
        "revdelete-summary": "תקציר העריכה",
+       "feedback-adding": "הוספת משוב לדף...",
+       "feedback-back": "חזרה",
+       "feedback-bugcheck": "מצוין! נא לבדוק שזה לא אחד מה[$1 באגים הידועים].",
+       "feedback-bugnew": "בדקתי. נא לדווח כבאג חדש",
        "feedback-bugornote": "אם אתם מוכנים לתאר בעיה טכנית בפרטים, אנא [$1 דווחו באג].\nאחרת, תוכלו להשתמש בטופס הפשוט שלהלן. הערתכם תתווסף לדף \"[$3 $2]\", יחד עם שם המשתמש שלכם.",
-       "feedback-subject": "נושא:",
-       "feedback-message": "הודעה:",
        "feedback-cancel": "ביטול",
-       "feedback-submit": "שליחת משוב",
-       "feedback-adding": "הוספת משוב לדף...",
+       "feedback-close": "סיום",
+       "feedback-external-bug-report-button": "דיווח על משימה טכנית",
+       "feedback-dialog-title": "שליחת המשוב",
+       "feedback-dialog-intro": "באפשרותך להשתמש בטופס הפשוט שלהלן כדי לשלוח משוב. ההערה שלך תתווסף לדף \"$1\", יחד עם שם המשתמש שלך.",
+       "feedback-error-title": "שגיאה",
        "feedback-error1": "שגיאה: תוצאה לא מזוהה מה־API",
        "feedback-error2": "שגיאה: העריכה נכשלה",
        "feedback-error3": "שגיאה: אין תשובה מה־API",
+       "feedback-message": "הודעה:",
+       "feedback-subject": "נושא:",
+       "feedback-submit": "שליחה",
+       "feedback-terms": "ידוע לי שפרטי ה־user agent שלי כוללים מידע על הגרסאות המדויקות של הדפדפן ומערכת ההפעלה שלי, ושהם יפורסמו בפומבי לצד המשוב ששלחתי.",
+       "feedback-termsofuse": "מוסכם עלי ששליחת המשוב היא בהתאם לתנאי השימוש.",
        "feedback-thanks": "תודה! המשוב שלך פורסם בדף \"[$2 $1]\".",
-       "feedback-close": "סיום",
-       "feedback-bugcheck": "מצוין! נא לבדוק שזה לא אחד מה[$1 באגים הידועים].",
-       "feedback-bugnew": "בדקתי. נא לדווח כבאג חדש",
+       "feedback-thanks-title": "תודה!",
+       "feedback-useragent": "User agent:",
        "searchsuggest-search": "חיפוש",
        "searchsuggest-containing": "כולל...",
        "api-error-badaccess-groups": "אינך מורשה להעלות קבצים לאתר הוויקי הזה.",
index c4529fd..682e806 100644 (file)
                        "रोहित रावत",
                        "아라",
                        "संजीव कुमार",
-                       "बिप्लब आनन्द"
+                       "बिप्लब आनन्द",
+                       "Phoenix303",
+                       "Steinsplitter",
+                       "Macofe"
                ]
        },
        "tog-underline": "कड़ियाँ अधोरेखन:",
        "disclaimers": "अस्वीकरण",
        "disclaimerpage": "Project:साधारण अस्वीकरण",
        "edithelp": "सम्पादन सहायता",
+       "helppage-top-gethelp": "सहायता",
        "mainpage": "मुखपृष्ठ",
        "mainpage-description": "मुखपृष्ठ",
        "policy-url": "Project:नीति",
        "readonly_lag": "उपमुख्य डाटाबेस सर्वर मुख्य डाटाबेस सर्वर के बराबर अद्यातानीत होने तक मुख्य डाटाबेस सर्वर लॉक हो गया है।",
        "internalerror": "आन्तरिक त्रुटि",
        "internalerror_info": "आन्तरिक त्रुटि: $1",
+       "internalerror-fatal-exception": "प्रकार की गंभीर अपवाद \"$1\"",
        "filecopyerror": "\"$1\" फ़ाइल की \"$2\" पर प्रतिलिपि नहीं बन पाई।",
        "filerenameerror": "\"$1\" फ़ाइल का नाम बदलकर \"$2\" नहीं रखा जा सका।",
        "filedeleteerror": "\"$1\" फ़ाइल को हटाया नहीं जा सका।",
        "viewyourtext": "आप इस पृष्ठ में ''अपने सम्पादन'' का स्रोत देख सकते हैं और उसकी नकल उतार सकते हैं:",
        "protectedinterface": "यह पृष्ठ इस विकी के सॉफ़्टवेयर का इंटरफ़ेस पाठ देता है, और इसे गलत प्रयोग से बचाने के लिये सुरक्षित कर दिया गया है।\nसभी विकियों के लिए अनुवाद जोड़ने या बदलने के लिए कृपया मीडियाविकि के क्षेत्रीयकरण प्रकल्प [//translatewiki.net/ translatewiki.net] का प्रयोग करें।",
        "editinginterface": "<strong>चेतावनी:</strong> आप एक ऐसे पृष्ठ को बदल रहे हैं जो सॉफ़्टवेयर का इंटरफ़ेस पाठ प्रदान करता है।\nइस पृष्ठ को बदलने से अन्य सदस्यों को प्रदर्शित इंटरफ़ेस की शक्लोसूरत में बदलाव आएगा।",
+       "translateinterface": "सभी विकियों के लिए अनुवाद जोड़ने या बदलने के लिए मीडियाविकि क्षेत्रीयकरण परियोजना [//translatewiki.net/ translatewiki.net] का प्रयोग करें।",
        "cascadeprotected": "यह पृष्ठ सुरक्षित हैं, क्योंकी यह निम्नलिखित {{PLURAL:$1|पृष्ठ|पृष्ठों}} की सुरक्षा-सीढ़ी में समाविष्ट है:\n$2",
        "namespaceprotected": "आपको '''$1''' नामस्थान में समाविष्ट पृष्ठों को बदलने की अनुमति नहीं है।",
        "customcssprotected": "आपको इस CSS पृष्ठ को संपादित करने की अनुमति नहीं है, क्योंकि इसमें अन्य सदस्य की व्यक्तिगत सेटिंग्स शामिल हैं।",
        "createaccount-text": "आपके ई-मेल पते के लिये किसी ने {{SITENAME}} ($4) पर \"$2\" सदस्य नाम से \"$3\" कूटशब्द (पासवर्ड) सहित खाता खोला है।\nआपको लॉग इन कर के अपना कूटशब्द (पासवर्ड) तुरंत बदल लेना चाहिये।\n\nयदि यह खाता गलती से खोला गया है, तो आप इस मेसेज को नज़रंदाज़ कर सकते हैं।",
        "login-throttled": "आपने हाल ही में कई बार लॉग इन करने के प्रयास किये हैं।\nपुनः प्रयास करने से पहले कृपया $1 प्रतीक्षा करें।",
        "login-abort-generic": "आपका सत्रारम्भ असफल रहा - निष्फलित",
+       "login-migrated-generic": "आपका खाता माइग्रेट हो गया है और आपका सदस्यनाम इस विकी पर अब मौजूद नहीं है।",
        "loginlanguagelabel": "भाषा: $1",
        "suspicious-userlogout": "अपका लॉग आउट करने का अनुरोध अस्वीकृत कर दिया गया है क्योंकि ऐसा प्रतीत होता है कि यह किसी खराब ब्राउज़र या कैश करने वाली प्रॉक्सी द्वारा भेजा गया था।",
        "createacct-another-realname-tip": "असली नाम देना आवश्यक नहीं है।\nयदि आप प्रदान करते हैं तो इसका प्रयोग सदस्य के योगदानों के लिये उनको श्रेय (attribution) देने के लिये किया जायेगा।",
        "preview": "झलक",
        "showpreview": "झलक दिखाएँ",
        "showdiff": "बदलाव दिखाएँ",
+       "blankarticle": "<strong>चेतावनी:</strong> आप एक रिक्त पृष्ठ का निर्माण कर रहे हैं।\nयदि आप \"{{int:savearticle}}\" को पुनः दबाते हैं तो पृष्ठ को बिना किसी सामग्री के निर्मित किया जाएगा।",
        "anoneditwarning": "<strong>सावधान:</strong> आपने सत्रारंभ नहीं किया है। यदि आप सम्पादन करते हैं तो इस पृष्ठ के संपादन इतिहास में आपका आइ॰पी पता अंकित किया जाएगा। यदि आप <strong>[$1 लॉगिन]</strong> करते हैं अथवा <strong>[$2 खाता बनाते हैं]</strong> तो अन्य सुविधाओं के साथ-साथ आपके संपादनों का श्रेय आपके सदस्यनाम पर दिया जाएगा।",
        "anonpreviewwarning": "''आप लॉग्ड इन नहीं हैं। पृष्ठ सहेजने पर आपका आइ॰पी पता इस पृष्ठ के इतिहास में दर्ज किया जायेगा।''",
        "missingsummary": "'''अनुस्मारक:''' आपने संपादन सारांश नहीं दिया है।\nअगर आप दुबारा \"{{int:savearticle}}\" पर क्लिक करते हैं तो आपका संपादन बिना सारांश के संजोया जायेगा।",
+       "selfredirect": "<strong>चेतावनी:</strong> आप खुद को इस पेज पुनः निर्देशित कर रहे हैं।\nआप अनुप्रेषित के लिए गलत लक्ष्य निर्दिष्ट हो सकता है, या आप गलत पृष्ठ का संपादन किया जा सकता है।\nआप फिर से \"{{int:savearticle}}\" क्लिक करते हैं, रीडायरेक्ट वैसे भी बनाया जाएगा।",
        "missingcommenttext": "कृपया नीचे टिप्पणी दें।",
        "missingcommentheader": "'''अनुस्मारक:''' आपने इस टिप्पणी का कोई शीर्षक नहीं दिया है।\nअगर आप \"{{int:savearticle}}\" पर दोबारा क्लिक करते हैं तो आपके बदलाव बिना शीर्षक के संजोये जायेंगे।",
        "summary-preview": "सारांश की झलक:",
        "content-model-text": "सामान्य पाठ",
        "content-model-javascript": "जावास्क्रिप्ट",
        "content-model-css": "सी॰एस॰एस",
+       "content-json-empty-object": "रिक्त ऑब्जेक्ट",
+       "content-json-empty-array": "रिक्त ऐरे",
+       "duplicate-args-category": "टेम्पलेट कॉल में डुप्लिकेट तर्क का उपयोग करते हुए पन्ने",
+       "duplicate-args-category-desc": "पेज जैसे तर्कों के डुप्लिकेट का उपयोग करने वाले टेम्पलेट कॉल, जैसे <code><nowiki>{{foo|bar=1|bar=2}}</nowiki></code> ओैर <code><nowiki>{{foo|bar|1=baz}}</nowiki></code>.",
        "expensive-parserfunction-warning": "'''चेतावनी:''' इस पृष्ठ पर बहुत अधिक संख्या में कीमती पार्सर फ़ंक्शनों का प्रयोग किया गया है।\n\nइनका प्रयोग $2 से कम बार होना चाहिये, इस समय प्रयोग $1 बार {{PLURAL:$1|है|हैं}}।",
        "expensive-parserfunction-category": "कीमती पार्सर फ़ंक्शनों का अत्यधिक प्रयोग कर रहे पृष्ठ",
        "post-expand-template-inclusion-warning": "'''चेतावनी:''' साँचे जुड़ने की सीमा पार हो चुकी है।\nकुछ साँचे नहीं जुड़ेंगे।",
        "revdelete-selected-text": "[[:$2]] {{PLURAL:$1|का|के}} चयनित अवतरण:",
        "revdelete-selected-file": "[[:$2]] {{PLURAL:$1|का|के}} चयनित फ़ाइल अवतरण:",
        "logdelete-selected": "{{PLURAL:$1|चुना हुआ|चुने हुए}} लॉग इवेंट:",
+       "revdelete-text-text": "हटाए गए अवतरण पृष्ठ इतिहास में दर्शाए जाएँगे परन्तु उनकी सामग्री सार्वजनिक रूप से नहीं देखी जा सकेगी।",
+       "revdelete-text-file": "हटाए गए फ़ाइल अवतरण फ़ाइल इतिहास में दर्शाए जायेंगे परन्तु सामग्री सार्वजनिक रूप से नहीं देखी जा सकेगी।",
+       "logdelete-text": "हटाए गए प्रवेश घटनाओं अभी भी लॉग में दिखाई देंगे, लेकिन उनकी सामग्री के कुछ हिस्सों को सार्वजनिक करने के लिए दुर्गम हो जाएगा।",
+       "revdelete-text-others": "अन्य प्रशासकों अभी भी छिपा सामग्री का उपयोग करने के लिए और अतिरिक्त प्रतिबंध सेट कर रहे हैं, जब तक यह अ-नष्ट करने में सक्षम हो जाएगा।",
        "revdelete-confirm": "पुष्टि करें कि आप यह कार्य करना चाहते हैं, आप इसका परिणाम समझते हैं, और आप ये [[{{MediaWiki:Policy-url}}|नीति]] के अनुसार कर रहे हैं।",
        "revdelete-suppress-text": "छिपाने का प्रयोग <strong>केवल</strong> इन परिस्थितियों में होना चाहिए:\n* संभावित अपमानजनक जानकारी\n* अनुपयुक्त निजी जानकारी\n*: <em>घर के पते व दूरभाष, राष्ट्रीय पहचान क्रमांक आदि।</em>",
        "revdelete-legend": "दृश्य प्रतिबंध निश्चित करें",
        "mergehistory-empty": "कोई भी अवतरण एकत्रित नहीं कर सकते।",
        "mergehistory-success": "[[:$1]] {{PLURAL:$3|का|के}} $3 अवतरण [[:$2]] में एकत्रित कर {{PLURAL:$3|दिया गया है|दिये गए हैं}}।",
        "mergehistory-fail": "इतिहास एकत्रित नहीं कर सकते, कृपया पृष्ठ और समय की पुनः जाँच करें।",
+       "mergehistory-fail-toobig": "इतिहास विलय करना संभव नहीं है क्योंकि अवतरण सीमा $1 से अधिक {{PLURAL:$1|अवतरण|अवतरणों}} को स्थानांतरित करना होगा।",
        "mergehistory-no-source": "स्रोत पृष्ठ $1 मौजूद नहीं है।",
        "mergehistory-no-destination": "लक्ष्य पृष्ठ $1 मौजूद नहीं है।",
        "mergehistory-invalid-source": "स्रोत पृष्ठ का शीर्षक वैध होना आवश्यक है।",
        "search-result-category-size": "{{PLURAL:$1|$1 सदस्य}} ({{PLURAL:$2|$2 उपश्रेणी|$2 उपश्रेणियाँ}}, {{PLURAL:$3|$3 सञ्चिका|$3 सञ्चिकाएँ}})",
        "search-redirect": "($1 से पुनर्निर्देशित)",
        "search-section": "(अनुभाग $1)",
+       "search-category": "(श्रेणी $1)",
        "search-file-match": "(फ़ाइल सामग्री से मेल खाता है)",
        "search-suggest": "कहीं आपका मतलब $1 तो नहीं था?",
        "search-interwiki-caption": "अन्य प्रकल्प",
        "powersearch-togglelabel": "चुनें:",
        "powersearch-toggleall": "सभी",
        "powersearch-togglenone": "कोई भी नहीं",
+       "powersearch-remember": "चुनाव को भविष्य की खोजों के लिए याद रखें",
        "search-external": "बाहरी खोज",
        "searchdisabled": "{{SITENAME}} पर खोज अक्षम है।\nआप गूगल से खोज कर सकते हैं।\nध्यान रखें कि उनकी {{SITENAME}} सामग्री की सूची पुरानी हो सकती है।",
        "search-error": "खोजते समय निम्न त्रुटि उत्पन्न हुई है: $1",
        "prefs-personal": "सदस्य व्यक्तिरेखा",
        "prefs-rc": "हाल में हुए बदलाव",
        "prefs-watchlist": "ध्यानसूची",
+       "prefs-editwatchlist": "ध्यानसूची सम्पादित करें",
+       "prefs-editwatchlist-label": "अपनी ध्यानसूची की प्रविष्टियाँ सम्पादित करें:",
+       "prefs-editwatchlist-edit": "देखें और अपनी वॉचलिस्ट पर खिताब को दूर।",
+       "prefs-editwatchlist-raw": "कच्ची ध्यानसूची बदलें",
+       "prefs-editwatchlist-clear": "अपनी ध्यानसूची साफ करे",
        "prefs-watchlist-days": "ध्यानसूची में दिखाने के दिन:",
        "prefs-watchlist-days-max": "अधिकतम $1 {{PLURAL:$1|दिन}}",
        "prefs-watchlist-edits": "बढ़ाई हुई ध्यानसूची में दिखाने हेतु अधिकतम बदलाव:",
        "right-browsearchive": "हटाए गए पृष्ठ खोजें",
        "right-undelete": "पृष्ठ पुनर्स्थापित करें",
        "right-suppressrevision": "किसी भी सदस्य से छुपे हुए अवतरण देखें, छुपायें और पुनर्स्थापित करें",
+       "right-viewsuppressed": "देखें संशोधन किसी भी उपयोगकर्ता से छुपा।",
        "right-suppressionlog": "खासगी लॉग देखें",
        "right-block": "अन्य सदस्यों को सम्पादन करने से ब्लॉक करें",
        "right-blockemail": "सदस्यों को ई-मेल भेजने से ब्लॉक करें",
        "right-protect": "सुरक्षा स्तर बदलें और सीढ़ी-सुरक्षित पृष्ठ सम्पादित करें",
        "right-editprotected": "उन सुरक्षित पृष्ठ सम्पादित करें जिनके सम्पादन की \"{{int:protect-level-sysop}}\"",
        "right-editsemiprotected": "उन पृष्ठों को सम्पादित करें जिनका सुरक्षा स्तर है \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "एक पेज की सामग्री मॉडल को संपादित।",
        "right-editinterface": "सॉफ़्टवेयर इंटरफ़ेस सम्पादित करें",
        "right-editusercssjs": "अन्य सदस्यों के सी॰एस॰एस और जावास्क्रिप्ट पृष्ठ सम्पादित करें",
        "right-editusercss": "अन्य सदस्यों के सी॰एस॰एस पृष्ठ सम्पादित करें",
        "right-override-export-depth": "पृष्ठ निर्यात करें, पाँच स्तर की गहराई तक जुड़े हुए पृष्ठों समेत",
        "right-sendemail": "अन्य सदस्यों को ई-मेल भेजें",
        "right-passwordreset": "कूटशब्द रीसेट ई-मेल देखें",
+       "right-managechangetags": "डेटाबेस से [[Special:Tags|चिप्पियाँ]] बनायें और हटायें",
        "newuserlogpage": "सदस्य खाता निर्माण लॉग",
        "newuserlogpagetext": "यह सदस्य खातों के निर्माण का लॉग है।",
        "rightslog": "सदस्य अधिकार लॉग",
        "action-viewmywatchlist": "अपनी ध्यानसूची देखने",
        "action-viewmyprivateinfo": "अपनी व्यक्तिगत जानकारी देखने",
        "action-editmyprivateinfo": "अपनी व्यक्तिगत जानकारी बदलने",
+       "action-editcontentmodel": "एक पेज की सामग्री मॉडल को संपादित।",
+       "action-managechangetags": "डेटाबेस से चिप्पि बनायें और हटायें",
        "nchanges": "$1 {{PLURAL:$1|बदलाव}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|अंतिम बार देखने के बाद से}}",
        "enhancedrc-history": "इतिहास",
        "download": "डाउनलोड",
        "unwatchedpages": "ध्यान न दिये हुए पृष्ठ",
        "listredirects": "पुनर्निर्देशनों की सूची",
+       "listduplicatedfiles": "डुप्लिकेट के साथ फाइलों की सूची।",
        "unusedtemplates": "अप्रयुक्त साँचे",
        "unusedtemplatestext": "इस पृष्ठ पर {{ns:template}} नामस्थान वाले वे सभी पृष्ठ इंगित है जो किसी अन्य पृष्ठ में शामिल नहीं हैं।\nइन्हें हटाने के पहले इन साँचों की और कड़ियाँ जाँच लें।",
        "unusedtemplateswlh": "अन्य कड़ियाँ",
        "randomincategory-invalidcategory": "\"$1\" एक मान्य श्रेणी नाम नहीं है।",
        "randomincategory-nopages": "[[:Category:$1|$1]] श्रेणी में कोई पृष्ठ नहीं हैं।",
        "randomincategory-category": "श्रेणी:",
+       "randomincategory-legend": "श्रेणी में यादृच्छिक पृष्ठ",
        "randomredirect": "किसी एक पुनर्निर्देशन पर जाएँ",
        "randomredirect-nopages": "नामस्थान \"$1\" में कोई पुनर्निर्देशन नहीं हैं।",
        "statistics": "आँकड़े",
        "listgrouprights-addgroup-self-all": "अपने खाते में सभी समूह शामिल करें",
        "listgrouprights-removegroup-self-all": "अपने खाते से सभी समूह हटाएँ",
        "listgrouprights-namespaceprotection-namespace": "नामस्थान",
+       "trackingcategories": "चिह्नित श्रेणियाँ",
+       "trackingcategories-msg": "चिह्नित श्रेणी",
+       "trackingcategories-name": "संदेश नाम",
+       "trackingcategories-desc": "श्रेणी शामिल किए जाने के मानदंड",
        "trackingcategories-nodesc": "कोई वर्णन उपलब्ध नहीं।",
        "mailnologin": "पाने वाले का एड्रेस दिया नहीं",
        "mailnologintext": "अन्य सदस्यों को इ-मेल भेजने के लिये [[Special:UserLogin|लॉग इन]] करना आवश्यक है और आपकी [[Special:Preferences|वरीयताओं]] में वैध ई-मेल पता होना आवश्यक है।",
        "protect-othertime": "अन्य समय:",
        "protect-othertime-op": "अन्य समय",
        "protect-existing-expiry": "मौजूदा सुरक्षा सम्पात होने का समय: $3, $2",
+       "protect-existing-expiry-infinity": "मौजुदा समाप्ति समय: अनंत",
        "protect-otherreason": "अन्य/अतिरिक्त कारण:",
        "protect-otherreason-op": "अन्य कारण",
        "protect-dropdown": "*सुरक्षा के आम कारण\n**अत्यधिक बर्बरता \n**अत्यधिक स्पैम\n**अफलदायी सम्पादन युद्ध\n**अधिक यातायात वाला पृष्ठ",
        "thumbnail_image-missing": "लगता है संचिका नामौजूद है: $1",
        "import": "पृष्ठ इम्पोर्ट करें",
        "importinterwiki": "ट्रान्सविकि आयात",
-       "import-interwiki-text": "आयात करने के लिये एक विकि और एक पृष्ठ चुनें।\nअवतरण दिनांक और संपादक नाम ज्यों-के-त्यों रखे जाएँगे।\nसभी ट्रान्सविकि आयात क्रियाएँ [[Special:Log/import|आयात लॉग]] में डाली जाती हैं।",
+       "import-interwiki-text": "आयात करने के लिये एक विकि और एक पृष्ठ चुनें।\nअवतरण दिनांक और संपादक नाम ज्यों-के-त्यों रखे जाएँगे।\nअन्य विकि से सभी आयात [[Special:Log/import|आयात लॉग]] में डाली जाती हैं।",
+       "import-interwiki-sourcewiki": "स्रोत विकि:",
+       "import-interwiki-sourcepage": "स्रोत पृष्ठ:",
        "import-interwiki-history": "इस पृष्ठ के सभी इतिहास अवतरण कॉपी करें",
        "import-interwiki-templates": "सभी साँचे शामिल करें",
        "import-interwiki-submit": "आयात",
        "import-rootpage-nosubpage": "दिए गए उपसर्ग पृष्ठ \"$1\" के नामस्थान में उप-पृष्ठ नहीं बनाए जा सकते।",
        "importlogpage": "आयात सूची",
        "importlogpagetext": "अन्य विकियों से प्रबन्धकों द्वारा किए गए सम्पादन इतिहास के साथ होने वाले पृष्ठों का आयात।",
-       "import-logentry-upload": "सञ्चिका अपलोड करके [[$1]] का आयात किया",
        "import-logentry-upload-detail": "$1 अवतरण आयात {{PLURAL:$1|किया गया|किये गए}}",
-       "import-logentry-interwiki": "ट्रान्सविकि कर दिया $1",
        "import-logentry-interwiki-detail": "$2 से $1 अवतरण आयात {{PLURAL:$1|किया गया|किये गए}}",
        "javascripttest": "जावास्क्रिप्ट परीक्षण",
        "javascripttest-pagetext-noframework": "यह पृष्ठ जावास्क्रिप्ट परीक्षण चलाने के लिए है।",
        "autosumm-replace": "पृष्ठ को '$1' से बदल रहा है।",
        "autoredircomment": "[[$1]] को अनुप्रेषित",
        "autosumm-new": "'$1' के साथ नया पृष्ठ बनाया",
+       "autosumm-newblank": "रिक्त पृष्ठ बनाया",
        "size-bytes": "$1 B",
        "size-kilobytes": "$1 KB",
        "size-megabytes": "$1 MB",
        "watchlistedit-raw-done": "आपकी ध्यानसूची अपडेट कर दी गई हैं",
        "watchlistedit-raw-added": "{{PLURAL:$1|1शीर्षक|$1 शीर्षक}} बढा दिये:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1शीर्षक|$1 शीर्षक}} हटा दिये:",
+       "watchlistedit-clear-title": "ध्यानसूची खाली की",
+       "watchlistedit-clear-legend": "ध्यानसूची खाली करें",
+       "watchlistedit-clear-explain": "आपकी ध्यानसूची से सभी पृष्ठ हटा दिये जायेंगे",
+       "watchlistedit-clear-titles": "खिताब:",
+       "watchlistedit-clear-done": "आपकी ध्यानसूची खाली कर दी गयी है।",
+       "watchlistedit-clear-removed": "$1 पृष्ठ{{PLURAL:$1|हटाया गया|हटाये गए}}:",
+       "watchlistedit-too-many": "यहाँ दर्शाने के लिए अत्यधिक पृष्ठ हैं।",
        "watchlisttools-clear": "ध्यानसूची खाली करें",
        "watchlisttools-view": "आधारित बदलाव देखें",
        "watchlisttools-edit": "ध्यानसूची देखें एवं संपादित करें",
        "version-hook-name": "हूक नाम",
        "version-hook-subscribedby": "ने सदस्यत्व लिया",
        "version-version": "($1)",
+       "version-no-ext-name": "[कोई नाम नहीं]",
        "version-license": "मीडियाविकि अनुज्ञापत्र",
        "version-ext-license": "लाइसेंस",
        "version-ext-colheader-name": "एक्सटेंशन",
        "version-software": "इन्स्टॉल की हुई प्रणाली",
        "version-software-product": "प्रोडक्ट",
        "version-software-version": "अवतरण",
+       "version-entrypoints": "प्रवेश बिंदु यू॰आर॰एल",
+       "version-entrypoints-header-entrypoint": "प्रवेश बिंदु",
        "version-entrypoints-header-url": "यू॰आर॰एल",
+       "version-libraries": "स्थापित लाइब्रेरी",
+       "version-libraries-library": "लाइब्रेरी",
        "version-libraries-version": "संस्करण",
+       "redirect-legend": "फ़ाइल अथवा पृष्ठ को पुनर्प्रेषण",
+       "redirect-summary": "यह विशेष पृष्ठ फ़ाइलनाम प्रदान करने पर फ़ाइल नाम को, पृष्ठ आइ॰दी अथवा अवतरण आइ॰दी देने पर पृष्ठ को, और सदस्य आइ॰दी देने पर सदस्य पृष्ठ को पुनर्प्रेषित करता है। उदाहरण: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]], या [[{{#Special:Redirect}}/user/101]]।",
        "redirect-submit": "जायें",
        "redirect-lookup": "ढूँढें:",
        "redirect-value": "मूल्य:",
        "redirect-user": "सदस्य आई॰डी",
+       "redirect-page": "पृष्ठ आइ॰डी",
        "redirect-revision": "पृष्ठ अवतरण संख्या",
        "redirect-file": "फ़ाइल नाम",
+       "redirect-not-exists": "यह मान प्राप्त नहीं हुआ",
        "fileduplicatesearch": "फ़ाईल द्विरावृत्ति खोजें",
        "fileduplicatesearch-summary": "हैश वैल्यू के अनुसार फ़ाईल की द्विरावृत्ति खोजें।",
        "fileduplicatesearch-legend": "द्विरावृत्ति के लिये खोजें",
        "tags-tag": "चिप्पी का नाम",
        "tags-display-header": "बदलाव सूचियों में प्रदर्शन",
        "tags-description-header": "अर्थ का पूरा वर्णन",
+       "tags-source-header": "स्रोत",
        "tags-active-header": "सक्रिय?",
        "tags-hitcount-header": "चिप्पी वाले बदलाव",
+       "tags-actions-header": "क्रियाएं",
        "tags-active-yes": "हाँ",
        "tags-active-no": "नहीं",
+       "tags-source-extension": "एक्सटेंशन द्वारा परिभाषित",
+       "tags-source-manual": "उपयोगकर्ताओं और बॉट द्वारा नियमानुसार लागू",
+       "tags-source-none": "अब प्रयोग में नहीं",
        "tags-edit": "सम्पादन",
+       "tags-delete": "हटाएँ",
+       "tags-activate": "सक्रिय करें",
+       "tags-deactivate": "निष्क्रिय करें",
        "tags-hitcount": "$1 {{PLURAL:$1|बदलाव|बदलाव}}",
+       "tags-create-tag-name": "चिप्पी का नाम",
+       "tags-create-reason": "कारण:",
+       "tags-create-submit": "बनाएँ",
+       "tags-create-no-name": "आपको एक चिप्पि का नाम निर्दिष्ट करना चाहिए।",
+       "tags-delete-title": "चिप्पि हटायें",
+       "tags-delete-reason": "कारण:",
+       "tags-activate-submit": "सक्रिय करें",
+       "tags-deactivate-reason": "कारण:",
+       "tags-deactivate-submit": "निष्क्रिय करें",
        "comparepages": "पृष्ठों की तुलना करें",
        "compare-page1": "पृष्ठ १",
        "compare-page2": "पृष्ठ २",
        "htmlform-no": "नहीं",
        "htmlform-yes": "हाँ",
        "htmlform-chosen-placeholder": "एक विकल्प चुनें",
+       "htmlform-cloner-create": "अधिक जोड़ें",
+       "htmlform-cloner-delete": "हटाएँ",
        "sqlite-has-fts": "$1 पूर्ण पाठ खोज समर्थन के साथ",
        "sqlite-no-fts": "$1पूर्ण-पाठ खोज समर्थन के बिना",
        "logentry-delete-delete": "$1 ने पृष्ठ $3 {{GENDER:$2|हटा}} दिया",
        "logentry-upload-upload": "$1 {{GENDER:$2|ने}} $3 अपलोड किया",
        "rightsnone": "(कोई नहीं)",
        "revdelete-summary": "संपादन सारांश",
+       "feedback-adding": "पृष्ठ पर प्रतिक्रिया जोड़ना ...",
+       "feedback-bugcheck": "शानदार! जांच ले कहीं ये [ $1 known bugs] पहले से ही न हो ।",
+       "feedback-bugnew": "मैं जाँच कीया। एक नया बग रिपोर्ट करें",
        "feedback-bugornote": "यदि आप किसी तकनीकी परेशानी को विस्तार से समझाने के लिये तैयार हैं तो कृपया [$1 बग फ़ाइल करें]।\nयदि नहीं, तो आप नीचे दिये सरल फ़ॉर्म का प्रयोग कर सकते हैं। आपकी टिप्पणी आपके सदस्य नाम और आपके ब्राउज़र के नाम के सहित \"[$3 $2]\" पृष्ठ में जोड़ दी जाएगी।",
-       "feedback-subject": "विषय:",
-       "feedback-message": "संदेश:",
        "feedback-cancel": "रद्द करें",
-       "feedback-submit": "प्रतिक्रिया भेजें",
-       "feedback-adding": "पृष्ठ पर प्रतिक्रिया जोड़ना ...",
+       "feedback-close": "हो गया",
        "feedback-error1": "त्रुटि: न पहचाना गया परिणाम एपीआई से",
        "feedback-error2": "त्रुटि: संपादन विफल रहा है",
        "feedback-error3": "त्रुटि: एपीआई से कोई प्रतिक्रिया नहीं",
+       "feedback-message": "संदेश:",
+       "feedback-subject": "विषय:",
+       "feedback-submit": "जमा करें",
        "feedback-thanks": "धन्यवाद! आपकी प्रतिक्रिया पृष्ठ में नियुक्त किया गया है \"[ $2  $1 ]\"।",
-       "feedback-close": "हो गया",
-       "feedback-bugcheck": "शानदार! जांच ले कहीं ये [ $1 known bugs] पहले से ही न हो ।",
-       "feedback-bugnew": "मैं जाँच कीया। एक नया बग रिपोर्ट करें",
        "searchsuggest-search": "खोज",
        "searchsuggest-containing": "...से युक्त",
        "api-error-badaccess-groups": "आपको इस विकि के लिए फ़ाइलें अपलोड करने की अनुमति नहीं है.",
        "expand_templates_remove_comments": "टिप्पणी हटायें",
        "expand_templates_remove_nowiki": "परिणाम में <nowiki> टैग हटाएँ",
        "expand_templates_generate_xml": "XML का पार्स (parse) वृक्ष दर्शायें",
-       "expand_templates_preview": "झलक"
+       "expand_templates_preview": "झलक",
+       "pagelanguage": "पृष्ठ भाषा चुनाव",
+       "pagelang-name": "पृष्ठ",
+       "pagelang-language": "भाषा",
+       "pagelang-use-default": "डिफ़ॉल्ट भाषा का प्रयोग करें",
+       "pagelang-select-lang": "भाषा चुनें",
+       "right-pagelang": "पृष्ठ भाषा बदलें",
+       "action-pagelang": "पृष्ठ भाषा बदलने",
+       "log-name-pagelang": "पृष्ठ भाषा बदलाव लॉग",
+       "log-description-pagelang": "यह पृष्ठ भाषाओं में परिवर्तन का लॉग है।",
+       "mediastatistics-table-count": "फ़ाइलों की संख्या",
+       "mediastatistics-header-unknown": "अज्ञात",
+       "mediastatistics-header-bitmap": "बिटमैप चित्र",
+       "mediastatistics-header-audio": "ऑडियो",
+       "mediastatistics-header-video": "विडियो",
+       "mediastatistics-header-office": "ऑफ़िस",
+       "mediastatistics-header-text": "पाठ",
+       "json-error-syntax": "सिन्टॅक्स त्रुटि",
+       "headline-anchor-title": "इस अनुभाग की कड़ी"
 }
index d77db57..4e3590d 100644 (file)
@@ -12,7 +12,8 @@
                        "아라",
                        "Soul Train",
                        "Filipinayzd",
-                       "SNN95"
+                       "SNN95",
+                       "Macofe"
                ]
        },
        "tog-underline": "Jorr ke niche line khicho:",
        "import-rootpage-nosubpage": "Root panna ke namespace \"$1\" sub panna ke nai allow kare hae.",
        "importlogpage": "Suchi ke import karo",
        "importlogpagetext": "Duusra wiki se panna aur badlao ke itihaas ke administrative imports.",
-       "import-logentry-upload": "file upload se [[$1]] ke import karaa gais hai",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|badlao|badlao}} import karaa gais hae",
-       "import-logentry-interwiki": "transwikied $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|badlao|badlao}} $2 se import karaa gais hae",
        "javascripttest": "JavaScript ke testing",
        "javascripttest-pagetext-noframework": "Ii panna ke JavaScript test ke kare ke khatir reserve karaa gais hae.",
        "logentry-upload-revert": "$1 {{GENDER:$2|upload karaa gais hae}} $3",
        "rightsnone": "(koi nai hai)",
        "revdelete-summary": "summary ke badlo",
+       "feedback-adding": "Panna me subject jorra jaawe hae...",
+       "feedback-bugcheck": "Julum! Khaali ii check karna ki ii ek pahile se jaana waala bugs me se nai hae [$1 known bugs].",
+       "feedback-bugnew": "Ham karaa hae. Nawaa bug ke report karo",
        "feedback-bugornote": "Agar aap ek technical problem ke detail me describe kare mangtaa hae tab meharbaani kar ke [$1 report a bug].\n\nNai to, aap niche ke sahaj form ke kaam me laae saktaa hae. Aap ke comment ke, aap ke naam ke saathe, panna \"[$3 $2]\" me jorra jaai.",
-       "feedback-subject": "Subject:",
-       "feedback-message": "Sandes:",
        "feedback-cancel": "Cancel karo",
-       "feedback-submit": "Feedback do",
-       "feedback-adding": "Panna me subject jorra jaawe hae...",
+       "feedback-close": "Kar dewa gais hae",
        "feedback-error1": "Error: Unrecognized result from API",
        "feedback-error2": "Error: Edit fail hoi gais hae",
        "feedback-error3": "Error: API se koi response nai mila",
+       "feedback-message": "Sandes:",
+       "feedback-subject": "Subject:",
+       "feedback-submit": "Submit karo",
        "feedback-thanks": "Dhanyabaad! Aap ke feedback ke panna \"[$2 $1]\" me post karaa gais hae.",
-       "feedback-close": "Kar dewa gais hae",
-       "feedback-bugcheck": "Julum! Khaali ii check karna ki ii ek pahile se jaana waala bugs me se nai hae [$1 known bugs].",
-       "feedback-bugnew": "Ham karaa hae. Nawaa bug ke report karo",
        "searchsuggest-search": "Khojo",
        "searchsuggest-containing": "isme hae.....",
        "api-error-badaccess-groups": "Aap ke ii wiki me file upload kare ke ijajat nai hae.",
index 0fd4291..2fed2d7 100644 (file)
@@ -27,7 +27,8 @@
                        "Tivek",
                        "Treecko",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Podcrtane poveznice",
        "disclaimers": "Odricanje od odgovornosti",
        "disclaimerpage": "Project:General_disclaimer",
        "edithelp": "Kako uređivati stranicu",
+       "helppage-top-gethelp": "Pomoć",
        "mainpage": "Glavna stranica",
        "mainpage-description": "Glavna stranica",
        "policy-url": "Project:Pravila",
        "filerenameerror": "Ne mogu preimenovati datoteku \"$1\" u \"$2\".",
        "filedeleteerror": "Ne mogu obrisati datoteku \"$1\".",
        "directorycreateerror": "Nije moguće kreirati direktorij \"$1\".",
+       "directoryreadonlyerror": "Direktorij \"$1\" je samo za čitanje.",
+       "directorynotreadableerror": "Direktorij \"$1\" ne može se pročitati.",
        "filenotfound": "Datoteka \"$1\" nije nađena.",
        "unexpected": "Neočekivana vrijednost: \"$1\"=\"$2\".",
        "formerror": "Pogreška: Ne mogu poslati podatke",
        "viewsourcetext": "Možete pogledati i kopirati izvorni sadržaj ove stranice:",
        "viewyourtext": "Možete vidjeti i kopirati tekst '''vaših uređivanja''' na ovoj stranici:",
        "protectedinterface": "Ova stranica je zaštićena od izmjena jer sadrži tekst MediaWiki softvera.\nAko želite prevesti neprevedenu poruku ili popraviti prijevod neke druge poruke za sve MediaWiki wikije, posjetite [//translatewiki.net/  translatewiki.net], projekt za lokalizaciju MediaWiki softvera.",
-       "editinginterface": "'''Upozorenje:''' Uređujete stranicu koja se rabi za prikaz teksta u sučelju softvera. Promjene učinjene na ovoj stranici će se odraziti na izgled korisničkog sučelja kod drugih suradnika. Za prijevod, razmotrite uporabu [//translatewiki.net/wiki/Main_Page?setlang=hr translatewiki.net], projekta lokalizacije MedijeWiki.",
+       "editinginterface": "<strong>Upozorenje:</strong> Uređujete stranicu koja se rabi za prikaz teksta u sučelju softvera. Promjene učinjene na ovoj stranici odrazit će se na izgled korisničkog sučelja kod drugih suradnika na ovoj wiki.",
        "translateinterface": "Za dodavanje ili promjenu prijevoda za sve wikije koristite [//translatewiki.net/ translatewiki.net], projekt za lokalizaciju MediaWikija.",
        "cascadeprotected": "Ova je stranica zaključana za uređivanja jer je uključena u {{PLURAL:$1|slijedeću stranicu|slijedeće stranice}}, koje su zaštićene \"prenosivom zaštitom\":\n$2",
        "namespaceprotected": "Ne možete uređivati stranice u imenskom prostoru '''$1'''.",
        "invalidtitle-knownnamespace": "Neispravan naziv imenskog prostora \"$2\" i teksta \"$3\"",
        "invalidtitle-unknownnamespace": "Neispravan naziv imenskog prostora broj $1 i teksta \"$2\"",
        "exception-nologin": "Niste prijavljeni",
-       "exception-nologin-text": "Ova stranica ili aktivnost zahtijeva da budete prijavljeni na ovom wikiju.",
+       "exception-nologin-text": "Molimo prijavite se ako želite pristup ovoj stranici ili djelovanje.",
+       "exception-nologin-text-manual": "Molimo $1 ako želite pristup ovoj stranici ili djelovanje.",
        "virus-badscanner": "Loša konfiguracija: nepoznati skener za viruse: ''$1''",
        "virus-scanfailed": "skeniranje neuspješno (kod $1)",
        "virus-unknownscanner": "nepoznati antivirus:",
        "gotaccountlink": "Prijavite se",
        "userlogin-resetlink": "Zaboravili ste detalje vaše prijave?",
        "userlogin-resetpassword-link": "Zaboravili ste zaporku?",
+       "userlogin-helplink2": "Pomoć pri prijavi",
        "userlogin-loggedin": "Već ste prijavljeni kao {{GENDER:$1|$1}}.\nRabite donji obrazac da biste se prijavili kao drugi suradnik.",
        "userlogin-createanother": "Stvori još jedan račun",
        "createacct-emailrequired": "Adresa e-pošte",
        "preview": "Pregled kako će stranica izgledati",
        "showpreview": "Prikaži kako će izgledati",
        "showdiff": "Prikaži promjene",
-       "anoneditwarning": "'''Upozorenje:''' Niste prijavljeni pod suradničkim imenom. Vaša IP adresa bit će zabilježena u popisu izmjena ove stranice.",
+       "blankarticle": "<strong>Upozorenje:</strong> Stvorili ste stranicu koja je prazna.\nAko iznova pritisnete na \"{{int:savearticle}}\", stranica će biti stvorena bez ikakvog sadržaja.",
+       "anoneditwarning": "<strong>Upozorenje:</strong> niste prijavljeni. Ako napravite uređivanje, Vaša IP adresa će biti javno vidljiva. Ako se <strong>[$1 prijavite]</strong> ili <strong>[$2 stvorite račun]</strong>, Vaša uređivanja će biti pridružena suradničkom imenu, zajedno s ostalim pogodnostima.",
        "anonpreviewwarning": "''Niste prijavljeni. Spremanjem će Vaše IP adrese ostati zabilježene u starim izmjenama ove stranice.''",
        "missingsummary": "'''Podsjetnik:''' Niste unijeli sažetak promjena. Ako ponovno kliknete na \"Sačuvaj stranicu\", Vaše će promjene biti snimljene bez sažetka.",
+       "selfredirect": "<strong>Upozorenje:</strong> Stvarate preusmjeravanje na isti članak.\nMožda ste izabrali pogrješnu odredišnu stranicu za preusmjeravanje ili uređujete pogrješnu stranicu.\nAko pritisnete na \"{{int:savearticle}}\" još jednom, preusmjeravanje će svejedno biti stvoreno.",
        "missingcommenttext": "Molim unesite sažetak.",
        "missingcommentheader": "'''Podsjetnik:''' Niste napisali sažetak ovog komentara. Ako ponovno kliknete \"{{int:savearticle}}\", Vaš će komentar biti snimljen bez sažetka.",
        "summary-preview": "Pregled sažetka:",
        "content-failed-to-parse": "Obrada (''parsiranje'') formata $2 za model $1 nije uspjela: $3",
        "invalid-content-data": "Nevaljani sadržaj",
        "content-not-allowed-here": "Sadržaj napisan u obliku \"$1\"-a nije dozvoljen na stranici [[$2]]",
-       "editwarning-warning": "Napuštanje ove stranice može uzrokovati gubitak svake izmjene koju ste napravili.\nMožete onemogućiti ovo upozorenje u odjeljku \"{{int:prefs-editing}}\" Vaših postavki.",
+       "editwarning-warning": "Napuštanje ove stranice može uzrokovati gubitak svake izmjene koju ste napravili.\nAko ste prijavljeni, možete onemogućiti ovo upozorenje u odjeljku \"{{int:prefs-editing}}\" Vaših postavki.",
        "content-model-wikitext": "wikitekst",
        "content-model-text": "obični tekst",
        "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
+       "content-json-empty-object": "Prazan objekt",
+       "content-json-empty-array": "Prazno polje",
        "expensive-parserfunction-warning": "Upozorenje: Ova stranica sadrži previše opterećujućih poziva parserskih funkcija\n\nTrebala bi imati manje od $2 {{PLURAL:$2|poziva|poziva}}, sada ima {{PLURAL:$1|$1 poziv|$1 poziva}}.",
        "expensive-parserfunction-category": "Stranice s previše poziva opterećujućih parserskih funkcija",
        "post-expand-template-inclusion-warning": "Upozorenje: Veličina uključenih predložaka je prevelika.\nNeki predlošci neće biti uključeni.",
        "undo-success": "Izmjena je uklonjena (tekst u okviru ispod ne sadrži posljednju izmjenu). Molim sačuvajte stranicu (provjerite sažetak).",
        "undo-failure": "Ova izmjena ne može biti uklonjena zbog postojanja međuinačica.",
        "undo-norev": "Izmjena nije mogla biti uklonjena jer ne postoji ili je obrisana.",
+       "undo-nochange": "Čini se da je uređivanje već otkazano.",
        "undo-summary": "uklanjanje izmjene $1 {{GENDER:$2|suradnika|suradnice}} [[Posebno:Doprinosi/$2|$2]] ([[Razgovor sa suradnikom:$2|razgovor]])",
        "cantcreateaccounttitle": "Nije moguće stvoriti suradnički račun",
        "cantcreateaccount-text": "Otvaranje suradničkog računa ove IP adrese ('''$1''') blokirao/la je [[User:$3|$3]].\n\nRazlog koji je dao/la $3 je ''$2''",
        "logdelete-selected": "{{PLURAL:$1|Odabrani zapis u evidenciji|Odabrani zapisi u evidenciji}}:",
        "revdelete-text-text": "Izbrisane izmjene će i dalje biti vidljive u povijesti stranice, ali dijelovi sadržaja neće biti vidljivi javno.",
        "logdelete-text": "Izbrisane izmjene i dalje će biti vidljive u evidencijama, ali dijelovi njihova sadržaja biti će nedostupni za javnost.",
-       "revdelete-text-others": "Ostali administratori na projektu {{SITENAME}} će moći vidjeti i vratiti izbrisani sadržaj na isti način, osim ako nisu postavljena dodatna ograničenja.",
+       "revdelete-text-others": "Ostali administratori na projektu moći će pristupiti izbrisanom sadržaju i vratiti ga, osim ako nisu postavljena dodatna ograničenja.",
        "revdelete-confirm": "Molimo potvrdite da namjeravate ovo učiniti, da razumijete posljedice i da to činite u skladu s [[{{MediaWiki:Policy-url}}|pravilima]].",
-       "revdelete-suppress-text": "Sklanjanje uređivanja treba raditi '''iznimno''' u slijedećih par slučajeva:\n* Privatne informacije neprilične javnom mediju tipa\n*: ''kućna adresa i broj telefona, JMBG ili OIB, itd.''",
+       "revdelete-suppress-text": "Sklanjanje uređivanja treba raditi <strong>iznimno</strong> u sljedećih par slučajeva:\n* moguće klevetničke informacije\n* neprikladne osobne informacije \n*: <em>kućna adresa i broj telefona, JMBG ili OIB, itd.</em>",
        "revdelete-legend": "Postavi ograničenja na izmjenu:",
        "revdelete-hide-text": "Sakrij tekst izmjene",
        "revdelete-hide-image": "Sakrij sadržaj datoteke (sakrij sliku)",
        "revdelete-hide-user": "Sakrij suradnikovo ime/IP adresu",
        "revdelete-hide-restricted": "Postavi ograničenja i za administratore kao i za ostale suradnike",
        "revdelete-radio-same": "(ne mijenjaj)",
-       "revdelete-radio-set": "Da",
-       "revdelete-radio-unset": "Ne",
+       "revdelete-radio-set": "Skriven",
+       "revdelete-radio-unset": "Vidljivo",
        "revdelete-suppress": "Sakrij podatke od administratora i ostalih suradnika",
        "revdelete-unsuppress": "Ukloni ograničenja na vraćenim izmjenama",
        "revdelete-log": "Razlog:",
        "searchall": "sve",
        "showingresults": "Dolje {{PLURAL:$1|je prikazan '''$1''' rezultat|su prikazana '''$1''' rezultata|je prikazano '''$1''' rezultata}}, počevši od '''$2'''.",
        "showingresultsinrange": "Dolje {{PLURAL:$1|je prikazan '''$1''' rezultat|su prikazana '''$1''' rezultata|je prikazano '''$1''' rezultata}}, u rasponu od '''$2''' do '''$3'''.",
+       "search-showingresults": "{{PLURAL:$4|Rezultat <strong>$1</strong> od <strong>$3</strong>|Rezultati <strong>$1 - $2</strong> od <strong>$3</strong>}}",
        "search-nonefound": "Ne postoje rezultati koji se podudaraju s upitom.",
        "powersearch-legend": "Napredno pretraživanje",
        "powersearch-ns": "Traži u imenskom prostoru:",
        "preferences": "Postavke",
        "mypreferences": "Moje postavke",
        "prefs-edits": "Broj uređivanja:",
+       "prefsnologintext2": "Molimo Vas prijavite se da biste promijenili postavke.",
        "prefs-skin": "Izgled",
        "skin-preview": "Pregled",
        "datedefault": "Nemoj postaviti",
        "gender-female": "Ženski",
        "prefs-help-gender": "Mogućnost softvera da ispravno oslovljava razlikujući spol. Ovaj će podatak biti javan.",
        "email": "Adresa elektroničke pošte *",
-       "prefs-help-realname": "Pravo ime nije obvezno. Ako ga navedete, bit će korišteno za pravnu atribuciju Vaših doprinosa.",
+       "prefs-help-realname": "Pravo ime nije obvezno. Ako ga navedete, može biti rabljeno za pripisivanje Vaših doprinosa.",
        "prefs-help-email": "E-mail adresa nije obvezna, ali je potrebna za obnovu lozinke u slučaju da ju zaboravite.",
        "prefs-help-email-others": "Također možete odabrati da vas ostali kontaktiraju preko vaše suradničke ili stranice za razgovor bez javnog otkrivanja vašeg identiteta.",
        "prefs-help-email-required": "Potrebno je navesti adresu e-pošte (e-mail).",
        "prefs-displaywatchlist": "Mogućnosti prikaza",
        "prefs-diffs": "razl",
        "prefs-help-prefershttps": "Ova mogućnost će stupiti na snagu kod sljedeće prijave.",
+       "prefswarning-warning": "Napravili ste promjene u Vašim postavkama koje još nisu snimljene.\nAko napustite ovu stranicu bez pritiska na \"$1\", postavke neće biti ažurirane.",
+       "prefs-tabs-navigation-hint": "Savjet: možete rabiti tipke sa strjelicama lijevo i desno za prebacivanje između kartica na popisu kartica.",
        "email-address-validity-valid": "Adresa e-pošte pokazuje se ispravnom",
        "email-address-validity-invalid": "Unesite valjanu adresu e-pošte",
        "userrights": "Upravljanje suradničkim pravima",
        "userrights-notallowed": "Vaš trenutačni suradnički račun nema ovlasti mijenjanja suradničkih prava.",
        "userrights-changeable-col": "Skupine koje možete promijeniti",
        "userrights-unchangeable-col": "Skupine koje ne možete promijeniti",
+       "userrights-conflict": "Sukob promjene suradničkih prava! Molimo provjerite i potvrdite svoje promjene.",
+       "userrights-removed-self": "Uspješno ste uklonili svoja vlastita prava. Kao takvi, više niste u mogućnosti pristupiti ovoj stranici.",
        "group": "Skupina:",
        "group-user": "Suradnici",
        "group-autoconfirmed": "automatski potvrđeni suradnici",
        "action-createpage": "stvaranje stranica",
        "action-createtalk": "stvaranje stranica za razgovor",
        "action-createaccount": "stvaranje ovog suradničkog računa",
+       "action-history": "Vidi povijest uređivanja ove stranice",
        "action-minoredit": "označavanje ove izmjene kao manju",
        "action-move": "premještanje ove stranice",
        "action-move-subpages": "premještanje ove stranice, i njenih podstranica",
        "windows-nonascii-filename": "Ovaj wiki ne podržava imena datoteka s posebnim znakovima.",
        "fileexists": "Datoteka s ovim imenom već postoji, pogledajte <strong>[[:$1]]</strong> ako niste sigurni želite li je uistinu promijeniti.\n[[$1|thumb]]",
        "filepageexists": "Opis stranice za ovu datoteku je već napravljen ovdje <strong>[[:$1]]</strong>, ali datoteka sa ovim nazivom trenutno ne postoji.\nSažetak koji ste naveli neće se pojaviti na stranici opisa.\nDa bi se Vaš opis ovdje našao, potrebno je da ga ručno uredite.\n[[$1|thumb]]",
-       "fileexists-extension": "Već postoji datoteka sa sličnim imenom: [[$2|thumb]]\n* Ime datoteke koju postavljate: <strong>[[:$1]]</strong>\n* Ime postojeće datoteke: <strong>[[:$2]]</strong>\nMolimo da izaberete drugo ime.",
+       "fileexists-extension": "Već postoji datoteka sa sličnim imenom: [[$2|thumb]]\n* Ime datoteke koju postavljate: <strong>[[:$1]]</strong>\n* Ime postojeće datoteke: <strong>[[:$2]]</strong>\nŽelite li možda izabrati više različito ime?",
        "fileexists-thumbnail-yes": "Datoteka je najvjerojatnije slika u smanjenoj veličini ''(thumbnail)''. [[$1|thumb]]\nMolimo provjerite datoteku <strong>[[:$1]]</strong>.\nUkoliko je ta datoteka ista kao i ova koju ste upravo pokušali snimiti, samo u višoj rezoluciji, nije nužno snimanje smanjenje slike ''(thumbnaila)'', prikazivanje smanjene slike iz izvornika radi se softverski.",
        "file-thumbnail-no": "Ime datoteke počinje s <strong>$1</strong>.\nČini se da je to slika smanjene veličine ''(minijatura)''.\nUkoliko imate ovu sliku u punoj razlučljivosti (rezoluciji) postavite tu sliku, u protivnom, molimo promijenite ime datoteke.",
        "fileexists-forbidden": "Datoteka s ovim imenom već postoji i ne može biti presnimljena.\nAko i dalje želite postaviti svoju datoteku, molimo vratite se i odaberite novo ime. [[File:$1|thumb|center|$1]]",
        "license": "Licencija:",
        "license-header": "Licencija",
        "nolicense": "Ništa nije odabrano",
+       "licenses-edit": "Uredi izbor licencija",
        "license-nopreview": "(Prikaz nije moguć)",
-       "upload_source_url": " (valjani, javno dostupni URL)",
-       "upload_source_file": "(datoteka na Vašem računalu)",
+       "upload_source_url": " (izabrali ste datoteku s valjanog, javno dostupnog URL-a)",
+       "upload_source_file": "(izabrali ste datoteku s Vašeg računala)",
+       "listfiles-delete": "izbriši",
        "listfiles-summary": "Ova stranica pokazuje sve postavljene datoteke.\nKad je filtriran po suradniku, popis prikazuje samo one datoteke čije je posljednje inačice postavio taj suradnik.",
        "listfiles_search_for": "Traži ime slike:",
        "imgfile": "datoteka",
        "unusedtemplateswlh": "druge poveznice",
        "randompage": "Slučajna stranica",
        "randompage-nopages": "Nema stranica u {{PLURAL:$2|imenskom prostoru|imenskim prostorima}}: $1.",
+       "randomincategory": "Slučajna stranica u kategoriji",
+       "randomincategory-invalidcategory": "\"$1\" nije valjano ime kategorije.",
+       "randomincategory-category": "Kategorija:",
        "randomredirect": "Slučajno preusmjeravanje",
        "randomredirect-nopages": "Nema preusmjeravanja u imenskom prostoru \"$1\".",
        "statistics": "Statistika",
        "protectedpages-indef": "Samo neograničene zaštite",
        "protectedpages-cascade": "Samo prenosiva zaštita",
        "protectedpagesempty": "Nema zaštićenih stranica koje ispunjavaju uvjete koje ste postavili.",
+       "protectedpages-page": "Stranica",
+       "protectedpages-expiry": "Istječe",
+       "protectedpages-params": "Stupanj zaštite",
+       "protectedpages-reason": "Razlog",
        "protectedtitles": "Zaštićeni naslovi",
        "protectedtitlesempty": "Nijedan naslov nije trenutačno zaštićen s tim parametrima.",
        "listusers": "Popis suradnika",
        "listgrouprights-removegroup-self": "Ukloni {{PLURAL:$2|skupinu|skupine}} iz vlastitog računa: $1",
        "listgrouprights-addgroup-self-all": "Dodaj sve skupine vlastitom računu",
        "listgrouprights-removegroup-self-all": "Uklonite sve skupine iz vlastitog računa",
+       "listgrouprights-namespaceprotection-namespace": "Imenski prostor",
        "trackingcategories-nodesc": "Opis nije dostupan.",
        "mailnologin": "Nema adrese pošiljaoca",
        "mailnologintext": "Morate biti [[Special:UserLogin|prijavljeni]]\ni imati valjanu adresu e-pošte u svojim [[Special:Preferences|postavkama]]\nda bi mogli slati poštu drugim suradnicima.",
        "import-rootpage-nosubpage": "Imenski prostor \"$1\" početne stranice ne dopušta podstranice.",
        "importlogpage": "Evidencija uvoza članaka",
        "importlogpagetext": "Administrativni uvoz stranica s poviješću uređivanja s drugih wikija.",
-       "import-logentry-upload": "uvezeno [[$1]] uvozom datoteke",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|izmjena|izmjene|izmjena}}",
-       "import-logentry-interwiki": "transwiki uvezeno $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|promjena|promjene|promjena}} od $2",
        "javascripttest": "Testiranje JavaScripta",
        "javascripttest-pagetext-noframework": "Ova je stranica rezervirana za izvršavanje JavaScript testova.",
        "spam_reverting": "Vraćam na posljednju inačicu koja ne sadrži poveznice na $1",
        "spam_blanking": "Sve inačice sadrže poveznice na $1, brišem cjelokupni sadržaj",
        "spam_deleting": "Sve inačice sadržale su poveznice na $1, brišem cjelokupni sadržaj",
-       "simpleantispam-label": "Anti-spam provjera.\n'''Ne''' ispunjavajte ovo!",
+       "simpleantispam-label": "Anti-spam provjera.\n<strong>NE</strong> ispunjavajte ovo!",
        "pageinfo-title": "Podatci o stranici \"$1\"",
        "pageinfo-not-current": "Nema podataka o uređivanju za najstarija uređivanja stranice.",
        "pageinfo-header-basic": "Osnovni podatci",
        "hours-ago": "prije $1 {{PLURAL:$1|sat|sata|sati}}",
        "minutes-ago": "prije $1 {{PLURAL:$1|minute|minuta}}",
        "seconds-ago": "prije $1 {{PLURAL:$1|sekunde|sekundi}}",
+       "monday-at": "u ponedjeljak u $1",
+       "tuesday-at": "u utorak u $1",
+       "wednesday-at": "u srijedu u $1",
+       "thursday-at": "u četvrtak u $1",
+       "friday-at": "u petak u $1",
+       "saturday-at": "u subotu u $1",
+       "sunday-at": "u nedjelju u $1",
+       "yesterday-at": "Jučer u $1",
        "bad_image_list": "Rabi se sljedeći format:\n\nSamo retci koji počinju sa zvjezdicom su prikazani. Prva poveznica u retku mora biti poveznica na nevaljanu sliku.\nSvaka sljedeća poveznica u istom retku je izuzetak, npr. kod stranica gdje se slike pojavljuju ''inline''.",
        "variantname-sr-ec": "ćirilica",
        "variantname-sr-el": "latinica",
        "confirm-watch-top": "Dodajte ovu stranicu na Vaš popis praćenih stranica",
        "confirm-unwatch-button": "U redu",
        "confirm-unwatch-top": "Ukloni ovu stranicu s popisa praćenja?",
+       "quotation-marks": "\"$1\"",
        "imgmultipageprev": "← prethodna slika",
        "imgmultipagenext": "sljedeća slika →",
        "imgmultigo": "Kreni!",
        "imgmultigoto": "Idi na stranicu $1",
+       "img-lang-default": "(zadani jezik)",
+       "img-lang-go": "Idi",
        "ascending_abbrev": "rast",
        "descending_abbrev": "pad",
        "table_pager_next": "Sljedeća stranica",
        "watchlistedit-raw-done": "Vaš popis praćenja je snimljen.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1 stranica je dodana|$1 stranice su dodane}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 stranica je uklonjena|$1 stranice su ukonjene}}:",
+       "watchlistedit-clear-title": "Očišćen popis praćenja",
+       "watchlistedit-clear-legend": "Obriši popis praćenja",
        "watchlistedit-clear-explain": "Sve stavke s popisa praćenja će biti izbrisane",
+       "watchlistedit-clear-titles": "Imena stranica:",
+       "watchlistedit-clear-submit": "Izbriši popis praćenja (ovo je nepovratno!)",
+       "watchlistedit-clear-done": "Vaš je popis praćenja obrisan.",
+       "watchlistedit-clear-removed": "{{PLURAL:$1|1 je stranica uklonjena|$1 su stranice ukonjene}}:",
+       "watchlisttools-clear": "Obriši popis praćenja",
        "watchlisttools-view": "Pregled promjena praćenih stranica",
        "watchlisttools-edit": "Pregled i uređivanje praćenih stranica",
        "watchlisttools-raw": "Uređivanje praćenih stranica u okviru za uređivanje",
        "duplicate-defaultsort": "'''Upozorenje:''' Razvrstavanje po \"$2\" poništava ranije razvrstavanje po \"$1\".",
        "version": "Inačica softvera",
        "version-extensions": "Instalirana proširenja",
-       "version-skins": "Izgledi",
+       "version-skins": "Postavljeni izgledi",
        "version-specialpages": "Posebne stranice",
        "version-parserhooks": "Kuke parsera",
        "version-variables": "Varijable",
        "version-parser-function-hooks": "Kuke funkcija parsera",
        "version-hook-name": "Ime kuke",
        "version-hook-subscribedby": "Pretplaćeno od",
-       "version-version": "(Inačica $1)",
+       "version-version": "($1)",
        "version-license": "Licenca",
        "version-ext-license": "Licenca",
+       "version-ext-colheader-name": "Dodatak",
+       "version-skin-colheader-name": "Izgled",
        "version-ext-colheader-version": "Verzija",
        "version-ext-colheader-license": "Licenca",
        "version-ext-colheader-description": "Opis",
        "version-ext-colheader-credits": "Autori",
+       "version-license-title": "Licencija za $1",
+       "version-license-not-found": "Za ovaj dodatak nema detaljnih informacija o licenciji.",
        "version-poweredby-credits": "Ovaj wiki pogoni '''[https://www.mediawiki.org/ MediaWiki]''', autorska prava © 2001-$1 $2.",
        "version-poweredby-others": "ostali",
        "version-credits-summary": "Željeli bismo zahvaliti sljedećim suradnicima na njihovom doprinosu [[Special:Version|MediaWikiju]].",
        "version-entrypoints": "URL adresa instalacije",
        "version-entrypoints-header-entrypoint": "Početna adresa",
        "version-entrypoints-header-url": "URL",
+       "version-libraries": "Instalirane biblioteke",
+       "version-libraries-version": "Inačica",
        "redirect-submit": "Idi",
        "redirect-value": "Vrijednost:",
        "redirect-user": "ID suradnika",
        "tags-active-yes": "Da",
        "tags-active-no": "Ne",
        "tags-edit": "uredi",
+       "tags-delete": "izbriši",
+       "tags-activate": "pokreni",
+       "tags-deactivate": "isključi",
        "tags-hitcount": "$1 {{PLURAL:$1|promjena|promjene|promjena}}",
+       "tags-manage-no-permission": "Nemate pravo upravljati promjenama oznaka.",
+       "tags-create-heading": "Stvori novu oznaku",
+       "tags-create-tag-name": "Naziv oznake:",
+       "tags-create-reason": "Razlog:",
+       "tags-create-submit": "Stvori",
+       "tags-create-no-name": "Morate navesti ime oznake.",
+       "tags-create-already-exists": "Oznaka \"$1\" već postoji.",
+       "tags-create-warnings-below": "Želite li nastaviti stvaranje oznake?",
+       "tags-delete-title": "Izbriši oznaku",
+       "tags-delete-reason": "Razlog:",
+       "tags-delete-not-found": "Oznaka \"$1\" ne postoji.",
+       "tags-activate-title": "Pokreni oznaku",
+       "tags-activate-reason": "Razlog:",
+       "tags-activate-not-allowed": "Nije moguće pokrenuti oznaku \"$1\".",
+       "tags-activate-not-found": "Oznaka \"$1\" ne postoji.",
+       "tags-activate-submit": "Pokreni",
+       "tags-deactivate-title": "Isključi oznaku",
+       "tags-deactivate-question": "Isključit ćete oznaku \"$1\".",
+       "tags-deactivate-reason": "Razlog:",
+       "tags-deactivate-not-allowed": "Nije moguće isključiti oznaku \"$1\".",
+       "tags-deactivate-submit": "Isključi",
        "comparepages": "Usporedite stranice",
        "compare-page1": "Stranica 1",
        "compare-page2": "Stranica 2",
        "compare-revision-not-exists": "Navedena izmjena stranice ne postoji.",
        "dberr-problems": "Ispričavamo se! Ova stranica ima tehničkih poteškoća.",
        "dberr-again": "Pričekajte nekoliko minuta i ponovno učitajte.",
-       "dberr-info": "(Ne mogu se spojiti na poslužitelj baze: $1)",
-       "dberr-info-hidden": "(Ne mogu se spojiti na poslužitelj baze)",
+       "dberr-info": "(Ne mogu pristupiti bazi podataka: $1)",
+       "dberr-info-hidden": "(Ne mogu pristupiti bazi podataka)",
        "dberr-usegoogle": "U međuvremenu pokušajte tražiti putem Googlea.",
        "dberr-outofdate": "Imajte na umu da su njihova kazala našeg sadržaja možda zastarjela.",
        "dberr-cachederror": "Sljedeće je dohvaćena kopija tražene stranice, te možda nije ažurirana.",
        "htmlform-no": "Ne",
        "htmlform-yes": "Da",
        "htmlform-chosen-placeholder": "Odaberite opciju",
+       "htmlform-cloner-create": "Dodaj još",
+       "htmlform-cloner-delete": "Ukloni",
+       "htmlform-cloner-required": "Potrebna je barem jedna vrijednost.",
        "sqlite-has-fts": "$1 s podrškom pretraživanja cijelog teksta",
        "sqlite-no-fts": "$1 bez podrške pretraživanja cijelog teksta",
        "logentry-delete-delete": "$1 je {{GENDER:$2|obrisao|obrisala}} stranicu $3",
        "logentry-upload-revert": "$1 је {{GENDER:$2|postavio|postavila}} $3",
        "rightsnone": "(suradnik)",
        "revdelete-summary": "sažetak",
+       "feedback-adding": "Dodajem povratne informacije na stranicu...",
+       "feedback-back": "Natrag",
+       "feedback-bugcheck": "Izvrsno! Molimo provjerite da se ne radi o nekom [$1 poznatom \"bugu\"].",
+       "feedback-bugnew": "Provjereno. Prijavi novi \"bug\"",
        "feedback-bugornote": "Ako ste spremni detaljno opisati tehnički problem molimo [$1 prijavite \"bug\"].\nInače, možete ispuniti jednostavan obrazac u nastavku. Vaš komentar biti će dodan na stranicu \"[$3 $2]\", zajedno s vašim suradničkim imenom i imenom internetskog preglednika koji rabite.",
-       "feedback-subject": "Tema:",
-       "feedback-message": "Poruka:",
        "feedback-cancel": "Odustani",
-       "feedback-submit": "Pošaljite povratnu informaciju",
-       "feedback-adding": "Dodajem povratne informacije na stranicu...",
+       "feedback-close": "Gotovo",
+       "feedback-error-title": "Pogrješka",
        "feedback-error1": "Pogreška: Neprepoznati rezultat od API funkcije",
        "feedback-error2": "Pogreška: Uređivanje nije uspjelo",
        "feedback-error3": "Pogreška: Nema odgovora od API funkcije",
+       "feedback-message": "Poruka:",
+       "feedback-subject": "Tema:",
+       "feedback-submit": "Predaj",
        "feedback-thanks": "Hvala! Vaš odgovor je snimljen na stranicu \"[$2 $1]\".",
-       "feedback-close": "Gotovo",
-       "feedback-bugcheck": "Izvrsno! Molimo provjerite da se ne radi o nekom [$1 poznatom \"bugu\"].",
-       "feedback-bugnew": "Provjereno. Prijavi novi \"bug\"",
+       "feedback-thanks-title": "Hvala!",
        "searchsuggest-search": "Traži",
        "searchsuggest-containing": "sadrži....",
        "api-error-badaccess-groups": "Nemate ovlasti za postavljanje datoteka na ovu wiki.",
        "expand_templates_generate_xml": "Prikaži XML stablo",
        "expand_templates_preview": "Vidi kako će izgledati",
        "mediastatistics": "Statistika datoteka",
-       "mediastatistics-summary": "Slijede statistike postavljenih datoteka koje pokazuju zadnju inačicu datoteke. Starije ili izbrisane inačice nisu prikazane."
+       "mediastatistics-summary": "Slijede statistike postavljenih datoteka koje pokazuju zadnju inačicu datoteke. Starije ili izbrisane inačice nisu prikazane.",
+       "headline-anchor-title": "Poveznica na ovaj odlomak"
 }
index 96b3d92..f998e5f 100644 (file)
@@ -12,7 +12,8 @@
                        "Tlustulimu",
                        "לערי ריינהארט",
                        "아라",
-                       "Mikławš"
+                       "Mikławš",
+                       "Macofe"
                ]
        },
        "tog-underline": "Wotkazy podšmórnić:",
        "unusedimages": "Njewužiwane dataje",
        "wantedcategories": "Požadane kategorije",
        "wantedpages": "Požadane strony",
+       "wantedpages-summary": "Tuta specialna strona naliči wšě hišće njeeksistowace strony, na kotrež eksistowace strony hižo wotkazuja.",
        "wantedpages-badtitle": "Njepłaćiwy titul we wuslědku: $1",
        "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.",
        "import-rootpage-nosubpage": "Mjenowy rum \"$1\" korjenjoweje strony njedowola podstrony.",
        "importlogpage": "Protokol importow",
        "importlogpagetext": "To je lisćina importowanych stronow ze stawiznami z druhich wikijow.",
-       "import-logentry-upload": "strona [[$1]] bu přez nahraće importowana",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|wersija|wersiji|wersije|wersijow}}",
-       "import-logentry-interwiki": "je stronu $1 z druheho wikija přenjesł",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|wersija|wersiji|wersije|wersijow}} z $2 {{PLURAL:$1|importowana|importowanej|importowane|importowane}}",
        "javascripttest": "JavaScriptowy test",
        "javascripttest-pagetext-noframework": "Tuta strona je za přewjedźenje javascriptowych testow přewostajena.",
        "version-parser-function-hooks": "Parserowe funkcije",
        "version-hook-name": "Mjeno hoki",
        "version-hook-subscribedby": "Abonowany wot",
-       "version-version": "(Wersija $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[žane mjeno]",
        "version-license": "Licenca MediaWiki",
        "version-ext-license": "Licenca",
        "logentry-upload-revert": "$1 je $3 {{GENDER:$2|nahrał|nahrała}}",
        "rightsnone": "(ničo)",
        "revdelete-summary": "zjeće wobdźěłać",
+       "feedback-adding": "Komentar so stronje přidawa...",
+       "feedback-bugcheck": "Wulkotnje! Skontroluj jenož, hač to jedyn z [$1 znatych zmylkow] njeje.",
+       "feedback-bugnew": "Sym to skontrolował. Nowy zmylk zdźělić",
        "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:",
-       "feedback-message": "Powěsć:",
        "feedback-cancel": "Přetorhnyć",
-       "feedback-submit": "Komentar wotpósłać",
-       "feedback-adding": "Komentar so stronje přidawa...",
+       "feedback-close": "Dokónčeny",
        "feedback-error1": "Zmylk: Njepřipóznaty wuslědk wot API",
        "feedback-error2": "Zmylk: Wobdźěłanje je so njeporadźiło",
        "feedback-error3": "Zmylk: Žana wotmołwa wot API",
+       "feedback-message": "Powěsć:",
+       "feedback-subject": "Tema:",
+       "feedback-submit": "Wotpósłać",
        "feedback-thanks": "Dźakujemy so! Twój komentar je so k stronje \"[$2 $1]\" pósłał.",
-       "feedback-close": "Dokónčeny",
-       "feedback-bugcheck": "Wulkotnje! Skontroluj jenož, hač to jedyn z [$1 znatych zmylkow] njeje.",
-       "feedback-bugnew": "Sym to skontrolował. Nowy zmylk zdźělić",
        "searchsuggest-search": "Pytać",
        "searchsuggest-containing": "wobsahuje...",
        "api-error-badaccess-groups": "Nimaš prawo dataje do tutoho wikija nahrać.",
index 44a93f1..36edd25 100644 (file)
@@ -37,7 +37,8 @@
                        "Csega",
                        "ViDam",
                        "Adam78",
-                       "Grin"
+                       "Grin",
+                       "Macofe"
                ]
        },
        "tog-underline": "Hivatkozások aláhúzása:",
        "eauthentsent": "Egy ellenőrző e-mailt küldtünk a megadott címre. Mielőtt más leveleket kaphatnál, igazolnod kell az e-mailben írt utasításoknak megfelelően, hogy valóban a tiéd a megadott cím.",
        "throttled-mailpassword": "Már elküldtünk egy jelszóemlékeztetőt az utóbbi {{PLURAL:$1|egy|$1}} órában.\nA visszaélések elkerülése végett {{PLURAL:$1|egy|$1}} óránként csak egy jelszó-emlékeztetőt küldünk.",
        "mailerror": "Hiba történt az e-mail küldése közben: $1",
-       "acct_creation_throttle_hit": "A wiki látogatói ezt az IP-címet használva {{PLURAL:$1|egy|$1}} fiókot hoztak létre az elmúlt egy nap alatt . Ez a megengedett maximum ezen időtartam alatt, így az erről a címről látogatók jelenleg nem hozhatnak létre újabb fiókokat.",
-       "emailauthenticated": "Az e-mail címedet $2 $3-kor erősítetted meg.",
+       "acct_creation_throttle_hit": "A wiki látogatói ezt az IP-címet használva $1 fiókot hoztak létre az elmúlt egy nap alatt. Ez a megengedett maximum ezen időtartam alatt, így az erről a címről látogatók jelenleg nem hozhatnak létre újabb fiókokat.",
+       "emailauthenticated": "Az e-mail címedet $2, $3-kor erősítetted meg.",
        "emailnotauthenticated": "Az e-mail címed még <strong>nincs megerősítve</strong>. E-mailek küldése és fogadása nem engedélyezett.",
        "noemailprefs": "Az alábbi funkciók használatához meg kell adnod az e-mail címedet.",
        "emailconfirmlink": "E-mail cím megerősítése",
        "speciallogtitlelabel": "Cél (cím vagy felhasználó):",
        "log": "Rendszernaplók",
        "all-logs-page": "Minden nyilvános napló",
-       "alllogstext": "A(z) {{SITENAME}} naplóinak összesített listája.\nA napló típusának, a szerkesztő nevének (kis- és nagybetűérzékeny), vagy az érintett lap kiválasztásával (ez is kis- és nagybetűérzékeny) szűkítheted a találatok listáját.",
+       "alllogstext": "A(z) {{SITENAME}} naplóinak összesített listája.\nA naplótípus, a felhasználónév (kis- és nagybetűérzékeny) vagy az érintett lap kiválasztásával (ez is kis- és nagybetűérzékeny) szűkítheted a találatok listáját.",
        "logempty": "Nincs illeszkedő naplóbejegyzés.",
        "log-title-wildcard": "Így kezdődő címek keresése",
        "showhideselectedlogentries": "Kijelölt napló bejegyzések megjelenítése/elrejtése",
        "listgrouprights-namespaceprotection-header": "Névtér korlátozások",
        "listgrouprights-namespaceprotection-namespace": "Névtér",
        "listgrouprights-namespaceprotection-restrictedto": "A szerkesztéshez szükséges jogosultság(ok)",
+       "trackingcategories": "Nyomkövető kategóriák",
+       "trackingcategories-msg": "Nyomkövető kategória",
        "trackingcategories-name": "Üzenetnév",
        "trackingcategories-nodesc": "Nem található leírás.",
        "trackingcategories-disabled": "A kategória le van tiltva",
        "mailnologin": "Nincs feladó",
-       "mailnologintext": "Ahhoz hogy másoknak e-mailt küldhess, [[Special:UserLogin|be kell jelentkezned]] és meg kell adnod egy érvényes e-mail címet a [[Special:Preferences|beállításaidban]].",
+       "mailnologintext": "Ahhoz, hogy másoknak e-mailt küldhess, [[Special:UserLogin|be kell jelentkezned]] és meg kell adnod egy érvényes e-mail címet a [[Special:Preferences|beállításaidban]].",
        "emailuser": "E-mail küldése ezen szerkesztőnek",
        "emailuser-title-target": "E-mail küldése ennek a felhasználónak: $1",
        "emailuser-title-notarget": "E-mail küldése a felhasználónak",
        "blocklog-showsuppresslog": "Ez a felhasználó korábban blokkot kapott, és a naplóbejegyzés el lett rejtve. Az elrejtési napló alább látható tájékoztatásként:",
        "blocklogentry": "„[[$1]]” blokkolva $2 időtartamra $3",
        "reblock-logentry": "megváltoztatta [[$1]] blokkjának beállításait, a blokk lejárta: $2 $3",
-       "blocklogtext": "Ez a felhasználókra helyezett blokkoknak és azok feloldásának listája. Az automatikus blokkolt IP címek nem szerepelnek a listában. Lásd még [[Special:BlockList|a jelenleg életben lévő blokkok listáját]].",
+       "blocklogtext": "Ez a felhasználókra helyezett blokkoknak és azok feloldásának listája. Az automatikusan blokkolt IP-címek nem szerepelnek a listában. Lásd még [[Special:BlockList|a jelenleg életben lévő blokkok listáját]].",
        "unblocklogentry": "„$1” blokkolása feloldva",
        "block-log-flags-anononly": "csak anonok",
        "block-log-flags-nocreate": "nem hozhat létre új fiókot",
        "import-options-wrong": "Rossz {{PLURAL:$2|opció|opciók}}: <nowiki>$1</nowiki>",
        "import-rootpage-invalid": "A megadott gyökér oldal címe érvénytelen.",
        "import-rootpage-nosubpage": "A(z) \"$1\" névtér nem engedi meg aloldalak használatát.",
-       "importlogpage": "Importnapló",
+       "importlogpage": "Importálási napló",
        "importlogpagetext": "Lapok szerkesztési előzményekkel történő adminisztratív imporálása más wikikből.",
-       "import-logentry-upload": "[[$1]] importálása fájlfeltöltéssel kész",
        "import-logentry-upload-detail": "$1 változat importálva",
-       "import-logentry-interwiki": "$1 más wikiből áthozva",
        "import-logentry-interwiki-detail": "$1 változat innen: $2",
        "javascripttest": "JavaScript tesztelés",
        "javascripttest-pagetext-noframework": "Ez az oldal JavaStript tesztek futtatására van fenntartva.",
        "confirmemail_sent": "Kaptál egy e-mailt, melyben megtalálod a megerősítéshez szükséges kódot.",
        "confirmemail_oncreate": "A megerősítő kódot elküldtük az e-mail címedre.\nEz a kód nem szükséges a belépéshez, de meg kell adnod,\nmielőtt a wiki e-mail alapú szolgáltatásait igénybe veheted.",
        "confirmemail_sendfailed": "Nem sikerült elküldeni a megerősítő e-mailt.\nEllenőrizd, hogy nem írtál-e érvénytelen karaktert a címbe.\n\nA levelező üzenete: $1",
-       "confirmemail_invalid": "Nem megfelelő kód. A kódnak lehet, hogy lejárt a felhasználhatósági ideje.",
-       "confirmemail_needlogin": "Meg kell $1 erősíteni az e-mail címedet.",
+       "confirmemail_invalid": "Nem megfelelő kód.\nLehet, hogy a kód felhasználhatósági ideje lejárt.",
+       "confirmemail_needlogin": "{{ucfirst:$1}} az e-mail címed megerősítéséhez.",
        "confirmemail_success": "Az e-mail címed megerősítve. Most már beléphetsz a wikibe.",
        "confirmemail_loggedin": "E-mail címed megerősítve.",
        "confirmemail_subject": "{{SITENAME}} e-mail cím megerősítés",
        "watchlistedit-raw-done": "A figyelőlistád változtatásait elmentettem.",
        "watchlistedit-raw-added": "A {{PLURAL:$1|következő|következő $1}} cikket hozzáadtam a figyelőlistádhoz:",
        "watchlistedit-raw-removed": "A {{PLURAL:$1|következő|következő $1}} cikket eltávolítottam a figyelőlistádról:",
+       "watchlistedit-clear-title": "A figyelőlista kiürítése",
+       "watchlistedit-clear-legend": "Figyelőlista kiürítése",
+       "watchlistedit-clear-explain": "Minden cím el lesz távolítva a figyelőlistádról",
+       "watchlistedit-clear-submit": "Figyelőlista kiürítése (Ez végleges!)",
        "watchlisttools-clear": "A figyelőlista kiürítése",
        "watchlisttools-view": "Kapcsolódó változtatások",
        "watchlisttools-edit": "A figyelőlista megtekintése és szerkesztése",
        "version-parser-function-hooks": "Az értelmező függvényeinek hookjai",
        "version-hook-name": "Hook neve",
        "version-hook-subscribedby": "Használja",
-       "version-version": "(verzió: $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[nincs név]",
        "version-license": "MediaWiki licenc",
        "version-ext-license": "Licenc",
        "logentry-upload-upload": "$1 {{GENDER:$2|feltöltötte}} ezt: $3",
        "rightsnone": "(semmi)",
        "revdelete-summary": "a szerkesztési összefoglalóját",
+       "feedback-adding": "Visszajelzés elmentése...",
+       "feedback-bugcheck": "Nagyszerű! Ellenőrizd, hogy ez nem egy [$1 ismert hiba].",
+       "feedback-bugnew": "Ellenőriztem. Új hiba jelentése",
        "feedback-bugornote": "Ha kész technikai problémát részletesen leírni, akkor kérjük [$1 jelents egy hibát]. Egyébként használd az alábbi űrlapot. A hozzászólásod a „[$3 $2]” laphoz kerül felvételre, a szerkesztő neveddel és böngésződ típusával együtt.",
-       "feedback-subject": "Tárgy:",
-       "feedback-message": "Üzenet:",
        "feedback-cancel": "Mégse",
-       "feedback-submit": "Visszajelzés elküldése",
-       "feedback-adding": "Visszajelzés elmentése...",
+       "feedback-close": "Kész",
        "feedback-error1": "Hiba: az API ismeretlen eredménnyel tért vissza",
        "feedback-error2": "Hiba: a szerkesztés nem sikerült",
        "feedback-error3": "Hiba: nem érkezett válasz az API-tól",
+       "feedback-message": "Üzenet:",
+       "feedback-subject": "Tárgy:",
+       "feedback-submit": "Elküldés",
        "feedback-thanks": "Köszönjük. A visszajelzésed elküldve a „[$2 $1]” laphoz.",
-       "feedback-close": "Kész",
-       "feedback-bugcheck": "Nagyszerű! Ellenőrizd, hogy ez nem egy [$1 ismert hiba].",
-       "feedback-bugnew": "Ellenőriztem. Új hiba jelentése",
        "searchsuggest-search": "Keresés",
        "searchsuggest-containing": "tartalmazza…",
        "api-error-badaccess-groups": "Nincs jogod fájlokat feltölteni erre a wikire.",
index aa43485..d5d575f 100644 (file)
@@ -48,7 +48,7 @@
        "tog-fancysig": "Ստորագրությունը վիքիտեքստի տեսքով (առանց ավտոմատ հղման)",
        "tog-uselivepreview": "Օգտագործել անմիջական նախադիտում, առանց էջը վերբեռնելու (փորձնական)",
        "tog-forceeditsummary": "Նախազգուշացնել խմբագրման ամփոփումը դատարկ թողնելու դեպքում",
-       "tog-watchlisthideown": "Հսկացանկից թաքցնել իմ խմբագրումները",
+       "tog-watchlisthideown": "Թաքցնել իմ խմբագրումները հսկացանկից",
        "tog-watchlisthidebots": "Թաքցնել բոտերի խմբագրումները հսկացանկից",
        "tog-watchlisthideminor": "Թաքցնել չնչին խմբագրումները հսկացանկից",
        "tog-watchlisthideliu": "Թաքցնել մուտք գործած մասնակիցների խմբագրումները հսկացանկից",
        "mergehistory-reason": "Պատճառ՝",
        "revertmerge": "Անջատել",
        "history-title": "«$1» էջի փոփոխումների պատմություն",
-       "difference-title": "$1: Խմբագրումների տարբերություն",
+       "difference-title": "«$1»–ի խմբագրումների տարբերություն",
        "difference-title-multipage": "$1 և $2: Խմբագրումների տարբերություն",
        "difference-multipage": "(Էջերի տարերություն)",
        "lineno": "Տող  $1.",
        "import-upload": "Բեռնված է XML-ի դատան",
        "importlogpage": "Ներմուծման տեղեկամատյան",
        "importlogpagetext": "Ադմինիստրատորների կողմից այլ վիքիներից իրենց պատմությունների հետ էջերի ներմուծումներ։",
-       "import-logentry-upload": "ներմուծվել է «[[$1]]» նիշքի բեռնումով",
        "import-logentry-upload-detail": "$1 տարբերակ",
-       "import-logentry-interwiki": "«$1»՝ միջվիքի ներմուծմամբ",
        "import-logentry-interwiki-detail": "$1 տարբերակ $2-ից",
        "tooltip-pt-userpage": "Ձեր մասնակցի էջը",
        "tooltip-pt-anonuserpage": "Ձեր IP-հասցեի մասնակցային էջը",
        "file-info-size": "$1 × $2 փիքսել, նիշքի չափը՝ $3, MIME-տեսակը՝ $4",
        "file-nohires": "Ավելի բարձր կետաչափով տարբերակ չկա։",
        "svg-long-desc": "SVG-նիշք, անվանապես $1 × $2 փիքսել, նիշքի չափը՝ $3",
-       "show-big-image": "Լրիվ թույլատվությամբ",
+       "show-big-image": "Սկզբնական նիշք",
        "show-big-image-preview": "Նախադիտման չափ՝ $1։",
        "show-big-image-size": "$1 × $2 պիքսել",
        "newimages": "Նոր նիշքերի սրահ",
        "metadata-fields": "EXIF մետատվյալների այն դաշտերը, որոնք նշված ենք այս ուղերձի մեջ, կցուցադրվեն պատկերի էջուն լռությամբ։ Այլ տվյալները լռությամբ կթաքցվեն։\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "Լայնք",
        "exif-imagelength": "Բարձրություն",
+       "exif-orientation": "Դիրք",
+       "exif-xresolution": "Հորիզոնական կետաչափ",
+       "exif-yresolution": "Ուղղահայաց կետաչափ",
        "exif-make": "Խցիկի արտադրող",
        "exif-model": "Խցիկի մոդել",
        "exif-software": "Օգտագործված ծրագիր",
        "exif-artist": "Հեղինակ",
-       "exif-exifversion": "Էքսիֆի վարկած (Exif)",
+       "exif-exifversion": "Էքսիֆի տարբերակ (Exif)",
+       "exif-colorspace": "Գունային տիրույթ",
        "exif-datetimeoriginal": "Ստեղծման ամսաթիվ",
        "exif-datetimedigitized": "Թվայնացման ամսաթիվ",
        "exif-flash": "Ֆլեշ տարբ.",
        "specialpages-group-spam": "Սպամի գործիքներ",
        "blankpage": "Դատարկ էջ",
        "intentionallyblankpage": "Այս էջը միտումնավոր դատարկ է թողված։",
+       "tag-filter": "[[Special:Tags|Պիտակների]] զտիչ՝",
        "tag-filter-submit": "Ֆիլտրել",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Պիտակ}}]]: $2)",
        "tags-source-header": "Աղբյուր",
        "logentry-newusers-create": "Ստեղծվեց $1 մասնակցի հաշիվ",
        "logentry-newusers-create2": "$1 Ստեղծեց նոր հաշիվ $3",
        "rightsnone": "(ոչ մի)",
-       "feedback-subject": "Թեմա.",
-       "feedback-message": "Հաղորդագրություն․",
        "feedback-cancel": "Բեկանել",
        "feedback-close": "Արված է",
+       "feedback-message": "Հաղորդագրություն․",
+       "feedback-subject": "Թեմա.",
        "searchsuggest-search": "Որոնել",
        "duration-seconds": "$1 {{PLURAL:$1|վայրկյան}}",
        "duration-minutes": "$1 {{PLURAL:$1|րոպե}}",
index b6a6bfb..df1f38a 100644 (file)
@@ -12,7 +12,8 @@
                        "Yfdyh000",
                        "לערי ריינהארט",
                        "아라",
-                       "Carlosedepaula"
+                       "Carlosedepaula",
+                       "Macofe"
                ]
        },
        "tog-underline": "Sublinear ligamines:",
        "disclaimers": "Declaration de non-responsabilitate",
        "disclaimerpage": "Project:Declaration general de non-responsabilitate",
        "edithelp": "Adjuta de modification",
+       "helppage-top-gethelp": "Adjuta",
        "mainpage": "Pagina principal",
        "mainpage-description": "Pagina principal",
        "policy-url": "Project:Politica",
        "readonly_lag": "Le base de datos ha essite automaticamente blocate durante que le servitores de base de datos secundari se synchronisa con le servitor principal.",
        "internalerror": "Error interne",
        "internalerror_info": "Error interne: $1",
+       "internalerror-fatal-exception": "Error irreversibile de typo \"$1\"",
        "filecopyerror": "Impossibile copiar file \"$1\" a \"$2\".",
        "filerenameerror": "Impossibile renominar file \"$1\" a \"$2\".",
        "filedeleteerror": "Impossibile deler file \"$1\".",
        "right-override-export-depth": "Exportar paginas includente paginas ligate usque a un profunditate de 5",
        "right-sendemail": "Inviar e-mail a altere usatores",
        "right-passwordreset": "Vider le e-mails pro reinitialisar le contrasigno",
+       "right-managechangetags": "Crear e deler [[Special:Tags|etiquettas]] in le base de datos",
        "newuserlogpage": "Registro de creation de usatores",
        "newuserlogpagetext": "Isto es un registro de creation de usatores.",
        "rightslog": "Registro de derectos de usator",
        "action-viewmyprivateinfo": "vider le proprie information private",
        "action-editmyprivateinfo": "modificar le proprie information private",
        "action-editcontentmodel": "modificar le modello de contento de un pagina",
+       "action-managechangetags": "crear e deler etiquettas in le base de datos",
        "nchanges": "$1 {{PLURAL:$1|modification|modificationes}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|desde le ultime visita}}",
        "enhancedrc-history": "historia",
        "thumbnail_image-missing": "le file pare mancar: $1",
        "thumbnail_image-failure-limit": "Il ha habite recentemente troppo de tentativas fallite ($1 o plus) de generar iste miniatura. Per favor reproba plus tarde.",
        "import": "Importar paginas",
-       "importinterwiki": "Importation transwiki",
+       "importinterwiki": "Importar ab un altere wiki",
        "import-interwiki-text": "Selige le wiki e le titulo del pagina a importar.\nLe datas del versiones e nomines del contributores essera preservate.\nTote le actiones de importation transwiki se registra in le [[Special:Log/import|registro de importationes]].",
        "import-interwiki-sourcewiki": "Wiki de origine:",
        "import-interwiki-sourcepage": "Pagina de origine:",
        "import-rootpage-nosubpage": "Le spatio de nomines \"$1\" del pagina radice non permitte subpaginas.",
        "importlogpage": "Registro de importationes",
        "importlogpagetext": "Importationes administrative de paginas con historia de modificationes desde altere wikis.",
-       "import-logentry-upload": "importava [[$1]] per incargamento de file",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|version|versiones}} importate",
-       "import-logentry-interwiki": "importava $1 transwiki",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|version|versiones}} importate desde $2",
        "javascripttest": "Test de JavaScript",
        "javascripttest-pagetext-noframework": "Iste pagina es reservate pro le execution de tests de JavaScript.",
        "version-parser-function-hooks": "Uncinos de functiones del analysator syntactic",
        "version-hook-name": "Nomine del uncino",
        "version-hook-subscribedby": "Subscribite per",
-       "version-version": "(Version $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[sin nomine]",
        "version-license": "Licentia pro MediaWiki",
        "version-ext-license": "Licentia",
        "logentry-upload-revert": "$1 {{GENDER:$2|ha incargate}} $3",
        "rightsnone": "(nulle)",
        "revdelete-summary": "summario del modification",
+       "feedback-adding": "Le responsa es addite al pagina...",
+       "feedback-bugcheck": "Bon! Ma per favor verifica que iste falta non es [$1 jam cognoscite].",
+       "feedback-bugnew": "Si, io lo ha verificate; reportar un nove falta",
        "feedback-bugornote": "Si tu es preste a describer un problema technic in detalio, per favor [$1 reporta un falta].\nSi non, tu pote usar le formulario facile hic infra. Tu commento essera addite al pagina \"[$3 $2]\", con tu nomine de usator e le navigator del web que tu usa.",
-       "feedback-subject": "Subjecto:",
-       "feedback-message": "Message:",
        "feedback-cancel": "Cancellar",
-       "feedback-submit": "Submitter opinion",
-       "feedback-adding": "Le responsa es addite al pagina...",
+       "feedback-close": "Finite",
        "feedback-error1": "Error: Resultato del API non recognoscite",
        "feedback-error2": "Error: Modification fallite",
        "feedback-error3": "Error: Nulle responsa del API",
+       "feedback-message": "Message:",
+       "feedback-subject": "Subjecto:",
+       "feedback-submit": "Submitter",
        "feedback-thanks": "Gratias! Tu evalutation ha essite publicate in le pagina \"[$2 $1]\".",
-       "feedback-close": "Finite",
-       "feedback-bugcheck": "Bon! Ma per favor verifica que iste falta non es [$1 jam cognoscite].",
-       "feedback-bugnew": "Si, io lo ha verificate; reportar un nove falta",
        "searchsuggest-search": "Cercar",
        "searchsuggest-containing": "continente...",
        "api-error-badaccess-groups": "Tu non ha le permission de incargar files in iste wiki.",
index f7493a9..0e46d5e 100644 (file)
@@ -36,7 +36,8 @@
                        "C5st4wr6ch",
                        "Raynasution",
                        "Arifin.wijaya",
-                       "Ahdan"
+                       "Ahdan",
+                       "Macofe"
                ]
        },
        "tog-underline": "Garis bawahi pranala:",
        "emailccsubject": "Salinan pesan Anda untuk $1: $2",
        "emailsent": "Surel terkirim",
        "emailsenttext": "Surel Anda telah dikirimkan.",
-       "emailuserfooter": "Surel ini dikirimkan oleh $1 kepada $2 menggunakan fungsi \"Suratepengguna\" di {{SITENAME}}.",
+       "emailuserfooter": "Surel ini dikirimkan oleh $1 kepada $2 menggunakan fungsi \"Surel Pengguna\" di {{SITENAME}}.",
        "usermessage-summary": "Tinggalkan pesan sistem.",
        "usermessage-editor": "Penyampai pesan sistem",
        "usermessage-template": "MediaWiki:UserMessage",
        "autoblockid": "Blokir otomatis #$1",
        "block": "Blokir pengguna",
        "unblock": "Buka blokir pengguna",
-       "blockip": "Blokir pengguna",
+       "blockip": "Blokir {{GENDER:$1|pengguna}}",
        "blockip-legend": "Blokir pengguna",
        "blockiptext": "Gunakan formulir di bawah untuk memblokir akses penulisan dari sebuah alamat IP atau pengguna tertentu.\nIni hanya boleh dilakukan untuk mencegah vandalisme, dan sejalan dengan [[{{MediaWiki:Policy-url}}|kebijakan]].\nMasukkan alasan Anda di bawah (contoh, menuliskan nama halaman yang telah divandalisasi).",
        "ipaddressorusername": "Alamat IP atau nama pengguna:",
        "ipb-unblock-addr": "Hilangkan blokir $1",
        "ipb-unblock": "Hilangkan blokir seorang pengguna atau suatu alamat IP",
        "ipb-blocklist": "Lihat blokir yang diterapkan",
-       "ipb-blocklist-contribs": "Kontribusi untuk $1",
+       "ipb-blocklist-contribs": "Kontribusi untuk {{GENDER:$1|$1}}",
        "unblockip": "Hilangkan blokir terhadap alamat IP atau pengguna",
        "unblockiptext": "Gunakan formulir di bawah untuk mengembalikan kemampuan menulis sebuah alamat IP atau pengguna yang sebelumnya telah diblokir.",
        "ipusubmit": "Hilangkan blokir ini",
        "version-parser-function-hooks": "Kait fungsi parser",
        "version-hook-name": "Nama kait",
        "version-hook-subscribedby": "Dilanggani oleh",
-       "version-version": "(Versi $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[tanpa nama]",
        "version-svn-revision": "(r$2)",
        "version-license": "Lisensi MediaWiki",
        "logentry-managetags-create": "$1 {{GENDER:$2|membuat}} tag \"$4\"",
        "rightsnone": "(tidak ada)",
        "revdelete-summary": "ringkasan",
+       "feedback-adding": "Menambahkan umpan balik ke halaman...",
+       "feedback-bugcheck": "Hebat! Hanya periksa bahwa itu bukan satu di antara [$1 bug yang telah dikenal].",
+       "feedback-bugnew": "Saya telah memeriksa. Laporkan bug baru",
        "feedback-bugornote": "Jika Anda sudah siap untuk mendeskripsikan masalah teknis secara rinci silakan [$1 melaporkan bug].\nJika tidak, Anda dapat menggunakan formulir mudah di bawah ini. Komentar Anda akan ditambahkan ke halaman \"[$3 $2]\", bersama dengan nama pengguna Anda dan apa browser yang Anda gunakan.",
-       "feedback-subject": "Perihal:",
-       "feedback-message": "Pesan:",
        "feedback-cancel": "Batal",
-       "feedback-submit": "Kirim Umpan Balik",
-       "feedback-adding": "Menambahkan umpan balik ke halaman...",
+       "feedback-close": "Selesai",
        "feedback-error1": "Galat: Hasil tidak dikenal dari API",
        "feedback-error2": "Galat: Penyuntingan gagal",
        "feedback-error3": "Error: API tidak merespons",
+       "feedback-message": "Pesan:",
+       "feedback-subject": "Perihal:",
+       "feedback-submit": "Kirim",
        "feedback-thanks": "Terima kasih! Umpan balik Anda telah dikirimkan ke halaman \"[$2 $1]\".",
-       "feedback-close": "Selesai",
-       "feedback-bugcheck": "Hebat! Hanya periksa bahwa itu bukan satu di antara [$1 bug yang telah dikenal].",
-       "feedback-bugnew": "Saya telah memeriksa. Laporkan bug baru",
        "searchsuggest-search": "Cari",
        "searchsuggest-containing": "berisi...",
        "api-error-badaccess-groups": "Anda tidak diizinkan mengunggah berkas ke wiki ini.",
index cd8748e..215c489 100644 (file)
        "version-parser-function-hooks": "Croces de functiones analisatores",
        "version-hook-name": "Nómine de croc",
        "version-hook-subscribedby": "Subscrit per",
-       "version-version": "(Version $1)",
+       "version-version": "($1)",
        "version-svn-revision": "(r$2)",
        "version-license": "Licentie",
        "version-software": "Software installat",
index 3aad06f..9b4dfcc 100644 (file)
        "deletecomment": "Màkà:",
        "deleteotherreason": "Màkà ihe ozor kwa:",
        "deletereasonotherlist": "Mgbághàpụtá ozor",
-       "rollback_short": "Fifié àzú",
        "rollbacklink": "fifié àzú",
        "rollbackfailed": "Fifié na àzú dàrà",
        "protectlogpage": "Ntínyé nke ncẹdolu",
        "version-hooks": "Nyazo",
        "version-hook-name": "Áhà nyazo",
        "version-hook-subscribedby": "Dọkpụrụ shì",
-       "version-version": "(Ùdị $1)",
+       "version-version": "($1)",
        "version-license": "Íwú Ǹkwé",
        "version-poweredby-others": "nke ndi ozor",
        "version-software-product": "Nfófụtá",
        "revdelete-content-hid": "ihe zọ̀nàri",
        "rightsnone": "(efù)",
        "revdelete-summary": "mmẹkotá orü",
-       "feedback-message": "Ozi:",
        "feedback-close": "Ọméchá.",
+       "feedback-message": "Ozi:",
        "searchsuggest-search": "Chọwa",
        "expand_templates_ok": "Ngwanu"
 }
index 0c2b29e..5fc0be2 100644 (file)
@@ -7,7 +7,8 @@
                        "Saluyot",
                        "Urhixidur",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Pinag-ugisan ti silpo:",
        "deleteprotected": "Saanmo a maikkat daytoy a panid gapu ta nasalaknibanen.",
        "deleting-backlinks-warning": "'''Ballaag:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Dagiti dadduma a panid]] ket naisilpo wenno nailak-am manipud ti panid a gangani nga ikkatem.",
        "rollback": "Isubli dagiti panagurnos",
-       "rollback_short": "Isubli",
        "rollbacklink": "isubli",
        "rollbacklinkcount": "agisubli ti $1 {{PLURAL:$1|nga inurnos|nga inur-urnos}}",
        "rollbacklinkcount-morethan": "agisubli ti ad-adu ngem $1 {{PLURAL:$1|nga inurnos|nga inur-urnos}}",
        "sp-contributions-logs": "dagiti listaan",
        "sp-contributions-talk": "tungtungan",
        "sp-contributions-userrights": "panagtaripato kadagiti karbengan ti agar-aramat",
-       "sp-contributions-blocked-notice": "Adama a naserraan daytoy nga agar-aramat.\nTi naudi a naikabil iti listaan ti pannakaserra ket naited dita baba para iti reperensia:",
+       "sp-contributions-blocked-notice": "Agdama a naserraan daytoy nga agar-aramat.\nTi naudi a naikabil iti listaan ti pannakaserra ket naited dita baba para iti reperensia:",
        "sp-contributions-blocked-notice-anon": "Daytoy nga IP a pagtaengan ket agdama a naserraan.\nTi naudi a naikabil iti listaan ti pannakaserra ket adda dita baba para iti reperensia:",
        "sp-contributions-search": "Agbiruk para kadagiti kontribusion",
        "sp-contributions-username": "IP a pagtaengan wenno nagan ti agar-aramat:",
        "import-logentry-interwiki": "nai-transwiki iti $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|rebision|dagiti rebision}} ti naala manipud ti $2",
        "javascripttest": "Panagsubok ti JavaScript",
-       "javascripttest-title": "Agpatpataray kadagiti panagsubok ti $1",
        "javascripttest-pagetext-noframework": "Daytoy a panid ket naireserba para iti panagpataray kadagiti panagsubok ti JavaScript.",
        "javascripttest-pagetext-unknownframework": "Di ammo a tabas ti panagsubok ti \"$1\".",
        "javascripttest-pagetext-frameworks": "Pangngaasi nga agpili ti maysa kadagiti sumaganad a tabas ti panagsubok: $1",
        "javascripttest-pagetext-skins": "Agpili ti kudil a pangipatarayan kadagiti panagsubok:",
        "javascripttest-qunit-intro": "Kitaen ti [ $1 dukomentasion ti panagsubok] idiay mediawiki.org.",
-       "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit test suite",
        "tooltip-pt-userpage": "Panidmo nga agar-aramat",
        "tooltip-pt-anonuserpage": "Ti panid ti agar-aramat para iti daytoy nga IP a pagtaengan a kas ur-urnosem",
        "tooltip-pt-mytalk": "Tungtungam a panid",
        "logentry-upload-revert": "Ni $1 ket {{GENDER:$2|inkargana}} ti $3",
        "rightsnone": "(awan)",
        "revdelete-summary": "Pakabuklan ti inurnos",
+       "feedback-adding": "Agnaynayon ti feedback iti panid...",
+       "feedback-bugcheck": "Nasayaaten! Kitaem tapno saan a dagiti adda idin a [$1 nga ammo a parparikut].",
+       "feedback-bugnew": "Kinitak. Agireporta iti baro a parikut",
        "feedback-bugornote": "No sisasagakan nga agibaga ti teknikal a pakirut a naisalaysay pangngaasi nga [$1 ireporta ti parikut].\nNupay kasta, mausarmo ti nalaka a porma dita baba. Ti komentario nga itedmo ket mainayon iti panid \"[$3 $2], a mairaman ti naganmo nga agar-aramat ken no ania ti pagbasabasa nga us-sarem.",
-       "feedback-subject": "Suheto:",
-       "feedback-message": "Mensahe:",
        "feedback-cancel": "Ukasen",
-       "feedback-submit": "Agited ti Feedback",
-       "feedback-adding": "Agnaynayon ti feedback iti panid...",
+       "feedback-close": "Nalpasen",
        "feedback-error1": "Biddut: Saan a malasin dagiti nagbanagan manipud ti API",
        "feedback-error2": "Biddut: Napaay ti panagurnos",
        "feedback-error3": "Biddut: Awan ti sungbat manipud ti API",
+       "feedback-message": "Mensahe:",
+       "feedback-subject": "Suheto:",
+       "feedback-submit": "Ited",
        "feedback-thanks": "Agyaman! Ti feedbackmo ket naipablaak iti panid \"[$2 $1]\".",
-       "feedback-close": "Nalpasen",
-       "feedback-bugcheck": "Nasayaaten! Kitaem tapno saan a dagiti adda idin a [$1 nga ammo a parparikut].",
-       "feedback-bugnew": "Kinitak. Agireporta iti baro a parikut",
        "searchsuggest-search": "Biruken",
        "searchsuggest-containing": "naglaon ti...",
        "api-error-badaccess-groups": "Saanka mapalubosan nga agikarga kadagiti papeles iti daytoy a wiki.",
index 04acf10..9799b9d 100644 (file)
        "duplicate-defaultsort": "Зем бе. Сатийна дIа-хьа хьоржама доагI \"$2\" хьалхара сатийна дIа-хьа хьоржама доагI \"$1\" хьахьоржа.",
        "version": "Доржам",
        "version-specialpages": "ГIулакхий оагIувнаш",
-       "version-version": "(Доржам $1)",
+       "version-version": "($1)",
        "version-software-version": "Доржам",
        "fileduplicatesearch-filename": "ПаьлацIи:",
        "fileduplicatesearch-submit": "Лаха",
index ac3ccfe..afc328c 100644 (file)
        "deletereasonotherlist": "Altra motivo",
        "deletereason-dropdown": "*Ordinara motivi por efaco\n** Demandita da autoro\n** Kopiyuro Violaco\n** Korupto",
        "rollback": "Retrorulez redakti",
-       "rollback_short": "Retrorular",
        "rollbacklink": "retrorulez",
        "rollbackfailed": "Retrorular ne sucesis",
        "cantrollback": "Ne esas posibla retrorular. La lasta kontributanto esas la nura autoro di ica pagino.",
        "version": "Versiono",
        "version-specialpages": "Specala pagini",
        "version-other": "Altra",
-       "version-version": "(Versiono $1)",
+       "version-version": "($1)",
        "version-license": "Licenco",
        "version-software-product": "Produkturo",
        "version-software-version": "Versiono",
index afe883f..c2b5f9b 100644 (file)
@@ -17,7 +17,8 @@
                        "Urhixidur",
                        "Ævar Arnfjörð Bjarmason",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Undirstrika tengla:",
@@ -34,6 +35,7 @@
        "tog-watchdefault": "Bæta síðum og skrám sem ég breyti á vaktlistann minn",
        "tog-watchmoves": "Bæta síðum og skrám sem ég færi á vaktlistann minn",
        "tog-watchdeletion": "Bæta síðum og skrám sem ég eyði á vaktlistann minn",
+       "tog-watchrollback": "Bæta síðum þar sem ég hef tekið aftur breytingu á vaktlistann minn",
        "tog-minordefault": "Merkja allar breytingar sem minniháttar sjálfgefið",
        "tog-previewontop": "Sýna forskoðun á undan breytingarkassanum",
        "tog-previewonfirst": "Sýna forskoðun með fyrstu breytingu",
@@ -44,7 +46,7 @@
        "tog-shownumberswatching": "Sýna fjölda vaktandi notenda",
        "tog-oldsig": "Núverandi undirskrift:",
        "tog-fancysig": "Meðhöndla undirskrift sem wikimál (án sjálfvirks tengils)",
-       "tog-uselivepreview": "Nota beina forskoðun (Á tilraunastigi)",
+       "tog-uselivepreview": "Nota beina forskoðun",
        "tog-forceeditsummary": "Birta áminningu þegar breytingarágripið er tómt",
        "tog-watchlisthideown": "Ekki sýna mínar breytingar á vaktlistanum",
        "tog-watchlisthidebots": "Ekki sýna breytingar vélmenna á vaktlistanum",
        "edit-gone-missing": "Gat ekki uppfært síðu.\nSvo virðist sem henni hafi verið eytt.",
        "edit-conflict": "Breytingaárekstur.",
        "edit-no-change": "Breyting þín var hunsuð, því engin breyting var á textanum.",
-       "postedit-confirmation-saved": "Breytingin þín var vistuð.",
+       "postedit-confirmation-saved": "Breyting þín hefur verið vistuð.",
        "edit-already-exists": "Gat ekki skapað nýja síðu.\nHún er nú þegar til.",
        "defaultmessagetext": "Sjálfgefinn skilaboða texti",
        "content-failed-to-parse": "Gat ekki þáttað $2 efni samkvæmt $1 líkani: $3",
        "lineno": "Lína $1:",
        "compareselectedversions": "Bera saman valdar útgáfur",
        "showhideselectedversions": "Sýna/fela valdar breytingar",
-       "editundo": "Taka aftur þessa breytingu",
+       "editundo": "afturkalla þessa breytingu",
        "diff-empty": "(Enginn munur)",
        "diff-multi-sameuser": "($1 {{PLURAL:$1|millibreyting ekki sýnd|millibreytingar ekki sýndar}} frá sama notandanum)",
        "diff-multi-manyusers": "($1 {{PLURAL:$1|millibreyting ekki sýnd|millibreytingar ekki sýndar}} frá fleiri en $2 {{PLURAL:$2|notanda|notendum}}.)",
        "searchall": "öllum",
        "showingresults": "Sýni <strong>$1</strong> {{PLURAL:$1|niðurstöðu|niðurstöður}} frá og með #<strong>$2</strong>.",
        "showingresultsinrange": "Sýni allt að <strong>$1</strong> {{PLURAL:$1|niðurstöðu|niðurstöður}} á bilinu <strong>$2</strong> til <strong>$3</strong>.",
+       "search-showingresults": "{{PLURAL:$4|Niðurstaða|Niðurstöður}} <strong>$1-$2</strong> af <strong>$3</strong>",
        "search-nonefound": "Engar niðurstöður pössuðu við fyrirspurnina.",
        "powersearch-legend": "Ítarlegri leit",
        "powersearch-ns": "Leita í nafnrýmum:",
        "delete-toobig": "Þessi síða hefur stóra breytingarskrá, yfir $1 {{PLURAL:$1|breyting|breytingar}}.\nÓheimilt er að eyða slíkum síðum til að valda ekki óæskilegum truflunum á {{SITENAME}}.",
        "delete-warning-toobig": "Þessi síða hefur stóra breytingarskrá, yfir $1 {{PLURAL:$1|breyting|breytingar}}.\nEyðing síðunnar gæti truflað vinnslu gangnasafns {{SITENAME}}; haltu áfram með varúð.",
        "rollback": "Taka aftur breytingar",
-       "rollback_short": "Taka aftur",
        "rollbacklink": "taka aftur",
        "rollbacklinkcount": "taka aftur $1 {{PLURAL:$1|breytingu|breytingar}}",
        "rollbacklinkcount-morethan": "taka aftur fleiri en $1 {{PLURAL:$1|breytingu|breytingar}}",
        "import-rootpage-nosubpage": "Nafnrými „$1“ móðursíðunnar leyfir ekki undirsíður.",
        "importlogpage": "Innflutningsskrá",
        "importlogpagetext": "Hér er listi yfir innflutninga möppdýra á síðum ásamt breytingarskránni frá öðrum wiki.",
-       "import-logentry-upload": "flutti inn [[$1]] frá skrá",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|breyting flutt|breytingar fluttar}} inn",
-       "import-logentry-interwiki": "flutti inn $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|breyting flutt|breytingar fluttar}} inn frá $2",
        "javascripttest": "JavaScript prófun",
-       "javascripttest-title": "Keyri $1 prófun",
        "javascripttest-pagetext-noframework": "Þessi síða er frátekin fyrir JavaScript prófanir.",
        "javascripttest-pagetext-unknownframework": "Óþekktur prófunarrammi „$1“.",
        "javascripttest-pagetext-frameworks": "Veldu einn eftirtalinna prófunarramma: $1",
        "tooltip-recreate": "Endurvekja síðuna þó henni hafi verið eytt",
        "tooltip-upload": "Hefja innhleðslu",
        "tooltip-rollback": "\"taka aftur\" breytir greininni til síðasta höfundar með einum smelli",
-       "tooltip-undo": "\"Tek aftur þessa breytingu\" breytir aftur til síðustu breytingu og opnar breytinguna í forskoðun. Hægt er að bæta við ástæðu í breytingarávarpinu.",
+       "tooltip-undo": "„Afturkalla þessa breytingu“ breytir aftur til síðustu breytingu og opnar breytinguna í forskoðun. Hægt er að bæta við ástæðu í breytingarávarpinu.",
        "tooltip-preferences-save": "Vista stillingar",
        "tooltip-summary": "Bættu við stuttu ágripi",
        "common.css": "/* Allt CSS sem sett er hér mun virka á öllum þemum. */",
        "version-mediahandlers": "Rekill margmiðlunarskráa",
        "version-parser-extensiontags": "Þáttuð smáforrita tög",
        "version-hook-subscribedby": "Í áskrift af",
-       "version-version": "(Útgáfa $1)",
+       "version-version": "($1)",
        "version-license": "MediaWiki leyfi",
        "version-poweredby-credits": "Þessi wiki er knúin af '''[https://www.mediawiki.org/ MediaWiki]''', höfundaréttur © 2001-$1 $2.",
        "version-poweredby-others": "aðrir",
        "tags": "Breyta virkum tögum",
        "tag-filter": "[[Special:Tags|Tag]] sía:",
        "tag-filter-submit": "Sía",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag|Tög}}]]: $2)",
        "tags-title": "Tög",
        "tags-intro": "Á þessari síðu er listi yfir þau tög sem hugbúnaðurinn gæti merkt breytingar með og merkingu þeirra.",
        "tags-tag": "Nafn tags",
        "htmlform-int-toohigh": "Gildið sem þú tilgreindir er stærra en hámarkið $1",
        "htmlform-required": "Þú þarft að fylla út þetta gildi.",
        "htmlform-submit": "Senda",
-       "htmlform-reset": "Taka aftur breytingu",
+       "htmlform-reset": "Afturkalla breytingar",
        "htmlform-selectorother-other": "Annað",
        "htmlform-no": "Nei",
        "htmlform-yes": "Já",
        "revdelete-uname-unhid": "notandanafn birt",
        "revdelete-restricted": "hömlur settar á stjórnendur",
        "revdelete-unrestricted": "fjarlægja hömlur á stjórnendur",
+       "logentry-suppress-block": "$1 {{GENDER:$2|bannaði}} {{GENDER:$4|$3}}, rennur út eftir $5 $6",
        "logentry-move-move": "$1 {{GENDER:$2|færði}} $3 á $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|færði}} $3 á $4 án þess að skilja eftir tilvísun",
        "logentry-move-move_redir": "$1 {{GENDER:$2|færði}} $3 á $4 yfir tilvísun",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|hlóð inn}} nýrri útgáfu af $3",
        "rightsnone": "(engum)",
        "revdelete-summary": "breytingarágrip",
+       "feedback-adding": "Bæti við svörun á síðuna...",
+       "feedback-bugcheck": "Frábært! Athugaðu hvort þessi villa hafi verið [$1 tilkynnt áður].",
+       "feedback-bugnew": "Ég athugaði það. Tilkynna nýja villu.",
        "feedback-bugornote": "Ef þú ert reiðubúinn að lýsa tæknilegri villu í smáatriðum, vinsamlegast [$1 tilkynntu villu].\nEf ekki, þá getur þú notað einfalt eyðublað hér fyrir neðan. Athugasemdin þín verður bætt við síðuna \"[$3 $2]\" ásamt notendanafni og nafni vafrarans sem þú ert að nota.",
-       "feedback-subject": "Fyrirsögn:",
-       "feedback-message": "Skilaboð:",
        "feedback-cancel": "Hætta við",
-       "feedback-submit": "Senda svörun",
-       "feedback-adding": "Bæti við svörun á síðuna...",
+       "feedback-close": "Búið",
        "feedback-error1": "Villa: Óþekkt útkoma frá API",
        "feedback-error2": "Villa: Breytingin mistókst",
        "feedback-error3": "Villa: Ekkert svar frá API",
+       "feedback-message": "Skilaboð:",
+       "feedback-subject": "Fyrirsögn:",
+       "feedback-submit": "Senda",
        "feedback-thanks": "Takk! Ábendingu þinni hefur verið bætt við á síðuna \"[$2 $1]\".",
-       "feedback-close": "Búið",
-       "feedback-bugcheck": "Frábært! Athugaðu hvort þessi villa hafi verið [$1 tilkynnt áður].",
-       "feedback-bugnew": "Ég athugaði það. Tilkynna nýja villu.",
        "searchsuggest-search": "Leita",
        "searchsuggest-containing": "sem innihalda ...",
        "api-error-badaccess-groups": "Þú hefur ekki leyfi til að hlaða inn skrám.",
index f430336..4fddc66 100644 (file)
                        "Laurentius",
                        "Macofe",
                        "Ricordisamoa",
-                       "Horcrux92"
+                       "Horcrux92",
+                       "Toadino2",
+                       "Purodha",
+                       "TecnoMaster"
                ]
        },
        "tog-underline": "Sottolinea i collegamenti:",
        "disclaimers": "Avvertenze",
        "disclaimerpage": "Project:Avvertenze generali",
        "edithelp": "Guida",
+       "helppage-top-gethelp": "Aiuto",
        "mainpage": "Pagina principale",
        "mainpage-description": "Pagina principale",
        "policy-url": "Project:Policy",
        "cannotdelete": "Non è stato possibile cancellare la pagina o il file \"$1\".\nPotrebbe essere stato già cancellato da qualcun altro.",
        "cannotdelete-title": "Impossibile cancellare la pagina \"$1\"",
        "delete-hook-aborted": "La cancellazione è stata annullata dall'hook.\nNon è stata restituita alcuna spiegazione.",
-       "no-null-revision": "Non può essere creata una versione nulla per la pagina \"$1\"",
+       "no-null-revision": "Non è stato possibile creare una versione nulla per la pagina \"$1\"",
        "badtitle": "Titolo non corretto",
        "badtitletext": "Il titolo della pagina richiesta è vuoto, errato oppure deriva da un errore nei collegamenti interlingua o interwiki.\nPotrebbe inoltre contenere uno o più caratteri il cui uso non è ammesso nei titoli.",
        "perfcached": "I dati che seguono sono estratti da una copia ''cache'' del database, e potrebbero non essere aggiornati. Un massimo di {{PLURAL:$1|un risultato è disponibile|$1 risultati sono disponibili}} in cache.",
        "mycustomjsprotected": "Non si dispone dei permessi necessari per modificare questa pagina JavaScript.",
        "myprivateinfoprotected": "Non si dispone dei permessi necessari per modificare i propri dati personali.",
        "mypreferencesprotected": "Non si dispone dei permessi necessari per modificare le proprie preferenze.",
-       "ns-specialprotected": "Non è possibile modificare le pagine speciali.",
+       "ns-specialprotected": "Le pagine speciali non possono essere modificate.",
        "titleprotected": "La creazione di una pagina con questo titolo è stata bloccata da [[User:$1|$1]].\nLa motivazione è la seguente: ''$2''.",
        "filereadonlyerror": "Non è stato possibile modificare il file \"$1\" poiché il repository di file \"$2\" è in modalità di sola lettura.\n\nL'amministratore che lo ha bloccato ha fornito questa motivazione: \"$3\".",
        "invalidtitle-knownnamespace": "Titolo non valido con namespace \"$2\" e testo \"$3\"",
        "userpage-userdoesnotexist": "L'account \"$1\" non corrisponde a un utente registrato.\nVerificare che si intenda davvero creare o modificare questa pagina.",
        "userpage-userdoesnotexist-view": "L'account utente \"$1\" non è registrato.",
        "blocked-notice-logextract": "Questo utente è attualmente bloccato.\nL'ultimo elemento del registro dei blocchi è riportato di seguito per informazione:",
-       "clearyourcache": "'''Nota:''' dopo aver salvato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti. \n*'''Firefox / Safari''': tenere premuto il tasto delle maiuscole e fare clic su ''Ricarica'', oppure premere ''Ctrl-F5'' o ''Ctrl-R'' (''⌘-R'' su Mac)\n*'''Google Chrome''': premere ''Ctrl-Shift-R'' (''⌘-Shift-R'' su un Mac)\n*'''Internet Explorer''': tenere premuto il tasto ''Ctrl'' mentre si fa clic su ''Refresh'', oppure premere ''Ctrl-F5''\n*'''Opera''': svuotare completamente la cache dal menu ''Strumenti → Preferenze''",
+       "clearyourcache": "<strong>Nota:</strong> dopo aver salvato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti. \n*<strong>Firefox / Safari:</strong> tenere premuto il tasto delle maiuscole <em>Shift</em> e fare clic su <em>Ricarica</em>, oppure premere <em>Ctrl-F5</em> o <em>Ctrl-R</em> (<em>⌘-R</em> su Mac)\n*<strong>Google Chrome:</strong> premere <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> su un Mac)\n*<strong>Internet Explorer:</strong> tenere premuto il tasto <em>Ctrl</em> e fare clic su <em>Aggiorna</em>, oppure premere <em>Ctrl-F5</em>\n*<strong>Opera:</strong> svuotare completamente la cache dal menu <em>Strumenti → Preferenze</em>",
        "usercssyoucanpreview": "'''Suggerimento:''' usa il pulsante 'Visualizza anteprima' per provare il tuo nuovo CSS prima di salvarlo.",
        "userjsyoucanpreview": "'''Suggerimento:''' usa il pulsante 'Visualizza anteprima' per provare il tuo nuovo JavaScript prima di salvarlo.",
        "usercsspreview": "'''Questa è solo un'anteprima del proprio CSS personale. Le modifiche non sono ancora state salvate!'''",
        "unusedimages": "File non utilizzati",
        "wantedcategories": "Categorie richieste",
        "wantedpages": "Pagine più richieste",
+       "wantedpages-summary": "Elenco delle pagine inesistenti con il maggior numero di collegamenti a loro, escludendo le pagine che hanno solo i reindirizzamenti che li collegano. Per un elenco di pagine inesistenti che hanno reindirizzamenti che li collegano, vedere [[{{#special: BrokenRedirects}}]].",
        "wantedpages-badtitle": "Titolo non valido nel gruppo di risultati: $1",
        "wantedfiles": "File richiesti",
        "wantedfiletext-cat": "I seguenti file sono utilizzati, ma non esistono. I file ospitati su repository esterni potrebbero essere elencati anche se di fatto esistenti. Questi falsi positivi saranno <del>barrati</del>. Le pagine che incorporano i file che non esistono sono elencate in [[:$1]].",
        "import-rootpage-nosubpage": "Il namespace \"$1\" della pagina principale non permette di avere sottopagine.",
        "importlogpage": "Importazioni",
        "importlogpagetext": "Di seguito sono elencate le importazioni di pagine provenienti da altre wiki, complete di cronologia.",
-       "import-logentry-upload": "ha importato [[$1]] tramite upload",
        "import-logentry-upload-detail": "{{PLURAL:$1|una versione importata|$1 versioni importate}}",
-       "import-logentry-interwiki": "ha trasferito da altra wiki la pagina $1",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|una versione importata|$1 versioni importate}} da $2",
        "javascripttest": "Sperimentazione JavaScript",
        "javascripttest-pagetext-noframework": "Questa pagina è riservata all'esecuzione di test di JavaScript.",
        "tags-create-invalid-chars": "I nomi dei tag non devono contenere virgole (<code>,</code>) o barre (<code>/</code>).",
        "tags-create-invalid-title-chars": "I nomi dei tag non devono contenere caratteri che non possono essere utilizzati nei titoli delle pagine.",
        "tags-create-already-exists": "Il tag \"$1\" esiste già.",
+       "tags-create-warnings-above": "{{PLURAl:$2|È stato rilevato il seguente pericolo|Sono stati rilevati i seguenti pericoli}} mentre si cercava di creare l'etichetta \"$1\":",
        "tags-create-warnings-below": "Desideri continuare a creare il tag?",
        "tags-delete-title": "Elimina tag",
        "tags-delete-explanation-initial": "Stai per eliminare il tag \"$1\" dal database.",
+       "tags-delete-explanation-in-use": "Verrà rimossa da {{PLURAL:$2|$2 versioni o voce di registro| tutte le $2 versioni e voci di registro}} dove si trova attualmente.",
        "tags-delete-explanation-warning": "Questa azione è <strong>irreversibile</strong> e <strong>non può essere annullata</strong>, nemmeno da amministratori di database. Accertati che questo sia davvero il tag che intendi eliminare.",
+       "tags-delete-explanation-active": "<strong> L'etichetta \"$1\" è ancora attiva, e lo resterà in futuro. </strong> Perché questo smetta, vai alle voci di registro dove l'etichetta è in uso, e disattivala manualmente.",
        "tags-delete-reason": "Motivo:",
        "tags-delete-submit": "Elimina irreversibilmente questo tag",
        "tags-delete-not-allowed": "I tag definiti da un'estensione non possono essere eliminati a meno che ciò non sia specificamente permesso dall'estensione.",
        "logentry-block-reblock": "$1 {{GENDER:$2|ha modificato}} le impostazioni del blocco per {{GENDER:$4|$3}} con una scadenza di $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|ha bloccato}} {{GENDER:$4|$3}} con una scadenza di $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|ha modificato}} le impostazioni del blocco per {{GENDER:$4|$3}} con una scadenza di $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|ha importato}} $3 tramite caricamento",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|ha importato}} $3 da un'altra wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|ha unito}} $3 in $4 (versioni fino al $5)",
        "logentry-move-move": "$1 {{GENDER:$2|ha spostato}} la pagina $3 a $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|ha spostato}} la pagina $3 a $4 senza lasciare redirect",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|ha caricato}} una nuova versione di $3.",
        "logentry-upload-revert": "$1 {{GENDER:$2|ha caricato}} $3",
        "log-name-managetags": "Registro gestione tag",
+       "log-description-managetags": "Questa pagina elenca le azioni di gestione relative alle [[Special:Tags|etichette]]. Il registro contiene solo le azioni effettuate manualmente da un amministratore; le etichette potrebbero essere create o cancellate dal programma wiki senza che ciò venga registrato qui.",
        "logentry-managetags-create": "$1 {{GENERE:$2|ha creato}} il tag \"$4\"",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|ha rimosso}} l'etichetta \"$4\" (da $5 {{PLURAL:$5|versione o voce di registro|versioni o voci di registro}})",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|ha inserito}} l'etichetta \"$4\" per l'uso da parte d'utenti e bot",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|ha disattivato}} l'etichetta \"$4\" per l'uso da parte d'utenti e bot",
        "rightsnone": "(nessuno)",
        "revdelete-summary": "oggetto della modifica",
+       "feedback-adding": "Inserimento del feedback nella pagina...",
+       "feedback-back": "Indietro",
+       "feedback-bugcheck": "Ottimo! Verifica che non sia già fra i [$1 bug conosciuti].",
+       "feedback-bugnew": "Controllo effettuato. Segnala un nuovo bug",
        "feedback-bugornote": "Se si è in grado di descrivere il problema tecnico riscontrato in maniera precisa, [$1 segnalate il bug]. In alternativa, si può usare il modulo semplificato sottostante. Il commento inserito sarà aggiunto alla pagina \"[$3 $2]\", insieme al proprio nome utente e al browser in uso.",
-       "feedback-subject": "Oggetto:",
-       "feedback-message": "Messaggio:",
        "feedback-cancel": "Annulla",
-       "feedback-submit": "Invia feedback",
-       "feedback-adding": "Inserimento del feedback nella pagina...",
+       "feedback-close": "Fatto",
+       "feedback-external-bug-report-button": "Documenta un problema tecnico",
+       "feedback-dialog-title": "Invia un feedback",
+       "feedback-dialog-intro": "Usa il modulo sottostante per inviare il tuo feedback. Il tuo commento apparirà nella pagina \"$1\", assieme al tuo nome utente.",
+       "feedback-error-title": "Errore",
        "feedback-error1": "Errore: Dalla API è arrivato un risultato non riconosciuto",
        "feedback-error2": "Errore: Non è stato possibile eseguire la modifica",
        "feedback-error3": "Errore: Nessuna risposta dalla API",
+       "feedback-message": "Messaggio:",
+       "feedback-subject": "Oggetto:",
+       "feedback-submit": "Invia",
+       "feedback-terms": "Sono al corrente del fatto che le mie informazioni sull'user agent includono informazioni riguardanti il mio esatto browser e versione del sistema operativo, che saranno condivise pubblicamente, assieme al mio feedback.",
+       "feedback-termsofuse": "Accetto di fornire feedback conformemente alle Condizioni d'Uso.",
        "feedback-thanks": "Grazie! Il tuo feedback è stato pubblicato alla pagina \"[$2 $1]\".",
-       "feedback-close": "Fatto",
-       "feedback-bugcheck": "Ottimo! Verifica che non sia già fra i [$1 bug conosciuti].",
-       "feedback-bugnew": "Controllo effettuato. Segnala un nuovo bug",
+       "feedback-thanks-title": "Grazie!",
+       "feedback-useragent": "Agente utente:",
        "searchsuggest-search": "Ricerca",
        "searchsuggest-containing": "contenente...",
        "api-error-badaccess-groups": "Non sei autorizzato a caricare documenti su questa wiki.",
index 293ce5d..c6701c1 100644 (file)
        "moredotdotdot": "続き...",
        "morenotlisted": "この一覧は完全ではありません。",
        "mypage": "ページ",
-       "mytalk": "議論",
+       "mytalk": "トーク",
        "anontalk": "このIPアドレスについての議論",
        "navigation": "案内",
        "and": "&#32;と",
        "disclaimers": "免責事項",
        "disclaimerpage": "Project:免責事項",
        "edithelp": "編集の仕方",
+       "helppage-top-gethelp": "ヘルプ",
        "mainpage": "メインページ",
        "mainpage-description": "メインページ",
        "policy-url": "Project:方針",
        "readonly_lag": "データベースはスレーブのデータベースサーバーがマスターに同期するまで自動的にロックされています",
        "internalerror": "内部エラー",
        "internalerror_info": "内部エラー: $1",
+       "internalerror-fatal-exception": "種別「$1」の致命的例外",
        "filecopyerror": "ファイル「$1」を「$2」に複製できませんでした。",
        "filerenameerror": "ファイル名を「$1」から「$2」へ変更できませんでした。",
        "filedeleteerror": "ファイル「$1」を削除できませんでした。",
        "prefs-rc": "最近の更新",
        "prefs-watchlist": "ウォッチリスト",
        "prefs-editwatchlist": "ウォッチリストの編集",
+       "prefs-editwatchlist-label": "自分のウォッチリストの項目を編集:",
        "prefs-editwatchlist-edit": "ウォッチリストの表示と除去",
+       "prefs-editwatchlist-raw": "生のウォッチリストの編集",
        "prefs-editwatchlist-clear": "ウォッチリストの全消去",
        "prefs-watchlist-days": "ウォッチリストの表示日数:",
        "prefs-watchlist-days-max": "最大 $1 {{PLURAL:$1|日間}}",
        "right-protect": "保護レベルを変更し、カスケード保護されたページを編集",
        "right-editprotected": "「{{int:protect-level-sysop}}」の保護を設定されたページを編集",
        "right-editsemiprotected": "「{{int:protect-level-autoconfirmed}}」の保護を設定されたページを編集",
+       "right-editcontentmodel": "ページのコンテンツモデルを編集",
        "right-editinterface": "ユーザーインターフェースを編集",
        "right-editusercssjs": "他の利用者のCSSファイル/JavaScriptファイルを編集",
        "right-editusercss": "他の利用者のCSSファイルを編集",
        "right-override-export-depth": "リンク先ページを5階層まで含めて書き出す",
        "right-sendemail": "他の利用者にメールを送信",
        "right-passwordreset": "パスワード再設定メールを閲覧",
+       "right-managechangetags": "[[Special:Tags|タグ]]のデータベースにおける作成および削除",
        "newuserlogpage": "アカウント作成記録",
        "newuserlogpagetext": "以下はアカウント作成の記録です。",
        "rightslog": "利用者権限変更記録",
        "action-viewmyprivateinfo": "自分の非公開情報の閲覧",
        "action-editmyprivateinfo": "自分の非公開情報の編集",
        "action-editcontentmodel": "ページのコンテンツモデルを編集",
+       "action-managechangetags": "タグのデータベースにおける作成および削除",
        "nchanges": "$1 {{PLURAL:$1|回の変更}}",
        "enhancedrc-since-last-visit": "最終閲覧以降 $1 {{PLURAL:$1|件}}",
        "enhancedrc-history": "履歴",
        "uploaderror": "アップロードのエラー",
        "upload-recreate-warning": "<strong>警告: その名前のファイルは、以前に削除または移動されています。</strong>\n\n参考のため、このページの削除と移動の記録を以下に示します:",
        "uploadtext": "ファイルをアップロードするには、以下のフォームを使用してください。\n\n以前にアップロードされたファイルの表示と検索には[[Special:FileList|{{int:listfiles}}]]を使用してください。(再) アップロードは[[Special:Log/upload|アップロード記録]]に、削除は[[Special:Log/delete|削除記録]]にも記録されます。\n\nページにファイルを入れるには、以下の書式のリンクを使用してください:\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}:<nowiki>File.jpg]]</nowiki></code></strong> とすると、ファイルが完全なままで使用されます。\n* <strong><code><nowiki>[[</nowiki>{{ns:file}}:<nowiki>File.png|200px|thumb|left|代替文]]</nowiki></code></strong> とすると、200ピクセルの幅に修正された状態で、左寄せの枠内に、「代替文」が説明として使用されます。\n* <strong><code><nowiki>[[</nowiki>{{ns:media}}:<nowiki>File.ogg]]</nowiki></code></strong> とすると、ファイルを表示せずにそのファイルに直接リンクします。",
-       "upload-permitted": "許可されているファイル形式: $1。",
-       "upload-preferred": "推奨されているファイル形式: $1。",
-       "upload-prohibited": "禁止されているファイル形式: $1。",
+       "upload-permitted": "許可されているファイル{{PLURAL:$2|形式}}: $1。",
+       "upload-preferred": "推奨されているファイル{{PLURAL:$2|形式}}: $1。",
+       "upload-prohibited": "禁止されているファイル{{PLURAL:$2|形式}}: $1。",
        "uploadlogpage": "アップロード記録",
        "uploadlogpagetext": "以下はファイルアップロードの最近の記録です。\n画像付きで見るには[[Special:NewFiles|新規ファイルの一覧]]をご覧ください。",
        "filename": "ファイル名",
        "namespace": "名前空間:",
        "invert": "選択したものを除く",
        "tooltip-invert": "選択した名前空間 (チェックを入れている場合は、関連付けられた名前空間も含む) のページの変更を非表示にするには、このボックスにチェックを入れる",
+       "tooltip-whatlinkshere-invert": "このボックスにチェックをいれると、選択した名前空間のページからのリンクは非表示になる。",
        "namespace_association": "関連付けられた名前空間も含める",
        "tooltip-namespace_association": "選択した名前空間に関連付けられたトークページ (逆にトークページの名前空間を選択した場合も同様) の名前空間も含めるには、このボックスにチェックを入れる",
        "blanknamespace": "(標準)",
        "isredirect": "転送ページ",
        "istemplate": "参照読み込み",
        "isimage": "ファイルへのリンク",
-       "whatlinkshere-prev": "{{PLURAL:$1|前|前の$1件}}",
-       "whatlinkshere-next": "{{PLURAL:$1|次|次の$1件}}",
+       "whatlinkshere-prev": "前の$1件",
+       "whatlinkshere-next": "次の$1件",
        "whatlinkshere-links": "← リンク",
        "whatlinkshere-hideredirs": "転送ページを$1",
        "whatlinkshere-hidetrans": "参照読み込みを$1",
        "thumbnail_image-missing": "ファイルが見つかりません: $1",
        "thumbnail_image-failure-limit": "このサムネイルの描画に失敗した回数($1 回以上)が上限を超えました。しばらく後でもう一度お試しください。",
        "import": "ページデータの取り込み",
-       "importinterwiki": "ウィキ間移動の取り込み",
-       "import-interwiki-text": "取り込むウィキとページ名を選択してください。\n版の日付と編集者名は保持されます。\nウィキ間移動のすべての取り込み操作は[[Special:Log/import|取り込み記録]]に記録されます。",
+       "importinterwiki": "他のウィキからの取り込み",
+       "import-interwiki-text": "取り込むウィキとページ名を選択してください。\n版の日付と編集者名は保持されます。\n他のウィキからの取り込みはすべて[[Special:Log/import|取り込み記録]]に記録されます。",
        "import-interwiki-sourcewiki": "取り込み元のウィキ:",
        "import-interwiki-sourcepage": "取り込み元のページ:",
        "import-interwiki-history": "このページのすべての版を複製する",
        "importcantopen": "取り込みファイルが開けませんでした",
        "importbadinterwiki": "ウィキ間リンクが正しくありません",
        "importsuccess": "取り込みが完了しました!",
-       "importnosources": "ウィキ間移動の取り込み元が定義されていないため、履歴の直接アップロードは無効になっています。",
+       "importnosources": "取り込み元のウィキが定義されていないため、履歴の直接アップロードは無効になっています。",
        "importnofile": "取り込みファイルはアップロードされませんでした。",
        "importuploaderrorsize": "取り込みファイルのアップロードに失敗しました。\nファイルが、アップロードできるサイズを超えています。",
        "importuploaderrorpartial": "取り込みファイルのアップロードに失敗しました。\nファイルの一部のみアップロードされました。",
        "import-rootpage-nosubpage": "ルートページの名前空間「$1」では、下位ページが許可されていません。",
        "importlogpage": "取り込み記録",
        "importlogpagetext": "管理された他のウィキから編集履歴を伴ったページ取り込みです。",
-       "import-logentry-upload": "ファイルのアップロードにより[[$1]]を取り込みました",
        "import-logentry-upload-detail": "$1{{PLURAL:$1|版}} をインポートしました",
-       "import-logentry-interwiki": "$1をウィキ間移動しました",
        "import-logentry-interwiki-detail": "$2からインポート済みの$1{{PLURAL:$1|版}}",
        "javascripttest": "JavaScript をテスト中",
        "javascripttest-pagetext-noframework": "このページは JavaScript のテストを実行するために予約されています。",
        "version-parser-function-hooks": "パーサー関数フック",
        "version-hook-name": "フック名",
        "version-hook-subscribedby": "使用個所",
-       "version-version": "(バージョン $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[名前なし]",
        "version-license": "MediaWiki のライセンス",
        "version-ext-license": "ライセンス",
        "tags-tag": "タグ名",
        "tags-display-header": "変更一覧に表示されるもの",
        "tags-description-header": "詳細な意味の説明",
+       "tags-source-header": "由来",
        "tags-active-header": "アクティブ?",
        "tags-hitcount-header": "タグが付与された変更",
+       "tags-actions-header": "対処操作",
        "tags-active-yes": "はい",
        "tags-active-no": "いいえ",
+       "tags-source-extension": "拡張機能による定義",
+       "tags-source-manual": "利用者およびボットによる手動適用",
+       "tags-source-none": "もう使われていない",
        "tags-edit": "編集",
        "tags-delete": "削除",
+       "tags-activate": "有効化",
+       "tags-deactivate": "無効化",
        "tags-hitcount": "$1 {{PLURAL:$1|回の変更}}",
+       "tags-manage-no-permission": "変更タグを管理する権限がありません。",
        "tags-create-heading": "新しいタグを作成",
+       "tags-create-explanation": "既定では、新しく作られたタグは利用者とボットによる使用が可能となります。",
+       "tags-create-tag-name": "タグ名:",
        "tags-create-reason": "理由:",
        "tags-create-submit": "作成",
+       "tags-create-no-name": "タグの名前を指定しなければなりません。",
+       "tags-create-invalid-chars": "タグ名はコンマ (<code>,</code>) やスラッシュ (<code>/</code>) を含んではなりません。",
+       "tags-create-invalid-title-chars": "タグ名はページ名として使用できない文字を含んではなりません。",
+       "tags-create-already-exists": "タグ「$1」は既に存在します。",
+       "tags-create-warnings-above": "タグ「$1」を作成しようとした際に以下の{{PLURAL:$2|警告}}にあいました:",
+       "tags-create-warnings-below": "このタグの作成を続けますか?",
        "tags-delete-title": "タグを削除",
+       "tags-delete-explanation-initial": "あなたはタグ「$1」をデータベースから削除しようとしています。",
+       "tags-delete-explanation-warning": "この操作は<strong>元に戻せず</strong>、データベース管理者をもってしても<strong>取り消しは不可能</strong>です。削除するタグとして間違いがないことをもう一度しっかり確認してください。",
+       "tags-delete-explanation-active": "<strong>タグ「$1」はまだ有効であり、今後も付与され続けます。</strong>これを止めるには、タグが付与されるよう設定されているところに行き、そこで無効化してください。",
        "tags-delete-reason": "理由:",
+       "tags-delete-submit": "タグを削除する(取り消し不可)",
+       "tags-delete-not-allowed": "拡張機能によって定義されているタグは削除できません(ただし拡張機能が明示的に削除を許可している場合を除く)。",
+       "tags-delete-not-found": "タグ「$1」は存在しません。",
+       "tags-delete-too-many-uses": "タグ「$1」は少なくとも$2版に付与されており、削除できません。",
+       "tags-delete-warnings-after-delete": "タグ「$1」の削除に成功しましたが、以下の{{PLURAL:$2|警告}}が発生しました:",
+       "tags-activate-title": "タグの有効化",
+       "tags-activate-question": "タグ「$1」を有効化しようとしています。",
        "tags-activate-reason": "理由:",
+       "tags-activate-not-allowed": "タグ「$1」は有効化できません。",
+       "tags-activate-not-found": "タグ「$1」は存在しません。",
+       "tags-activate-submit": "有効化",
+       "tags-deactivate-title": "タグの無効化",
+       "tags-deactivate-question": "タグ「$1」を無効化しようとしています。",
        "tags-deactivate-reason": "理由:",
+       "tags-deactivate-not-allowed": "タグ「$1」は無効化できません。",
+       "tags-deactivate-submit": "無効化",
        "comparepages": "ページの比較",
        "compare-page1": "ページ 1",
        "compare-page2": "ページ 2",
        "revdelete-uname-unhid": "利用者名の可視化",
        "revdelete-restricted": "管理者に対する制限の適用",
        "revdelete-unrestricted": "管理者に対する制限の除去",
+       "logentry-block-block": "$1 が $3 を$5ブロックしました $6",
+       "logentry-block-reblock": "$1 が $3 のブロック設定を $5 に変更しました $6",
        "logentry-merge-merge": "$1{{GENDER:$2|統合元}} と$3を$4に統合(改訂版を$5に掲載)",
        "logentry-move-move": "$1 がページ「$3」を「$4」に{{GENDER:$2|移動しました}}",
        "logentry-move-move-noredirect": "$1 がページ「$3」を「$4」に、リダイレクトを残さずに{{GENDER:$2|移動しました}}",
        "logentry-upload-upload": "$1 が $3 を {{GENDER:$2|アップロードしました}}",
        "logentry-upload-overwrite": "$1 が $3 の新しいバージョンを {{GENDER:$2|アップロードしました}}",
        "logentry-upload-revert": "$1 が $3 を {{GENDER:$2|アップロードしました}}",
+       "log-name-managetags": "タグ管理記録",
+       "log-description-managetags": "このページは[[Special:Tags|タグ]]に関係する管理タスクをリストアップしています。ログには管理者によって手動で実行された操作の記録しか記載されていません。ウィキ・ソフトウェアによって、ログを残さずにタグが作成・削除されている場合があります。",
        "rightsnone": "(なし)",
        "revdelete-summary": "編集内容の要約",
+       "feedback-adding": "ページへのフィードバックの追加...",
+       "feedback-back": "戻る",
+       "feedback-bugcheck": "Great! [$1 既出のバグ]に既に含まれていないかご確認ください。",
+       "feedback-bugnew": "チェックしました。バグを報告します。",
        "feedback-bugornote": "技術的な問題の詳細を説明する準備ができている場合は、[$1 バグ報告]をお願いします。\n準備ができていない場合は、下の簡易フォームを使用してください。あなたのコメントと利用者名が、ページ「[$3 $2]」に追加されます。",
-       "feedback-subject": "件名:",
-       "feedback-message": "メッセージ:",
        "feedback-cancel": "キャンセル",
-       "feedback-submit": "フィードバックを送信",
-       "feedback-adding": "ページへのフィードバックの追加...",
+       "feedback-close": "完了",
+       "feedback-dialog-title": "フィードバックの送信",
+       "feedback-error-title": "エラー",
        "feedback-error1": "エラー: 認識できない結果を API が返しました",
        "feedback-error2": "エラー: 編集に失敗しました",
        "feedback-error3": "エラー: API からの応答がありません",
+       "feedback-message": "メッセージ:",
+       "feedback-subject": "件名:",
+       "feedback-submit": "送信",
+       "feedback-terms": "私のユーザーエージェント情報には、使用ブラウザやオペレーティングシステムのバージョンの情報が含まれており、その情報は私が提供するフィードバックとあわせて公開されることを理解しました。",
+       "feedback-termsofuse": "利用規約に従い、フィードバックを提供することに同意します。",
        "feedback-thanks": "ありがとうございます。フィードバックを「[$2 $1]」のページに投稿しました。",
-       "feedback-close": "完了",
-       "feedback-bugcheck": "Great! [$1 既出のバグ]に既に含まれていないかご確認ください。",
-       "feedback-bugnew": "チェックしました。バグを報告します。",
+       "feedback-thanks-title": "ありがとうございます!",
+       "feedback-useragent": "ユーザーエージェント:",
        "searchsuggest-search": "検索",
        "searchsuggest-containing": "この語句を全文検索",
        "api-error-badaccess-groups": "このウィキへのファイルのアップロードが許可されていません。",
        "json-error-utf8": "UTF-8 の文字が破損しています。エンコーディングが誤っているおそれがあります",
        "json-error-recursion": "エンコードされる値に1つ以上の循環参照が含まれます",
        "json-error-inf-or-nan": "エンコードされる値に1つ以上の NAN または INF が含まれます",
-       "json-error-unsupported-type": "エンコードできない種類の値が入力されました"
+       "json-error-unsupported-type": "エンコードできない種類の値が入力されました",
+       "headline-anchor-title": "この節へのリンク"
 }
index 7665ee8..4fd5441 100644 (file)
@@ -14,7 +14,8 @@
                        "Rex",
                        "StefanusRA",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Garisen ngisoré pranala:",
        "delete-warning-toobig": "Kaca iki duwé sajarah panyuntingan sing dawa, luwih saka $1 {{PLURAL:$1|révisi|révisi}}.\nMbusak kaca iki bisa ngrusak operasi basis data ing {{SITENAME}};\nkudu ngati-ati.",
        "deleting-backlinks-warning": "'''Awas:''' Kaca liyane mungkin ana sing nautake ing kaca sing arep sampeyan busak.",
        "rollback": "Mbalèkaké suntingan",
-       "rollback_short": "Balèkna",
        "rollbacklink": "balèaké",
        "rollbacklinkcount": "balèkaké $1 {{PLURAL:$1|suntingan|suntingan}}",
        "rollbacklinkcount-morethan": "balèkaké luwih saka $1 {{PLURAL:$1|suntingan|suntingan}}",
        "import-rootpage-nosubpage": "Ruang nama \"$1\" di halaman turunan tidak mengizinkan subhalaman.",
        "importlogpage": "Log impor",
        "importlogpagetext": "Impor administratif kaca-kaca mawa sajarah panyuntingan saka wiki liya.",
-       "import-logentry-upload": "ngimpor [[$1]] mawa pangunggahan berkas",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|révisi|révisi}}",
-       "import-logentry-interwiki": "wis nge-transwiki $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|révisi}} saka $2",
        "javascripttest": "Panjajalan JavaScript",
-       "javascripttest-title": "Nglakokaké pangujian $1",
        "javascripttest-pagetext-noframework": "Kaca iki disadhiyakaké kanggo nglakokaké panjajalan JavaScript.",
        "javascripttest-pagetext-unknownframework": "Rangka kerja panjajalan ora dingertèni \"$1\".",
        "javascripttest-pagetext-frameworks": "Mangga pilih sawiji saka rangka kerja panjajalan iki: $1",
        "javascripttest-pagetext-skins": "Pilih kulit kanggo nglakokaké panjajalan mawa:",
        "javascripttest-qunit-intro": "Delok [dhokumèntasi panjajalan $1] nèng mediawiki.org.",
-       "javascripttest-qunit-heading": "Rangkéan panjajalan MediaWiki JavaScript QUnit",
        "tooltip-pt-userpage": "Kaca panganggo panjenengan",
        "tooltip-pt-anonuserpage": "Kaca panganggo IP panjenengan",
        "tooltip-pt-mytalk": "Kaca wicara panjenengan",
        "watchlisttools-edit": "Tuduhna lan sunting daftar pangawasan",
        "watchlisttools-raw": "Sunting daftar pangawasan mentah",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|wicara]])",
-       "unknown_extension_tag": "Tag èkstènsi ora ditepungi \"$1\"",
        "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-parser-function-hooks": "Canthèlan fungsi parser",
        "version-hook-name": "Jeneng canthèlan",
        "version-hook-subscribedby": "Dilanggani déning",
-       "version-version": "(Vèrsi $1)",
+       "version-version": "($1)",
        "version-license": "Lisènsi MediaWiki",
        "version-ext-license": "Lisènsi",
        "version-ext-colheader-name": "Ekstensi",
        "specialpages-group-wiki": "Data lan piranti wiki",
        "specialpages-group-redirects": "Ngalihaké kaca astamèwa",
        "specialpages-group-spam": "Piranit spam",
+       "specialpages-group-developer": "Piranti déveloper",
        "blankpage": "Kaca kosong",
        "intentionallyblankpage": "Kaca iki disengajakaké kosong",
        "external_image_whitelist": " #Umbarna larikan iki apa anané<pre>\n#Pigunakaké fragmèn èksprèsi regular (mung bagéyan ing antara //) ing ngisor\n#Fragmèn ini bakal dicocogaké karo URL saka gambar-gambar èksternal\n#Fragmèn sing cocog bakal ditampilaké minangka gambar, yèn ora mung pranala menyang gambar waé sing ditampilaké\n#Larikan sing diwiwiti nganggo # dianggep minangka komentar\n#Iki ora mbédakaké aksara gedhé/cilik\n#Dèlèhna kabèh fragmèn èksprèsi regular sadhuwuré larikan iki. Umbarna larikan iki apa anané</pre>",
        "logentry-rights-autopromote": "$1 otomatis {{GENDER:$2|dipromosikne}} saka $4 nèng $5",
        "rightsnone": "(ora ana)",
        "revdelete-summary": "ringkesan suntingan",
+       "feedback-adding": "Nambahaké lebon saran nèng kaca...",
+       "feedback-bugcheck": "Apik! Pesthèké kuwi dudu sawijining [$1 bug sing dingertèni].",
+       "feedback-bugnew": "Aku wis mriksa. Kandakaké bug anyar",
        "feedback-bugornote": "Yèn Sampéyan siap njelasaké masalah tèhnis kanthi rinci mangga [$1 laporaké bug].\nUtawa, Sampéyan bisa nganggo pormulir gampang ngisor. Tanggepan Sampéyan bakal ditambahaké nèng kaca \"[$3 $2]\", bebarengan karo jeneng panganggo Sampéyan lan pramban sing Sampéyan anggo.",
-       "feedback-subject": "Jejer:",
-       "feedback-message": "Layang:",
        "feedback-cancel": "Batal",
-       "feedback-submit": "Kirim Lebon Saran",
-       "feedback-adding": "Nambahaké lebon saran nèng kaca...",
+       "feedback-close": "Rampung",
        "feedback-error1": "Kasalahan: Asil ora dikenal saka API",
        "feedback-error2": "Kasalahan: Gagal nyunting",
        "feedback-error3": "Kasalahan: Ora ana tanggepan saka API",
+       "feedback-message": "Layang:",
+       "feedback-subject": "Jejer:",
+       "feedback-submit": "Kirim",
        "feedback-thanks": "Nuwun! Lebon saran Sampéyan wis dipasang nèng kacané \"[$2 $1]\".",
-       "feedback-close": "Rampung",
-       "feedback-bugcheck": "Apik! Pesthèké kuwi dudu sawijining [$1 bug sing dingertèni].",
-       "feedback-bugnew": "Aku wis mriksa. Kandakaké bug anyar",
        "searchsuggest-search": "Golèk",
        "searchsuggest-containing": "ngisi...",
        "api-error-badaccess-groups": "Sampéyan ora dililakaké ngunggah berkas nèng wiki iki.",
index 98ea5c2..0109798 100644 (file)
@@ -21,7 +21,8 @@
                        "ka.wikipedia.org sysops",
                        "לערי ריינהארט",
                        "გიორგიმელა",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "ბმულების ხაზგასმა:",
@@ -38,6 +39,7 @@
        "tog-watchdefault": "დაამატე ჩემი კონტროლის სიას ჩემს მიერ რედაქტირებული გვერდები და ფაილები",
        "tog-watchmoves": "ჩასვი გვერდები და ფაილები, რომლებიც მე გადამაქვს, ჩემს კონტროლის სიაში",
        "tog-watchdeletion": "ჩასვი გვერდები და ფაილები, რომლებსაც მე ვშლი, ჩემს კონტროლის სიაში",
+       "tog-watchrollback": "დაამატე ჩემი კონტროლის სიას გვერდები, სადაც მე სწრაფი გაუქმება განვახორციელე",
        "tog-minordefault": "ყველა რედაქტირების მონიშვნა, როგორც უმნიშვნელო, უპირობოდ",
        "tog-previewontop": "წინასწარი გადახედვის ჩვენება რედაქტირების დაფამდე",
        "tog-previewonfirst": "წინასწარი ჩვენება პირველივე რედაქტირებაზე",
        "changeemail-password": "თქვენი პაროლი პროექტში {{SITENAME}}:",
        "changeemail-submit": "ელ-ფოსტის შეცვლა",
        "changeemail-throttled": "თქვენ უკვე ძალიან ბევრჯერ სცადეთ შესვლა.\nგთხოვთ, მოიცადოთ $1, სანამ კიდევ სცდიდეთ.",
+       "resettokens": "ტოკენების ჩამოყრა",
+       "resettokens-text": "თქვენ შეგიძლიათ ჩამოყაროთ ტოკენები, რომლებიც შესაძლებლობას იძლევიან შესვლას განსაზღვრულ პირად მონაცემებში დაკავშირებულს თქვენ ანგარიშთან აქ. \n\nთქვენ ეს აუცილებლად უნდა გააკეთოთ, თუ თქვენ ის შემთხვევით გააცანით სხვას ან თუკი თქვენი ანგარიში იქნა გატეხილი.",
+       "resettokens-legend": "ტოკენების ჩამოყრა",
        "resettokens-tokens": "ჟეტონები:",
        "resettokens-token-label": "$1 (მიმდინარე მნიშვნელობა: $2)",
+       "resettokens-watchlist-token": "ტოკენი ვებ-არხისთვის (Atom/RSS) [[Special:Watchlist|გვერდების ცვლილებები თქვენ კონტროლის სიაში]]",
+       "resettokens-resetbutton": "არჩეული ტოკენების ჩამოყრა",
        "bold_sample": "მუქი ტექსტი",
        "bold_tip": "მუქი ტექსტი",
        "italic_sample": "კურსივი",
        "searchrelated": "მიბმული",
        "searchall": "ყველა",
        "showingresults": "ქვემოთ იხილეთ <b>$1</b>-მდე შედეგი დაწყებული #<b>$2</b>-იდან.",
+       "search-showingresults": "{{PLURAL:$4|შედეგი <strong>$1</strong> დან <strong>$3</strong>|შედეგი <strong>$1 - $2</strong> დან <strong>$3</strong>}}",
        "search-nonefound": "მსგავსი მოთხოვნით გვერდი ვერ მოიძებნა.",
        "powersearch-legend": "გაფართოებული ძიება",
        "powersearch-ns": "ძიება სახელთა სივრცეებში:",
        "prefs-personal": "მომხმარებლის მონაცემები",
        "prefs-rc": "ბოლო ცვლილებები",
        "prefs-watchlist": "კონტროლის სია",
+       "prefs-editwatchlist": "კონტროლის სიის რედაქტირება",
+       "prefs-editwatchlist-label": "თქვენი კონტროლის სიის ჩანაწერების რედაქტირება:",
+       "prefs-editwatchlist-edit": "თქვენი კონტროლის სიაში არსებული დასახელებების გადახედვა და წაშლა",
+       "prefs-editwatchlist-raw": "კონტროლის სიის რედაქტირება როგორც ტექსტისა",
+       "prefs-editwatchlist-clear": "თქვენი კონტროლის სიის გასუფთავება",
        "prefs-watchlist-days": "კონტროლის სიაში საჩვენებელი დღეები:",
        "prefs-watchlist-days-max": "მაქსიმუმ $1 {{PLURAL:$1|დღე|დღე}}",
        "prefs-watchlist-edits": "გაფართოებულ კონტროლის სიაში საჩვენებელი ცვლილებების მაქსიმალური რაოდენობა:",
        "recentchangesdays-max": "მაქსიმუმ $1 {{PLURAL:$1|დღე}}",
        "recentchangescount": "საჩვენებელი ცვლილებების რაოდენობა:",
        "prefs-help-recentchangescount": "შეიცავს ახალ შესწორებებს, გვერდების ისტორიებს, ჟურნალებს.",
+       "prefs-help-watchlist-token2": "ეს არის საიდუმლო გასაღები თქვენი კონტროლის სიის ვებ-არხისთვის. ნებისმიერს, ვინც იცის ის, შეუძლია წაიკითხოს თქვენი კონტროლის სია, ამიტომ არ გაუზიაროთ იგი სხვებს. [[Special:ResetTokens|თქვენ შეგიძლიათ ჩამოყაროთ ის]].",
        "savedprefs": "თქვენ მიერ შერჩეული პარამეტრები დამახსოვრებულია.",
        "timezonelegend": "სასაათო სარტყელი:",
        "localtime": "ადგილობრივი დრო:",
        "import-rootpage-nosubpage": "სახელტა სივრცეში მითითებულ ძირეულ გვერდში „$1“ ქვეგვერდები დაუშვებელია.",
        "importlogpage": "იმპორტის ჟურნალი",
        "importlogpagetext": "ადმინისტრატორთა მიერ გვერდების იმპორტირება  ცვლილებების ჩათვლით სხვა ვიკიდან.",
-       "import-logentry-upload": "„[[$1]]“ — ფაილის იმპორტი",
        "import-logentry-upload-detail": "$1 ცვლილება",
-       "import-logentry-interwiki": "„$1“ — ტრანსვიკი იმპორტი",
        "import-logentry-interwiki-detail": "$1 ცვლილება $2-დან",
        "javascripttest": "JavaScript-ის ტესტირება",
        "javascripttest-pagetext-noframework": "ეს გვერდი დარეგისტრირებულია JavaScript-ის ტესტების გასაშვებად.",
        "version-parser-function-hooks": "სინტაქსური ანალიზატორის ჰუკი",
        "version-hook-name": "ჰუკის სახელი",
        "version-hook-subscribedby": "ჩაწერილია",
-       "version-version": "(ვერსია $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[სახელის გარეშე]",
        "version-svn-revision": "(r$2)",
        "version-license": "მედიავიკის ლიცენზია",
        "logentry-upload-revert": "მომხმარებელმა $1 {{GENDER:$2|ატვირთა}} $3",
        "rightsnone": "(არცერთი)",
        "revdelete-summary": "ცვლილებების აღწერა",
+       "feedback-adding": "თქვენი შეფასების შენახვა...",
+       "feedback-bugcheck": "კარგია! გთხოვთ, კიდევ ერთხელ შეამოწმეთ, ხომ არ არის აქ რომელიმე უკვე [$1 ნაცნობი შეცდომა].",
+       "feedback-bugnew": "მე შევამოწმე. ახალი შეცდომის შეტყობინება",
        "feedback-bugornote": "თუ თქვენ მზად ხართ დეტალურად აღწეროთ ტექნიკური პრობლემა, გთხოვთ, [$1 შეგვატყობინეთ შეცდომის შესახებ].\nწინააღმდეგ შემთხვევაში თქვენ შეგიძლიათ ისარგებლოთ ამ მარტივი ფორმით. თქვენი კომენტარი დაემატება  „[$3 $2]“ გვერდზე თქვენი მომხმარებლის სახელთან და გამოყენებულ ბრაუზერთან ერთად.",
-       "feedback-subject": "თემა:",
-       "feedback-message": "შეტყობინება:",
        "feedback-cancel": "გაუქმება",
-       "feedback-submit": "შეფასების გაგზავნა",
-       "feedback-adding": "თქვენი შეფასების შენახვა...",
+       "feedback-close": "გაკეთდა",
        "feedback-error1": "შეცდომა. API-ს მოულოდნელი რეზულტატი.",
        "feedback-error2": "შეცდომა: რედაქტირება ვერ განხორციელდა",
        "feedback-error3": "შეცდომა. არ არის API-ს პასუხი .",
+       "feedback-message": "შეტყობინება:",
+       "feedback-subject": "თემა:",
+       "feedback-submit": "მიღება",
        "feedback-thanks": "გმადლობთ! თქვენი შეფასება განთავსებულია „[$2 $1]“ გვერდზე.",
-       "feedback-close": "გაკეთდა",
-       "feedback-bugcheck": "კარგია! გთხოვთ, კიდევ ერთხელ შეამოწმეთ, ხომ არ არის აქ რომელიმე უკვე [$1 ნაცნობი შეცდომა].",
-       "feedback-bugnew": "მე შევამოწმე. ახალი შეცდომის შეტყობინება",
        "searchsuggest-search": "ძიება",
        "searchsuggest-containing": "შეიცავს...",
        "api-error-badaccess-groups": "თქვენ არ გაქვთ ამ ვიკიში ფაილების ატვირთვის უფლება.",
        "log-name-pagelang": "ენის ცვლილებების ჟურნალი",
        "log-description-pagelang": "ეს არის გვერდის ენის ცვლილებების ჟურნალი",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (ჩართულია)",
-       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''გამორთულია''')"
+       "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''გამორთულია''')",
+       "headline-anchor-title": "ბმული ამ სექციაზე"
 }
index a801a36..c92e9e1 100644 (file)
        "delete-warning-toobig": "Asebtar agi yesɛa amezruy axatar n ibeddilen, ugaren $1 {{PLURAL:$1|lqem|ileqman}}.\nTukksa-s tezmer ad terwi tiddit n taffa n isefka n {{SITENAME}} ;\nilaq ad seqdeceḍ s-leɛqel.",
        "deleting-backlinks-warning": "'''Ɣur-wet :''' Isebtar nniḍen sɛan azday ɣer asebtar i tebɣiḍ ad ekkeseḍ.",
        "rollback": "Semmet ibeddilen",
-       "rollback_short": "Semmet",
        "rollbacklink": "semmet",
        "rollbacklinkcount": "semmet $1 {{PLURAL:$1|abeddel|ibeddilen}}",
        "rollbacklinkcount-morethan": "semmet ugar n $1 {{PLURAL:$1|abeddel|ibeddilen}}",
        "import-logentry-interwiki": "$1 s transwiki",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|lqem|ileqman}} seg $2",
        "javascripttest": "Tarmit n JavaScript",
-       "javascripttest-title": "Asselkem n tirmitin $1",
        "javascripttest-pagetext-noframework": "Asebtar agi yeḥeṛṛ i usselkem n tirmitin JavaScript.",
        "javascripttest-pagetext-unknownframework": "Tamṣuka « $1 » warisem.",
        "javascripttest-pagetext-frameworks": "Ilaq ad xetreḍ yiwet n timṣukyin n tarmit agi : $1",
        "javascripttest-pagetext-skins": "Xter agwlim s anwa ad xeddemeḍ tarmit :",
        "javascripttest-qunit-intro": "Zeṛ [$1 tumlin n tarmit] ɣef mediawiki.org.",
-       "javascripttest-qunit-heading": "Azrar n tarmit QUnit n JavaScript ɣef MediaWiki",
        "tooltip-pt-userpage": "Asebter n umseqdac inu",
        "tooltip-pt-anonuserpage": "Asebter n wemseqdac n IP wukud tekkiḍ",
        "tooltip-pt-mytalk": "Asebter n umyannan inu",
        "version-parser-function-hooks": "Tiseɣnin yeẓẓlen n umsisleḍ n taseddast",
        "version-hook-name": "Isem n umgud",
        "version-hook-subscribedby": "Imeltaɣen :",
-       "version-version": "(lqem $1)",
+       "version-version": "($1)",
        "version-license": "Turagt MediaWiki",
        "version-ext-license": "Turagt",
        "version-ext-colheader-name": "Asiɣzef",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|yebeddel|tebeddel}} amyili ar ugraw i $3",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|yettwasmel|tettwasmel}} s uwurman seg $4 ar $5",
        "rightsnone": "(ulaḥedd)",
+       "feedback-adding": "Rnud iwenniten inek/inem ar usebter...",
+       "feedback-bugcheck": "D ayen igerrzen ! Senqed kan ma mačči d yiwen n [$1 inezriyen i n-sen yakan].",
+       "feedback-bugnew": "Senqedeɣ. Ɛeyyen anezri amaynut",
        "feedback-bugornote": "Ma teḥgiḍ iman-ik/im ad gelmeḍ agnu atekni i tilɣa tummidtin, [$1 ɛeyyen ɣef anezri].\nMulac, tzemreḍ ad seqdeceḍ tiferkit ddaw agi. Awennit inek/inem ad yetwernu ar usebtar « [$3 $2] », s isem-ik/im n umseqdac d iminig i tseqdeceḍ.",
-       "feedback-subject": "Asentel :",
-       "feedback-message": "Izen :",
        "feedback-cancel": "Semmewet",
-       "feedback-submit": "Ceggaɛ iwenniten",
-       "feedback-adding": "Rnud iwenniten inek/inem ar usebter...",
+       "feedback-close": "D ayen",
        "feedback-error1": "Tuccḍa : Agmuḍ n API ur yetwaɛqel ara",
        "feedback-error2": "Tuccḍa  : abeddel yexṣer",
        "feedback-error3": "Tuccḍa : Ulac tamrarut n API",
+       "feedback-message": "Izen :",
+       "feedback-subject": "Asentel :",
+       "feedback-submit": "Ceggaɛ iwenniten",
        "feedback-thanks": "Tanemmirt ! Awennit inek/inem yeffeɣ-d ɣef usebtar \"[$2 $1]\".",
-       "feedback-close": "D ayen",
-       "feedback-bugcheck": "D ayen igerrzen ! Senqed kan ma mačči d yiwen n [$1 inezriyen i n-sen yakan].",
-       "feedback-bugnew": "Senqedeɣ. Ɛeyyen anezri amaynut",
        "searchsuggest-search": "Nadi",
        "searchsuggest-containing": "yesɛan...",
        "api-error-badaccess-groups": "Ur tesɛiḍ ara turagt ad smireḍ ifuyla ɣef wiki agi.",
index ac50fb7..a54f831 100644 (file)
        "delete-toobig": "بۇل بەتتە بايتاق تۇزەتۋ تارىيحى بار, $1 تۇزەتۋدەن استام.\nبۇنداي بەتتەردىڭ جويۋى {{SITENAME}} تورابىن الدەقالاي ٴۇزىپ تاستاۋىنا بوگەت سالۋ ٴۇشىن تىيىمدالعان.",
        "delete-warning-toobig": "بۇل بەتتە بايتاق تۇزەتۋ تارىيحى بار, $1 تۇزەتۋدەن استام.\nبۇنىڭ جويۋى {{SITENAME}} تورابىنداعى دەرەكقور ارەكەتتەردى ٴۇزىپ تاستاۋىن مۇمكىن;\nبۇنى ابايلاپ وتكىزىڭىز.",
        "rollback": "وڭدەمەلەردى شەگىندىرۋ",
-       "rollback_short": "شەگىندىرۋ",
        "rollbacklink": "شەگىندىرۋ",
        "rollbackfailed": "شەگىندىرۋ ٴساتسىز ٴبىتتى",
        "cantrollback": "وڭدەمە قايتارىلمادى;\nسوڭعى ۇلەسكەرى تەك وسى بەتتىڭ باستاۋشىسى بولدى.",
        "hebrew-calendar-m10-gen": "تىموزدىڭ",
        "hebrew-calendar-m11-gen": "ابتىڭ",
        "hebrew-calendar-m12-gen": "ايلولدىڭ",
-       "unknown_extension_tag": "تانىلماعان كەڭەيتپە بەلگىسى «$1»",
        "version": "جۇيە نۇسقاسى",
        "version-extensions": "ورناتىلعان كەڭەيتىمدەر",
        "version-specialpages": "ارنايى بەتتەر",
        "version-parser-function-hooks": "قۇرىلىمدىق تالداتقىش جەتەلەرىنىڭ تۇزاقتارى",
        "version-hook-name": "تۇزاق اتاۋى",
        "version-hook-subscribedby": "تۇزاق تارتقىشتارى",
-       "version-version": "(نۇسقاسى: $1)",
+       "version-version": "($1)",
        "version-license": "لىيتسەنزىيياسى",
        "version-software": "ورناتىلعان باعدارلامالىق جاساقتاما",
        "version-software-product": "ٴونىم",
index 580baf0..2906e05 100644 (file)
@@ -9,7 +9,9 @@
                        "GaiJin",
                        "Kaztrans",
                        "Balnur.s",
-                       "Нұрлан Рахымжанов"
+                       "Нұрлан Рахымжанов",
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Сілтеменің астын сызу:",
        "otherlanguages": "Басқа тілдерде",
        "redirectedfrom": "($1 бетінен бағытталған)",
        "redirectpagesub": "Бағыттау беті",
+       "redirectto": "Мына бетке бағытталған:",
        "lastmodifiedat": "Бұл беттің соңғы өзгертілген кезі: $2, $1.",
        "viewcount": "Бұл бет {{PLURAL:$1|бір рет|$1 уақыт}} қатыналған.",
        "protectedpage": "Қорғалған бет",
        "disclaimers": "Жауапкершіліктен бас тарту",
        "disclaimerpage": "Project:Жауапкершіліктен бас тарту",
        "edithelp": "Өндеу анықтамасы",
+       "helppage-top-gethelp": "Анықтама",
        "mainpage": "Басты бет",
        "mainpage-description": "Басты бет",
        "policy-url": "Project:Ережелер",
        "summary-preview": "Қысқаша түйіндемесін қарап шығу:",
        "subject-preview": "Тақырыбын/бас жолын қарап шығу:",
        "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, бұғатау нөмірі: #$5.\nСұраным жасағанда осының екеуін де кірістіруіңізді сұраймыз.",
+       "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, бұғатау нөмірі: #$5.\nСұраным жасағанда осының екеуін де кірістіруіңізді сұраймыз.",
        "autoblockedtext": "IP мекенжайыңыз автоматты бұғатталған, себебі оны басқа қатысушы пайдаланған. Оны $1 есімді әкімші бұғаттаған\n\nКелтірілген себебі: \n:<em>$2</em>\n\n* Бұғаттаудың басталғаны: $8\n* Бұғаттаудың бітетіні: $6\n* Бұғаттау нысанасы: $7\n\nОсы бұғаттауды талқылау үшін $1 не басқа [[{{MediaWiki:Grouppage-sysop}}|әкімшімен]] байланыса аласыз.\n[[Special:Preferences|Тіркелгі бапталымдары]]ңызда жарамды е-пошта мекенжайын көрсеткен болсаңыз және де оны пайдаланудан бұғатталмаған жағдайда ғана «Қатысушыға хат жазу» қызметін қолдана аласыз.\nАғымдық IP мекенжайыңыз: $3, бұғатау нөмірі: $5.\nСұраным жасағанда осының екеуін де кірістіруіңізді сұраймыз.",
        "blockednoreason": "еш себебі келтірілмеген",
        "whitelistedittext": "Беттерді өңдеу үшін $1.",
        "rcshowhideanons": "Кірмегендерді $1",
        "rcshowhideanons-show": "көрсету",
        "rcshowhideanons-hide": "жасыру",
-       "rcshowhidepatr": "Ð\97еÑ\80Ñ\82Ñ\82елген өңдемелерді $1",
+       "rcshowhidepatr": "ТекÑ\81еÑ\80Ñ\96лген өңдемелерді $1",
        "rcshowhidepatr-show": "көрсету",
        "rcshowhidepatr-hide": "жасыру",
        "rcshowhidemine": "Өңдемелерімді $1",
        "number_of_watching_users_pageview": "[бақылаған $1 қатысушы]",
        "rc_categories": "Санаттарға шектеу (\"|\" белгісімен бөліктеңіз)",
        "rc_categories_any": "Кез келген",
-       "rc-change-size-new": "Өңдеуден кейінгі көлемі: $1{{PLURAL:$1|байт|байт}}",
+       "rc-change-size-new": "Өңдеуден кейінгі көлемі: $1 {{PLURAL:$1|байт|байт}}",
        "newsectionsummary": "/* $1 */ жаңа бөлім",
        "rc-enhanced-expand": "Толық ақпаратты көрсету",
        "rc-enhanced-hide": "Толық ақпаратты жасыру",
        "importunknownsource": "Cырттан алынатын қайнар түрі белгісіз",
        "importcantopen": "Сырттан алынатын файл ашылмайды",
        "importbadinterwiki": "Жарамсыз уики-аралық сілтеме",
-       "importsuccess": "СÑ\8bÑ\80Ñ\82Ñ\82ан Ð°Ð»у аяқталды!",
+       "importsuccess": "Ð\98мпоÑ\80Ñ\82Ñ\82ау аяқталды!",
        "importnosources": "Уики-апару үшін сырттан алынатын еш қайнар көзі анықталмаған, және тарихын тікелей қотарып беруі өшірілген.",
        "importnofile": "Сырттан алынған файл жүктелген жоқ.",
        "importuploaderrorsize": "Импортталған файлдың жүктелуі сәтсіз болды. \nФайл рұқсат етілгеннен жүктеу өлшемінен үлкенірек.",
        "import-options-wrong": "Қате {{PLURAL:$2|параметр|параметр}}: <nowiki>$1</nowiki>",
        "importlogpage": "Сырттан алу журналы",
        "importlogpagetext": "Беттерді түзету тарихымен бірге сыртқы уикилерден әкімші ретінде алу.",
-       "import-logentry-upload": "«[[$1]]» дегенді файл жүктеу арқылы сырттан алды",
        "import-logentry-upload-detail": "$1 түзету",
-       "import-logentry-interwiki": "уики-апарылған $1",
        "import-logentry-interwiki-detail": "$2 дегеннен $1 түзету",
        "javascripttest": "JavaScript сынақталуда",
        "javascripttest-qunit-intro": "[$1 сынақтау құжаттамасын]  mediawiki.org-тен қара.",
        "markedaspatrollederror": "Зерттелді деп белгіленбейді",
        "markedaspatrollederrortext": "Зерттелді деп белгілеу үшін түзетуді келтіріңіз.",
        "markedaspatrollederror-noautopatrol": "Өз жасаған өзгерістеріңізді зерттелді деп белгілей алмайсыз.",
-       "patrol-log-page": "Ð\97еÑ\80Ñ\82Ñ\82еу журналы",
-       "log-show-hide-patrol": "$1 зерттеу журналы",
+       "patrol-log-page": "ТекÑ\81еÑ\80у журналы",
+       "log-show-hide-patrol": "$1 тексеру журналы",
        "deletedrevision": "Ескі түзетуін жойды: $1",
        "filedeleteerror-short": "Файл жою қатесі: $1",
        "filedeleteerror-long": "Файлды жойғанда қателер кездесті:\n\n$1",
        "version-parser-function-hooks": "Құрылымдық талдатқыш жетелерінің тұзақтары",
        "version-hook-name": "Тұзақ атауы",
        "version-hook-subscribedby": "Тұзақ тартқыштары",
-       "version-version": "(Нұсқасы: $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[аты жоқ]",
        "version-license": "MediaWiki Лицензиясы",
        "version-ext-license": "Лицензия",
        "revdelete-uname-unhid": "қатысушы есімі жасырылмаған",
        "revdelete-restricted": "әкімшілерге тиымдар қолдады",
        "revdelete-unrestricted": "әкімшілерден тиымдарды аластады",
+       "logentry-block-unblock": "$1 {{GENDER:$4|$3}} деген қатысушыны {{GENDER:$2|бұғатынан босатты}}",
        "logentry-move-move": "$1 $3 бетін $4 бетіне {{GENDER:$2|жылжытты}}",
        "logentry-move-move-noredirect": "$1 $3 бетін $4 бетіне {{GENDER:$2|жылжытты}} (айдатқыш қалдырмады)",
        "logentry-move-move_redir": "$1 $3 бетін $4 деген айдатқыш үстіне {{GENDER:$2|жылжытты}}",
        "logentry-rights-rights-legacy": "$1 $3 үшін топ мүшелігін {{GENDER:$2|өзгерті}}",
        "logentry-upload-upload": "$1 $3 файлын {{GENDER:$2|жүктеді}}",
        "logentry-upload-overwrite": "$1 $3 дегеннің жаңа нұсқасын {{GENDER:$2|жүктеді}}",
+       "log-name-managetags": "Тег басқару журналы",
        "rightsnone": "(ешқандай)",
        "revdelete-summary": "өңдеменің қысқаша мазмұндамасы",
-       "feedback-subject": "Тақырып:",
-       "feedback-message": "Хабарлама:",
-       "feedback-cancel": "Болдырмау",
-       "feedback-submit": "Кері байланысты жіберу",
        "feedback-adding": "Бетке кері байланыс қосуда...",
+       "feedback-cancel": "Болдырмау",
+       "feedback-close": "Жасалды",
        "feedback-error2": "Қате: Өңдеме сәтсіздікке ұшырады",
+       "feedback-message": "Хабарлама:",
+       "feedback-subject": "Тақырып:",
+       "feedback-submit": "Жіберу",
        "feedback-thanks": "Рахмет! Сіздің кері байланысыңыз \"[$2 $1]\" бетіне қойылды.",
-       "feedback-close": "Жасалды",
        "searchsuggest-search": "Іздеу",
        "searchsuggest-containing": "қамтылуда...",
        "api-error-badaccess-groups": "Сізге бұл уикиге файл жүктеуге рұқсат етілмеген.",
        "expand_templates_ok": "OK",
        "expand_templates_remove_comments": "Мәндемелерін аластатып?",
        "expand_templates_generate_xml": "XML өңдету бұтақтарын көрсет",
-       "expand_templates_preview": "Қарап шығу"
+       "expand_templates_preview": "Қарап шығу",
+       "headline-anchor-title": "Бұл бөлімнің уики сілтемесі"
 }
index 2cca3e1..7e62a68 100644 (file)
        "delete-toobig": "Bul bette baýtaq tüzetw tarïxı bar, $1 tüzetwden astam.\nBundaý betterdiñ joywı {{SITENAME}} torabın äldeqalaý üzip tastawına böget salw üşin tïımdalğan.",
        "delete-warning-toobig": "Bul bette baýtaq tüzetw tarïxı bar, $1 tüzetwden astam.\nBunıñ joywı {{SITENAME}} torabındağı derekqor äreketterdi üzip tastawın mümkin;\nbunı abaýlap ötkiziñiz.",
        "rollback": "Öñdemelerdi şegindirw",
-       "rollback_short": "Şegindirw",
        "rollbacklink": "şegindirw",
        "rollbackfailed": "Şegindirw sätsiz bitti",
        "cantrollback": "Öñdeme qaýtarılmadı;\nsoñğı üleskeri tek osı bettiñ bastawşısı boldı.",
        "version-parser-function-hooks": "Qurılımdıq taldatqış jeteleriniñ tuzaqtarı",
        "version-hook-name": "Tuzaq atawı",
        "version-hook-subscribedby": "Tuzaq tartqıştarı",
-       "version-version": "(Nusqası: $1)",
+       "version-version": "($1)",
        "version-license": "Lïcenzïyası",
        "version-software": "Ornatılğan bağdarlamalıq jasaqtama",
        "version-software-product": "Önim",
index b6cd802..f0a7ef5 100644 (file)
@@ -14,7 +14,8 @@
                        "គីមស៊្រុន",
                        "តឹក ប៊ុនលី",
                        "វ័ណថារិទ្ធ",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "គូសបន្ទាត់ក្រោម​តំណភ្ជាប់៖",
        "delete-warning-toobig": "ទំព័រនេះមានប្រវត្តិកែប្រែធំលើសពី $1 {{PLURAL:$1|កំណែ|កំណែ}}។\n\nការលុបទំព័របែបនេះចោលអាចធ្វើអោយមានការរអាក់រអួលប្រតិបត្តិការរបស់មូលដ្ឋានទិន្នន័យក្នុង{{SITENAME}}។\n\nសូមបន្តសកម្មភាពនេះដោយប្រុងប្រយ័ត្ន។",
        "deleteprotected": "អ្នកមិនអាចលុបចោលទំព័រនេះបានទេព្រោះវាត្រូវបានការពារហើយ។",
        "rollback": "មូលត្រឡប់កំណែប្រែ",
-       "rollback_short": "មូលត្រឡប់",
        "rollbacklink": "មូលត្រឡប់",
        "rollbacklinkcount": "មូលត្រឡប់ $1 {{PLURAL:$1|កំណែប្រែ|កំណែប្រែ}}",
        "rollbacklinkcount-morethan": "មូលត្រឡប់ច្រើនជាង $1 {{PLURAL:$1|កំណែប្រែ|កំណែប្រែ}}",
        "import-upload": "ផ្ទុកឡើងទិន្នន័យ XML",
        "import-invalid-interwiki": "មិន​អាច​នាំ​ចូល​ពី​វិគី​ដែល​បាន​បញ្ជាក់​។",
        "importlogpage": "កំណត់ហេតុនៃការនាំចូល",
-       "import-logentry-upload": "បាននាំចូល [[$1]] ដោយការផ្ទុកឡើង ឯកសារ",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|កំណែ}}",
-       "import-logentry-interwiki": "បាននាំចូល$1ពីវិគីផ្សេងទៀត",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|កំណែ}} ពី $2",
        "tooltip-pt-userpage": "ទំព័រអ្នកប្រើប្រាស់​របស់អ្នក​",
        "tooltip-pt-mytalk": "ទំព័រពិភាក្សា​របស់អ្នក​",
        "version-mediahandlers": "កម្មវិធី​បើក​មេឌា​ (Media handlers)",
        "version-hook-name": "ឈ្មោះ​ Hook",
        "version-hook-subscribedby": "បានជាវ ជាប្រចាំ ដោយ",
-       "version-version": "(កំណែ $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[គ្មានឈ្មោះ]",
        "version-license": "អាជ្ញាបណ្ណ​មេឌាវិគី",
        "version-ext-license": "អាជ្ញាបណ្ណ",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|ត្រូវបានតំឡើង}}សមាជិកភាពពី $4 ជា $5 ដោយស្វ័យប្រវត្តិ",
        "rightsnone": "(ទទេ)",
        "revdelete-summary": "កែប្រែចំណារពន្យល់",
-       "feedback-subject": "កម្មវត្ថុ ៖",
-       "feedback-message": "សារ​៖",
-       "feedback-cancel": "បោះបង់​",
-       "feedback-submit": "ដាក់ស្នើមតិយោបល់",
        "feedback-adding": "កំពុងបន្ថែមមតិយោបល់ទៅលើទំព័រ...",
+       "feedback-cancel": "បោះបង់​",
+       "feedback-close": "រួចរាល់",
        "feedback-error1": "បញ្ហា៖ លទ្ធផលមិនស្គាល់ពី API",
        "feedback-error2": "បញ្ហា៖ កែប្រែមិនបានសម្រេច",
        "feedback-error3": "បញ្ហា៖ គ្មានចម្លើយតបពី API",
+       "feedback-message": "សារ​៖",
+       "feedback-subject": "កម្មវត្ថុ ៖",
+       "feedback-submit": "ដាក់ស្នើ",
        "feedback-thanks": "សូមអរគុណ! មតិយោបល់របស់អ្នកត្រូវបានដាក់ផ្សាយនៅលើទំព័រ \"[$2 $1]\"។",
-       "feedback-close": "រួចរាល់",
        "searchsuggest-search": "ស្វែងរក​",
        "searchsuggest-containing": "ដែលមានពាក្យ...",
        "api-error-badaccess-groups": "អ្នកគ្មានការអនុញ្ញាតអោយផ្ទុកឯកសារឡើងទៅក្នុងវិគីនេះទេ។",
index cb9be3c..9af2ee9 100644 (file)
        "otherlanguages": "ಇತರ ಭಾಷೆಗಳು",
        "redirectedfrom": "($1 ಇಂದ ಪುನರ್ನಿರ್ದೇಶಿತ)",
        "redirectpagesub": "ಪುನರ್ನಿರ್ದೇಶನ ಪುಟ",
+       "redirectto": "ಪುನರ್ನಿರ್ದೇಶನ ಇದಕ್ಕೆ:",
        "lastmodifiedat": "ಈ ಪುಟವನ್ನು ಕೊನೆಯಾಗಿ $2, $1 ರಂದು ಬದಲಾಯಿಸಲಾಗಿತ್ತು.",
        "viewcount": "ಈ ಪುಟವನ್ನು {{PLURAL:$1|೧ ಬಾರಿ|$1 ಬಾರಿ}} ವೀಕ್ಷಿಸಲಾಗಿದೆ.",
        "protectedpage": "ಸಂರಕ್ಷಿತ ಪುಟ",
        "currentrev": "ಈಗಿನ ತಿದ್ದುಪಡಿ",
        "currentrev-asof": "ಅತ್ಯಂತ ಇತ್ತೀಚಿನ ಆವೃತ್ತಿ ($1)",
        "revisionasof": "$1 ದಿನದ ಆವೃತ್ತಿ",
-       "revision-info": "$2 ಅವರು $1 ಅಂದು ಸಂಪಾದನೆ ಮಾಡಿದ ನಂತರದ ಆವೃತ್ತಿ",
+       "revision-info": "ಬದಲಾವಣೆ $1 ರಂತೆ {{GENDER:$6|$2}} ಇವರಿಂದ $7",
        "previousrevision": "←ಹಿಂದಿನ ಪರಿಷ್ಕರಣೆ",
        "nextrevision": "ಮುಂದಿನ ಪರಿಷ್ಕರಣೆ",
        "currentrevisionlink": "ಈಗಿನ ಪರಿಷ್ಕರಣೆ",
        "rcshowhidebots": "ಬಾಟ್‍ಗಳನ್ನು $1",
        "rcshowhidebots-show": "ತೊರಿಸಿ",
        "rcshowhidebots-hide": "ಮರೆ ಮಾಡಿ",
-       "rcshowhideliu": "ಲಾಗ್-ಇನ್ ಆಗಿರುವ ಸದಸ್ಯರು $1",
+       "rcshowhideliu": "$1 ನೊಂದಾಯಿತ ಬಳಕೆದಾರರು",
        "rcshowhideliu-show": "ತೊರಿಸಿ",
        "rcshowhideliu-hide": "ಮರೆ ಮಾಡಿ",
        "rcshowhideanons": "ಅನಾಮಧೇಯ ಸದಸ್ಯರು $1",
        "number_of_watching_users_pageview": "[$1 ವೀಕ್ಷಿಸುತ್ತಿರುವ {{PLURAL:$1|ಸದಸ್ಯ|ಸದಸ್ಯರು}}]",
        "rc_categories": "ವರ್ಗಗಳಿಗೆ ಮಾತ್ರ ಸೀಮಿತವಾಗಿಸು (\"|\" ಇಂದ ಬೇರ್ಪಡಿಸು)",
        "rc_categories_any": "ಯಾವುದೇ",
+       "rc-change-size-new": "$1 {{PLURAL:$1|byte|bytes}} ಬದಲಾವಣೆಯ ನಂತರ change",
        "newsectionsummary": "/* $1 */ ಹೊಸ ವಿಭಾಗ",
        "rc-enhanced-expand": "ವಿವರಗಳನ್ನು ತೋರಿಸು (JavaScript ಬೇಕಾಗುತ್ತದೆ)",
        "rc-enhanced-hide": "ವಿವರಗಳನ್ನು ಅಡಗಿಸು",
        "suppress": "ನಿಗಾ ಇಡುವವ",
        "booksources": "ಪುಸ್ತಕಗಳ ಮೂಲ",
        "booksources-search-legend": "ಪುಸ್ತಕ ಮೂಲಗಳಿಗೆ ಹುಡುಕು",
+       "booksources-search": "ಹುಡುಕು",
        "specialloguserlabel": "ಸದಸ್ಯ:",
        "speciallogtitlelabel": "ಶೀರ್ಷಿಕೆ:",
        "log": "ದಾಖಲೆಗಳು",
        "deletereasonotherlist": "ಇತರ ಕಾರಣ",
        "deletereason-dropdown": "*ಸಾಮಾನ್ಯ ಅಳಿಸುವಿಕೆಯ ಕಾರಣಗಳು\n** ಸಂಪಾದಕರ ಕೋರಿಕೆ\n** ಕೃತಿಸ್ವಾಮ್ಯತೆಯ ಉಲ್ಲಂಘನೆ\n** Vandalism",
        "delete-edit-reasonlist": "ಅಳಿಸುವಿಕೆ ಕಾರಣಗಳನ್ನು ಸಂಪಾದಿಸು",
-       "rollback_short": "ತೊಡೆದುಹಾಕು",
        "rollbacklink": "ತೊಡೆದುಹಾಕು",
        "protectlogpage": "ಸಂರಕ್ಷಣೆ ದಿನಚರಿ",
        "protectedarticle": "\"[[$1]]\" ಸಂರಕ್ಷಿಸಲಾಗಿದೆ.",
        "tooltip-pt-mycontris": "ನಿಮ್ಮ ಕಾಣಿಕೆಗಳ ಪಟ್ಟಿ",
        "tooltip-pt-login": "ನೀವು ಲಾಗ್ ಇನ್ ಆಗಬೇಕೆಂದು ಕೋರುತ್ತೇವೆ, ಆದರೆ ಅದು ಖಡ್ಡಾಯ ಏನು ಅಲ್ಲ.",
        "tooltip-pt-logout": "ಲಾಗ್ ಔಟ್",
+       "tooltip-pt-createaccount": "ನೀವು ಹೊಸ ಖಾತೆಯನ್ನು ತೆರೆದು ಲಾಗಿನ್ ಆಗುವುದನ್ನು ಹುರಿದುಂಬಿಸುತ್ತೇವೆ; ಆದಾಗ್ಯೂ, ಇದು ಅವಶ್ಯವೇನಿಲ್ಲ",
        "tooltip-ca-talk": "ಮಾಹಿತಿ ಪುಟದ ಬಗ್ಗೆ ಚರ್ಚೆ",
        "tooltip-ca-edit": "ಈ ಪುಟವನ್ನು ನೀವು ಸಂಪಾದಿಸಬಹುದು. ಉಳಿಸುವ ಮುನ್ನ ಮುನ್ನೋಟವನ್ನು ಉಪಯೋಗಿಸಿ.",
        "tooltip-ca-addsection": "ಹೊಸ ವಿಭಾಗವನ್ನು ಪ್ರಾರಂಭಿಸಿ",
        "others": "ಇತರರು",
        "siteusers": "{{SITENAME}} {{PLURAL:$2|ಸದಸ್ಯ|ಸದಸ್ಯರು}} $1",
        "creditspage": "ಪುಟದ ಗೌರವಗಳು",
+       "simpleantispam-label": "ಆಂಟಿ-ಸ್ಪ್ಯಾಮ್ ಪರೀಕ್ಷೆ.\nಇದನ್ನು ತುಂಬ <strong>ಬೇಡಿ</strong>!",
        "pageinfo-toolboxlink": "ಪುಟದ ಮಾಹಿತಿ",
        "pageinfo-redirectsto": "ಪುನರ್ನಿರ್ದೇಶನ:",
        "deletedrevision": "ಹಳೆ ಆವೃತ್ತಿ $1 ಅನ್ನು ಅಳಿಸಲಾಗಿದೆ",
        "file-info-size": "$1 × $2 ಚಿತ್ರಬಿಂದು, ಫೈಲಿನ ಗಾತ್ರ: $3, MIME ಪ್ರಕಾರ: $4",
        "file-nohires": "ಇದಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ವಿವರವಾದ ನೋಟ ಇಲ್ಲ.",
        "svg-long-desc": "SVG ಫೈಲು, ಸುಮಾರಾಗಿ $1 × $2 ಚಿತ್ರಬಿಂದುಗಳು, ಫೈಲಿನ ಗಾತ್ರ: $3",
-       "show-big-image": "ಅತಿ ಹೆಚ್ಚು ವಿವರವಾದ ನೋಟ",
+       "show-big-image": "ಮೂಲ ಕಡತ",
+       "show-big-image-size": "$1 × $2 ಪಿಕ್ಸೆಲ್‌ಗಳು",
        "newimages": "ಹೊಸ ಫೈಲುಗಳ ಪ್ರದರ್ಶನ",
        "imagelisttext": "ಕೆಳಗೆ ಇರುವುದು '''$1''' {{PLURAL:$1|ಫೈಲಿನ|ಫೈಲುಗಳ}} ಪಟ್ಟಿ, $2 ಏರ್ಪಾಟಾಗಿದೆ.",
        "newimages-summary": "ಈ ವಿಶೇಷ ಪುಟವು ಕೊನೆಯದಾಗಿ ಅಪ್ಲೋಡ್ ಆಗಿರುವ ಫೈಲುಗಳನ್ನು ತೋರುತ್ತದೆ",
        "exif-usercomment": "ಬಳಕೆದಾರನ ಟಿಪ್ಪಣಿ",
        "exif-relatedsoundfile": "ಸಂಬಂಧಿತ ಧ್ವನಿ ಫೈಲು",
        "exif-datetimeoriginal": "ಮಾಹಿತಿ ಸೃಷ್ಟಿಯಾದ ದಿನಾಂಕ ಮತ್ತು ಕಾಲ",
+       "exif-datetimedigitized": "ಗಣಕೀಕರಣದ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ",
        "exif-exposuretime-format": "$1 ಕ್ಷಣ ($2)",
        "exif-fnumber": "F ಸಂಖ್ಯೆ",
        "exif-brightnessvalue": "ಪ್ರಕಾಶತೆ",
        "exif-copyrighted": "ಕೃತಿಸ್ವಾಮ್ಯತೆಯ ಸ್ಥಿತಿ",
        "exif-copyrightowner": "ಕೃತಿಸ್ವಾಮ್ಯತೆಯನ್ನು ಹೊಂದಿರುವವರು",
        "exif-unknowndate": "ದಿನಾಂಕ ತಿಳಿದಿಲ್ಲ",
+       "exif-orientation-1": "ಸಾಧಾರಣ",
        "exif-orientation-3": "180° ತಿರುಗಿಸಲ್ಪಟ್ಟಿದೆ",
        "exif-componentsconfiguration-0": "ಅಸ್ಥಿತ್ವದಲ್ಲಿ ಇಲ್ಲ",
        "exif-meteringmode-0": "ತಿಳಿದಿಲ್ಲ",
        "watchlisttools-view": "ಸೂಚಿಸಲ್ಪಟ್ಟ ಬದಲಾವಣೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ",
        "watchlisttools-edit": "ವೀಕ್ಷಣಾಪಟ್ಟಿಯನ್ನು ನೋಡು ಮತ್ತು ಸಂಪಾದಿಸು",
        "watchlisttools-raw": "ಮೂಲ ವೀಕ್ಷಣಾಪಟ್ಟಿಯನ್ನು ಸಂಪಾದಿಸು",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|ಚರ್ಚೆ]])",
        "version": "ಆವೃತ್ತಿ",
        "version-specialpages": "ವಿಶೇಷ ಪುಟಗಳು",
        "version-other": "ಇತರ",
-       "version-version": "(ಆವೃತ್ತಿ $1)",
+       "version-version": "($1)",
        "version-software": "ಸಂಸ್ಥಾಪಿಸಲಾಗಿರುವ ತಂತ್ರಾಂಶ",
        "version-software-product": "ಉತ್ಪನ್ನ",
        "version-software-version": "ಆವೃತ್ತಿ",
        "specialpages-group-pages": "ಪುಟಗಳ ಪಟ್ಟಿ",
        "specialpages-group-redirects": "ವಿಶೇಷ ಪುಟಗಳನ್ನು ಪುನರ್ನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ",
        "blankpage": "ಖಾಲಿ ಪುಟ",
-       "tag-filter": "[[ವಿಶà³\87ಷ:ತಳà³\81à²\95à³\81à²\97ಳà³\81|ತಳà³\81à²\95à³\81]] ಶೋಧಕ:",
+       "tag-filter": "[[ವಿಶà³\87ಷ:à²\9fà³\8dಯಾà²\97à³\8dâ\80\8cà²\97ಳà³\81|à²\9fà³\8dಯಾà²\97à³\8d]] ಶೋಧಕ:",
        "tag-filter-submit": "ಶೋಧಕ",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|ಟ್ಯಾಗ್|ಟ್ಯಾಗ್‌ಗಳು}}]]: $2)",
        "tags-title": "ಅಂಕಿತಗಳು",
        "tags-tag": "ಅಂಕಿತ ನಾಮ",
        "tags-active-header": "ಸಕ್ರಿಯ?",
        "htmlform-selectorother-other": "ಇತರ",
        "htmlform-no": "ಇಲ್ಲ",
        "htmlform-yes": "ಹೌದು",
+       "logentry-delete-delete": "$1 {{GENDER:$2|ಅಳಿಸಲಾಯಿತು}} ಪುಟ $3",
        "revdelete-restricted": "ನಿರ್ವಾಹಕರಿಗೆ ನಿಬಂಧನೆಗಳನ್ನು ಅನ್ವಯಿಸಲಾಯಿತು",
        "revdelete-unrestricted": "ನಿರ್ವಾಹಕರ ನಿಬಂಧನೆಗಳನ್ನು ತೆಗೆಯಲಾಯಿತು",
+       "logentry-move-move": "$1 $3 ಪುಟವನ್ನು $4 ಕ್ಕೆ {{GENDER:$2|ಸರಿಸಿದ್ದಾರೆ}}",
+       "logentry-newusers-create": "ಬಳಕೆದಾರ ಖಾತೆ $1 ನ್ನು {{GENDER:$2|ಸೃಷ್ಟಿಸಲಾಯಿತು}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|ಅಪ್ಲೋಡ್ ಮಾಡಿದ್ದಾರೆ}} $3",
        "rightsnone": "(ಯಾವೂ ಇಲ್ಲ)",
        "revdelete-summary": "ಸಂಪಾದನೆಯ ತಾತ್ಪರ್ಯ",
-       "feedback-subject": "ವಿಷಯ:",
        "feedback-message": "ಸಂದೇಶ:",
+       "feedback-subject": "ವಿಷಯ:",
+       "searchsuggest-search": "ಹುಡುಕು",
        "duration-seconds": "$1 {{PLURAL:$1|ಕ್ಷಣ|ಕ್ಷಣಗಳು}}",
        "duration-minutes": "$1 {{PLURAL:$1|ನಿಮಿಷ|ನಿಮಿಷಗಳು}}",
        "duration-hours": "$1 {{PLURAL:$1|ಘಂಟೆ|ಘಂಟೆಗಳು}}",
index 6444df3..a3bf59e 100644 (file)
@@ -44,7 +44,8 @@
                        "Namoroka",
                        "양념파닭",
                        "콩가루",
-                       "Twotwo2019"
+                       "Twotwo2019",
+                       "SeoJeongHo"
                ]
        },
        "tog-underline": "링크에 밑줄:",
        "disclaimers": "면책 조항",
        "disclaimerpage": "Project:면책 조항",
        "edithelp": "편집 도움말",
+       "helppage-top-gethelp": "도움말",
        "mainpage": "대문",
        "mainpage-description": "대문",
        "policy-url": "Project:정책",
        "readonly_lag": "슬레이브 데이터베이스가 마스터 서버의 자료를 새로 고치는 중입니다. 데이터베이스가 자동으로 잠겨 있습니다.",
        "internalerror": "내부 오류",
        "internalerror_info": "내부 오류: $1",
+       "internalerror-fatal-exception": "종류 \"$1\"에서 심각한 오류",
        "filecopyerror": "\"$1\" 파일을 \"$2\"로 복사할 수 없습니다.",
        "filerenameerror": "\"$1\" 파일을 \"$2\"로 옮길 수 없습니다.",
        "filedeleteerror": "\"$1\" 파일을 삭제할 수 없습니다.",
        "virus-badscanner": "잘못된 설정: 알 수 없는 바이러스 검사기: '''$1'''",
        "virus-scanfailed": "검사 실패 (코드 $1)",
        "virus-unknownscanner": "알 수 없는 안티 바이러스:",
-       "logouttext": "<strong>ì§\80ê¸\88 ë¡\9cê·¸ì\95\84ì\9b\83í\96\88ì\8aµë\8b\88ë\8b¤.</strong>\n\në¸\8cë\9d¼ì\9a°ì \80 ìº\90ì\8b\9c를 ì§\80ì\9a°ì§\80 ì\95\8aì\9c¼ë©´ ì\9d¼ë¶\80 ë¬¸ì\84\9cì\97\90ì\84\9c ë¡\9cê·¸ì\9d¸ì\9d´ ë\90\98ì\96´ ì\9e\88ë\8a\94 ê²\83ì²\98ë\9f¼ ë³´ì\9d¼ ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤.",
+       "logouttext": "<strong>ì\9d´ì \9c ë¡\9cê·¸ì\95\84ì\9b\83í\96\88ì\8aµë\8b\88ë\8b¤.</strong>\n\në¸\8cë\9d¼ì\9a°ì \80 ìº\90ì\8b\9c를 ì§\80ì\9a¸ ë\95\8cê¹\8cì§\80 ì\9d¼ë¶\80 ë¬¸ì\84\9cì\97\90ì\84\9c ì\95\84ì§\81 ë¡\9cê·¸ì\9d¸ì\9d´ ë\90\98ì\96´ ì\9e\88ë\8a\94 ê²\83ì²\98ë\9f¼ ë³´ì\9d¼ ì\88\98 ì\9e\88ì\9d\8cì\97\90 ì\9c ì\9d\98í\95\98ì\84¸ì\9a\94.",
        "welcomeuser": "$1님, 환영합니다!",
        "welcomecreation-msg": "계정이 만들어졌습니다.\n[[Special:Preferences|{{SITENAME}} 사용자 환경 설정]]을 바꿀 수 있습니다.",
        "yourname": "사용자 이름:",
        "missingcommentheader": "'''알림:''' 글의 제목을 입력하지 않았습니다.\n다시 \"{{int:savearticle}}\" 버튼을 클릭하면 글이 제목 없이 저장됩니다.",
        "summary-preview": "요약 미리 보기:",
        "subject-preview": "주제/제목 미리 보기:",
+       "previewerrortext": "변경사항을 미리보기하는 동안 에러가 생겼습니다.",
        "blockedtitle": "사용자가 차단됨",
        "blockedtext": "'''사용자 계정 또는 IP 주소가 차단되었습니다.'''\n\n차단한 사람은 $1입니다.\n차단한 이유는 다음과 같습니다: $2\n\n* 차단이 시작된 시간: $8\n* 차단이 끝나는 시간: $6\n* 차단된 사용자: $7\n\n$1 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대해 문의할 수 있습니다.\n[[Special:Preferences|계정 환경 설정]]에 올바른 이메일 주소가 있어야만 '이메일 보내기' 기능을 사용할 수 있습니다. 또 이메일 보내기 기능이 차단되어 있으면 이메일을 보낼 수 없습니다.\n현재 당신의 IP 주소는 $3이고, 차단 ID는 #$5입니다.\n문의할 때에 이 정보를 같이 알려주세요.",
        "autoblockedtext": "당신의 IP 주소는 $1 사용자가 차단한 사용자가 사용했던 IP이기 때문에 자동으로 차단되었습니다.\n차단된 이유는 다음과 같습니다:\n\n:$2\n\n* 차단이 시작된 시간: $8\n* 차단이 끝나는 시간: $6\n* 차단된 사용자: $7\n\n$1 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대해 문의할 수 있습니다.\n\n[[Special:Preferences|계정 환경 설정]]에 올바른 이메일 주소가 있어야만 \"이메일 보내기\" 기능을 사용할 수 있습니다. 또한 이메일 보내기 기능이 차단되어 있으면 이메일을 보낼 수 없습니다.\n\n현재 IP 주소는 $3이고, 차단 ID는 #$5입니다.\n문의할 때에 이 정보를 같이 알려주세요.",
        "prefs-rc": "최근 바뀜",
        "prefs-watchlist": "주시문서 목록",
        "prefs-editwatchlist": "주시목록 편집",
+       "prefs-editwatchlist-label": "주시문서 목록의 항목을 편집합니다:",
+       "prefs-editwatchlist-edit": "주시문서의 제목을 보고 지우기",
+       "prefs-editwatchlist-raw": "주시문서 목록 직접 편집하기",
        "prefs-editwatchlist-clear": "주시문서 목록 지우기",
        "prefs-watchlist-days": "주시문서 목록에서 볼 날짜 수:",
        "prefs-watchlist-days-max": "최대 $1{{PLURAL:$1|일}}",
        "recentchanges-label-plusminus": "바이트로 표기된 바뀐 문서 크기",
        "recentchanges-legend-heading": "'''범례:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|새 문서 목록]]도 보세요)",
-       "recentchanges-legend-plusminus": "(''±123'')",
+       "recentchanges-legend-plusminus": "(<em>±123</em>)",
        "rcnotefrom": "아래는 <strong>$3, $4</strong>부터 시작하는 {{PLURAL:$5|바뀜이 있습니다}}. (최대 <strong>$1</strong>개가 보여집니다)",
        "rclistfrom": "$3 $2부터 시작하는 새로 바뀐 문서 보기",
        "rcshowhideminor": "사소한 편집을 $1",
        "namespace": "이름공간:",
        "invert": "선택 반전",
        "tooltip-invert": "선택한 이름공간(선택되어 있다면 관련된 이름공간도 포함)에 있는 문서의 바뀜을 숨기려면 이 상자를 선택하세요",
+       "tooltip-whatlinkshere-invert": "이 박스를 체크하여 특정 이름공간의 문서에 대한 링크를 숨깁니다.",
        "namespace_association": "관련된 이름공간",
        "tooltip-namespace_association": "선택한 이름공간과 관련된 토론이나 본문 이름공간을 포함하려면 이 상자를 선택하세요",
        "blanknamespace": "(일반)",
        "thumbnail_image-failure-limit": "여기에 이 섬네일을 렌더하는 데 최근에 너무 많이 실패한 시도($1 이상)가 있습니다.\n나중에 다시 시도하세요.",
        "import": "문서 가져오기",
        "importinterwiki": "다른 위키에서 문서 가져오기",
-       "import-interwiki-text": "문ì\84\9c를 ê°\80ì ¸ì\98¬ ì\9c\84í\82¤ë¥¼ ì\84 í\83\9dí\95\98ê³  ë¬¸ì\84\9c ì \9c목ì\9d\84 ì\9e\85ë ¥í\95´ì£¼ì\84¸ì\9a\94.\ní\8e¸ì§\91 ë\82 ì§\9cì\99\80 í\8e¸ì§\91ì\9e\90ì\9d\98 ì\9d´ë¦\84ì\9d´ ë³´ì¡´ë\90  ê²\83ì\9e\85ë\8b\88ë\8b¤.\n모ë\93  ê°\80ì ¸ì\98¤ê¸°ë\8a\94 [[Special:Log/import|ê°\80ì ¸ì\98¤ê¸° ê¸°ë¡\9d]]ì\97\90 ê¸°ë¡\9dë\90  ê²\83ì\9e\85니다.",
+       "import-interwiki-text": "문ì\84\9c를 ê°\80ì ¸ì\98¬ ì\9c\84í\82¤ë¥¼ ì\84 í\83\9dí\95\98ê³  ë¬¸ì\84\9c ì \9c목ì\9d\84 ì\9e\85ë ¥í\95´ì£¼ì\84¸ì\9a\94.\ní\8e¸ì§\91 ë\82 ì§\9cì\99\80 í\8e¸ì§\91ì\9e\90ì\9d\98 ì\9d´ë¦\84ì\9d´ ë³´ì¡´ë\90  ê²\83ì\9e\85ë\8b\88ë\8b¤.\n모ë\93  ê°\80ì ¸ì\98¤ê¸°ë\8a\94 [[Special:Log/import|ê°\80ì ¸ì\98¤ê¸° ê¸°ë¡\9d]]ì\97\90 ê¸°ë¡\9dë\90©니다.",
        "import-interwiki-sourcewiki": "원본 위키:",
        "import-interwiki-sourcepage": "원본 문서:",
        "import-interwiki-history": "이 문서의 모든 역사를 가져오기",
        "importcantopen": "파일을 열 수 없습니다.",
        "importbadinterwiki": "인터위키 링크가 잘못되었습니다.",
        "importsuccess": "가져오기 완료!",
-       "importnosources": "문서를 가져올 출처가 정의되지 않았고 문서 역사 올리기가 비활성화되었습니다.",
+       "importnosources": "문서를 가져올 출처 위키가 정의되지 않았고 문서 역사 올리기가 비활성화되었습니다.",
        "importnofile": "가져오기 파일이 올려지지 않았습니다.",
        "importuploaderrorsize": "파일 올리기를 통한 가져오기에 실패했습니다.\n파일이 허용된 크기 제한보다 큽니다.",
        "importuploaderrorpartial": "가져오기 파일을 올리는 데 실패하였습니다.\n파일이 부분적으로만 올려졌습니다.",
        "import-rootpage-nosubpage": "루트 문서의 \"$1\" 이름공간은 하위 문서를 허용하지 않습니다.",
        "importlogpage": "가져오기 기록",
        "importlogpagetext": "다른 위키에서 가져온 문서 기록입니다.",
-       "import-logentry-upload": "사용자가 파일 올리기를 통해 [[$1]] 문서를 가져왔습니다",
        "import-logentry-upload-detail": "{{PLURAL:$1|판}} $1개를 가져왔습니다",
-       "import-logentry-interwiki": "$1 문서를 다른 위키에서 가져왔습니다",
        "import-logentry-interwiki-detail": "$2에서 {{PLURAL:$1|판}} $1개를 가져왔습니다",
        "javascripttest": "자바스크립트 테스트",
        "javascripttest-pagetext-noframework": "이 문서는 자바스크립트 테스트를 실행하기 위한 용도로 할당되어 있습니다.",
        "tooltip-preferences-save": "환경 설정 저장하기",
        "tooltip-summary": "짧은 요약을 적어주세요",
        "interlanguage-link-title": "$1 – $2",
-       "common.css": "/* 이 CSS 설정은 모든 스킨에 동일하게 적용됩니다 */",
+       "common.css": "/* 이 CSS 설정은 모든 스킨에 적용됩니다 */",
        "print.css": "/* 이 CSS 설정은 인쇄 출력 화면에 적용됩니다 */",
        "noscript.css": "/* 이 CSS 설정은 자바스크립트를 비활성화한 사용자에 적용됩니다 */",
        "group-autoconfirmed.css": "/* 이 CSS 설정은 자동 인증된 사용자에만 적용됩니다 */",
        "markaspatrolleddiff": "점검한 문서로 표시",
        "markaspatrolledtext": "이 문서를 점검한 것으로 표시",
        "markedaspatrolled": "점검한 문서로 표시",
-       "markedaspatrolledtext": "[[:$1]] ë¬¸ì\84\9cì\9d\98 ì\84 í\83\9dí\95\9c í\8c\90ì\9d\84 ì\88\9cì°°í\95\9c ê²\83ì\9c¼ë¡\9c í\91\9cì\8b\9cí\95\98ì\98\80습니다.",
+       "markedaspatrolledtext": "[[:$1]] ë¬¸ì\84\9cì\9d\98 ì\84 í\83\9dí\95\9c í\8c\90ì\9d\84 ì \90ê²\80í\95\9c ê²\83ì\9c¼ë¡\9c í\91\9cì\8b\9cí\96\88습니다.",
        "rcpatroldisabled": "최근 바뀜 점검 기능 비활성화됨",
        "rcpatroldisabledtext": "최근 바뀜 점검 기능은 현재 비활성화되어 있습니다.",
        "markedaspatrollederror": "점검한 것으로 표시할 수 없습니다.",
        "exif-compression-4": "CCITT 그룹-4 팩스 인코딩",
        "exif-compression-6": "JPEG (오래됨)",
        "exif-compression-8": "수축 (Adobe)",
-       "exif-compression-32773": "PackBits (매킨토시 RLE)",
+       "exif-compression-32773": "PackBits (Macintosh RLE)",
        "exif-compression-32946": "수축 (PKZIP)",
        "exif-copyrighted-true": "저작권의 보호를 받음",
        "exif-copyrighted-false": "저작권 상태를 설정하지 않음",
        "tags-tag": "태그 이름",
        "tags-display-header": "바뀜 목록에서의 모양",
        "tags-description-header": "태그에 대한 설명",
+       "tags-source-header": "출처",
        "tags-active-header": "활성화 여부",
        "tags-hitcount-header": "태그된 바뀜",
+       "tags-actions-header": "동작",
        "tags-active-yes": "예",
        "tags-active-no": "아니오",
+       "tags-source-extension": "확장 기능에 의해 정의됨",
+       "tags-source-manual": "사용자와 봇에 의해 수동으로 적용됨",
+       "tags-source-none": "더 이상 사용하지 않음",
        "tags-edit": "편집",
+       "tags-delete": "삭제",
+       "tags-activate": "활성화",
+       "tags-deactivate": "비활성화",
        "tags-hitcount": "$1개 {{PLURAL:$1|바뀜}}",
+       "tags-manage-no-permission": "태그를 변경할 권한이 없습니다.",
+       "tags-create-heading": "태그 생성",
+       "tags-create-explanation": "기본적으로 새로 생성된 태그는 사용자와 봇이 사용할 수 있습니다.",
+       "tags-create-tag-name": "태그 이름:",
        "tags-create-reason": "이유:",
        "tags-create-submit": "만들기",
+       "tags-create-no-name": "태그 이름을 지정해야 합니다.",
+       "tags-create-invalid-chars": "태그 이름은 콤마 (<code>,</code>)나 슬래시 (<code>/</code>)를 포함할 수 없습니다.",
+       "tags-create-invalid-title-chars": "태그 이름은 문서 제목에 사용할 수 없는 이름으로는 쓸 수 없습니다.",
+       "tags-create-already-exists": "\"$1\" 태그가 이미 존재합니다.",
+       "tags-create-warnings-above": "태그 \"$1\"을 생성하려고 하였으나 {{PLURAL:$2|오류}}가 발생하였습니다.",
+       "tags-create-warnings-below": "태그 생성을 계속하시겠습니까?",
+       "tags-delete-title": "태그 삭제",
+       "tags-delete-explanation-initial": "\"$1\" 태그를 데이터베이스에서 삭제하려고 합니다.",
+       "tags-delete-explanation-in-use": "이 태그가 적용된 {{PLURAL:$2|$2 개의 판이나 로그 기록}}에서 삭제될 것입니다.",
+       "tags-delete-explanation-warning": "이 행위는 데이터베이스 관리자도 <strong>되돌릴 수 없으며</strong> <strong>취소할 수 없습니다.</strong>. 당신이 하려고 하고 있는 행동이 맞는지 확인하십시오.",
+       "tags-delete-explanation-active": "<strong>\"$1\" 태그는 활성화되어 있으며, 미래에도 적용될 것입니다.</strong> 이러한 행동을 방지하려면, 태그가 설정되도록 적용된 곳을 찾아, 비활성화하십시오.",
+       "tags-delete-reason": "이유:",
+       "tags-delete-not-found": "\"$1\" 태그가 존재하지 않습니다.",
+       "tags-activate-not-found": "\"$1\" 태그가 존재하지 않습니다.",
+       "tags-deactivate-reason": "이유:",
        "comparepages": "문서 비교",
        "compare-page1": "첫 번째 문서",
        "compare-page2": "두 번째 문서",
        "revdelete-uname-unhid": "사용자 이름 숨김 해제됨",
        "revdelete-restricted": "관리자에게 제한을 적용함",
        "revdelete-unrestricted": "관리자에 대한 제한을 해제함",
+       "logentry-block-block": "$1 {{GENDER:$2|사용자가}} {{GENDER:$4|$3}} 사용자를 $5 $6 설정으로 차단했습니다.",
+       "logentry-block-unblock": "$1 {{GENDER:$2|사용자가}} {{GENDER:$4|$3}} 사용자의 차단을 해제했습니다.",
+       "logentry-block-reblock": "$1 {{GENDER:$2|사용자가}} {{GENDER:$4|$3}} 사용자의 차단을 $5 $6 설정으로 변경했습니다.",
+       "logentry-suppress-block": "$1 {{GENDER:$2|사용자가}} {{GENDER:$4|$3}} 사용자를 $5 $6 설정으로 차단했습니다.",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|사용자가}} {{GENDER:$4|$3}} 사용자의 차단을 $5 $6 설정으로 변경했습니다.",
        "logentry-merge-merge": "$1 사용자가 $3 문서를 $4 안에 {{GENDER:$2|병합했습니다}} (판은 $5까지)",
        "logentry-move-move": "$1 사용자가 $3 문서를 $4 문서로 {{GENDER:$2|옮겼습니다}}",
        "logentry-move-move-noredirect": "$1 사용자가 $3 문서를 넘겨주기를 만들지 않고 $4 문서로 {{GENDER:$2|옮겼습니다}}",
        "logentry-upload-upload": "$1 사용자가 $3 파일을 {{GENDER:$2|올렸습니다}}",
        "logentry-upload-overwrite": "$1 사용자가 $3의 새 판을 {{GENDER:$2|올렸습니다}}",
        "logentry-upload-revert": "$1 사용자가 $3 파일을 {{GENDER:$2|올렸습니다}}",
+       "log-name-managetags": "태그 관리 기록",
+       "log-description-managetags": "이 문서는 [[Special:Tags|태그]]에 관한 관리 작업의 목록입니다. 이 기록에는 관리자가 직접 실행한 동작만이 기록되며, 위키 소프트웨어에 의해 태그가 생성 및 삭제되는 경우는 기록되지 않습니다.",
+       "logentry-managetags-create": "$1 {{GENDER:$2|사용자가}} \"$4\" 태그를 만들었습니다",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|사용자가}} \"$4\" 태그를 삭제하였습니다 ($5개 {{PLURAL:$5|판 및 기록}}에서 제거되었습니다)",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|사용자가}} \"$4\" 태그를 사용자나 봇이 사용하도록 활성화시켰습니다",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|사용자가}} \"$4\" 태그를 사용자나 봇이 사용하지 못하도록 비활성화시켰습니다",
        "rightsnone": "(없음)",
        "revdelete-summary": "편집 요약",
+       "feedback-adding": "문서에 피드백을 올리는 중...",
+       "feedback-back": "뒤로",
+       "feedback-bugcheck": "감사합니다! 혹시 해당 사항이 [$1 기존의 버그 보고서]에 올라와 있는지 확인해주세요.",
+       "feedback-bugnew": "확인했습니다. 새로운 버그 보고서를 작성합니다.",
        "feedback-bugornote": "기술적 문제를 구체적으로 설명할 준비가 되었다면 [$1 버그를 신고]해 주세요.\n아니면 아래에 쉬운 양식을 쓸 수 있습니다. 의견은 사용자 이름과 함께 \"[$3 $2]\"에 남겨질 것입니다.",
-       "feedback-subject": "제목:",
-       "feedback-message": "내용:",
        "feedback-cancel": "취소",
-       "feedback-submit": "피드백 제출",
-       "feedback-adding": "문서에 피드백을 올리는 중...",
+       "feedback-close": "완료",
+       "feedback-dialog-title": "피드백 제출",
+       "feedback-error-title": "오류",
        "feedback-error1": "오류: API 실행 결과를 인식할 수 없음",
        "feedback-error2": "오류: 편집 실패",
        "feedback-error3": "오류: API가 응답하지 않음",
+       "feedback-message": "내용:",
+       "feedback-subject": "제목:",
+       "feedback-submit": "제출",
+       "feedback-terms": "사용자 에이전트 정보가 나의 브라우저 정보, 운영 체제 버전을 포함하며 피드백과 함께 공개적으로 공유됨을 이해합니다.",
+       "feedback-termsofuse": "이용 약관을 준수하여 피드백을 제공할 것입니다.",
        "feedback-thanks": "감사합니다! \"[$2 $1]\" 문서에 의견을 남겼습니다.",
-       "feedback-close": "완료",
-       "feedback-bugcheck": "감사합니다! 혹시 해당 사항이 [$1 기존의 버그 보고서]에 올라와 있는지 확인해주세요.",
-       "feedback-bugnew": "확인했습니다. 새로운 버그 보고서를 작성합니다.",
+       "feedback-thanks-title": "감사합니다!",
+       "feedback-useragent": "사용자 에이전트:",
        "searchsuggest-search": "검색",
        "searchsuggest-containing": "다음 문자열 포함...",
        "api-error-badaccess-groups": "이 위키에 파일을 올릴 권한이 없습니다.",
index 141312d..1bf8e5f 100644 (file)
@@ -7,7 +7,8 @@
                        "Kaganer",
                        "Reedy",
                        "Къарачайлы",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Джибериулени черт:",
@@ -34,7 +35,7 @@
        "tog-shownumberswatching": "Бетни, кёзде тургъан тизмелерине къошханланы санын кёргюз",
        "tog-oldsig": "Бусагъатдагъы къол салыннган:",
        "tog-fancysig": "Къол салыуну энчи вики-тексти (автомат джибериусюз)",
-       "tog-uselivepreview": "Терк ал къарауну хайырландыр (экспериментал халда)",
+       "tog-uselivepreview": "Терк ал къарауну хайырландыр",
        "tog-forceeditsummary": "Тюрлендириуню ачыкълау тизгини бош къалса, билдир",
        "tog-watchlisthideown": "Кёзюмде тургъан бетден мени тюрлендириулерими джашыр",
        "tog-watchlisthidebots": "Кёзюмде тургъан бетден ботланы тюрлендириулерин джашыр",
        "otherlanguages": "Башха тилледе",
        "redirectedfrom": "(«$1» бетден джиберилгенди)",
        "redirectpagesub": "Башха бетге джибериучю бет",
+       "redirectto": "Бу бетге редирект:",
        "lastmodifiedat": "Бу бетни ахыр тюрленнгени: $2, $1.",
        "viewcount": "Бу бетге {{PLURAL:$1|бир|$1}} кере киргендиле.",
        "protectedpage": "Джакъланнган бет",
        "pool-queuefull": "Соруула джыйыучу толуду",
        "pool-errorunknown": "Билинмеген халат",
        "pool-servererror": "Пул санаучу къуллукъ ишлемеди ($1).",
+       "poolcounter-usage-error": "Хайырланыу халат: $1",
        "aboutsite": "{{SITENAME}} сайтны юсюнден",
        "aboutpage": "Project:Суратлау",
        "copyright": "Ичиндегиси,  $1 лицензиягъа кёре бериледи (башха белгиленмеген эсе).",
        "hidetoc": "джашыр",
        "collapsible-collapse": "джашыр",
        "collapsible-expand": "кёргюз",
+       "confirmable-confirm": "{{GENDER:$1|Базыбмыса}}?",
+       "confirmable-yes": "Хоу",
+       "confirmable-no": "Огъай",
        "thisisdeleted": "$1 къараргъа неда къайтарыргъа (тургъузтургъа)?",
        "viewdeleted": "$1 къараймыса?",
        "restorelink": "{{PLURAL:$1|джангыз бир кетерилген тюрлендириу|$1 кетерилген тюрлендириу}}",
        "databaseerror": "Информация базада халат",
        "databaseerror-textcl": "Билгиле базада халат чыкъды.",
        "databaseerror-query": "Соруулау: $1",
+       "databaseerror-function": "Функция: $1",
        "databaseerror-error": "Халат: $1",
        "laggedslavemode": "Эс бёлюгюз! Бу бетге ахыр джангыртыула болмазгъа боллукъдула.",
        "readonly": "Информация база джабыкъды",
        "userlogin-helplink2": "Кириуде болушлукъ",
        "userlogin-createanother": "Башха аккаунт къурау",
        "createacct-emailrequired": "Электрон почтаны адреси",
-       "createacct-emailoptional": "Электрон почтаны адреси (амалсыз тюлдю)",
-       "createacct-email-ph": "Электрон почта адресигизни джазыгъыз",
+       "createacct-emailoptional": "Email адресинг (амалсыз керек тюлдю)",
+       "createacct-email-ph": "Email адресинги джаз",
        "createacct-another-email-ph": "Электрон почтаны адресин джаз",
        "createaccountmail": "Эсде болмагъанлай генерация этилген болджаллы паролну хайырландырыу эмда берилген электрон почта адресге ийиу",
        "createacct-realname": "Керти атыгъыз (ажымсыз керек тюлдю)",
        "createacct-reason": "Чурум",
        "createacct-reason-ph": "Башха тергеу джазыуну нек къураусыз",
        "createacct-captcha": "Къоркъуусузлукъну тинтиу",
-       "createacct-imgcaptcha-ph": "Башыракъда кёрюннген текстни джаз",
+       "createacct-imgcaptcha-ph": "Башыракъдагъы текстни джаз",
        "createacct-submit": "Тергеу джазыуну къура",
        "createacct-another-submit": "Энтда бир аккаунт къурау",
        "createacct-benefit-heading": "{{SITENAME}} сизнича адамла бла къуралгъанды.",
        "changeemail-text": "Сизни e-mail адресигизни тюрлендирир ючюн бу форманы толтуругъуз. Тюрлениуню бегитир ючюн паролну джазаргъа керек боллукъду.",
        "changeemail-no-info": "Бу бетни кёрюр ючюн сиз системагъа тергеу джазыуугъуз (аккаунтугъуз) бла кирирге керексиз.",
        "changeemail-oldemail": "Почтаны бусагъатдагъы адреси:",
-       "changeemail-newemail": "ЭлекÑ\82Ñ\80он Ð¿Ð¾Ñ\87Ñ\82анÑ\8b Ð´Ð¶Ð°Ð½Ð³Ñ\8b Ð°Ð´Ñ\80еÑ\81и:",
+       "changeemail-newemail": "Ð\94жангÑ\8b email Ð°Ð´Ñ\80еÑ\81:",
        "changeemail-none": "(джокъ)",
        "changeemail-password": "«{{SITENAME}}» проектде паролугъуз:",
        "changeemail-submit": "Адресни тюрлендир",
        "preview": "Ал къарау",
        "showpreview": "Ал къарау",
        "showdiff": "Къошулгъан тюрлениуле",
-       "anoneditwarning": "'''Эс бёлюгюз''': Сиз системагъа кирмегенсиз. Сизни IP-адресигиз бу бетни тюрлениу тарихине джазыллыкъды.",
+       "anoneditwarning": "<strong>Эс бёлюгюз!</strong> Сиз системагъа кирмегенсиз. Тюрлендириу этсегиз, сизни IP-адресигиз бу бетни тюрлениу тарихине джазыллыкъды эмда ачыкъ кёрюннюкдю. Сиз <strong>[$1 кирсегиз]</strong> неда <strong>[$2 тергеу джазыу къурасагъыз]</strong>, тюрлендириулеригиз аны орнуна къошулуучу атыгъыз бла байламлы боллукъдула эмда башха онглулукъларыгъыз боллукъду.",
        "anonpreviewwarning": "''Сиз тергеу джазыуугъуз бла кирмегенсиз. Бетде тюрлениулени сакълатсагъыз, бетни тюрлениу тарихине IP-адресигиз джазыллыкъды.''",
        "missingsummary": "'''Эс бёлюгюз.'''  Тюрлениулеге къысха ачыкълау джазмагъансыз.\nСиз «Бетни сакъла» дегеннге энтда бассагъыз, тюрлениуле комментарийлесиз сакъланныкъдыла.",
        "missingcommenttext": "Тюбю бла ачыкълау джазыгъыз.",
        "sectioneditnotsupported-text": "Бу бетде бёлюмлени тюрлендирирге болмайды.",
        "permissionserrors": "Эркинликлени халаты",
        "permissionserrorstext": "Бу операцияны этерге эркинлигигиз джокъду, былайдагъы {{PLURAL:$1|1=чурум|чурумла}} ючюн:",
-       "permissionserrorstext-withaction": "«'''$2'''» этерге амалыгъыз джокъду. {{PLURAL:$1|1=Чуруму|Чурумлары}}:",
+       "permissionserrorstext-withaction": "$2 операцияны этерге амалыгъыз джокъду, былайдагъы {{PLURAL:$1|1=чурум|чурумла}} ючюн:",
        "recreate-moveddeleted-warn": "'''Эс бёлюгюз! Сиз алгъын кетерилген бетни джангыдан къураргъа излейсиз'''\n\nБетни джангыдан къураргъа кереклигине сагъыш этигиз.\nБетни кетериу бла атын тюрлендирилиуню журналы тюбюнде кёргюзюлгенди.",
        "moveddeleted-notice": "Бу бет кетерилгенди.\nХапарлашдырыу ючюн тюбюрек кетериуле бла ат тюрлендириулени журналы берилгенди.",
        "log-fulllog": "Журналгъа толулай къара",
        "currentrev": "Бусагъатдагъы версия",
        "currentrev-asof": "Бусагъатдагъы версия, $1",
        "revisionasof": "$1 версиясы",
-       "revision-info": "$2 джанындан этилген $1 версия",
+       "revision-info": "$1 датадан версия; {{GENDER:$6|$2}}$7",
        "previousrevision": "← Алдагъы",
        "nextrevision": "Эндиги →",
        "currentrevisionlink": "Бусагъатдагъы версия",
        "searchrelated": "бейламлы",
        "searchall": "бютеу",
        "showingresults": "Тюбюрек №&nbsp;<strong>$2</strong> башлаб <strong>$1</strong> {{PLURAL:$1|1=эсеб|эсебле}} {{PLURAL:$1|1=кёргюзюлгенди|кёргюзюлгендиле}}.",
+       "search-showingresults": "{{PLURAL:$4|<strong>$3</strong> результатдан <strong>$1</strong> результаты|<strong>$3</strong> результатдан <strong>$1 — $2</strong> результатла}}",
        "search-nonefound": "Соруу бла келишген эсеб джокъду",
        "powersearch-legend": "Кенг излеу",
        "powersearch-ns": "Атла аламда излеу:",
        "recentchanges-label-bot": "Бу тюрлендириуню бот этгенди",
        "recentchanges-label-unpatrolled": "Бу тюрлендириу алкъын патруль этилинмегенди",
        "recentchanges-label-plusminus": "Бетни ёлчеми быллай бир байтха тюрленнгенди",
+       "recentchanges-legend-heading": "'''Легенда:&nbsp;'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (къарагъыз: [[Special:NewPages|джангы бетлени тизмеси]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Тюбюрекде <strong>$2</strong> башлаб (<strong>$1</strong> дери) тюрлендириуле кёрюнедиле",
        "booksources": "Китабланы чыкъгъан джерлери",
        "booksources-search-legend": "Китабны юсюнден информация излеу",
        "booksources-isbn": "ISBN:",
+       "booksources-search": "Изле",
        "booksources-text": "Бу бетде джангы эмда эски китаб сатхан башха сайтлагъа джибериулени тизмеси барды, эм излеген китабларыгъызны юсюнден кёбюрек билги билирге боллукъсуз.",
        "booksources-invalid-isbn": "Берилген ISBN джараусуз кибик кёрюнеди; оригинал къайнакъдан кёчюрюлген заманда халатланы контроль этигиз.",
        "specialloguserlabel": "Толтуруучу:",
        "delete-toobig": "Бу бетни, $1 {{PLURAL:$1|1=версияла|версияла}} бла бек узун тарихи барды.\nБыллай бетлени кетерилиую, {{SITENAME}} сайтны бузмаз ючюн чекленгенди.",
        "delete-warning-toobig": "Бу бетни уллу тюрлендириу тарихи барды, $1 {{PLURAL:$1|1=версиядан|версиядан}} артыкъ.\nБуну кетериу {{SITENAME}} ишлеулени асхатыргъа боллукъду;\nэсгере андан ары ишлегиз.",
        "rollback": "Тюрлендириулени ызына ал",
-       "rollback_short": "Ызына ал",
        "rollbacklink": "ызына къайтарыу",
        "rollbacklinkcount": "$1 {{PLURAL:$1|тюрлендириуню ызына|тюрлендириуню ызларына}} тёнгерет",
        "rollbacklinkcount-morethan": "$1 тюрлендириуден кёбню {{PLURAL:$1|ызларына}} тёнгерет",
        "import-invalid-interwiki": "Белгиленнген викиден импорт этелирча тюлдю.",
        "importlogpage": "Импортну журналы",
        "importlogpagetext": "Башха викиледен бетлени тюрлендириу тарихин администраторланы импорт этиую.",
-       "import-logentry-upload": "[[$1]] файл джюклениую бла импорт этилди",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|версия}}",
-       "import-logentry-interwiki": "$1 трансвикиленди",
        "import-logentry-interwiki-detail": "$2 бетден  $1 {{PLURAL:$1|версия}}",
        "javascripttest": "JavaScript тинтилиую",
-       "javascripttest-title": "$1 тинтиле турады",
        "tooltip-pt-userpage": "Къошулуучу бетигиз",
        "tooltip-pt-anonuserpage": "Сизни IP-адресигиз ючюн къошулуучу бет",
        "tooltip-pt-mytalk": "Сизни сюзюу бетигиз",
        "spambot_username": "Спамны ариулау",
        "spam_reverting": "$1 бла джибериую болмагъан ахыр версиягъа къайтылады",
        "spam_blanking": "Бютеу версияла $1 бетге джибериу тутадыла, ариуланадыла",
+       "simpleantispam-label": "Анти-спам сынау.\nМуну '''толтурМА'''!",
        "pageinfo-title": "«$1» бетни юсюнден информация",
        "pageinfo-header-basic": "Баш билгиле",
        "pageinfo-header-edits": "Тюрлениу тарих",
        "hebrew-calendar-m6-gen": "Адар",
        "hebrew-calendar-m6a-gen": "Адар I",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|сюзюу]])",
-       "unknown_extension_tag": "Къошакъны билинмеген \"$1\" теги",
        "duplicate-defaultsort": "'''Эсгериу:''' Бар саналгъан \"$2\" сыныфлама ачхыч, аллындагъы \"$1\" сыныфлама ачхычны джараусуз этеди.",
        "version": "Версия",
        "version-extensions": "Салыннган кенгертиуле",
        "version-parser-function-hooks": "Синтаксис анализаторну функцияларын тутуучула",
        "version-hook-name": "Тутуучуну аты",
        "version-hook-subscribedby": "Абонент болгъан",
-       "version-version": "(Версия $1)",
+       "version-version": "($1)",
        "version-license": "MediaWiki'ни лицензиясы",
        "version-ext-colheader-name": "Кенгериу",
        "version-ext-colheader-description": "Ачыкълау",
        "logentry-rights-rights": "$1 къошулуучу, $3 къошулуучуну членлигин $4 къауумдан $5 къауумгъа {{GENDER:$2|кёчюрдю}}",
        "logentry-rights-rights-legacy": "$1 къошулуучу, $3 къушулуучуну къауумлада членлигин {{GENDER:$2|тюрлендирди}}",
        "logentry-rights-autopromote": "$1 къошулуучу, $4 къауумдан автомат халда $5 къауумгъа {{GENDER:$2|кёчюрюлдю}}",
+       "logentry-upload-upload": "$1, $3 {{GENDER:$2|джюкледи}}",
        "rightsnone": "(джокъ)",
        "revdelete-summary": "тюрлениулени ачыкълау",
-       "feedback-subject": "Тема:",
-       "feedback-message": "Билдириу:",
        "feedback-cancel": "Ызына алыу",
-       "feedback-submit": "Оюмунгу джибер",
-       "feedback-error2": "Халат. Тюзетиу ётмеди",
        "feedback-close": "Тындырылды",
+       "feedback-error2": "Халат. Тюзетиу ётмеди",
+       "feedback-message": "Билдириу:",
+       "feedback-subject": "Тема:",
+       "feedback-submit": "Джибер",
        "searchsuggest-search": "Излеу",
        "searchsuggest-containing": "ичиндегиси…",
        "api-error-badtoken": "Ич халат: терс токен.",
index ee5f4dc..4867ada 100644 (file)
        "tog-enotifusertalkpages": "Scheck mer en <i lang=\"en\">e-mail</i>, wann ming Klaaf_Sigg jeändert weed",
        "tog-enotifminoredits": "Scheck mer och en <i lang=\"en\">e-mail</i> för de klein Mini-Änderonge",
        "tog-enotifrevealaddr": "Zeich dä Andere ming E-Mail Adress aan, en de Benohrichtijunge per E-Mail",
-       "tog-shownumberswatching": "Zeich de Aanzahl Metmaacher, die op die Sigg am oppasse sin",
+       "tog-shownumberswatching": "Zeisch de Aanzahl Metmaacher, di op di Sigg am oppaßße sin",
        "tog-oldsig": "Esu&nbsp;süht&nbsp;Ding „Ongerschreff“&nbsp;us:",
        "tog-fancysig": "Donn de „Ungerschreff“ als Wiki-Tex behandelle (ohne enne automattesche Lengk)",
        "tog-uselivepreview": "Vör-Aansesch övver AJAX zeije",
        "tog-forceeditsummary": "Froch noh, wann en däm Feld „Koot zosammejefass, Quell“ beim Avspeichere nix dren steiht",
-       "tog-watchlisthideown": "Dun ming eije Änderunge <strong>nit</strong> en minger Oppassliss aanzeije",
-       "tog-watchlisthidebots": "Dun jedes Mol dä Bots ehr Änderunge <strong>nit</strong> en minger Oppassliss zeije",
+       "tog-watchlisthideown": "Don ming eije Änderonge <strong>nit</strong> en minger Oppaßleß aanzeije",
+       "tog-watchlisthidebots": "Dun jedes Mohl dä Bots ehr Änderonge <strong>nit</strong> en minger Oppaßleß zeije",
        "tog-watchlisthideminor": "Dun jedes Mol de klein Mini-Änderunge <strong>nit</strong> en minger Oppassliss zeije",
        "tog-watchlisthideliu": "Enjeloggte Metmaacher ier Änderunge jedesmol <strong>nit</strong> en minger Oppassliss aanzeije",
        "tog-watchlisthideanons": "Namelose Metmaacher ier Änderunge jedesmol <strong>nit</strong> en minger Oppassliss aanzeije",
        "disclaimers": "Henwies",
        "disclaimerpage": "Project:Impressum",
        "edithelp": "Hölp för et Bearbeide",
+       "helppage-top-gethelp": "Hölp",
        "mainpage": "Haupsigg",
        "mainpage-description": "Haupsigg",
        "policy-url": "Project:Rejelle",
        "versionrequiredtext": "De Version $1 vun MediaWiki Soffwär es nüdich, öm die Sigg heh bruche ze künne. Süch op [[Special:Version|de Versionssigg]], wat mer heh för ene Soffwärstand han.",
        "ok": "Jot!",
        "pagetitle": "$1 — {{SITENAME}}",
+       "backlinksubtitle": "←&nbsp;$1",
        "retrievedfrom": "Di Sigg heh stamp vun „$1“.",
        "youhavenewmessages": "Do häs $1 ($2).",
        "youhavenewmessagesfromusers": "Do häs $1 vun {{PLURAL:$3|enem|$3|keinem}} andere Metmaacher ($2)",
        "summary": "Koot zosammejefaß, Quäll:",
        "subject": "Üvverschreff - wodröm jeiht et?",
        "minoredit": "Dat es en klein Änderung (mini)",
-       "watchthis": "Op die Sigg heh oppasse",
+       "watchthis": "Op di Sigg heh oppaßße",
        "savearticle": "De Sigg Avspeichere",
        "preview": "Vör-Ansich",
        "showpreview": "Vör-Aansich zeije",
        "missingcommentheader": "'''Opjepass:''' Do häs kein Üvverschreff för Dinge Beidrach enjejovve. Wann De noch ens op „{{int:savearticle}}“ dröcks, weed Dinge Beidrach der ohne avjespeichert.",
        "summary-preview": "Vör-Aansich vun „Koot Zosammejefass, Quell“:",
        "subject-preview": "Vör-Aansich vun de Üvverschreff:",
+       "previewerrortext": "Ene Fähler es beim Versohch opjetrodde, de Sigg met de Änderonge aanzezeije.",
        "blockedtitle": "Dä Metmaacher es jesperrt",
        "blockedtext": "'''Dinge Metmaacher-Name oder IP Adress es vun „$1“ jesperrt woode.'''\n\nAls Jrund es enjedrage: „''$2''“\n\nDo kanns heh em Wiki immer noch lässe. Do sühß ävver di Sigg heh, wann De op rude Links klicks, neu Sigge aanlääje, udder Sigge ändere wells, denn doför bes De jäz jeschperrt.\n\nDo kanns met $1 oder enem andere [[{{MediaWiki:Grouppage-sysop}}|Wiki-Köbes]] övver dat Schpärre schwaade, wann De wells.\nDo kanns ävver nor dann „''E-Mail aan dä Metmaacher''“ aanwende, wann De ald en E-Mail Adress en Dinge [[Special:Preferences|Enstellunge]] enjedrage un freijejovve häs un wann et E-mail schecke nit metjesperrt es.\n\nDun en Ding Aanfroge nenne:\n* Dä Wiki-Köbeß, dä jesperrt hät: $1\n* Der Jrond för et Sperre: $2\n* Da wood jesperrt: $8\n* De Sperr soll loufe bes: $6\n* De Nommer vun dä Sperr: #$5\n* Ding IP-Adress is jetz: $3\n* Di Sperr es wäje odde jäje: $7\n\nDo kanns och noch en et <span class=\"plainlinks\">[{{fullurl:Special:IPBlockList|&action=search&limit=&ip=%23}}$5 Logboch met de Sperre]</span> loore.",
        "autoblockedtext": "'''Ding IP Adress es automattesch jesperrt woode.'''\n<br />\n'''Se wor vun enem Metmaacher jebruch woode, dä vun „$1“ jesperrt woode es.'''\n<br />\nAls Jrund es enjedrage: „''$2''“\n\nDo kanns heh em Wiki immer noch lesse. Do sühß ävver di Sigg heh, wann De op rude Links klicks, neu Sigge aanlääje, odder Sigge ändere wells, denn doför bes De jetz jesperrt.\n\nDo kanns met $1 oder enem andere [[{{MediaWiki:Grouppage-sysop}}|Wiki-Köbes]] övver dat Schpärre schwaade, wann De wells.\nDo kanns ävver nor dann „''e-mail aan dä Metmaacher''“ aanwende, wann De ald en e-mail Adress en Dinge [[Special:Preferences|Enstellunge]] enjedrage un freijejovve häs un wann et e-mail schecke nit metjeschperrt es.\n\nDun en Dinge Aanfrore nänne:\n* Dä Wiki-Köbeß, dä jesperrt hät: $1\n* Der Jrond för et Sperre: $2\n* Da wood jesperrt: $8\n* De Sperr soll loufe bes: $6\n* De Nommer vun dä Sperr: #$5\n* Ding IP-Adress is jetz: $3\n* Di Sperr es wäje odde jäje: $7\n\nDo kanns och noch en et <span class=\"plainlinks\">[{{fullurl:Special:IPBlockList|&action=search&limit=&ip=%23}}$5 {{int:ipblocklist}}]</span> loore.",
        "userinvalidcssjstitle": "<strong>Opjepass:</strong> Et jitt kein Ussinn met däm Name: „<strong>$1</strong>“ -\ndenk dran, dat ene Metmaacher eije Dateie för et Ussinn han kann, un dat die met kleine Buchstave\naanfange dun, alsu etwa: {{ns:user}}:Name/vector.css, un {{ns:user}}:Name/vector.js heiße.",
        "updated": "(Aanjepack)",
        "note": "'''Opjepass:'''",
-       "previewnote": "'''Heh kütt nor de Vör-Aansich — Ding Änderunge sin noch nit jesechert!'''",
+       "previewnote": "<strong>Heh kütt blohß en Aanseesch vöraff — Ding Änderonge sin noch nidd em Wikki faßjehallde!</strong>",
        "continue-editing": "Jangk tiräk nohm Plaz zom Schrieve",
        "previewconflict": "Heh die Vör-Aansich zeich dä Enhald vum bovvere Texfeld.\nEsu wööd dä Atikkel ussinn, wann De n jetz avspeichere däts.",
        "session_fail_preview": "'''Schad: Ding Änderunge kunnte mer su nix met aanfange.\nVersök et jrad noch ens.\nWann dat widder nit flupp, dann versök et ens met [[Special:UserLogout|Uslogge]] un widder Enlogge.'''",
        "sectioneditnotsupported-text": "Afschnedde Ändere is en heh dä Sigg nit zohjelohße.",
        "permissionserrors": "Dat jeit nit, dat darfs De nit.",
        "permissionserrorstext": "Do häs nit dat Rääch, dat ze maache, {{PLURAL:$1|dä Jrund es:|de Jründe sin:|oohne Jrund.}}",
-       "permissionserrorstext-withaction": "Do häs nit dat Rääch $2, {{PLURAL:$1|dä Jrund es:|de Jründe sin:|oohne Jrund.}}",
+       "permissionserrorstext-withaction": "Do häs nit dat Rääch $2, {{PLURAL:$1|dä Jrond es:|de Jrönde sin:|ävver ohne aanjävbahre Jrond.}}",
        "recreate-moveddeleted-warn": "'''Opjepaß:''' Do bes om bäste Wääsh, en Sigg neu aanzelääje, di doför ald ens fottjeschmeße woode wohr.\n\nBes förseschtesch un övverlääsch Der, of dat en joode Idee es, di Sigg widder opzemaache. Domet De Bescheid weiß, hee de Endrääsh em Logboch vum Sigge-Ömnänne, un em Logboch vum Sigge-Fottschmieße mem Jrond, woröm di Sigg dohmohls fottjeschmesse woode es:",
        "moveddeleted-notice": "Heh di Sigg es fottjeschmeße. E Shtöck uß dä Logböösher fum Sigge-Fottschmieße un fum Sigge-Ömnänne för di Sigg kütt jetz, en dä Hoffnung, dat dat Der hellef.",
        "log-fulllog": "Donn dat janze Logboch aanloore",
        "postedit-confirmation-saved": "Ding Änderunge sin nit faßjehallde.",
        "edit-already-exists": "Kunnt kei neu Sigg aanlääje. Di Sigg jidd_et ald.",
        "defaultmessagetext": "Dä standaadmäßije Tex",
-       "content-failed-to-parse": "Et wohr nit müjjelesch, dä Enhalld met däm <i lang=\"en\">MIME-Typ</i> $2 för en Dattei met $1 dren ze verwooschte: $3.",
+       "content-failed-to-parse": "Et wohr nit müjjelesch, dä Enhalld met däm <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\" title=\"Multi-Purpose Internet Mail Extensions\">MIME</i>-Tüpp <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\" >$2</code> för en Dattei met $1 dren ze verwooschte: $3.",
        "invalid-content-data": "Di Daate en dä Sigg sen onjöltesch.",
        "content-not-allowed-here": "Ene Enhalld vun dä Zoot „$1“ es op dä Sigg „[[$2]]“ nit zohjelohße.",
        "editwarning-warning": "Wann de vun hee dä Sigg fott jeihß, doh künnte all Ding Änderonge aan dä Sigg verschött jonn.\nDo kanns heh di Warnung affschallde, wann de aanjemelldt un enjelogg bes, dann kriß de se nieh mieh wider. Jangk doför en dä Afschnett „{{int:prefs-editing}}“ en Dinge Enschtellonge.",
        "searchdisabled": "Dat Söhke hee {{GRAMMAR:en|{{SITENAME}}}} es em Momang avjeschalt.\nDat weed op dänne ẞööver ad ens jemaat, domet de Lass op inne nit ze jroß weed,\nun winnischsdens dat normale Sigge Oprofe flöck jenoch jeiht.\n\nEhr künnt esu lang övver en Söhkmaschin vun usserhalv emmer noch\nSigge us {{GRAMMAR:Dative|{{ucfirst:{{SITENAME}}}}}} finge.\nEt es nit jesaht,\ndat dänne ehr Daate topaktoell sin,\nävver et es bäßer wi jaa_nix.",
        "search-error": "An error has occurred while searching: $1",
        "preferences": "ming Enstellunge",
-       "mypreferences": "Enstellunge",
+       "mypreferences": "Enschtällonge",
        "prefs-edits": "Aanzahl Änderunge am Wiki:",
        "prefsnologintext2": "Donn ennlogge, öm Ding Enschtällonge ze verändere.",
        "prefs-skin": "Et Ussinn",
        "enhancedrc-history": "Väsjohne",
        "recentchanges": "Neuste Änderonge",
        "recentchanges-legend": "Enstellunge",
-       "recentchanges-summary": "Op dä Sigg hee sin de neuste Änderunge am Wiki opjeliss.",
+       "recentchanges-summary": "Op dä Sigg heh sin de neuste Änderonge aam Wikki opjeleß.",
        "recentchanges-noresult": "Nit verändert en dä Zigg met de aanjejovve Beschrängkonge.",
        "recentchanges-feed-description": "Op dämm Abonnomang-Kannal (<i lang=\"en\">Feed</i>) kannze de {{int:recentchanges}} aam Wiki en Laif un en Färve metloore.",
-       "recentchanges-label-newpage": "Heh di Sigg es neu dobei jekumme met dä Änderung",
+       "recentchanges-label-newpage": "Di Sigg es neu dobei jekumme met dä Änderong",
        "recentchanges-label-minor": "Heh dat es en Mini-Änderung",
        "recentchanges-label-bot": "Di Änderung es fun enem Bot jemaat woode",
-       "recentchanges-label-unpatrolled": "Heh di Änderung es noch nit nohjeloort",
-       "recentchanges-label-plusminus": "Der Ömvang vun dä Sigg hät sesch öm di Aanzahl Bytes verändert.",
-       "recentchanges-legend-heading": "'''Lejänd:'''",
+       "recentchanges-label-unpatrolled": "Heh di Änderong es noch nit nohjelohrt",
+       "recentchanges-label-plusminus": "Der Ömvang vun dä Sigg hät sesch öm di Aanzahl <i lang=\"en\" xml:lang=\"en\" dir=\"ltr\">Bytes</i> verändert.",
+       "recentchanges-legend-heading": "'''Lejänd:&nbsp;'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (Loor och noh de [[Special:NewPages|Leß met de neue Sigge]])",
        "recentchanges-legend-plusminus": "(''±123'')",
        "rcnotefrom": "Hee {{PLURAL:$5|es ein|sin bes op <strong>$1</strong>|es keine}} fun de Änderunge zick dem <strong>$3</strong> öm <strong>$4</strong> Uhr opjelėß.",
-       "rclistfrom": "Zeich de Änderunge vum $3 $2 aan",
-       "rcshowhideminor": "$1 klein Mini-Änderunge",
-       "rcshowhideminor-show": "Zeisch",
-       "rcshowhideminor-hide": "Verschteihsch",
-       "rcshowhidebots": "$1 de Bots ehr Änderunge",
-       "rcshowhidebots-show": "Zeisch",
-       "rcshowhidebots-hide": "Verschteihsch",
-       "rcshowhideliu": "De aanjemeldte Metmaacher ehr Änderunge: $1",
-       "rcshowhideliu-show": "Zeisch",
-       "rcshowhideliu-hide": "Verschteihsch",
-       "rcshowhideanons": "$1 de namenlose Metmaacher ehr Änderunge",
-       "rcshowhideanons-show": "Zeisch",
-       "rcshowhideanons-hide": "Verschteihsch",
-       "rcshowhidepatr": "$1 de nohjeluurte Änderunge",
-       "rcshowhidepatr-show": "Zeisch",
-       "rcshowhidepatr-hide": "Verschteihsch",
-       "rcshowhidemine": "$1 ming eije Änderunge",
-       "rcshowhidemine-show": "Zeisch",
-       "rcshowhidemine-hide": "Verschteihsch",
-       "rclinks": "Zeich de letzte {{int:pipe-separator}}$1{{int:pipe-separator}} Änderunge us de letzte {{int:pipe-separator}}$2{{int:pipe-separator}} Däch, un dun {{int:pipe-separator}}$3",
-       "diff": "Ungerscheid",
+       "rclistfrom": "Zeisch de Änderonge avv em $3 öm $2 Uhr aan.",
+       "rcshowhideminor": "de klein Mini-Änderonge $1",
+       "rcshowhideminor-show": "aanzeije",
+       "rcshowhideminor-hide": "verschteihsche",
+       "rcshowhidebots": "de Bots ehr Änderonge $1",
+       "rcshowhidebots-show": "aanzeije",
+       "rcshowhidebots-hide": "verschteihsche",
+       "rcshowhideliu": "de aanjemällte Metmaacher ehr Änderonge $1",
+       "rcshowhideliu-show": "aanzeije",
+       "rcshowhideliu-hide": "verschteihsche",
+       "rcshowhideanons": "de nahmelohse Metmaacher ehr Änderonge $1",
+       "rcshowhideanons-show": "aanzeije",
+       "rcshowhideanons-hide": "verschteihsche",
+       "rcshowhidepatr": "de nohjeluhrte Änderonge $1",
+       "rcshowhidepatr-show": "aanzeije",
+       "rcshowhidepatr-hide": "verschteihsche",
+       "rcshowhidemine": "ming eije Änderonge $1",
+       "rcshowhidemine-show": "aanzeije",
+       "rcshowhidemine-hide": "verschteihsche",
+       "rclinks": "Zeisch de läzde {{int:pipe-separator}}$1{{int:pipe-separator}} Änderonge us de läzde {{int:pipe-separator}}$2{{int:pipe-separator}} Däch, un dun {{int:pipe-separator}} $3.",
+       "diff": "Ongerscheid",
        "hist": "Versione",
        "hide": "Ußblände!",
        "show": "Zeije:",
        "recentchangeslinked": "Änderunge aan Sigge, wo heh drop jelink es",
        "recentchangeslinked-feed": "Änderunge aan Sigge, wo hee drop jelink es",
        "recentchangeslinked-toolbox": "Änderunge aan Sigge, wo hee drop jelink es",
-       "recentchangeslinked-title": "Änderunge aan Sigge, die vun „$1“ uß verlink sin",
-       "recentchangeslinked-summary": "Heh di {{int:nstab-special}} hät en Leß met Änderunge aan Sigge, di vun dä aanjejovve Sigg uß verlink sin.\nBei Saachjruppe sen et de Sigge en dä Saachjrupp.\nSigge uß Dinge [[Special:Watchlist|Opaßleß]] sin '''fett''' jeschrevve.",
-       "recentchangeslinked-page": "Dä Sigg iere Tittel:",
-       "recentchangeslinked-to": "Zeish de Änderonge fun dä Sigge, wo Lengks noh heh drop sin",
+       "recentchangeslinked-title": "Änderonge aan Sigge, di vun „$1“ uß verlengk sin",
+       "recentchangeslinked-summary": "Heh di {{int:nstab-special}} hädd en Leß met Änderonge aan Sigge, di vun dä aanjejovve Sigg uß verlengk sin.\nBei Saachjroppe sen et de Sigge en dä Saachjropp.\nSigge uß Dinge [[Special:Watchlist|Opaßleß]] sin en '''Fättschreff''' jeschrevve.",
+       "recentchangeslinked-page": "Dä Sigg ier Övverschreff:",
+       "recentchangeslinked-to": "Zeisch de Änderonge aan dä Sigge, woh Lengks op di aanjejovve Sigg drop sin",
        "upload": "Daate huhlade",
        "uploadbtn": "Huhlade!",
        "reuploaddesc": "Zeröck noh de Sigg zem Huhlade.",
        "upload-maxfilesize": "Der jrüütßte müjjelesche Ömfang för en Datei es $1.",
        "upload-description": "Övver di Datei",
        "upload-options": "Enstellunge för et Laade",
-       "watchthisupload": "Op di Datei oppasse",
+       "watchthisupload": "Op di Datei oppaßße",
        "filewasdeleted": "Unger däm Name wood ald ens en Datei huhjelade. Die es enzwesche ävver widder fottjeschmesse woode. Luur leever eets ens en et $1 ih dat De se dann avspeichere deis.",
        "filename-bad-prefix": "Dä Datei ier Name fängk met '''„$1“''' aan. dat eß fä jewöhnlesch ene Name, dä en dijjitaale Kammerra iere Belder jitt. Esu en Name donn uns esu winnisch verzälle, dat mer se nit jän em Wiki han wulle.\nBes esu joot un jiff dä enne Name, wo mer mieh met aanfange, öm ze wesse, wat en dä Datei dren es.",
        "filename-prefix-blacklist": " #<!-- Lohß di Reih jenou esu wie se es! --> <pre>\n#  Syntax:\n#   * Alles zwesche em #-Zeiche bes nohm Engk vun de Reih es ene Kommäntaa\n#   * Jede Reih met jet dren es ene typpesche Aanfang för ene Datteiname,\n#   * dä automattesch vun ene Dijjitahlkammera kütt\nCIMG # Casio\nDSC_ # Nikon\nDSCF # Fuji\nDSCN # Nikon\nDUW # - et ein udder andere mobile Tellefohn -\nIMG # - alljemein üplesch -\nJD # Jenoptik\nMGP # Pentax\nPICT # - diverse -\n #</pre> <!-- Lohß di Reih jenou esu wie se es! -->",
        "wantedpages": "Sigge, die mer noch nit han, die noch jebruch wääde",
        "wantedpages-summary": "He sin Sigge opjeliss, die et noch nit jitt, wo ävver Hyperlinks vun andere Sigge drop jon. en leß met Sigge met Ömleidonge drop fengk mer op dä Sigg [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Ene onjöltijje Tittel för en Sigg: $1",
-       "wantedfiles": "Dateie, di onß noch fähle",
+       "wantedfiles": "Dateije, di onß noch fähle",
        "wantedfiletext-cat": "Heh di Datteije sin nit doh. Se wääde ävver jebruch, wi wann se doh wööre.\nDatteije uß frembde Sammlonge künne heh opjeleß sin, och wann et se jitt.\nDi sin dann <del>dorschjeschtresche</del>. \nSigge, woh Datteije jebruch wääde sulle, die mer jaa nit han, fengk mer och en dä [[:$1]].",
        "wantedfiletext-cat-noforeign": "Heh di Datteije sulle jebruch wääde, et jitt se ävver jaa nit.\nSigge, di Datteije oprohfe, di et nit jitt, fengk mer op dä Sigg [[:$1]] opjeleß.",
        "wantedfiletext-nocat": "Heh di Datteije sin nit doh. Se wääde ävver jebruch, wi wann se doh wööre.\nDatteije uß frembde Sammlonge künne heh opjeleß sin, och wann et se jitt.\nDi sin dann <del>dorschjeschtresche</del>.",
        "wantedfiletext-nocat-noforeign": "Heh di Datteije sulle jebruch wääde, et jitt se ävver jaa nit.",
        "wantedtemplates": "Schablone, die mer noch nit han, die noch jebruch wääde",
-       "mostlinked": "Atikele met de miehste Lenks drop",
+       "mostlinked": "Atikele met de mihste Lenks drop",
        "mostlinkedcategories": "Saachjroppe met de miehste Lenks drop",
        "mostlinkedtemplates": "Sigge met de miehßte Oprohfe, di wohanders enjeföhsch wähde",
        "mostcategories": "Atikkele met de miehste Saachjruppe",
-       "mostimages": "Dateije met de miehste Lenks drop",
+       "mostimages": "Dateije met de mihste Lenks drop",
        "mostinterwikis": "Atikkele met de miehste Engerwikilengks",
        "mostrevisions": "Atikkele met de miehste Änderunge",
        "prefixindex": "All Sigge, dänne ehr Name met enem bestemmte Wood oder Tex aanfängk",
        "removewatch": "Us de Oppassliss nämme",
        "removedwatchtext": "Die Sigg „[[:$1]]“ es jetz us de [[Special:Watchlist|Oppassliss]] erusjenomme.",
        "removedwatchtext-short": "De Sigg  „$1“ es uß Dinge Oppaßleß eruß jenumme.",
-       "watch": "Drop Oppasse",
-       "watchthispage": "Op die Sigg oppasse",
-       "unwatch": "Nimieh drop Oppasse",
-       "unwatchthispage": "Nit mieh op die Sigg oppasse",
+       "watch": "Drobb oppaßße",
+       "watchthispage": "Op di Sigg oppaßße",
+       "unwatch": "Nimeh drobb oppaßße",
+       "unwatchthispage": "Nit mih op di Sigg oppaßße",
        "notanarticle": "Keine Atikkel",
        "notvisiblerev": "Di Version es fottjeschmesse",
        "watchlist-details": "Do häß {{PLURAL:$1|ein Sigg|$1 Sigge|kein Sigg}} en Dinge Oppaßleß{{PLURAL:$1|, un di Klaafsigg dohzoh|, un de Klaafsigge dohzoh|}}.",
        "wlnote": "{{PLURAL:$1|Hee es de läzde Änderong uß|Hee sin de läzde <strong>$1</strong> Änderonge uß|Mer han kein Änderonge en}} de läzde {{PLURAL:$2|Stund|<strong>$2</strong> Stunde|<strong>noll</strong> Stunde}} zigg em $3 öm $4 Uhr.",
        "wlshowlast": "Zeisch de läzde $1 Schtunde, $2 Dähsch aan.",
        "watchlist-options": "Eijeschaffte fun de Oppassless",
-       "watching": "Drop oppasse…",
-       "unwatching": "Nimmieh drop oppasse",
+       "watching": "Drobb oppaßße…",
+       "unwatching": "Nimmih drobb oppaßße",
        "watcherrortext": "Ene Fähler es opjetrodde beim Ändere vun de Enshtällonge för Ding Oppaßleß för „$1“",
        "enotif_reset": "Saz all Änderonge op „Aanjeluurt“, un fäädesch.",
        "enotif_impersonal_salutation": "Metmaacher {{GRAMMAR:Genitiv vun|{{SITENAME}}}}",
        "delete-confirm": "„$1“ fottschmieße",
        "delete-legend": "Fottschmieße",
        "historywarning": "<strong>Opjepass:</strong> Die Sigg, di De fott schmiiße wells, hät {{PLURAL:$1|ein ällder Väsjohn|ald $1 ällder Väsjohne|jaa kein ällder Väsjohne}}.",
-       "confirmdeletetext": "Do bes koot dovör, en Sigg för iwich fottzeschmieße. Dobei verschwind och de janze Verjangenheit vun dä Sigg us de Daatebank, met all ehr Änderunge un Metmaacher Name, un all dä Opwand, dä do dren stich. Do muss heh jetz bestätije, dat de versteihs, wat dat bedügg, un dat De weiß, wat Do do mähs.\n<strong>Dun et nor, wann dat met de [[{{MediaWiki:Policy-url}}|Rejelle]] wirklich zosamme jeiht!</strong>",
+       "confirmdeletetext": "Do bes koot dovör, en Sigg för iiwich fottzeschmiiße. Dobei verschwind och de janze Verjangeheit vun dä Sigg us de Dahtebangk, met all ehr Änderonge un Metmaacher Nahme, un all dä Opwand, dä do dren stich. Do moß heh jäz beschtähteje, dat de verschteihs, wat dat bedügg, un dat De weiß, wat Do do mähs.\n<strong>Dun et blohß, wann dat met de [[{{MediaWiki:Policy-url}}|Rääjelle]] verhaftech zosamme jeiht!</strong>",
        "actioncomplete": "Jedonn!",
        "actionfailed": "Dat es donevve jejange",
        "deletedtext": "De Sigg „$1“ es jetz fottjeschmesse woode. Luur Der „$2“ aan, do häs De en Liss met de Neuste fottjeschmesse Sigge.",
        "undeletebtn": "Zeröckholle!",
        "undeletelink": "aanloore odder widder zeröckholle",
        "undeleteviewlink": "aanloore",
-       "undeleteinvert": "De Ußwahl ömdrije",
+       "undeleteinvert": "De Ußwahl ömdrihje",
        "undeletecomment": "Jrond (för en et Logboch):",
        "undeletedrevisions": "{{PLURAL:$1|ein Version|$1 Versione}} zeröckjehollt",
        "undeletedrevisions-files": "Zesammejenomme {{PLURAL:$1|Ein Version|<strong>$1</strong> Versione|<strong>Kein</strong> Version}} vun {{PLURAL:$2|eine Datei|<strong>$2</strong> Dateie|<strong>nix</strong>}} zeröckjehollt",
        "undelete-error-long": "Mer wollte en Datei widder zeröckholle, ävver dobei sin_er Fääler opjefalle:\n\n$1",
        "undelete-show-file-confirm": "Wells De dä Datei „<nowiki>$1</nowiki>“ ier fottjeschmesse Version vum $2 öm $3 Uhr verhaftesch sinn?",
        "undelete-show-file-submit": "Jo",
-       "namespace": "Appachtemeng:",
-       "invert": "dun de Uswahl ömdrije",
+       "namespace": "Appachtemang:",
+       "invert": "don di Ußwahl ömdrihje",
        "tooltip-invert": "Maach e Höhksche, öm Änderonge aan Sigge en däm ußjewählte Appachtemang — un däm, wat doh zohjehööt, wann doh och e Höhksche es — nit aanzezeije, ävver doför uß all de andre Appachtemangs.",
        "tooltip-whatlinkshere-invert": "Maach heh e Höhksche, öm de Lengks ze verschteische, di vun de Sigge en dämm usjesöhkte Appachtemang ußjonn.",
-       "namespace_association": "mem zohjehüüreje Appachtemang",
+       "namespace_association": "mem zohjehühreje Appachtemang",
        "tooltip-namespace_association": "Maach e Höhksche, öm dat Appachtemang, wat zom ußjewählte Appachtemang doh zohjehööt — entweeder de Klaafsigge udder de nomaale Sigge — zohsäzlesch ußzewähle.",
        "blanknamespace": "(Atikkele)",
        "contributions": "{{GENDER:$1|Däm Metmaacher|Däm|Däm Metmaacher|Dä Metmaacherėn|Däm}} $1 {{GENDER:$1|singe|singe|singe|iere|singe}} Beidräch",
        "ipbother": "För en ander Duur:",
        "ipboptions": "2 Stund:2 hours,1 Dach:1 day,3 Däch:3 days,1 Woch:1 week,2 Woche:2 weeks,1 Mond:1 month,3 Mond:3 months,6 Mond:6 months,1 Johr:1 year,Unbejrenz:infinite",
        "ipbhidename": "Don däm Metmaacher singe Name versteiche, en de Leste un däm sing Änderunge.",
-       "ipbwatchuser": "Op däm Metmaacher sing Metmaachersigg un Klaafsigg oppasse",
+       "ipbwatchuser": "Op däm Metmaacher sing Metmaachersigg un Klaafsigg oppaßße",
        "ipb-disableusertalk": "Dä Metmaacher darf sing Klaafsigg nit ändere, esulang, wi hä jwesperrt es",
        "ipb-change-block": "Wigger sperre met dä neue Enstellunge",
        "ipb-confirm": "Et Sperre beshtäätejje",
        "cant-move-category-page": "Do häß nit dat Rääsch, Saachjroppesigge ömzebenänne.",
        "cant-move-to-category-page": "Do häß nit dat Rääsch, en Sigg obb en Saachjroppesigg ömzebenänne.",
        "newtitle": "op dä neue Name",
-       "move-watch": "Op die Sigg heh oppasse",
+       "move-watch": "Op di Sigg heh oppaßße",
        "movepagebtn": "Ömnenne",
        "pagemovedsub": "Dat Ömnenne hät jeflupp",
        "movepage-moved": "'''De Sigg „$1“ es jez en „$2“ ömjenannt.'''",
        "exportcuronly": "Bloß de aktuelle Version usjevve (un <strong>nit</strong> de janze ahle Versione onoch met dobei dun)",
        "exportnohistory": "----\n<strong>Opjepass:</strong> de janze Versione Exporteere es heh em Wiki avjeschalt. Schad, ävver et wör en\nzo jroße Lass för dä ẞööver.",
        "exportlistauthors": "Donn en kumpläte Lėß met dä Schriiver för en Sigg dobei",
-       "export-submit": "Loss_Jonn!",
+       "export-submit": "Lohß Jonn!",
        "export-addcattext": "Sigge dobei donn us dä Saachjrupp:",
        "export-addcat": "Dobei donn",
        "export-addnstext": "Sigge dobei donn uß dämm Appachtemang:",
        "import-rootpage-nosubpage": "Em Appachtemang „$1“ vun dä Aanfangssig sin kein Ongersigge zohjelohße.",
        "importlogpage": "Logboch met emporteerte Sigge",
        "importlogpagetext": "Sigge met ehre Versione vun ander Wikis emporteere.",
-       "import-logentry-upload": "„[[$1]]“ emporteet fun enne huhjelade Dattei",
        "import-logentry-upload-detail": "{{PLURAL:$1|ein Väsjohn|$1 Väsjohne|kein Väsjohn}} woodt emportehrt.",
-       "import-logentry-interwiki": "hät tirek vum ander Wiki emporteet: „$1“",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|ein Väsjohn|$1 Väsjohne|kein VVäsjohnersion}} woodt empottehrt vun „$2“",
        "javascripttest": " JavaSkrepte ußprobeere.",
        "javascripttest-pagetext-noframework": "Heh di Sigg es för JavaSkrepte ußzeprobeere.",
        "tooltip-preview": "Liss de Vör-Aansich vun dä Sigg un vun Dinge Änderunge ih datte se Avspeichere deis!",
        "tooltip-diff": "Zeich Ding Änderunge am Tex aan.",
        "tooltip-compareselectedversions": "Dun de Ungerscheid zwesche dä beids usjewählde Versione zeije.",
-       "tooltip-watch": "Op die Sigg heh oppasse.",
+       "tooltip-watch": "Op di Sigg heh oppaßße.",
        "tooltip-watchlistedit-normal-submit": "Donn  de Titele met Hökche eruß schmieße.",
        "tooltip-watchlistedit-raw-submit": "Oppassliss neu fasshallde",
        "tooltip-recreate": "En fottjeschmesse Sigg widder zeröckholle",
        "bitrate-exabits": "$1&nbsp;Ebps",
        "bitrate-zetabits": "$1&nbsp;Zbps",
        "bitrate-yottabits": "$1&nbsp;Ybps",
-       "lag-warn-normal": "Änderunge us de letzte {{PLURAL:$1|Sekund|$1 Sekunde|knappe Sekund}} sin en dä Leß wall noch nit opjenomme.",
-       "lag-warn-high": "Dä Datebankßööver hät jrad vill ze donn.\nÄnderunge us de letzte {{PLURAL:$1|Sekund|$1 Sekunde|knappe Sekund}} sin dröm en dä Leß heh wall noch nit opjenomme.",
+       "lag-warn-normal": "Änderonge uß de läzde {{PLURAL:$1|Sekond|$1 Sekuode|knappe Sekond}} sin en dä Leß wall noch nit opjenomme.",
+       "lag-warn-high": "Dä Datebankßööver hät jrad vill ze donn.\nÄnderonge uß de läzde {{PLURAL:$1|Sekond|$1 Sekonde|knappe Sekond}} sin dröm en dä Leß heh wall noch nit opjenomme.",
        "watchlistedit-normal-title": "Oppassliss beärbeijde",
        "watchlistedit-normal-legend": "Titell uß de Oppassliss eruß lohße",
        "watchlistedit-normal-explain": "Dat sin de Endräsch en Dinge Oppaßleß.\nÖm einzel Titelle loßß ze wääde, don Hökche en de Kässjer nevve inne maache, un dann deuß De dä Knopp „{{int:watchlistedit-normal-submit}}“.\nDo kanns Ding Oppassleß och [[Special:EditWatchlist/raw|en rüh beärbeide]].",
        "version-parser-function-hooks": "Parserfunktione",
        "version-hook-name": "De Schnettstelle ier Name",
        "version-hook-subscribedby": "Opjeroofe vun",
-       "version-version": "(Väsjohn $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[keine Nahme]",
        "version-license": "MediaWiki sing Lėzänz",
        "version-ext-license": "‎Lėzänz",
        "intentionallyblankpage": "Op dä Sigg es med Afseesh nix drop.",
        "external_image_whitelist": "# Donn aan dä Reih heh nix ändere<pre>\n# Onge künne Brochstöke fun rejolähre Ußdrök aanjejovve wäde,\n# alsu dä Deil zwesche / und /\n# Noh em Verjliische met däm URL vun ene Datei fun ußerhallef:\n# Treffer: De Datei weed jezeich odder enjebonge.\n# Söns: ene Link weed aanjezeich.\n# Wam_mer et nit ömschtällt, es Jruß- un Kleinschrevv_ejaal.\n# Reije met # am Aanfang, sen bloß Kommenta\n# Donn de Brochstöck heh noh endrare, un di Reihe bes hee nit ändere</pre>",
        "tags": "De jöltijje Makeerunge för Änderunge",
-       "tag-filter": "[[Special:Tags|Makeerunge]] ußsöke:",
+       "tag-filter": "[[Special:Tags|Makehronge]] ußsöhke:",
        "tag-filter-submit": "Beschränke!",
        "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Ein|$1|Kein}} Kännzeijsche]]: $2)",
        "tags-title": "Makeeronge",
        "logentry-block-reblock": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät {{GENDER:$4|däm|däm|däm Metmaacher|dä|däm}} $3 {{GENDER:$3|sing|sing|sing|ier|sing}} sing Schpärr för di Zigg vun $5 verändert. $6",
        "logentry-suppress-block": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät {{GENDER:$4|dä|dat|dä Metmaacher|de|dat}} $3 för en Zigg vun $5 jespächt. $6",
        "logentry-suppress-reblock": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät {{GENDER:$4|däm|däm|däm Metmaacher|dä|däm}} $3 {{GENDER:$3|sing|sing|sing|ier|sing}} sing Schpärr för di Zigg vun $5 verändert. $6",
+       "logentry-import-upload": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} „$1“ hät di Sigg „$3“ huhjelahde un esu empottehrt",
+       "logentry-import-interwiki": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} „$1“ hät di Sigg „$3“ fun enem andere Wikki empottehrt",
        "logentry-merge-merge": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät di Sigg „$3“ met dä Sigg „$4“ zersamme jelaat, jenou jenumme de Väsjohne bes $5",
        "logentry-move-move": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hätt di Sigg „$3“ en „$4“ ömjenannt.",
        "logentry-move-move-noredirect": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hätt di Sigg „$3“ en „$4“ ömjenannt un derbei kein Ömleidong aanjelaat.",
        "logentry-managetags-deactivate": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät dat Kännzeijsche „$4“ för de Metmaacher un de Bots afjeschalldt.",
        "rightsnone": "(nix)",
        "revdelete-summary": "dä Täx en „{{int:summary}}“",
+       "feedback-adding": "Ben di Röckmäldong op di Sigg aam donn&nbsp;…",
+       "feedback-back": "Retuur",
+       "feedback-bugcheck": "Joot. Donn op jeede Vall nohlooer, dat dat bes jäz noch nit [$1 bikannt wohr].",
+       "feedback-bugnew": "Hann esch nohjelooert. Esch jävven ene neue Fähler enn.",
        "feedback-bugornote": "Wann de em Bejreff bes, övver e täschesch Probleem ze schrieve, bes esu jood un donn dat als en [$1 Fählermäldong].\nSöns, nemm dat koote Fommulaa heh dronger.\nWat De doh enjiß, kütt met Dingem Metmaachername un Dingem Brauser op die Sigg „[$3 $2]“ drop.",
-       "feedback-subject": "Theema:",
-       "feedback-message": "Nohreesch:",
        "feedback-cancel": "Stopp! Avbreche!",
-       "feedback-submit": "Lohß jonn!",
-       "feedback-adding": "Ben di Röckmäldong op di Sigg aam donn&nbsp;…",
+       "feedback-close": "Jedonn.",
+       "feedback-external-bug-report-button": "Donne ene Fähler mällde, ene Wonsch för en Verbäßerong ennreische, udder anndere täschneche Idee opbränge.",
+       "feedback-dialog-title": "En Rökmäldong jävve",
+       "feedback-dialog-intro": "Dat Fommolaa kam_mer för en Rökmäldong bruche. Di kütt zesamme met Dingem Metmaacher_Nahme op di Sigg „$1“.",
+       "feedback-error-title": "Fähler",
        "feedback-error1": "Fähler: dat <i lang=\"en\">API</i> säät jät, wat mer nit kenne",
        "feedback-error2": "Fähler: de Sigg ze ändere es donävve jejange",
        "feedback-error3": "Fähler: dat <i lang=\"en\">API</i> joov kein Antwoot",
+       "feedback-message": "Nohreesch:",
+       "feedback-subject": "Theema:",
+       "feedback-submit": "Lohß jonn!",
+       "feedback-terms": "Minge Brauser un sing Enschtällong un mi Bedriefssüßtehm und dänne iehr Väsohne wääde met minge Röckmäldong zersamme öffentlesch jemaat.",
+       "feedback-termsofuse": "Esch donn ming Röckmäldong onger de Bedengonge för der Jebruch maache.",
        "feedback-thanks": "Joot. Dinge Beidraach kütt op die Sigg \"[$2 $1]\".",
-       "feedback-close": "Jedonn.",
-       "feedback-bugcheck": "Joot. Donn op jeede Vall nohlooer, dat dat bes jäz noch nit [$1 bikannt wohr].",
-       "feedback-bugnew": "Hann esch nohjelooert. Esch jävven ene neue Fähler enn.",
+       "feedback-thanks-title": "Ene schöne Dangk och!",
+       "feedback-useragent": "Dä Brauser:",
        "searchsuggest-search": "Söhke",
        "searchsuggest-containing": "dren änthallde…",
        "api-error-badaccess-groups": "Do häs nit et Rääsch, Datteije en heh dat Wiki huhzelaade.",
        "api-error-overwrite": "En Dattei ze övverschrieve es nit zohjelohße.",
        "api-error-stashfailed": "Fähler: Dä ẞööver hät kein Datteije zweschejeschpeischert.",
        "api-error-publishfailed": "Ene Fähler es em ẞööver opjetrodde. En zweschejescheischerte Dattei kunnt nit öffentlesch jemaat wääde.",
+       "api-error-stasherror": "Ene Fähler es opjetrodd, wi mer di Dattei en der <i lang=\"en\" xml:lang=\"en\">stash</i> huh aam lahde wohre.",
+       "api-error-stashedfilenotfound": "Di Dattei wohd em <i lang=\"en\" xml:lang=\"en\">stash</i> nit jefonge, wi mer se vun doh huh lahde wullte.",
+       "api-error-stashpathinvalid": "Di Dattei wohd em <i lang=\"en\" xml:lang=\"en\">stash</i> nit jefonge, weil dä Pad do hen nit jeschtemmp hät.",
+       "api-error-stashfilestorage": "Ene Fähler es opjetrodd, wi mer di Dattei en der <i lang=\"en\" xml:lang=\"en\">stash</i> donn wullte.",
+       "api-error-stashzerolength": "Dä ẞööver kunnt di Dattei nit en der <i lang=\"en\" xml:lang=\"en\">stash</i> donn, weil en dä Dattei nix dren schtund.",
+       "api-error-stashnotloggedin": "Do moß enjelogg sin, öm en Dattei en der <i lang=\"en\" xml:lang=\"en\">stash</i> huh ze lahde.",
+       "api-error-stashwrongowner": "Di Dattei em <i lang=\"en\" xml:lang=\"en\">stash</i> woh De draan wells, jehürt Der nit.",
+       "api-error-stashnosuchfilekey": "Di Dattei em <i lang=\"en\" xml:lang=\"en\">stash</i> woh De draan wells, jidd_et nit.",
        "api-error-timeout": "Dä ẞööver hät en dä jewennde Zick nit jeantwoot.",
        "api-error-unclassified": "Ene Fähler es opjetrodde, der mer nit kenne.",
        "api-error-unknown-code": "Nit bekannte Fähler: „$1“",
        "log-name-pagelang": "Logbooch vum Tuusche vun Sige iehr Schprohche",
        "log-description-pagelang": "Dat heh es et Logbohch vun de Veränderonge aan de Schprohch vun de Sigge.",
        "logentry-pagelang-pagelang": "{{GENDER:$2|Dä|Dat|Dä Metmaacher|De|Dat}} $1 hät de Schprohch vun dä Sigg „$3“ vun $4 op $5 verändert.",
-       "default-skin-not-found": "De schtandattmääßejje Bedehnbovverfläsch <code>$1</code> för et Wikki es nit ze fenge. Se weed övver dä Enndraach <code lang=\"en\" xml:lang=\"en\">$wgDefaultSkin</code> en dä Dattei <code lang=\"en\" xml:lang=\"en\">LocalSettings.php</code> om ẞööver faßjelaat.\n\nHeh di Bedehnbovverfläsche sin doh:\n\n$2\n\nLohr och em [https://www.mediawiki.org/wiki/Manual:Skin_configuration/de Handbohch övver et Enschtälle vun Bedehnbovverfläsche].\n\n*'''Falls dat heh e fresch enjereesch MeedijaWikki es:'''\n*: MeedijaWikki wood velleisch övver <i lang=\"en\" xml:lang=\"en\">Git</i> eschtallehrt, udder der Quälltäx wood tiräk obb_en ander Manier eschtallehrt. Met däm Problehm heh wohr ze rääschne. Donn winneschßdens eine vun dä Bovverfläsche uss_em [https://www.mediawiki.org/wiki/Category:All_skins Verzeischneß vun de Bedehnbovverfläsche] enschtallehre. Dat jeihd, endämm dat De:\n*:* winneschsdens eins vun dä Verzeischneße us <code lang=\"en\" xml:lang=\"en\">mediawiki/skins/*</code> met <i lang=\"en\" xml:lang=\"en\">Git</i> en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge MeedijaWikki_Enschtallazuhn holls,\n*:* einzel veröffentleschte Bovverfläsche us [https://www.mediawiki.org/wiki/Special:SkinDistributor MediaWiki.org] erongerlähds un en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge MeedijaWikki_Enschtallazuhn holls,\n*:* de [https://www.mediawiki.org/wiki/Download Dattei vum MeedijaWikki] erongerlähds, woh ongerscheidlejje Bedehnbovverfläsche dren sin un Zohsäz dder derzoh. Uß däm Verzeischneß doh dren kam_mer Saache en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge vun dä MeedijaWikki_Enschtallazuhn holle.\n*: Dat sullt sesch nit met Dingem <i lang=\"en\" xml:lang=\"en\">Git</i>-Verzeischneß schtühre, falls De och ene Äntweckler vum MeedijaWikki bes.\n*'''Falls dat MeedijaWikki heh jrahd obb ene neue Schtand jebraht wood:'''\n*: Bei MeedijaWikki en dä Väsjohn 1.24 un hüüter wääde de enschtllehrte Bedehnbovverfläsche nit mieh automattesch alle aanjemaat; süsch och em [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Handbohch] derhoh. Do kanns heh di Reihje e de Dattei <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">LocalSettings.php</code> eren koppehre, öm alle enschtallehrte Bedehnbovverfläsche aanmaache:\n*:<pre lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$3</pre>\n* '''Falls de jrahd aan dä Dattei <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">LocalSettings.php</code>  jät geändert häs:'''\n*: Donn de Nahme vun de Bedehnbovverfläsche en dä Dattei pröhve. Et künnte Fähhler dren sin.",
-       "default-skin-not-found-no-skins": "De schtandattmääßejje Bedehnbovverfläsch <code>$1</code> för et Wikki es nit ze fenge. Se weed övver dä Enndraach <code lang=\"en\" xml:lang=\"en\">$wgDefaultSkin</code> en dä Dattei <code lang=\"en\" xml:lang=\"en\">LocalSettings.php</code> om ẞööver faßjelaat.\n\nEt sinn_er kein Bedehnbovverfläsche doh.\n\n*'''Falls dat heh e fresch enjereesch MeedijaWikki, es udder jrahd obb ene neue Schtand jebraht wood:'''\n*: MeedijaWikki wood velleisch övver <i lang=\"en\" xml:lang=\"en\">Git</i> eschtallehrt, udder der Quälltäx wood tiräk obb_en ander Manier eschtallehrt. Met däm Problehm heh wohr ze rääschne. Donn winneschßdens eine vun dä Bovverfläsche uss_em [https://www.mediawiki.org/wiki/Category:All_skins Verzeischneß vun de Bedehnbovverfläsche] enschtallehre. Dat jeihd, endämm dat De:\n*:* winneschsdens eins vun dä Verzeischneße us <code lang=\"en\" xml:lang=\"en\">mediawiki/skins/*</code> met <i lang=\"en\" xml:lang=\"en\">Git</i> en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge MeedijaWikki_Enschtallazuhn holls,\n*:* einzel veröffentleschte Bovverfläsche us [https://www.mediawiki.org/wiki/Special:SkinDistributor MediaWiki.org] erongerlähds un en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge MeedijaWikki_Enschtallazuhn holls,\n*:* de [https://www.mediawiki.org/wiki/Download Dattei vum MeedijaWikki] erongerlähds, woh ongerscheidlejje Bedehnbovverfläsche dren sin un Zohsäz dder derzoh. Uß däm Verzeischneß doh dren kam_mer Saache en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge vun dä MeedijaWikki_Enschtallazuhn holle.\n*: Dat sullt sesch nit met Dingem <i lang=\"en\" xml:lang=\"en\">Git</i>-Verzeischneß schtühre, falls De och ene Äntweckler vum MeedijaWikki bes.\n*'''Falls dat MeedijaWikki heh jrahd obb ene neue Schtand jebraht wood:'''\n*: Bei MeedijaWikki en dä Väsjohn 1.24 un hüüter wääde de enschtllehrte Bedehnbovverfläsche nit mieh automattesch alle aanjemaat; süsch och em [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Handbohch] derhoh. Do kanns heh di Reihje e de Dattei <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">LocalSettings.php</code> eren koppehre, öm alle enschtallehrte Bedehnbovverfläsche aanmaache:\n*:<pre lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$3</pre>\n* '''Falls de jrahd aan dä Dattei <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">LocalSettings.php</code>  jät geändert häs:'''\n*: Donn de Nahme vun de Bedehnbovverfläsche en dä Dattei pröhve. Et künnte Fähhler dren sin.",
+       "default-skin-not-found": "De schtandattmähßejje Bedehnbovverfläsch <code>$1</code> för et Wikki es nit ze fenge. Se weed övver dä Enndrahch <code lang=\"en\" xml:lang=\"en\">$wgDefaultSkin</code> en dä Dattei <code lang=\"en\" xml:lang=\"en\">LocalSettings.php</code> om ẞööver faßjelaat.\n\n{{PLURAL:$4|Heh di Bedehnbovverfläsch es|Heh di Bedehnbovverfläsche sin|Kein Bedehnbovverfläsche sin}} doh:\n\n$2\n\nLohr och en et [https://www.mediawiki.org/wiki/Manual:Skin_configuration/de Handbohch övver et Enschtälle vun Bedehnbovverfläsche].\n\n*'''Falls dat heh e fresch enjereesch MehdijaWikki es:'''\n*: MehdijaWikki wood velleisch övver <i lang=\"en\" xml:lang=\"en\">Git</i> enschtallehrt, udder der Quälltäx wood tiräk obb_en ander Manier enschtallehrt. Met däm Problehm heh wohr ze rääschne. Donn winneschßdens eine vun dä Bovverfläsche uss_em [https://www.mediawiki.org/wiki/Category:All_skins Verzeischneß vun de Bedehnbovverfläsche vum MehdijaWikki] enschtallehre. Dat jeihd, endämm dat De:\n*:* einzel veröffentleschte Bovverfläsche us [https://www.mediawiki.org/wiki/Special:SkinDistributor MediaWiki.org] erongerlähds un en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun dä MehdijaWikki_Enschtallazuhn holls,\n*:* winneschsdens eins vun dä Verzeischneße us <code lang=\"en\" xml:lang=\"en\">mediawiki/skins/*</code> met <i lang=\"en\" xml:lang=\"en\">Git</i> en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge MehdijaWikki_Enschtallazuhn holls,\n*:* de [https://www.mediawiki.org/wiki/Download Dattei vum MehdijaWikki] erongerlähds, woh ongerscheidlejje Bedehnbovverfläsche dren sin un Zohsäz derzoh. Uß däm Verzeischneß doh dren kam_mer Saache en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun dä MehdijaWikki_Enschtallazuhn holle.\n*: Dat sullt sesch nit met Dingem <i lang=\"en\" xml:lang=\"en\">git</i>-Verzeischneß schtühre, falls De och ene Äntweckler vum MehdijaWikki bes.\n*'''Falls dat MehdijaWikki heh jrahd obb ene neue Schtand jebraht wood:'''\n*: Bei MehdijaWikki en dä Väsjohn 1.24 un hüüter wääde de enschtallehrte Bedehnbovverfläsche nit mieh automattesch alle aanjemaat; süsch och em [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Handbohch] dernoh. Do kanns heh di {{PLURAL:$5|Reih|Reihje|kein Reihje}} en de Dattei <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">LocalSettings.php</code> eren koppehre, öm {{PLURAL:$5|di enschtallehrte Bedehnbovverfläsch|alle enschtallehrte Bedehnbovverfläsche|kein Bedehnbovverfläsch}} aanzeschallde:\n<pre lang=\"en\" xml:lang=\"en\" dir=\"ltr\">$3</pre>\n* '''Falls de jrahd aan dä Dattei <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">LocalSettings.php</code> jät geändert häs:'''\n*: Donn de Nahme vun de Bedehnbovverfläsche en dä Dattei pröhve. Se künnte verhehrt jeschrevve sin.",
+       "default-skin-not-found-no-skins": "De schtandattmähßejje Bedehnbovverfläsch <code>$1</code> för et Wikki es nit ze fenge. Se weed övver dä Enndraach <code lang=\"en\" xml:lang=\"en\">$wgDefaultSkin</code> en dä Dattei <code lang=\"en\" xml:lang=\"en\">LocalSettings.php</code> om ẞööver faßjelaat.\n\nEt sinn_er kein Bedehnbovverfläsche doh.\n\n*'''Falls dat heh e fresch enjereesch MehdijaWikki, es udder jrahd obb ene neue Schtand jebraht wood:'''\n*: MehdijaWikki wood velleisch övver <i lang=\"en\" xml:lang=\"en\">Git</i> enschtallehrt, udder der Quälltäx wood tiräk obb_en ander Manier enschtallehrt. Met däm Problehm heh wohr ze rääschne. Bei MehdijaWikki en dä Väsjohn 1.24 un hüüter sin kein Bedehnbovverfläsche mieh automattesch derbei. Donn winneschßdens eine vun dä Bovverfläsche uss_em [https://www.mediawiki.org/wiki/Category:All_skins Verzeischneß vun de Bedehnbovverfläsche] enschtallehre. Dat jeihd, endämm dat De:\n*:* winneschsdens eins vun dä Verzeischneße us <code lang=\"en\" xml:lang=\"en\">mediawiki/skins/*</code> met <i lang=\"en\" xml:lang=\"en\">Git</i> en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge MehdijaWikki_Enschtallazuhn holls,\n*:* einzel veröffentleschte Bovverfläsche us [https://www.mediawiki.org/wiki/Special:SkinDistributor MediaWiki.org] erongerlähds un en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge MehdijaWikki_Enschtallazuhn holls,\n*:* de [https://www.mediawiki.org/wiki/Download Dattei vum MehdijaWikki] erongerlähds, woh ongerscheidlejje Bedehnbovverfläsche dren sin un Zohsäz derzoh. Uß däm Verzeischneß doh dren kam_mer Saache en et Verzeischneß <code lang=\"en\" xml:lang=\"en\" dir=\"ltr\">skins/</code> vun Dinge vun dä MehdijaWikki_Enschtallazuhn holle.\n*: Dat sullt sesch nit met Dingem <i lang=\"en\" xml:lang=\"en\">Git</i>-Verzeischneß schtühre, falls De och ene Äntweckler vum MehdijaWikki bes. Lohr em [https://www.mediawiki.org/wiki/Manual:Skin_configuration Handbohch] dernoh, wi mer Bedehnbovverfläsche aanmääd un ene Schtandatt faßlähsch.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (enjeschalldt)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''ußjeschalldt''')",
        "mediastatistics": "Schtateßteke övver de Meedije",
index bd25d62..e937b45 100644 (file)
        "version": "Versiyon",
        "version-specialpages": "Rûpelên taybet",
        "version-other": "yên din",
-       "version-version": " (Verzîyon $1)",
+       "version-version": "($1)",
        "version-license": "Destûr",
        "version-software-product": "Berhem",
        "version-software-version": "Guherto",
        "logentry-newusers-create": "$1 hesabekî bikarhêneriyê çêkir",
        "rightsnone": "(tune)",
        "revdelete-summary": "kurteyê biguherîne",
-       "feedback-subject": "Mijar:",
-       "feedback-message": "Peyam:",
        "feedback-cancel": "Betal bike",
        "feedback-close": "Çêbû",
+       "feedback-message": "Peyam:",
+       "feedback-subject": "Mijar:",
        "searchsuggest-search": "Lêgerîn",
        "searchsuggest-containing": "dihundirîne...",
        "expand_templates_output": "Encam",
index cfb0f45..94f5b4b 100644 (file)
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|keskows]])",
        "version": "Versyon",
        "version-other": "Aral",
-       "version-version": "(Versyon $1)",
+       "version-version": "($1)",
        "fileduplicatesearch-filename": "Hanow an restren:",
        "fileduplicatesearch-submit": "Hwilas",
        "specialpages": "Folennow arbennek",
index 2d3df3a..629425d 100644 (file)
@@ -13,7 +13,8 @@
                        "Ztimur",
                        "Викиней",
                        "아라",
-                       "Askar Nazyrov"
+                       "Askar Nazyrov",
+                       "Macofe"
                ]
        },
        "tog-underline": "Шилтемелердин алдын сызуу:",
        "import-invalid-interwiki": "Көрсөтүлгөн уикиден импорттоого мүмкүн эмес.",
        "importlogpage": "Импорт журналы",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|версия}}",
-       "import-logentry-interwiki": "«$1» — уики аралык импорту",
        "javascripttest": "JavaScript'ти текшерүү",
-       "javascripttest-title": "$1 үчүн текшерүү жүргүзүлүп жатат",
        "tooltip-pt-userpage": "Колдонуучу барагыңыз",
        "tooltip-pt-mytalk": "Баарлашуу барагыңыз",
        "tooltip-pt-anontalk": "Бул IP дарекке арналган талкуулоо барагы",
        "version-specialpages": "Кызматтык барактар",
        "version-variables": "Өзгөрмөлөр",
        "version-other": "Башка",
-       "version-version": "(Версия $1)",
+       "version-version": "($1)",
        "version-license": "Лицензия",
        "version-software": "Орнотулган программалык камсыздоо",
        "version-software-product": "Продукт",
        "logentry-newusers-create2": "$1 эсеп жазуусун түздү",
        "logentry-newusers-autocreate": "Автоматтуу түрдө $1 эсеп жазуусу түзүлдү",
        "rightsnone": "(жок)",
-       "feedback-subject": "Тема:",
-       "feedback-message": "Билдирүү:",
-       "feedback-cancel": "Жокко чыгаруу",
-       "feedback-submit": "Пикир жөнөтүү",
        "feedback-adding": "Баракка пикирди кошуу…",
+       "feedback-bugnew": "Мен текшердим. Жаңы ката жөнүндө маалымдоо",
+       "feedback-cancel": "Жокко чыгаруу",
+       "feedback-close": "Даяр",
        "feedback-error1": "Ката. API'ден белгисиз натыйжа",
        "feedback-error2": "Ката: Оңдоо оңунан чыккан жок",
        "feedback-error3": "Ката: API'ден жооп жок",
-       "feedback-close": "Даяр",
-       "feedback-bugnew": "Мен текшердим. Жаңы ката жөнүндө маалымдоо",
+       "feedback-message": "Билдирүү:",
+       "feedback-subject": "Тема:",
+       "feedback-submit": "Жөнөтүү",
        "searchsuggest-search": "Издөө",
        "searchsuggest-containing": "кармагандар...",
        "api-error-badtoken": "Ички ката: анык эмес токен.",
index 975de0a..c65f38d 100644 (file)
@@ -21,7 +21,8 @@
                        "UV",
                        "Žekřil71pl",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Lesgles"
                ]
        },
        "tog-underline": "Versores linea denotandi:",
        "summary": "Summarium:",
        "subject": "Res/titulus:",
        "minoredit": "Haec est recensio minor",
-       "watchthis": "Custodire hanc paginam",
+       "watchthis": "Observare hanc paginam",
        "savearticle": "Servare hanc rem",
        "preview": "Praevidere",
        "showpreview": "Monstrare praevisum",
        "prefs-user-pages": "Paginae usoris",
        "prefs-personal": "Minutiae rationis",
        "prefs-rc": "Nuper mutata",
-       "prefs-watchlist": "Paginae custoditae",
+       "prefs-watchlist": "Paginae observatae",
        "prefs-watchlist-days": "Numerus dierum displicandus in paginis tuis custoditis:",
        "prefs-watchlist-days-max": "Numerus maximus: $1 {{PLURAL:$1|dies|dies}}",
        "prefs-watchlist-edits": "Numerus recensionum displicandus in paginis tuis custoditis extensis:",
        "recentchangeslinked-feed": "Nuper mutata annexorum",
        "recentchangeslinked-toolbox": "Nuper mutata annexorum",
        "recentchangeslinked-title": "Nuper mutata in paginis quibus pagina \"$1\" nectit",
-       "recentchangeslinked-summary": "Ecce mutationes recentissimas commentationum quae aut paginae cuidam adnectuntur, aut in categoria quadam includuntur. Paginae a [[Special:Watchlist|te custoditae]] '''litteris pinguibus''' monstrantur.",
+       "recentchangeslinked-summary": "Ecce mutationes recentissimas commentationum quae aut paginae cuidam adnectuntur, aut in categoria quadam includuntur. Paginae a [[Special:Watchlist|te observatae]] '''litteris pinguibus''' monstrantur.",
        "recentchangeslinked-page": "Titulus paginae:",
        "recentchangeslinked-to": "Mutationes commentationum quae huic paginae adnectuntur monstrare",
        "upload": "Fasciculum imponere",
        "sourcefilename": "Fasciculi imponendi nomen:",
        "destfilename": "Nomen fasciculi petitum:",
        "upload-maxfilesize": "Maxima fasciculi magnitudo: $1",
-       "watchthisupload": "Custodire hunc fasciculum",
+       "watchthisupload": "Observare hunc fasciculum",
        "upload-success-subj": "Impositum est perfectum",
        "upload-proto-error": "Protocollum incorrectum",
        "upload-file-error": "Erratum internum",
        "emailsenttext": "Nuntium tuum missum est.",
        "emailuserfooter": "Has litteras electronicas $1 ad $2 misit per \"Litteras electronicas usori mittere\" in {{grammar:ablative|{{SITENAME}}}}.",
        "usermessage-editor": "Nuntius systematis",
-       "watchlist": "Paginae custoditae",
-       "mywatchlist": "Paginae custoditae",
+       "watchlist": "Paginae observatae",
+       "mywatchlist": "Paginae observatae",
        "watchlistfor2": "Pro $1 $2",
        "nowatchlist": "Nullas paginas custodis.",
        "watchlistanontext": "Necesse est $1 ad indicem paginarum custoditarum inspiciendum vel recensendum.",
        "watchnologin": "Conventum non est apertum",
        "addedwatchtext": "Pagina \"[[:$1]]\" in [[Special:Watchlist|paginas tuas custoditas]] addita est.\nMutationes posthac huic paginae et paginae disputationis ibi notabuntur.",
        "removedwatchtext": "Pagina \"[[:$1]]\" ex [[Special:Watchlist|indice paginarum custoditarum]] remota est.",
-       "watch": "Custodire",
-       "watchthispage": "Custodire hanc paginam",
+       "watch": "Observare",
+       "watchthispage": "Observare hanc paginam",
        "unwatch": "Decustodire",
        "unwatchthispage": "Abrogare custoditum",
        "notanarticle": "Res non est",
        "ipbsubmit": "Obstruere hunc locum",
        "ipbother": "Exitus alius:",
        "ipboptions": "2 horas:2 hours,1 diem:1 day,3 dies:3 days,1 hebdomadem:1 week,2 hebdomades:2 weeks,1 mensem:1 month,3 menses:3 months,6 menses:6 months,1 annum:1 year,infinite:infinite",
-       "ipbwatchuser": "Paginam usoris disputationisque huius usoris custodire",
+       "ipbwatchuser": "Paginam usoris disputationisque huius usoris observare",
        "ipb-change-block": "Obstructionem usoris modificare",
        "badipaddress": "Locus IP male formatus",
        "blockipsuccesssub": "Locus prospere obstructus est",
        "cant-move-user-page": "Tibi non licet paginas usorum movere (solum eorum subpaginas).",
        "cant-move-to-user-page": "Tibi non licet paginam ad paginam usoris movere (solum ad paginae usoris subpaginam).",
        "newtitle": "Ad titulum novum:",
-       "move-watch": "Hanc paginam custodire",
+       "move-watch": "Observare et titulum veterem et titulum novum",
        "movepagebtn": "Paginam movere",
        "pagemovedsub": "Pagina mota est",
        "movepage-moved": "'''\"$1\" mota est ad \"$2\"'''",
        "tooltip-pt-userpage": "Pagina usoris tua",
        "tooltip-pt-mytalk": "Pagina disputationis tua",
        "tooltip-pt-preferences": "Praeferentiae tuae",
-       "tooltip-pt-watchlist": "Paginae quas custodis ut earum mutationes facilius videas",
+       "tooltip-pt-watchlist": "Paginae quas observas ut earum mutationes facilius videas",
        "tooltip-pt-mycontris": "Index conlationum tuarum",
        "tooltip-pt-login": "Te conventum aperire hortamur, non autem requisitum",
        "tooltip-pt-logout": "Conventum concludere",
        "tooltip-ca-delete": "Delere hanc paginam",
        "tooltip-ca-undelete": "Restituere emendationes huic paginae conlatas antequam haec pagina deleta esset",
        "tooltip-ca-move": "Movere hanc paginam",
-       "tooltip-ca-watch": "Addere hanc paginam tuis paginis custoditis",
-       "tooltip-ca-unwatch": "Removere hanc paginam ex tuis paginis custoditis",
+       "tooltip-ca-watch": "Addere hanc paginam tuis paginis observatis",
+       "tooltip-ca-unwatch": "Removere hanc paginam ex tuis paginis observatis",
        "tooltip-search": "Quaerere aliquid in {{grammar:ablative|{{SITENAME}}}}",
        "tooltip-search-go": "I ad paginam cum hoc titulo exacto, si est",
        "tooltip-search-fulltext": "Hunc textum in paginis quaerere",
        "tooltip-preview": "Praevidere mutationes tuas, quaesumus hoc utere antequam servas!",
        "tooltip-diff": "Monstrare mutationes textui tuas",
        "tooltip-compareselectedversions": "Videre dissimilitudinem inter ambas emendationes selectas huius paginae",
-       "tooltip-watch": "Addere hanc paginam tuis paginis custoditis",
+       "tooltip-watch": "Addere hanc paginam tuis paginis observatis",
        "tooltip-recreate": "Recreare hanc paginam etiamsi deleta est",
        "tooltip-upload": "Incipere imponere",
        "tooltip-rollback": "\"Revertere\" omnes ultimi editoris in hac pagina recensiones statim revertit",
        "logentry-newusers-autocreate": "Ratio usoris $1 automatice creata est",
        "rightsnone": "(nullus)",
        "revdelete-summary": "summarium recensionis",
-       "feedback-message": "Nuntius:",
        "feedback-cancel": "Dimittere",
-       "feedback-error2": "Error: Recensio non additur",
        "feedback-close": "Factum",
+       "feedback-error2": "Error: Recensio non additur",
+       "feedback-message": "Nuntius:",
        "searchsuggest-search": "Quaerere",
        "searchsuggest-containing": "continens...",
        "api-error-empty-file": "Fasciculus inmissus vacuus est.",
index a8ba550..15210db 100644 (file)
        "version": "Versión",
        "version-specialpages": "Pajinas espesiales",
        "version-other": "Otros",
-       "version-version": "(Versión $1)",
+       "version-version": "($1)",
        "version-ext-colheader-credits": "Otores",
        "version-poweredby-others": "otros",
        "version-software-version": "Versión",
        "htmlform-yes": "Si",
        "logentry-newusers-autocreate": "El cuento de usuario $1 fue {{GENDER:$2|kreado}} otomatikamente",
        "rightsnone": "(dinguno)",
-       "feedback-subject": "Sujeto",
-       "feedback-message": "Messaje",
        "feedback-cancel": "Anular",
+       "feedback-message": "Messaje",
+       "feedback-subject": "Sujeto",
        "searchsuggest-search": "Bushkar",
        "duration-seconds": "$1{{PLURAL:$1|segundo|segundos}}",
        "duration-minutes": "$1{{PLURAL:$1|minuto|minutos}}",
index 50db3ef..0f48e9e 100644 (file)
        "disclaimers": "Impressum",
        "disclaimerpage": "Project:Impressum",
        "edithelp": "Hëllef beim Änneren",
+       "helppage-top-gethelp": "Hëllef",
        "mainpage": "Haaptsäit",
        "mainpage-description": "Haaptsäit",
        "policy-url": "Project:Richtlinnen",
        "readonly_lag": "D'Datebank gouf automatesch gespaart fir datt d'Zweetserveren (slaves) nees mat dem Haaptserver (master) synchron geschalt kënne ginn.",
        "internalerror": "Interne Feeler",
        "internalerror_info": "Interne Feeler: $1",
+       "internalerror-fatal-exception": "Fatale Feeler vum Typ \"$1\"",
        "filecopyerror": "De Fichier \"$1\" konnt net op \"$2\" kopéiert ginn.",
        "filerenameerror": "De Fichier \"$1\" konnt net op \"$2\" ëmbenannt ginn.",
        "filedeleteerror": "De Fichier \"$1\" konnt net geläscht ginn.",
        "prefs-rc": "Rezent Ännerungen",
        "prefs-watchlist": "Iwwerwaachungslëscht",
        "prefs-editwatchlist": "Iwwerwaachungslëscht änneren",
+       "prefs-editwatchlist-label": "Ännert d'Elementer op Ärer Iwwerwaachungslëscht:",
+       "prefs-editwatchlist-edit": "Titelen op Ärer Iwwerwaachungslëscht kucken an erofhuelen",
        "prefs-editwatchlist-raw": "Net-formatéiert Iwwerwaachungslëscht änneren",
        "prefs-editwatchlist-clear": "Är Iwwerwaachungslëscht eidelmaachen",
        "prefs-watchlist-days": "Zuel vun den Deeg, déi an der Iwwerwaachungslëscht ugewise solle ginn:",
        "unusedimages": "Net benotzt Fichieren",
        "wantedcategories": "Gewënscht Kategorien",
        "wantedpages": "Gewënscht Säiten",
-       "wantedpages-summary": "Op dëser Spezialsäit stinn all Säiten, déi nach net existéieren, déi awer scho vu Säiten, déi et scho gëtt, verlinkt sinn.",
+       "wantedpages-summary": "Lëscht vun de Säiten, déi et nach net gëtt, mat de meeschte Linken drop, ouni d'Säiten op déi nëmme Viruleedunge linken. Fir eng Lëscht vun de Säiten, déi et nach net gëtt, op déi Viruleedunge linken kuckt w.e.g. [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Net valabelen Titel am Resultat: $1",
        "wantedfiles": "Gewënscht Fichieren",
        "wantedfiletext-cat": "Dës Fichiere gi benotzt awer et gëtt se net. Fichiere aus frieme Repositorie kënnen hei gewise ginn och wann et se gëtt. All sou falsch Positiver ginn <del>duerchgestrach</del>. Zousätzlech gi Säiten an deene Fichieren dra sinn déi et net gëtt op [[:$1]] gewisen.",
+       "wantedfiletext-cat-noforeign": "Dëse Fichiere gi benotzt awer et gëtt se net. Zousätzlech ginn Säiten op deene Fichiere stinn déi et net gëtt op der Lëscht [[:$1]] gewisen.",
        "wantedfiletext-nocat": "Dës Fichiere gi benotzt existéieren awer net. Fichieren aus frieme Repertoiren kënnen trotzdeem opgelëscht ginn. All dës positiv Fichiere ginn <del>duergestrach</del>.",
        "wantedfiletext-nocat-noforeign": "Dës Fichiere gi benotzt awer et gëtt se net.",
        "wantedtemplates": "Gewënscht Schablounen",
        "thumbnail_gd-library": "D'Konfiguratioun vun der GD-Bibliothéik (GD library) ass net komplett: D'Funktioun $1 feelt",
        "thumbnail_image-missing": "De Fichier schengt ze feelen: $1",
        "import": "Säiten importéieren",
-       "importinterwiki": "Transwiki-Import",
+       "importinterwiki": "Vun enger anerer Wiki importéieren",
        "import-interwiki-text": "Sicht eng Wiki an e Säitentitel eraus fir z'importéieren.\nD'Versiounsdatumen an d'Benotzernimm bleiwen dobäi erhalen.\nAll Transwiki-Import-Aktioune ginn am [[Special:Log/import|Import-Logbuch]] protokolléiert.",
        "import-interwiki-sourcewiki": "Quellwiki:",
        "import-interwiki-sourcepage": "Originalsäit:",
        "import-rootpage-nosubpage": "Am Nummraum \"$1\" vun der Basis-Säit si keng Ënnersäiten erlaabt.",
        "importlogpage": "Lëscht vun den Säitenimporten",
        "importlogpagetext": "Administrativen Import vu Säite mam Historique vun den Ännerungen aus anere Wikien.",
-       "import-logentry-upload": "huet [[$1]] vun engem Fichier duerch Eroplueden importéiert",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|Versioun|Versiounen}} importéiert",
-       "import-logentry-interwiki": "huet $1 importéiert (Transwiki)",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|Versioun|Versiounen}} importéiert vu(n) $2",
        "javascripttest": "JavaScript-Test",
        "javascripttest-pagetext-noframework": "Dës Säit ass fir Java-Script-Tester reservéiert.",
        "version-parser-function-hooks": "Parser-Funktiounen",
        "version-hook-name": "Numm vun der Klamer",
        "version-hook-subscribedby": "Opruff vum",
-       "version-version": "(Versioun $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[keen Numm]",
        "version-license": "MediaWiki-Lizenz",
        "version-ext-license": "Lizenz",
        "tags-active-yes": "Jo",
        "tags-active-no": "Neen",
        "tags-source-extension": "Duerch eng Erweiderung definéiert",
+       "tags-source-manual": "Manuell vu Benotzer a vu Botten agesat",
        "tags-source-none": "Gëtt net méi gebraucht",
        "tags-edit": "änneren",
        "tags-delete": "läschen",
        "tags-delete-reason": "Grond:",
        "tags-delete-not-found": "D'Markéierung (tag) ''$1'' gëtt et net.",
        "tags-activate-title": "Markéierung (tag) aktivéieren",
+       "tags-activate-question": "Dir sidd am Gaang d'Markéierung \"$1\" z'aktivéieren.",
        "tags-activate-reason": "Grond:",
+       "tags-activate-not-allowed": "Et ass net méiglech d'Markéierung \"$1\" z'aktivéieren.",
        "tags-activate-not-found": "D'Markéierung (tag) ''$1'' gëtt et net.",
        "tags-activate-submit": "Aktivéieren",
        "tags-deactivate-title": "Markéierung (tag) desaktivéieren",
+       "tags-deactivate-question": "Dir sidd am Gaang d'Markéierung \"$1\" ze desaktivéieren.",
        "tags-deactivate-reason": "Grond:",
+       "tags-deactivate-not-allowed": "Et ass net méiglech d'Markéierung \"$1\" ze desaktivéieren.",
        "tags-deactivate-submit": "Desaktivéieren",
        "comparepages": "Säite vergläichen",
        "compare-page1": "Säit 1",
        "revdelete-uname-unhid": "Benotzernumm net verstoppt",
        "revdelete-restricted": "Limitatioune fir Administrateuren ageschalt",
        "revdelete-unrestricted": "Limitatioune fir Administrateuren opgehuewen",
+       "logentry-block-unblock": "$1 {{GENDER:$2|huet}} d'Spär vum {{GENDER:$4|$3}} opgehuewen",
+       "logentry-import-interwiki": "$1 huet $3 vun enger anerer Wiki {{GENDER:$2|importéiert}}",
        "logentry-move-move": "$1 huet d'Säit $3 op $4 {{GENDER:$2|geréckelt}}",
        "logentry-move-move-noredirect": "$1 huet d'Säit $3 op $4 {{GENDER:$2|geréckelt}} ouni eng Viruleedung unzeleeën",
        "logentry-move-move_redir": "$1 huet d'Säit $3 op $4 {{GENDER:$2|geréckelt}} an derbäi gouf eng Viruleedung iwwerschriwwen",
        "logentry-upload-revert": "$1 huet $3 {{GENDER:$2|eropgelueden}}",
        "rightsnone": "(keen)",
        "revdelete-summary": "Resumé änneren",
+       "feedback-adding": "Feedback gëtt bei d'Säit derbäigesat...",
+       "feedback-back": "Zréck",
+       "feedback-bugcheck": "Super! Kuckt just no ob et net ee vun de scho [$1 bekannte Feeler] ass.",
+       "feedback-bugnew": "Ech hunn et nogekuckt. Den neie Bug mellen",
        "feedback-bugornote": "Wann Dir bereet sidd fir en technesche Problem am Detail ze beschreiwen da [$1 mellt w.e.g. e Feeler (Bug)].\nSoss kënnt Dir den einfache Formulär hei drënner benotzen. Är Bemierkung gëtt op d'Säit \"[$3 $2]\" derbäigesat, zesumme mat Ärem Benotzernumm an dem Numm vum Browser deen Dir benotzt.",
-       "feedback-subject": "Sujet:",
-       "feedback-message": "Message:",
        "feedback-cancel": "Ofbriechen",
-       "feedback-submit": "Feedback schécken",
-       "feedback-adding": "Feedback gëtt bei d'Säit derbäigesat...",
+       "feedback-close": "Fäerdeg",
+       "feedback-external-bug-report-button": "Eng technesch Aufgab notifizéieren",
+       "feedback-dialog-title": "Feedback schécken",
+       "feedback-error-title": "Feeler",
        "feedback-error1": "Feeler: Resultat vum API gouf net erkannt",
        "feedback-error2": "Feeler: D'Ännerung gouf net gespäichert",
        "feedback-error3": "Feeler: Keng Äntwert vum API",
+       "feedback-message": "Message:",
+       "feedback-subject": "Sujet:",
+       "feedback-submit": "Schécken",
        "feedback-thanks": "Merci! Äre Feedback gouf op der Säit \"[$2 $1]\" gespäichert.",
-       "feedback-close": "Fäerdeg",
-       "feedback-bugcheck": "Super! Kuckt just no ob et net ee vun de scho [$1 bekannte Feeler] ass.",
-       "feedback-bugnew": "Ech hunn et nogekuckt. Den neie Bug mellen",
+       "feedback-thanks-title": "Merci!",
        "searchsuggest-search": "Sichen",
        "searchsuggest-containing": "mat ...",
        "api-error-badaccess-groups": "Et ass Iech net erlaabt fir Fichieren op dës Wiki eropzelueden.",
index 438934a..83aeb8a 100644 (file)
        "editconflict": "Дуьзар хъувунрин акьунар: $1",
        "yourtext": "Зи текст",
        "yourdiff": "Тафаватар",
-       "copyrightwarning": "Тавакъу ийида, фагьум ая хьи, {{SITENAME}}-диз кутунвай вири крариз $2 лицензиядин шартунал акъуднавайбур хьиз килигда. (гегьеншдиз $1-з килига). \nКвез куьне кхьенвайбур азаддаказ чкIун ва гьар са кас  патахъай дуьзар хъувун кIанзавачтIа, а кхьенвайбур иниз эцигмир.<br />\nГЬакIни, куьне тестикьзава хьи, кутазвай алавайрин автор кьун я, я тахьайтIа, куьне а алаваяр чпин къенеавайбур азад чкIунни дегишун ихтияр гузвай чешмедикай ччин къачунва.<br />\n'''АВТОРДИН ИХТИЯР ХУЬЗВАЙ МАЛУМАТАР ИХТИЯР ГАЛАЧИЗ ЭЦИГМИР!'''",
+       "copyrightwarning": "Тавакъу ийида, фагьум ая хьи, {{SITENAME}}-диз кутунвай вири крариз $2 лицензиядин шартунал акъуднавайбур хьиз килигда. (гегьеншдиз $1-з килига).\nКвез куьне кхьенвайбур азаддаказ чкӀун ва гьар са кас патахъай дуьзар хъувун кӀанзавачтӀа, а кхьенвайбур иниз эцигмир.<br />\nГьакӀни, куьне тестикьзава хьи, кутазвай алавайрин автор кьун я, я тахьайтӀа, куьне а алаваяр чпин къенеавайбур азад чкӀунни дегишун ихтияр гузвай чешмедикай ччин къачунва.<br />\n'''АВТОРДИН ИХТИЯР ХУЬЗВАЙ МАЛУМАТАР ИХТИЯР ГАЛАЧИЗ ЭЦИГМИР!'''",
        "templatesused": "И ччина кардик кутунвай {{PLURAL:$1|1=Чешне|Чешнеяр}}:",
        "templatesusedpreview": "{{PLURAL:$1|1=Шаблон|Шаблонар}},илемишзавай дуьз клигунра:",
        "template-protected": "(хвенвай)",
        "upload-options": "Ппарунин шартIар",
        "watchthisupload": "И файл гуьзетун",
        "upload-file-error": "Къенепатан гъалатӀ",
+       "backend-fail-delete": "$1 файл алудиз хьанвач.",
        "uploadstash-refresh": "Файлрин сиягь цIийи хъувун",
        "img-auth-accessdenied": "Гьахьун къадагъа авунва",
        "license": "Лицензиярун",
        "statistics-pages": "Ччинар",
        "statistics-files": "Ппарнавай файлар",
        "statistics-users-active": "Актив уртахар",
-       "brokenredirects-edit": "дегишарун",
+       "brokenredirects-edit": "дуьзар хъувун",
        "brokenredirects-delete": "алудун",
        "withoutinterwiki-submit": "Къалурун",
        "nbytes": "$1 {{PLURAL:$1|1=байт|байтар}}",
        "changed": "дегишнава",
        "deletepage": "Къакъудун хъувун",
        "confirm": "Тестикьун",
-       "delete-confirm": "Къакъудун \"$1\"",
+       "delete-confirm": "«$1» алудун",
        "delete-legend": "Къакъудун",
        "confirmdeletetext": "Квез чlуриз кlанзани чарар гьадан вири тарихар галаз.                                                                                                                         Буюр, сидикъара,куьне чlурзатlа, куьн агъавурда автlа вуч ийизатlа ва куьне ийизатlа жуьреда [[{{MediaWiki:Policy-url}}| политика]].",
        "actioncomplete": "Кар авунва",
        "dellogpage": "Алудунин журнал",
        "deletecomment": "Кар",
        "deleteotherreason": "Масса/ ва мад кар",
-       "deletereasonotherlist": "Маса фагьум",
-       "rollback_short": "КЬулухъди чIугун",
+       "deletereasonotherlist": "Маса себеб",
        "rollbacklink": "Кьулухъди чIугун",
        "sessionfailure-title": "Гьахьунин гъалатI",
        "protectlogpage": "Хуьнин журнал",
        "logentry-move-move_redir-noredirect": "$1 $3 макъаладин тӀвар, ракъурун тун тавуна ва ракъурунин винелай $4 -диз масакӀа хъувуна",
        "logentry-newusers-autocreate": "Уртахдин $1 учётдин кхьин автоматиквилели туькӀуьр хьанва",
        "rightsnone": "(садни)",
-       "feedback-subject": "Тема:",
-       "feedback-message": "Чар:",
        "feedback-cancel": "Гьич авун",
        "feedback-close": "Авунва",
+       "feedback-message": "Чар:",
+       "feedback-subject": "Тема:",
        "expand_templates_xml_output": "XML акъудун",
        "expand_templates_ok": "ОК",
        "expand_templates_remove_comments": "Баянар алудун"
index b9d66ee..17b837b 100644 (file)
        "watchlisttools-edit": "Vide e edita la lista de pajes oservada",
        "watchlisttools-raw": "Edita la lista rua de pajes oservada",
        "version": "Varia",
-       "version-version": "(Varia $1)",
+       "version-version": "($1)",
        "fileduplicatesearch-submit": "Xerca",
        "specialpages": "Pajes spesial",
        "expand_templates_ok": "Oce"
index c498ce1..f9a5a26 100644 (file)
@@ -15,7 +15,8 @@
                        "Tibor",
                        "לערי ריינהארט",
                        "아라",
-                       "Robin0van0der0vliet"
+                       "Robin0van0der0vliet",
+                       "Macofe"
                ]
        },
        "tog-underline": "Links óngersjtriepe",
        "import-error-invalid": "De pagina\" \"$1\" is neet geïmporteerd omdet de naam óngeljig is.",
        "importlogpage": "Importlogbook",
        "importlogpagetext": "Administratieve import van pazjena's mit gesjiedenis van anger wiki's.",
-       "import-logentry-upload": "[[$1]] geïmporteerd via 'ne bestandjsupload",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|versie|versies}}",
-       "import-logentry-interwiki": "transwiki veur $1 geslaag",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|versie|versies}} van $2",
        "javascripttest": "Tes JavaScript",
        "javascripttest-pagetext-noframework": "Dees pagina is gerizzerveerd veur 't oetveure van JavaScriptteste.",
        "version-parser-function-hooks": "Parserfunctieheuk",
        "version-hook-name": "Hooknaam",
        "version-hook-subscribedby": "Geabonneerd door",
-       "version-version": "(Versie $1)",
+       "version-version": "($1)",
        "version-license": "Licentie",
        "version-poweredby-credits": "Deze wiki weurt aangedreve door '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
        "version-poweredby-others": "anger",
        "logentry-newusers-autocreate": "De gebroeker $1 is autematis aangemaak",
        "rightsnone": "(gein)",
        "revdelete-summary": "samevatting bewerke",
+       "feedback-adding": "Feedback weurt aan pagina toegevoeg...",
+       "feedback-bugcheck": "Good! Kónterleer ef of 't neet al ein vanne [$1 bekèndje bugs] is.",
+       "feedback-bugnew": "Gekónterleerdj. Mèlj 'ne nuuj bug.",
        "feedback-bugornote": "Es se zewied bös óm e technisch perbleem in détail te besjrieve, [$1 rapperteer 'ne bug]. \nAnges kin se-n ouch 't einvawdig formeleer hieónger gebroeke. Dien commentaar zal waere toegeveug ane pagina \"[$3 $2]\", same mit diene gebroekersnaam enne browser dae se gebruuks.",
-       "feedback-subject": "Óngerwerp:",
-       "feedback-message": "Berich:",
        "feedback-cancel": "Braek aaf",
-       "feedback-submit": "Slaon feedback óp",
-       "feedback-adding": "Feedback weurt aan pagina toegevoeg...",
+       "feedback-close": "Gedaon",
        "feedback-error1": "Fout: ónbekind rizzeltaot vanne API",
        "feedback-error2": "Fout: bewirking mislök",
        "feedback-error3": "Fout: gein reactie vanne API",
+       "feedback-message": "Berich:",
+       "feedback-subject": "Óngerwerp:",
+       "feedback-submit": "Slaon óp",
        "feedback-thanks": "Danke! Diene feedback is oppe pagina \"[$2 $1]\" geplaats.",
-       "feedback-close": "Gedaon",
-       "feedback-bugcheck": "Good! Kónterleer ef of 't neet al ein vanne [$1 bekèndje bugs] is.",
-       "feedback-bugnew": "Gekónterleerdj. Mèlj 'ne nuuj bug.",
        "searchsuggest-search": "Zeuke",
        "searchsuggest-containing": "bevat...",
        "api-error-badaccess-groups": "Doe moogs gein bestenj uploade óp deze wiki.",
index de9f62f..f4bb3e3 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "Bonevarluri",
                        "Mogoeilor",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "هوم پیوند زیرخط دار:",
        "import-rootpage-nosubpage": "نومجا \"$1\" بلگه پایه صلا زیر بلگه نه نمی یه.",
        "importlogpage": "پهرستنومه دئن",
        "importlogpagetext": "وامین اوردن بلگه یا وا ویرگارچه ویرایشت ونو د ویکی یا هنی",
-       "import-logentry-upload": "[[$1]] نه د طریق سوارکرد جانیا وامین اورد",
        "import-logentry-upload-detail": "$1 {{جمی:$1|وانئری|وانئریا}} وامین اومانه",
-       "import-logentry-interwiki": "$1 نه تراویکی کرد",
        "import-logentry-interwiki-detail": "$1 {{جمی:$1|وانئری|وانئریا}} د $2 وامین اومائنه",
        "javascripttest": "ازمایشت کردن جاوا اسکریپت",
        "javascripttest-pagetext-noframework": "ای بلگه سی انجوم دئن ازمایشتیا جاوا اسکریپت اماییه کاری بیه.",
        "logentry-managetags-create": "$1 {{GENDER:$2|سردیس \"$4\"}} نه راس کرده",
        "rightsnone": "(هيش كوم)",
        "revdelete-summary": "چکسه ویرایشت",
-       "feedback-subject": "سرون:",
-       "feedback-message": "پيغوم:",
-       "feedback-cancel": "انجوم شیوسن",
-       "feedback-submit": "کل کردن نهاهوال حون",
        "feedback-adding": "اضاف کردن هوال حون یار د بلگه....",
-       "feedback-error2": "خطا:ویرایشت خو نبی",
-       "feedback-close": "انجوم بی",
        "feedback-bugnew": "مه وارسیش کردمه. یه گل سیسرک تازه گزارشت بی",
+       "feedback-cancel": "انجوم شیوسن",
+       "feedback-close": "انجوم بی",
+       "feedback-error2": "خطا:ویرایشت خو نبی",
+       "feedback-message": "پيغوم:",
+       "feedback-subject": "سرون:",
+       "feedback-submit": "كل كردن",
        "searchsuggest-search": "پی جوری",
        "searchsuggest-containing": "د حال و بار مینونه دار...",
        "api-error-badaccess-groups": "شما سی سوار کرد جانیایا د ای ویکی اجازه ناریت.",
index 350f703..9713b7d 100644 (file)
@@ -29,7 +29,8 @@
                        "לערי ריינהארט",
                        "Vogone",
                        "아라",
-                       "Aswanas"
+                       "Aswanas",
+                       "Pofka"
                ]
        },
        "tog-underline": "Pabraukti nuorodas:",
        "sat": "Šeš",
        "january": "sausio",
        "february": "vasario",
-       "march": "kovo",
+       "march": "Kovo",
        "april": "balandžio",
        "may_long": "gegužės",
        "june": "birželio",
        "july": "liepos",
        "august": "rugpjūčio",
-       "september": "rugsėjo",
-       "october": "spalio",
+       "september": "Rugsėjo",
+       "october": "Spalio",
        "november": "lapkričio",
        "december": "gruodžio",
-       "january-gen": "Sausis",
-       "february-gen": "Vasaris",
+       "january-gen": "Sausio",
+       "february-gen": "Vasario",
        "march-gen": "Kovas",
        "april-gen": "Balandis",
        "may-gen": "Gegužė",
        "october-gen": "Spalis",
        "november-gen": "Lapkritis",
        "december-gen": "Gruodis",
-       "jan": "sau",
-       "feb": "vas",
-       "mar": "kov",
-       "apr": "bal",
-       "may": "geg",
-       "jun": "Eka",
-       "jul": "lie",
-       "aug": "rgp",
-       "sep": "rgs",
-       "oct": "spa",
-       "nov": "lap",
-       "dec": "grd",
+       "jan": "Sau",
+       "feb": "Vas",
+       "mar": "Kov",
+       "apr": "Bal",
+       "may": "gegužės",
+       "jun": "Birželis",
+       "jul": "Lie",
+       "aug": "Rgp",
+       "sep": "Rgs",
+       "oct": "Spa",
+       "nov": "Lap",
+       "dec": "Grd",
        "january-date": "Sausio $1",
        "february-date": "Vasario $1",
        "march-date": "Kovo $1",
        "pagecategories": "{{PLURAL:$1|Kategorija|Kategorijos}}",
        "category_header": "Puslapiai kategorijoje „$1“",
        "subcategories": "Subkategorijos",
-       "category-media-header": "Daugialypės terpės failai kategorijoje „$1“",
+       "category-media-header": "Daugialypės terpės rinkmenos kategorijoje „$1“",
        "category-empty": "''Šiuo metu ši kategorija neturi jokių puslapių ar failų.''",
        "hidden-categories": "{{PLURAL:$1|Paslėpta kategorija|Paslėptos kategorijos}}",
        "hidden-category-category": "Paslėptos kategorijos",
        "category-subcat-count-limited": "Šioje kategorijoje yra $1 {{PLURAL:$1|subkategorija|subkategorijos|subkategorijų}}.",
        "category-article-count": "{{PLURAL:$2|Šioje kategorijoje yra vienas puslapis.|{{PLURAL:$1|Rodomas|Rodomi|Rodoma}} $1 šios kategorijos {{PLURAL:$1|puslapis|puslapiai|puslapių}} (iš viso kategorijoje yra $2 {{PLURAL:$2|puslapis|puslapiai|puslapių}}).}}",
        "category-article-count-limited": "{{PLURAL:$1|Rodomas|Rodomi|Rodoma}} $1 šios kategorijos {{PLURAL:$1|puslapis|puslapiai|puslapių}}.",
-       "category-file-count": "{{PLURAL:$2|Šioje kategorijoje yra vienas failas.|{{PLURAL:$1|Rodomas|Rodomi|Rodoma}} $1 šios kategorijos {{PLURAL:$1|failas|failai|failų}} (iš viso kategorijoje yra $2 {{PLURAL:$2|failas|failai|failų}}).}}",
+       "category-file-count": "{{PLURAL:$2|Šioje kategorijoje yra viena rinkmena.|{{PLURAL:$1|Rodomas|Rodomi|Rodoma}} $1 šios kategorijos {{PLURAL:$1|rinkmena|rinkmenos|rinkmenų}} (iš viso kategorijoje yra $2 {{PLURAL:$2|rinkmena|rinkmenos|rinkmenų}}).}}",
        "category-file-count-limited": "{{PLURAL:$1|Rodomas|Rodomi|Rodoma}} $1 šios kategorijos {{PLURAL:$1|failas|failai|failų}}.",
        "listingcontinuesabbrev": "tęs.",
        "index-category": "Indeksuoti puslapiai",
        "personaltools": "Asmeniniai įrankiai",
        "articlepage": "Rodyti turinio puslapį",
        "talk": "Aptarimas",
-       "views": "Žiūrėti",
+       "views": "Peržiūros",
        "toolbox": "Įrankiai",
        "userpage": "Rodyti naudotojo puslapį",
        "projectpage": "Rodyti projekto puslapį",
        "pool-errorunknown": "Nežinoma klaida",
        "poolcounter-usage-error": "Naudojimo klaida: $1",
        "aboutsite": "Apie {{SITENAME}}",
-       "aboutpage": "Project:Apie",
+       "aboutpage": "Project:About",
        "copyright": "Turinys pateikiamas pagal  $1  jei nenurodyta kitaip.",
-       "copyrightpage": "{{ns:project}}:Autorystės teisės",
+       "copyrightpage": "{{ns:project}}:Autorinės teisės",
        "currentevents": "Naujienos",
-       "currentevents-url": "Project:Naujienos",
+       "currentevents-url": "Project:Current events",
        "disclaimers": "Atsakomybės apribojimas",
-       "disclaimerpage": "Project:Atsakomybės apribojimas",
+       "disclaimerpage": "Project:General disclaimer",
        "edithelp": "Kaip redaguoti",
+       "helppage-top-gethelp": "Pagalba",
        "mainpage": "Pagrindinis puslapis",
        "mainpage-description": "Pagrindinis puslapis",
        "policy-url": "Project:Politika",
        "portal": "Bendruomenė",
-       "portal-url": "Project:Bendruomenė",
+       "portal-url": "Project:Community portal",
        "privacy": "Privatumo politika",
        "privacypage": "Project:Privatumo politika",
        "badaccess": "Teisių klaida",
        "versionrequired": "Reikalinga $1 MediaWiki versija",
        "versionrequiredtext": "Reikalinga $1 MediaWiki versija, kad pamatytumėte šį puslapį. Žiūrėkite [[Special:Version|versijos puslapį]].",
        "ok": "Gerai",
-       "retrievedfrom": "Gauta iš „$1“",
+       "retrievedfrom": "Gauta iš \"$1\"",
        "youhavenewmessages": "Jūs turite $1 ($2).",
        "youhavenewmessagesfromusers": "Jūs gavote $1 nuo {{PLURAL:$3|kito vartotojo|$3 vartotojų}} ($2).",
        "youhavenewmessagesmanyusers": "Jūs turite $1 iš daugelio vartotojų ( $2 ) .",
        "cannotdelete-title": "Negalite ištrinti puslapio \"$1\"",
        "delete-hook-aborted": "Trynimą atšaukė kabliukas.\nNebuvo duotas joks paaiškinimas.",
        "badtitle": "Blogas pavadinimas",
-       "badtitletext": "Nurodytas puslapio pavadinimas buvo neleistinas, tuščias arba neteisingai sujungtas tarpkalbinis arba tarpprojektinis pavadinimas. Jame gali būti vienas ar daugiau simbolių, neleistinų pavadinimuose",
+       "badtitletext": "Nurodytas puslapio pavadinimas buvo neleistinas, tuščias arba neteisingai sujungtas tarpkalbinis arba tarpprojektinis pavadinimas. Jame gali būti vienas ar daugiau simbolių, neleistinų pavadinimuose.",
        "perfcached": "Rodoma išsaugota duomenų kopija, todėl duomenys gali būti ne patys naujausi. Maksimaliai $1 {{PLURAL:$1|rezultatas|rezultatai|rezultatų}} yra saugoma.",
        "perfcachedts": "Rodoma išsaugota duomenų kopija, kuri buvo atnaujinta $2 $3. Maksimaliai $4 {{PLURAL:$4|rezultatas|rezultatai|rezultatų}} yra saugoma.",
        "querypage-no-updates": "Atnaujinimai šiam puslapiui dabar yra išjungti. Duomenys čia dabar nebus atnaujinti.",
        "currentrev-asof": "Dabartinė $1 versija",
        "revisionasof": "$1 versija",
        "revision-info": "$1 versija, sukurta {{GENDER:$6|$2}}$7",
-       "previousrevision": "←Ankstesnė versija",
+       "previousrevision": "← Ankstesnė versija",
        "nextrevision": "Vėlesnė versija→",
        "currentrevisionlink": "Dabartinė versija",
        "cur": "dab",
        "difference-title": "$1: Skirtumas tarp puslapio versijų",
        "difference-title-multipage": "Skirtumas tarp puslapių „$1 ir $2“",
        "difference-multipage": "(Skirtumai tarp puslapių)",
-       "lineno": "Eilutė $1:",
+       "lineno": "$1 eilutė:",
        "compareselectedversions": "Palyginti pasirinktas versijas",
        "showhideselectedversions": "Rodyti/slėpti pasirinktas versijas",
        "editundo": "atšaukti",
        "diff-multi-otherusers": "(nerodoma {{PLURAL:$1|viena tarpinė versija, sukurta|$1 tarpinės versijos, sukurtos|$1 tarpinių versijų, sukurtų}} {{PLURAL:$2|vieno naudotojo|$2 naudotojų}})",
        "diff-multi-manyusers": "(daugiau nei $2 {{PLURAL:$2|naudotojo|naudotojų|naudotojų}} $1 {{PLURAL:$1|tarpinis keitimas nėra rodomas|tarpiniai keitimai nėra rodomi|tarpinių keitimų nėra rodoma}})",
        "searchresults": "Paieškos rezultatai",
-       "searchresults-title": "Paieškos rezultatai „$1“",
+       "searchresults-title": "Paieškos rezultatai \"$1\"",
        "titlematches": "Puslapių pavadinimų atitikmenys",
        "textmatches": "Puslapio turinio atitikmenys",
        "notextmatches": "Jokių puslapių teksto atitikmenų",
        "searchprofile-everything": "Viskas",
        "searchprofile-advanced": "Išplėstinė",
        "searchprofile-articles-tooltip": "Ieškoti čia: $1",
-       "searchprofile-images-tooltip": "Ieškoti failų",
-       "searchprofile-everything-tooltip": "Ieškoti viso turinio (tame tarpe aptarimų puslapių)",
+       "searchprofile-images-tooltip": "Ieškoti rinkmenų",
+       "searchprofile-everything-tooltip": "Ieškoti viso turinio (įskaitant aptarimo puslapius)",
        "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ų}})",
        "upload-curl-error28": "Per ilgai įkeliama",
        "upload-curl-error28-text": "Atsakant svetainė užtrunka per ilgai. Patikrinkite, ar svetainė veikia, palaukite truputį ir vėl pamėginkite. Galbūt jums reikėtų pamėginti ne tokiu apkrautu metu.",
        "license": "Licencija:",
-       "license-header": "Licensija",
+       "license-header": "Licencija",
        "nolicense": "Nepasirinkta",
        "licenses-edit": "Keisti licencijų parinktis",
        "license-nopreview": "(Peržiūra negalima)",
        "listfiles-delete": "trinti",
        "listfiles-summary": "Šiame specialiame puslapyje rodomos visos įkeltos rinkmenos.",
        "listfiles_search_for": "Ieškoti failo pavadinimo:",
-       "imgfile": "failas",
+       "imgfile": "rinkmena",
        "listfiles": "Failų sąrašas",
        "listfiles_thumb": "Miniatiūra",
        "listfiles_date": "Data",
        "listfiles-latestversion-yes": "Taip",
        "listfiles-latestversion-no": "Ne",
        "file-anchor-link": "Rinkmena",
-       "filehist": "Paveikslėlio istorija",
-       "filehist-help": "Paspauskite ant datos/laiko, kad pamatytumėte failą tokį, koks jis buvo tuo metu.",
+       "filehist": "Rinkmenos istorija",
+       "filehist-help": "Paspauskite ant datos/laiko, kad pamatytumėte rinkmeną tokią, kokia ji buvo tuo metu.",
        "filehist-deleteall": "trinti visus",
        "filehist-deleteone": "trinti",
        "filehist-revert": "grąžinti",
        "filehist-filesize": "Rinkmenos dydis",
        "filehist-comment": "Paaiškinimas",
        "imagelinks": "Rinkmenos naudojimas",
-       "linkstoimage": "{{PLURAL:$1|Šis puslapis|Šie puslapiai}} nurodo į šį failą:",
+       "linkstoimage": "{{PLURAL:$1|Šis puslapis|Šie puslapiai}} nurodo į šią rinkmeną:",
        "linkstoimage-more": "Daugiau nei $1 {{PLURAL:$1|puslapis|puslapiai|puslapių}} rodo į šį failą.\nŠis sąrašas rodo tik {{PLURAL:$1|puslapio|pirmų $1 puslapių}} nuorodas į šį failą.\nYra pasiekiamas ir [[Special:WhatLinksHere/$2|visas sąrašas]].",
        "nolinkstoimage": "Į rinkmeną nenurodo joks puslapis.",
        "morelinkstoimage": "Žiūrėti [[Special:WhatLinksHere/$1|daugiau nuorodų]] į šį failą.",
        "duplicatesoffile": "Šis failas turi {{PLURAL:$1|$1 dublikatą|$1 dublikatus|$1 dublikatų}} ([[Special:FileDuplicateSearch/$2|daugiau informacijos]]):",
        "sharedupload": "Ši rinkmena yra iš $1 ir gali būti naudojama kitose wiki svetainėse.",
        "sharedupload-desc-there": "Šis failas yra iš $1 ir gali būti naudojamas kituose projektuose.\nNorėdami sužinoti daugiau, žiūrėkite [$2 failo aprašymą].",
-       "sharedupload-desc-here": "Šis failas yra iš $1 ir gali būti naudojamas kituose projektuose.\nInformacija iš [$2 failo aprašymo puslapio] yra pateikiama žemiau.",
+       "sharedupload-desc-here": "Ši rinkmena yra iš $1 ir gali būti naudojama kituose projektuose.\nInformacija iš [$2 failo aprašymo puslapio] yra pateikiama žemiau.",
        "sharedupload-desc-edit": "Ši rinkmena yra iš $1 ir gali būti naudojama kituose projektuose.\nGal norite pakeisti aprašymą jos [$2 aprašymo puslapyje]?",
        "sharedupload-desc-create": "Ši rinkmena yra iš $1 ir gali būti naudojama kituose projektuose.\nGal norite pakeisti aprašymą jos [$2 aprašymo puslapyje]?",
        "filepage-nofile": "Joks failas su duotu pavadinimu neegzistuoja.",
        "shared-repo-from": "iš $1",
        "shared-repo": "bendrosios failų saugyklos",
        "shared-repo-name-wikimediacommons": "Vikiteka",
-       "upload-disallowed-here": "Jūs negalite perrašyti šio failo.",
+       "upload-disallowed-here": "Jūs negalite perrašyti šios rinkmenos.",
        "filerevert": "Sugrąžinti $1",
        "filerevert-legend": "Failo sugrąžinimas",
        "filerevert-intro": "<span class=\"plainlinks\">Jūs grąžinate '''[[Media:$1|$1]]''' į versiją $4 ($2, $3).</span>",
        "sp-contributions-blocklog": "Blokavimų sąrašas",
        "sp-contributions-suppresslog": "ištrintas naudotojo indėlis",
        "sp-contributions-deleted": "ištrintas naudotojo indėlis",
-       "sp-contributions-uploads": "nuotraukos",
+       "sp-contributions-uploads": "įkėlimai",
        "sp-contributions-logs": "Specialiųjų veiksmų sąrašas",
        "sp-contributions-talk": "Aptarimas",
        "sp-contributions-userrights": "naudotojų teisių valdymas",
        "nolinkshere-ns": "Nurodytoje vardų srityje nei vienas puslapis nenurodo į '''[[:$1]]'''.",
        "isredirect": "nukreipiamasis puslapis",
        "istemplate": "įterpimas",
-       "isimage": "failo nuoroda",
+       "isimage": "rinkmenos nuoroda",
        "whatlinkshere-prev": "$1 {{PLURAL:$1|ankstesnis|ankstesni|ankstesnių}}",
        "whatlinkshere-next": "$1 {{PLURAL:$1|kitas|kiti|kitų}}",
        "whatlinkshere-links": "← nuorodos",
        "blocklogpage": "Blokavimų sąrašas",
        "blocklog-showlog": "Šis naudotojas buvo užblokuotas.\nPateikiamas paskutinis blokavimo istorijos įrašas.",
        "blocklog-showsuppresslog": "Šis naudotojas buvo užblokuotas ir paslėptas anksčiau.\nŽemiau yra pateiktas slėpimų žurnalas:",
-       "blocklogentry": "blokavo [[$1]], blokavimo laikas - $2 $3",
+       "blocklogentry": "blokavo [[$1]], blokavimo laikas - $2 $3",
        "reblock-logentry": "pakeisti [[$1]] blokavimo nustatymai, naujas blokavimo laikas – $2 $3",
        "blocklogtext": "Čia yra naudotojų blokavimo ir atblokavimo sąrašas.\nAutomatiškai blokuoti IP adresai neišvardinti.\nJei norite pamatyti dabar blokuojamus adresus, žiūrėkite [[Special:BlockList|blokavimų sąrašą]].",
        "unblocklogentry": "atblokavo $1",
        "thumbnail_gd-library": "Nepilna GD bibliotekos konfigūracija: trūksta funkcijos $1",
        "thumbnail_image-missing": "Gali būti, kad failo nėra: $1",
        "import": "Importuoti puslapius",
-       "importinterwiki": "Tarpprojektinis importas",
+       "importinterwiki": "Įkelti iš kitos Wiki",
        "import-interwiki-text": "Pasirinkite projektą ir puslapio pavadinimą importavimui.\nVersijų datos ir redaktorių vardai bus išlaikyti.\nVisi tarpprojektiniai importo veiksmai yra registruojami  [[Special:Log/import|importo istorijoje]].",
        "import-interwiki-sourcewiki": "Pradinė wiki:",
        "import-interwiki-sourcepage": "Pirminis puslapis:",
        "import-rootpage-invalid": "Duotas šaknų puslapis yra blogas pavadinimas.",
        "importlogpage": "Importavimų sąrašas",
        "importlogpagetext": "Administraciniai puslapių importai su keitimų istorija iš kitų wiki projektų.",
-       "import-logentry-upload": "importuota $1 įkeliant failą",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|keitimas|keitimai|keitimų}}",
-       "import-logentry-interwiki": "tarpprojektinis $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|keitimas|keitimai|keitimų}} iš $2",
        "javascripttest": "JavaScript testavimas",
        "javascripttest-pagetext-noframework": "Šis puslapis yra skirtas vykdyti JavaScript testavimus.",
        "tooltip-pt-mytalk": "Jūsų aptarimo puslapis",
        "tooltip-pt-anontalk": "Pakeitimų aptarimas, darytus naudojant šį IP adresą",
        "tooltip-pt-preferences": "Mano nustatymai",
-       "tooltip-pt-watchlist": "Puslapių sąrašas, kuriuos jūs pasirinkote stebėti.",
+       "tooltip-pt-watchlist": "Puslapių sąrašas, kuriuos jūs pasirinkote stebėti",
        "tooltip-pt-mycontris": "Jūsų darytų keitimų sąrašas",
-       "tooltip-pt-login": "Rekomenduojame prisijungti, nors tai nėra privaloma.",
+       "tooltip-pt-login": "Rekomenduojame prisijungti, nors tai nėra privaloma",
        "tooltip-pt-logout": "Atsijungti",
-       "tooltip-pt-createaccount": "Esate skatinamas susikurti paskyrą ir prisijungti, tačiau, tai nėra privaloma",
+       "tooltip-pt-createaccount": "Skatiname susikurti paskyrą ir prisijungti, tačiau, tai nėra privaloma",
        "tooltip-ca-talk": "Puslapio turinio aptarimas",
        "tooltip-ca-edit": "Jūs galite redaguoti šį puslapį. Nepamirškite paspausti peržiūros mygtuką prieš išsaugodami.",
        "tooltip-ca-addsection": "Pradėti naują aptariamą temą",
        "tooltip-ca-viewsource": "Puslapis yra užrakintas. Galite pažiūrėti turinį.",
-       "tooltip-ca-history": "Ankstesnės puslapio versijos.",
+       "tooltip-ca-history": "Ankstesni patikslinimai šiame puslapyje",
        "tooltip-ca-protect": "Užrakinti šį puslapį",
        "tooltip-ca-unprotect": "Keisti šio puslapio apsaugą",
        "tooltip-ca-delete": "Ištrinti šį puslapį",
        "tooltip-ca-move": "Pervadinti puslapį",
        "tooltip-ca-watch": "Pridėti puslapį į stebimųjų sąrašą",
        "tooltip-ca-unwatch": "Pašalinti puslapį iš stebimųjų sąrašo",
-       "tooltip-search": "Ieškoti šiame projekte",
+       "tooltip-search": "Ieškoti {{SITENAME}}",
        "tooltip-search-go": "Eiti į puslapį su tokiu pavadinimu, jei toks yra",
-       "tooltip-search-fulltext": "Ieškoti puslapių su šiuo tekstu",
+       "tooltip-search-fulltext": "Ieškokite šio teksto puslapių",
        "tooltip-p-logo": "Eiti į pradinį puslapį",
        "tooltip-n-mainpage": "Eiti į pradinį puslapį",
        "tooltip-n-mainpage-description": "Eiti į pradinį puslapį",
        "tooltip-n-portal": "Apie projektą, ką galima daryti, kur ką rasti",
-       "tooltip-n-currentevents": "Raskite naujausią informaciją",
-       "tooltip-n-recentchanges": "Paskutinių keitimų sąrašas šiame projekte.",
+       "tooltip-n-currentevents": "Rasti pagrindinę informaciją apie įvykius",
+       "tooltip-n-recentchanges": "Paskutinių keitimų sąrašas wiki projekte",
        "tooltip-n-randompage": "Įkelti atsitiktinį puslapį",
-       "tooltip-n-help": "Vieta, kur rasite rūpimus atsakymus.",
-       "tooltip-t-whatlinkshere": "Puslapių sąrašas, rodančių į čia",
+       "tooltip-n-help": "Vieta, kur rasite rūpimus atsakymus",
+       "tooltip-t-whatlinkshere": "Wiki puslapių sąrašas, kuris nurodo čia",
        "tooltip-t-recentchangeslinked": "Paskutiniai keitimai puslapiuose, pasiekiamuose iš šio puslapio",
        "tooltip-feed-rss": "Šio puslapio RSS šaltinis",
        "tooltip-feed-atom": "Šio puslapio Atom šaltinis",
        "tooltip-t-contributions": "Rodyti šio naudotojo keitimų sąrašą",
        "tooltip-t-emailuser": "Siųsti laišką šiam naudotojui",
        "tooltip-t-info": "Daugiau žinių apie šį puslapį",
-       "tooltip-t-upload": "Įkelti failus",
+       "tooltip-t-upload": "Įkelti rinkmenas",
        "tooltip-t-specialpages": "Specialiųjų puslapių sąrašas",
        "tooltip-t-print": "Šio puslapio versija spausdinimui",
        "tooltip-t-permalink": "Nuolatinė nuoroda į šią puslapio versiją",
        "tooltip-ca-nstab-main": "Rodyti puslapio turinį",
        "tooltip-ca-nstab-user": "Rodyti naudotojo puslapį",
        "tooltip-ca-nstab-media": "Rodyti media puslapį",
-       "tooltip-ca-nstab-special": "Šis puslapis yra specialusis - jo negalima redaguoti.",
+       "tooltip-ca-nstab-special": "Šis puslapis yra specialusis - jo negalima redaguoti",
        "tooltip-ca-nstab-project": "Rodyti projekto puslapį",
-       "tooltip-ca-nstab-image": "Rodyti failo puslapį",
+       "tooltip-ca-nstab-image": "Rodyti rinkmenos puslapį",
        "tooltip-ca-nstab-mediawiki": "Rodyti sisteminį pranešimą",
        "tooltip-ca-nstab-template": "Rodyti šabloną",
        "tooltip-ca-nstab-help": "Rodyti pagalbos puslapį",
        "tooltip-minoredit": "Pažymėti keitimą kaip smulkų",
        "tooltip-save": "Išsaugoti pakeitimus",
        "tooltip-preview": "Pakeitimų peržiūra, prašome pažiūrėti prieš išsaugant!",
-       "tooltip-diff": "Rodo, kokius pakeitimus padarėte tekste.",
+       "tooltip-diff": "Rodo, kokius pakeitimus padarėte tekste",
        "tooltip-compareselectedversions": "Žiūrėti dviejų pasirinktų puslapio versijų skirtumus.",
        "tooltip-watch": "Pridėti šį puslapį į stebimųjų sąrašą",
        "tooltip-watchlistedit-normal-submit": "Šalinti puslapius",
        "tooltip-recreate": "Atkurti puslapį nepaisant to, kad jis buvo ištrintas",
        "tooltip-upload": "Pradėti įkėlimą",
        "tooltip-rollback": "Vienu spustelėjimu grąžinama prieš tai redagavusio naudotojo versija",
-       "tooltip-undo": "„Anuliuoti“ atmeta šį keitimą ir atveria ankstesnės versijos redagavimo formą.\nLeidžia pridėti atmetimo priežastį komentaruose",
+       "tooltip-undo": "„Anuliuoti“ atmeta šį keitimą ir atveria ankstesnės versijos redagavimo formą. Leidžia pridėti atmetimo priežastį komentaruose.",
        "tooltip-preferences-save": "Išsaugoti nustatymus",
        "tooltip-summary": "Įvesti trumpą santrauką",
        "common.css": "/** Čia įdėtas CSS bus taikomas visoms išvaizdoms */",
        "thumbsize": "Sumažintų paveikslėlių dydis:",
        "widthheightpage": "$1 × $2, $3 {{PLURAL:$3|puslapis|puslapiai|puslapių}}",
        "file-info": "rinkmenos dydis: $1, MIME tipas: $2",
-       "file-info-size": "$1 × $2 taškų, failo dydis: $3, MIME tipas: $4",
+       "file-info-size": "$1 × $2 taškų, rinkmenos dydis: $3, MIME tipas: $4",
        "file-info-size-pages": "$1 × $2 taškų, rinkmenos dydis: $3, MIME tipas: $4, $5 {{PLURAL:$5|puslapis|puslapiai|puslapių}}",
        "file-nohires": "Geresnė raiška negalima.",
-       "svg-long-desc": "SVG failas, formaliai $1 × $2 taškų, failo dydis: $3",
+       "svg-long-desc": "SVG rinkmena, formaliai $1 × $2 taškų, rinkmenos dydis: $3",
        "svg-long-desc-animated": "Animuotas SVG failas, formaliai $1 × $2 pikselių, failo dydis: $3",
        "svg-long-error": "Neleistinas SVG failas: $1",
        "show-big-image": "Pradinė rinkmena",
-       "show-big-image-preview": "Šios peržiūros dydis: $1 .",
-       "show-big-image-other": "{{PLURAL:$2|Kita rezoliucija|Kitos $2 rezoliucijos|Kitų $2 rezoliucijų}}: $1 .",
+       "show-big-image-preview": "Šios peržiūros dydis: $1.",
+       "show-big-image-other": "{{PLURAL:$2|Kita rezoliucija|Kitos $2 rezoliucijos|Kitų $2 rezoliucijų}}: $1.",
        "show-big-image-size": "$1 × $2 taškų",
        "file-info-gif-looped": "ciklinis",
        "file-info-gif-frames": "$1 {{PLURAL:$1|kadras|kadrai|kadrų}}",
        "yesterday-at": "Vakar $1",
        "bad_image_list": "Formatas yra toks:\n\nTik eilutės, prasidedančios *, yra įtraukiamos.\nPirmoji nuoroda eilutėje turi būti nuoroda į blogą failą.\nVisos kitos nuorodos toje pačioje eilutėje yra laikomos išimtimis, t. y. puslapiai, kuriuose leidžiama įterpti failą.",
        "metadata": "Metaduomenys",
-       "metadata-help": "Šiame faile yra papildomos informacijos, tikriausiai pridėtos skaitmeninės kameros ar skaitytuvo, naudoto jam sukurti ar perkelti į skaitmeninį formatą. Jei failas buvo pakeistas iš pradinės versijos, kai kurios detalės gali nepilnai atspindėti naują failą.",
+       "metadata-help": "Šioje rinkmenoje yra papildomos informacijos, tikriausiai pridėtos skaitmeninės kameros ar skaitytuvo, naudoto jai sukurti ar perkelti į skaitmeninį formatą. Jei rinkmena buvo pakeista iš pradinės versijos, kai kurios detalės gali nepilnai atspindėti naują rinkmeną.",
        "metadata-expand": "Rodyti išplėstinę informaciją",
        "metadata-collapse": "Slėpti išplėstinę informaciją",
        "metadata-fields": "Vaizdo metaduomenų laukai, nurodyti šiame pranešime, bus įtraukti į paveikslėlio puslapį, kai metaduomenų lentelė bus suskleista.! N! kiti bus paslėpti.!\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-primarychromaticities": "Pagrindinių spalvų chromiškumas",
        "exif-ycbcrcoefficients": "Spalvų pristatym matricos matricos koeficientai",
        "exif-referenceblackwhite": "Juodos ir baltos poros nuorodos reikšmės",
-       "exif-datetime": "Failo keitimo data ir laikas",
+       "exif-datetime": "Rinkmenos keitimo data ir laikas",
        "exif-imagedescription": "Paveikslėlio pavadinimas",
        "exif-make": "Kameros gamintojas",
        "exif-model": "Kameros modelis",
        "exif-usercomment": "Naudotojo komentarai",
        "exif-relatedsoundfile": "Susijusi garso byla",
        "exif-datetimeoriginal": "Duomenų generavimo data ir laikas",
-       "exif-datetimedigitized": "Pervedimo į skaitmeninį formatą data ir laikas",
+       "exif-datetimedigitized": "Datos ir laiko pervedimas į skaitmeninį formatą",
        "exif-subsectime": "Datos ir laiko sekundės dalys",
        "exif-subsectimeoriginal": "Duomenų generavimo datos ir laiko sekundės dalys",
        "exif-subsectimedigitized": "Pervedimo į skaitmeninį formatą datos ir laiko sekundės dalys",
        "version-parser-function-hooks": "Analizatoriaus funkciniai gaudliai",
        "version-hook-name": "Gaudlio pavadinimas",
        "version-hook-subscribedby": "Užsakyta",
-       "version-version": "(Versija $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[be pavadinimo]",
        "version-license": "MediaWiki licencija",
        "version-ext-license": "Licencija",
        "revdelete-uname-unhid": "naudotojo vardas paviešintas",
        "revdelete-restricted": "uždėti apribojimai administratoriams",
        "revdelete-unrestricted": "pašalinti apribojimai administratoriams",
+       "logentry-block-block": "$1 {{GENDER:$2|užblokavo}} {{GENDER:$4|$3}}, blokavimo laikas – $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|atblokavo}} {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|pakeitė}} {{GENDER:$4|$3}} blokavimo nustatymus, blokavimo laikas – $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|užblokavo}} {{GENDER:$4|$3}}, blokavimo laikas – $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|pakeitė}} {{GENDER:$4|$3}} blokavimo nustatymus, blokavimo laikas – $5 $6",
        "logentry-move-move": "$1 pervadino puslapį $3 į $4",
        "logentry-move-move-noredirect": "$1 pervadino puslapį $3 į $4, nepalikdamas nukreipimo",
        "logentry-move-move_redir": "$1 pervadino puslapį iš $3 į $4, vietoje buvusio nukreipimo",
        "logentry-upload-revert": "$1 {{GENDER:$2|įkėlė}} $3",
        "rightsnone": "(jokių)",
        "revdelete-summary": "keitimo paaiškinimas",
+       "feedback-adding": "Pridedamas atsiliepimas į puslapį ...",
+       "feedback-back": "Atgal",
+       "feedback-bugcheck": "Puiku! Tiesiog patikrinkite, ar tai ne viena [$1 jau žinomų klaidų].",
+       "feedback-bugnew": "Patikrinau. Pranešti apie naują klaidą",
        "feedback-bugornote": "Jei jūs esate pasirengę aprašyti techninę problemą išsamiau, [$1 praneškite apie programinę klaidą].\nKitu atveju, galite naudotis žemiau esančia paprastesne forma. Jūsų komentaras bus įtrauktas į puslapį „[$3 $2]“, kartu su jūsų naudotojo vardu ir jūsų naudojama naršykle.",
-       "feedback-subject": "Tema:",
-       "feedback-message": "Pranešimas:",
        "feedback-cancel": "Atšaukti",
-       "feedback-submit": "Siųsti Atsiliepimą",
-       "feedback-adding": "Pridedamas atsiliepimas į puslapį ...",
+       "feedback-close": "Atlikta",
+       "feedback-dialog-title": "Pateikti atsiliepimą",
+       "feedback-error-title": "Klaida",
        "feedback-error1": "Klaida: Neatpažįstamas rezultatas iš API",
        "feedback-error2": "Klaida: Redagavimas nepavyko",
        "feedback-error3": "Klaida: Jokio atsakymo iš API",
+       "feedback-message": "Pranešimas:",
+       "feedback-subject": "Tema:",
+       "feedback-submit": "Pateikti",
        "feedback-thanks": "Ačiū! Jūsų atsiliepimas buvo užregistruotas puslapyje „[$2 $1]“.",
-       "feedback-close": "Atlikta",
-       "feedback-bugcheck": "Puiku! Tiesiog patikrinkite, ar tai ne viena [$1 jau žinomų klaidų].",
-       "feedback-bugnew": "Patikrinau. Pranešti apie naują klaidą",
        "searchsuggest-search": "Ieškoti",
        "searchsuggest-containing": "turintys",
        "api-error-badaccess-groups": "Jums neleidžiama įkelti failus į šią wiki.",
        "action-pagelang": "keisti puslapio kalbą",
        "log-name-pagelang": "Keisti kalbos žurnalą",
        "mediastatistics-table-mimetype": "MIME tipas",
-       "json-error-syntax": "Sintaksės klaida"
+       "json-error-syntax": "Sintaksės klaida",
+       "headline-anchor-title": "Nuoroda į šią pastraipą"
 }
index efbf6bb..a902369 100644 (file)
@@ -20,7 +20,8 @@
                        "Xil",
                        "Yyy",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Pasvītrot saites:",
        "import-invalid-interwiki": "Nevar importēt no norādītās viki.",
        "importlogpage": "Importēšanas reģistrs",
        "importlogpagetext": "Administratīvās lapu importēšanas no citām Vikipēdijām ar lapas hronoloģiju.",
-       "import-logentry-upload": "importēts [[$1]], izmantojot failu augšupielādi",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|versijas|versija|versijas}}",
-       "import-logentry-interwiki": "starpvikizēts $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|versijas|versija|versijas}} no $2",
        "javascripttest": "JavaScript testēšana",
        "tooltip-pt-userpage": "Tava lietotāja lapa",
        "version-other": "Cita",
        "version-hooks": "Aizķeres",
        "version-hook-name": "Aizķeres nosaukums",
-       "version-version": "(Versija $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[bez nosaukuma]",
        "version-license": "MediaWiki licence",
        "version-ext-license": "Licence",
        "revdelete-uname-unhid": "lietotājvārda slēpšana atcelta",
        "revdelete-restricted": "piemērot administratoriem ierobežojumus",
        "revdelete-unrestricted": "noņemt administratoriem ierobežojumus",
+       "logentry-block-block": "$1 {{GENDER:$2|nobloķēja}} {{GENDER:$4|$3}} ar beigu termiņu $5 $6",
        "logentry-move-move": "$1 {{GENDER:$2|pārvietoja}} lapu $3 uz $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|pārvietoja}} lapu $3 uz $4, neatstājot pāradresāciju",
        "logentry-move-move_redir": "$1 {{GENDER:$2|pārvietoja}} lapu $3 uz $4, atstājot pāradresāciju",
        "logentry-upload-overwrite": "$1 augšupielādēja jaunu $3 versiju",
        "rightsnone": "(nav)",
        "revdelete-summary": "izmaiņu kopsavilkums",
-       "feedback-subject": "Temats:",
-       "feedback-message": "Ziņojums:",
-       "feedback-cancel": "Atcelt",
-       "feedback-submit": "Iesniegt atsauksmes",
        "feedback-adding": "Atsauksmes tiek pievienotas lapai...",
+       "feedback-bugnew": "Es pārbaudīju. Ziņot par jaunu kļūdu",
+       "feedback-cancel": "Atcelt",
+       "feedback-close": "Gatavs",
        "feedback-error1": "Kļūda: API neatpazīts rezultāts",
        "feedback-error2": "Kļūda: Labojums neizdevās",
        "feedback-error3": "Kļūda: Nav atbildes no API",
+       "feedback-message": "Ziņojums:",
+       "feedback-subject": "Temats:",
+       "feedback-submit": "Iesniegt",
        "feedback-thanks": "Paldies! Jūsu atsauksmes ir ievietotas lapā \"[$2  $1]\".",
-       "feedback-close": "Gatavs",
-       "feedback-bugnew": "Es pārbaudīju. Ziņot par jaunu kļūdu",
        "searchsuggest-search": "Meklēt",
        "searchsuggest-containing": "Meklējamā frāze:",
        "api-error-badaccess-groups": "Jums nav atļauts augšupielādēt failus šajā wiki.",
index b41d36e..d8d4836 100644 (file)
        "listfiles_size": "幅(位元組)",
        "listfiles_description": "述",
        "listfiles_count": "擇",
+       "listfiles-latestversion": "當前版本",
        "listfiles-latestversion-yes": "是",
        "listfiles-latestversion-no": "否",
        "file-anchor-link": "檔",
        "filedelete-reason-dropdown": "\n*常刪之因\n** 侵版權\n** 重檔",
        "filedelete-edit-reasonlist": "纂刪因",
        "filedelete-maintenance": "護當禁刪復檔也。",
+       "filedelete-maintenance-title": "無法刪檔",
        "mimesearch": "篩檔",
        "mimesearch-summary": "此頁可以MIME篩檔.格仿「文類/次類」,如<code>image/jpeg</code>。",
        "mimetype": "MIME類有:",
        "unusedtemplateswlh": "支鏈",
        "randompage": "清風翻書",
        "randompage-nopages": "下列{{PLURAL:$2|名集}}中無頁也:$1",
+       "randomincategory-category": "類:",
        "randomredirect": "任渡",
        "randomredirect-nopages": "「$1」名冊內無渡也。",
        "statistics": "彙統",
        "protectedpages": "頁錮",
        "protectedpages-indef": "只示無期之錮",
        "protectedpages-cascade": "只示連串之錮",
+       "protectedpages-timestamp": "時間戳",
        "protectedpages-page": "頁",
        "protectedpages-expiry": "屆期",
        "protectedpages-reason": "因:",
+       "protectedpages-unknown-timestamp": "未知",
        "listusers": "點簿",
        "listusers-editsonly": "只示有纂之簿",
        "listusers-creationsort": "按先後列之",
        "pager-older-n": "陳$1次",
        "suppress": "監",
        "querypage-disabled": "此奇頁基以效,故停之。",
+       "apihelp": "程式接口幫助檔",
        "booksources": "書海",
        "booksources-search-legend": "舀書海",
        "booksources-search": "尋",
        "activeusers-noresult": "無簿矣。",
        "listgrouprights": "權任一覽",
        "listgrouprights-summary": "此所列述,諸職所司也,各有異同。欲知其詳,請閱[[{{MediaWiki:Listgrouprights-helppage}}|此文]]。",
-       "listgrouprights-key": "* <span class=\"listgrouprights-granted\">權授矣</span>\n* <span class=\"listgrouprights-revoked\">權撤矣</span>",
+       "listgrouprights-key": "圖例:\n* <span class=\"listgrouprights-granted\">權授矣</span>\n* <span class=\"listgrouprights-revoked\">權撤矣</span>",
        "listgrouprights-group": "組",
        "listgrouprights-rights": "權",
        "listgrouprights-helppage": "Help:組權",
        "noemailtext": "此君無郵。",
        "nowikiemailtext": "此君謝收郵之。",
        "emailusername": "簿名:",
+       "emailusernamesubmit": "呈",
        "email-legend": "發郵至{{SITENAME}}之另一簿",
        "emailfrom": "自:",
        "emailto": "致:",
        "mywatchlist": "哨站",
        "watchlistfor2": "$1之哨 $2",
        "nowatchlist": "無哨",
-       "watchlistanontext": "$1以治哨",
+       "watchlistanontext": "登簿以治哨",
        "watchnologin": "未登簿",
        "addwatch": "增至哨站",
        "addedwatchtext": "\"[[:$1]]\"哨派矣。後有易、議者可見於[[Special:Watchlist|哨站]],且'''粗體'''列於[[Special:RecentChanges|近易]]。",
        "unblocked-id": "禁$1赦焉",
        "ipblocklist": "列禁簿",
        "ipblocklist-legend": "尋禁簿",
+       "blocklist-reason": "因:",
        "ipblocklist-submit": "尋",
        "ipblocklist-localblock": "本禁",
        "ipblocklist-otherblocks": "他{{PLURAL:$1|禁|禁}}",
        "unblocklink": "赦",
        "change-blocklink": "更",
        "contribslink": "勛",
+       "emaillink": "遣函",
        "autoblocker": "近日$1\"$2\";同子IP址,故禁焉。",
        "blocklogpage": "誌禁",
        "blocklog-showlog": "此簿曾被禁。誌禁示下:",
        "import-invalid-interwiki": "無乃定之wiki匯入。",
        "importlogpage": "誌入",
        "importlogpagetext": "秩入匯自他山之審。",
-       "import-logentry-upload": "[[$1]]上傳而匯",
        "import-logentry-upload-detail": "有審$1",
-       "import-logentry-interwiki": "互匯$1",
        "import-logentry-interwiki-detail": "$1審自$2",
        "tooltip-pt-userpage": "述平生、紹身家、銘字號",
        "tooltip-pt-anonuserpage": "君IP之舍",
        "spam_reverting": "還新審之無鏈$1者。",
        "spam_blanking": "審皆鏈$1,遂令白頁。",
        "pageinfo-header-restrictions": "頁錮",
+       "pageinfo-robot-index": "可",
+       "pageinfo-robot-noindex": "不可",
        "pageinfo-toolboxlink": "文訊",
        "markaspatrolleddiff": "派哨",
        "markaspatrolledtext": "哨此報",
        "bydate": "時序",
        "sp-newimages-showfrom": "自$1 $2賞新檔",
        "video-dims": "$1,$2矩$3",
+       "just-now": "方",
+       "hours-ago": "$1時前",
+       "yesterday-at": "昨日於 $1",
        "bad_image_list": "僅取表件,冠「*」者也。格式如下:\n\n單列數鏈,首通壞檔;而後所鏈之文,允圖見於其內。",
        "metadata": "補註",
        "metadata-help": "此檔補註,製者所添,如相機、掃描之器;後若更檔,補註不誠也。",
        "version-parser-function-hooks": "語函鈎",
        "version-hook-name": "鈎名",
        "version-hook-subscribedby": "用於",
-       "version-version": "(版 $1)",
+       "version-version": "($1)",
        "version-license": "牌",
        "version-poweredby-credits": "此 Wiki 以 '''[https://www.mediawiki.org/ MediaWiki]''' 之驅,權 © 2001-$1 $2。",
        "version-poweredby-others": "其他",
index abbd91b..ffa712d 100644 (file)
@@ -21,7 +21,8 @@
                        "बिप्लब आनन्द",
                        "सरोज कुमार ढकाल",
                        "Bijay chaurasia",
-                       "Tulsi Bhagat"
+                       "Tulsi Bhagat",
+                       "Macofe"
                ]
        },
        "tog-underline": "लिंककेँ रेखांकित करू:",
        "history": "पन्नाक इतिहास",
        "history_short": "इतिहास",
        "updatedmarker": "हमर अन्तिम आगमनसँ पहिने अद्यतन कएल",
-       "printableversion": "पà¥\8dरिà¤\82ट करबा योग्य",
+       "printableversion": "पà¥\8dरिनà¥\8dट करबा योग्य",
        "permalink": "स्थायी लिंक",
        "print": "छापू",
        "view": "देखू",
        "createacct-another-realname-tip": "मूल नाम वैकल्पिक अछि।\nजँ अहाँ एकरा देबा लेल प्रयोग करै छी, ई अहाँकेँ काजक श्रेय देबा लेल एकर प्रयोग कएल जाएत।",
        "pt-login": "सम्प्रवेश",
        "pt-login-button": "सम्प्रवेश",
-       "pt-createaccount": "à¤\96ाता à¤\96à¥\8bलà¥\82",
+       "pt-createaccount": "à¤\96ाता à¤\96à¥\8bलल à¤\9cाà¤\8f",
        "pt-userlogout": "निष्क्रमण",
        "php-mail-error-unknown": "पी.एच.पी.कऽ समाद कार्य() मे अज्ञात दोष भेल।",
        "user-mail-no-addy": "बिन ई-पत्र संकेतक ई-पत्र पठेबाक प्रयास कएल गेल।",
        "recentchangeslinked-summary": "ई विशेष पन्नासँ सम्बद्ध पन्ना सभमे (आकि कोनो विशेष वर्गक समूहमे) भेल परिवर्तनक सूची छी ।\n[[Special:Watchlist|your watchlist]]  पर पन्नासभ '''गाढ़''' अछि।",
        "recentchangeslinked-page": "पन्नाक नाम",
        "recentchangeslinked-to": "देल पन्नाक सम्बन्धी पन्नामे परिवर्तन देखाउ",
-       "upload": "फाà¤\87ल à¤\85पलà¥\8bड à¤\95रà¥\82",
+       "upload": "फाà¤\87ल à¤\85पलà¥\8bड à¤\95रà¥\80",
        "uploadbtn": "फाइल अपलोड",
        "reuploaddesc": "उपारोपण रद्द करू आ उपारोपण आवेदन-पत्रपर घुरू।",
        "upload-tryagain": "संशोधित संचिका वर्णन दिअ",
        "isimage": "फाइलकऽ जडी",
        "whatlinkshere-prev": "{{PLURAL:$1|पहिलुका|पहिलुका $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|अगुलका|अगुलका $1}}",
-       "whatlinkshere-links": "â\86\90 à¤²à¤¿à¤\82à¤\95",
+       "whatlinkshere-links": "â\86\90 à¤\9cडà¥\80सभ",
        "whatlinkshere-hideredirs": "$1 घुरबैए",
        "whatlinkshere-hidetrans": "$1 परागत",
        "whatlinkshere-hidelinks": "$1 सम्बन्ध सभ",
        "import-error-create": "\"$1\" पन्ना आयातित नै कएल गेल अछि कारण अहाँकेँ एकरा निर्माण करबाक अधिकार नै अछि।",
        "importlogpage": "लॉगक आयात",
        "importlogpagetext": "पन्ना सभक प्रशासनिक आयात दोसर विकीक सम्पादन इतिहासक संग।",
-       "import-logentry-upload": "[[$1]] आयात केलौं संचिका उपारोपण द्वारा",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|सुधार|सुधार सभ}}",
-       "import-logentry-interwiki": "विकीअन्तरण क देलौ $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|सुधार|सुधार सभ}} $2 सँ",
        "javascripttest": "जावास्क्रिप्ट परिक्षण",
        "javascripttest-pagetext-noframework": "इ पृष्ठ जावास्क्रिप्ट परीक्षण चलावए के लेल अछि।",
        "tooltip-pt-preferences": "हमर मोनपसंद",
        "tooltip-pt-watchlist": "पन्ना सभ जकर परिवर्त्तन पर अहाँक नजरि अछि",
        "tooltip-pt-mycontris": "अहाँक योगदानक सूची",
-       "tooltip-pt-login": "लà¥\89à¤\97 à¤\87न à¤\95रब à¤¨à¥\80à¤\95, à¤ªà¤°à¤\9eà¥\8dà¤\9a à¤\86वशà¥\8dयà¤\95 à¤¨à¤¹à¤¿.",
+       "tooltip-pt-login": "à¤\85हाà¤\81 à¤\95à¥\87à¤\82 à¤\96ाता à¤\96à¥\8bलà¤\95 à¤²à¥\87ल à¤ªà¥\8dरà¥\8bतà¥\8dसाहित à¤\95ल à¤\9cाà¤\8fत à¤\85à¤\9bि; à¤®à¥\81दा à¤\87 à¤\85निवारà¥\8dय à¤¨à¥\88 à¤\9bà¥\88",
        "tooltip-pt-logout": "फेर आयब",
+       "tooltip-pt-createaccount": "अहाँ कें खाता खोलक लेल प्रोत्साहित कल जाएत अछि; मुदा इ अनिवार्य नै छै",
        "tooltip-ca-talk": "विषयसूचीक पन्नाक संबंधमे वर्त्तालाप",
        "tooltip-ca-edit": "अहाँ एहि पन्नाकेँ संपादित कए सकैत छी। कृपया सुरक्षित करबासँ पहिने पूर्वप्रदर्शन बटम उपयोग करू।",
        "tooltip-ca-addsection": "नव खण्ड शुरू करू",
        "tooltip-n-currentevents": "लगक घटनाक विषयमे आधार सूचना प्राप्त करू।",
        "tooltip-n-recentchanges": "विकीमे लगक परिवर्त्तनक सूची.",
        "tooltip-n-randompage": "कोनो अनिर्धारित पन्ना लोड करू",
-       "tooltip-n-help": "पà¥\8dरापà¥\8dत à¤\95रबाà¤\95 à¤¸à¥\8dथान.",
+       "tooltip-n-help": "पता à¤²à¤\97ावà¤\8f à¤µà¤¾à¤²à¤¾ à¤¸à¥\8dथान",
        "tooltip-t-whatlinkshere": "सभ विकी-पन्नाक सूची जकर एतय लिंक अछि",
        "tooltip-t-recentchangeslinked": "ऐ पृष्ठक लागिक पन्नामे भेल नव परिवर्तन",
        "tooltip-feed-rss": "ऐ पन्ना लेल आर.एस.एस. सूचना",
        "tooltip-t-contributions": "ऐ प्रयोक्ताक योगदानक सूची देखू",
        "tooltip-t-emailuser": "ऐ प्रयोक्ताकेँ ई-पत्र पठाउ",
        "tooltip-t-info": "ई पृष्ठ के सम्बन्धमें आर बैंसी जानकारी",
-       "tooltip-t-upload": "à¤\9aितà¥\8dर à¤\86à¤\95ि à¤®à¥\80डिया à¤«à¤¾à¤\87लà¤\95à¥\87à¤\81 à¤\85पलà¥\8bड à¤\95रà¥\82",
+       "tooltip-t-upload": "à¤\9aितà¥\8dर à¤\86à¤\95ि à¤®à¥\80डिया à¤«à¤¾à¤\87लà¤\95à¥\87à¤\81 à¤\85पलà¥\8bड à¤\95रà¥\80",
        "tooltip-t-specialpages": "सभटा विशेष पन्नाक सूची",
        "tooltip-t-print": "ऐ पृष्ठक छपैबला रूप",
        "tooltip-t-permalink": "पन्नाक ऐ संवर्धनक स्थायी लिंक",
        "exif-datetime": "संचिका परिवर्तन तिथि आ समए",
        "exif-imagedescription": "चित्र शीर्षक",
        "exif-make": "कैमरा निर्माता",
-       "exif-model": "à¤\95à¥\88मरा à¤®à¥\89डल",
+       "exif-model": "à¤\95à¥\88मरा à¤®à¥\8bडल",
        "exif-software": "प्रयुक्त तंत्रांश",
        "exif-artist": "लिखैबला",
        "exif-copyright": "सर्वाधिकारी",
        "version-parser-function-hooks": "विभाजक प्रकार्य खुट्टी",
        "version-hook-name": "खुट्टीक नाम",
        "version-hook-subscribedby": "ई सदस्यता लेलनि",
-       "version-version": "(संस्करण $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[कोनो नाम नै]",
        "version-license": "अधिकार",
        "version-ext-license": "अधिकार",
        "logentry-newusers-create": "$1 {{लिंग:$2|बनाएल}} एकटा प्रयोक्ता खाता",
        "logentry-newusers-create2": "$1 {{लिंग:$2|बनाएल}} {{लिंग:$4|एकटा प्रयोक्ता खाता}} $3",
        "logentry-newusers-autocreate": "खाता $1 छल {{लिंग:$2|बनाएल}} स्वतः",
+       "logentry-upload-upload": "$1 {{GENDER:$2|ए}} $3 अपलोड केलक",
        "rightsnone": "(कोनो नै)",
        "revdelete-summary": "सम्पादन सारांश",
-       "feedback-subject": "विषय:",
-       "feedback-message": "संदेश:",
-       "feedback-cancel": "रद्द करु",
-       "feedback-submit": "प्रतिक्रिया भेजु",
        "feedback-adding": "पन्ना उपर प्रतिक्रिया जोडु ...",
-       "feedback-error2": "त्रुटि: संपादन विफल भेल",
-       "feedback-close": "भ गेल",
        "feedback-bugcheck": "बहुत निक! जांच करु कि [ $1 known bugs] पहिले स त नै अछि ।",
+       "feedback-cancel": "रद्द करु",
+       "feedback-close": "भ गेल",
+       "feedback-error2": "त्रुटि: संपादन विफल भेल",
+       "feedback-message": "संदेश:",
+       "feedback-subject": "विषय:",
+       "feedback-submit": "दिअ",
        "searchsuggest-search": "ताकू",
        "searchsuggest-containing": "...सऽ युक्त",
        "api-error-badaccess-groups": "अहि विकी सें अहां कोनो प्रारूप लोड नहि क सकब.",
index 3307c93..46f6d38 100644 (file)
        "delete-toobig": "Тя лопать кувака петнемань историясь, $1 {{PLURAL:$1|верзиеда|верзиеда}} лама. Тяфтама лопатнень нардамась кардаф {{SITENAME}}-нь уф учсеви колавомада араламать туфталонкса.",
        "delete-warning-toobig": "Тя лопать кувака петнемань историясь, $1 {{PLURAL:$1|верзиеда|верзиеда}} лама. Сонь нардамаста, улема, лиси {{SITENAME}}-нь датабаза якаманц колавомась; тик тянь инголе арьсезь.",
        "rollback": "Потафтомс петнематне",
-       "rollback_short": "Потафтома",
        "rollbacklink": "потафтомс",
        "rollbackfailed": "Потафтомась изь лисе",
        "cantrollback": "Аш кода петнемать потафтомс; мекольце путысь ульсь тя лопать анцек фкя тиикс.",
        "watchlisttools-view": "Няфтемс полафнематне лувомастонь лопапотмова",
        "watchlisttools-edit": "Няфтемс эди петнемс мельгеваномать",
        "watchlisttools-raw": "Петнемс казяма мельгеваномать",
-       "unknown_extension_tag": "Аф содаф келептема тяштькссь \"$1\"",
        "duplicate-defaultsort": "Инголе мярьгома: Апак полафтт сортонь панжема \"$2\" апак полафтт сортонь панжема \"$1\"да вяре.",
        "version": "MediaWiki-ть верзиец",
        "version-extensions": "Нолдаф тевс келепнематне",
        "version-parser-function-hooks": "Синтаксонь анализаторть функциензон кярьмодихне",
        "version-hook-name": "Кярьмодинь лемоц",
        "version-hook-subscribedby": "Сёрматфтсь",
-       "version-version": "(Верзие $1)",
+       "version-version": "($1)",
        "version-license": "Лицензие",
        "version-software": "Нолдаф програпне",
        "version-software-product": "Нолдафкс",
index 9cfa66d..d321ee9 100644 (file)
@@ -7,7 +7,8 @@
                        "The Evil IP address",
                        "Urhixidur",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Hanipika ny rohy:",
        "import-rootpage-invalid": "Lohateny tsy azo raisina ny foto-pejy nomenao:",
        "importlogpage": "laogin'ny fampidirana",
        "importlogpagetext": "Fampidirana ara-pandraharahana ny pejy miaraka amin'ny tantaram-panvany avy any amin'ny wiki hafa.",
-       "import-logentry-upload": "nampiditra [[$1]] tamin'ny fampidiran-drakitra",
-       "import-logentry-interwiki": "nampiditra $1 tamin'ny transwiki",
        "javascripttest": "Fanandramana JavaScript",
        "javascripttest-pagetext-skins": "Mifidia skin hanaovana ny fanandramana:",
        "javascripttest-qunit-intro": "Jereo ny [$1 fanoroana mikasika ny andrana] eo amin'i mediawiki.org.",
        "logentry-rights-autopromote": "{{GENDER:$2}}Lasa $5 ho azy i $1 izay $4 taloha",
        "rightsnone": "(tsy misy)",
        "revdelete-summary": "ambangovangon'ny fanovàna",
-       "feedback-subject": "Lohahevitra:",
-       "feedback-message": "Hafatra:",
-       "feedback-cancel": "Foanana",
-       "feedback-submit": "Handefa ny fanehoan-kevitra",
        "feedback-adding": "Manampy ny fahenoan-kevitra amin'ilay pejy...",
+       "feedback-bugnew": "Efa nomariniko. Hitory baogy iray",
+       "feedback-cancel": "Foanana",
+       "feedback-close": "Vita",
        "feedback-error1": "Hadisoana: Valiny avy amin'ny API tsy fantatra",
        "feedback-error2": "Hadisoana: Tsy voaòva",
        "feedback-error3": "Hadisoana: Tsy nisy valiny avy amin'ny API",
+       "feedback-message": "Hafatra:",
+       "feedback-subject": "Lohahevitra:",
+       "feedback-submit": "Alefa",
        "feedback-thanks": "Misaotra! lanefa tany amin'ilay pejy ''[$2 $1]'' ilay fanehoan-kevitrao.",
-       "feedback-close": "Vita",
-       "feedback-bugnew": "Efa nomariniko. Hitory baogy iray",
        "searchsuggest-search": "Karohy",
        "searchsuggest-containing": "misy...",
        "api-error-badaccess-groups": "Tsy afaka mampiditra rakitra eto amin'ity wiki ity ianao.",
index 5811a61..e63929f 100644 (file)
        "youhavenewmessagesmanyusers": "Sanak mandapek $1 dari banyak pangguno ($2)",
        "newmessageslinkplural": "{{PLURAL:$1|pasan baru}}",
        "newmessagesdifflinkplural": "{{PLURAL:$1|parubahan}} taakhia",
-       "youhavenewmessagesmulti": "Sanak mandapek pasan baru pado $1",
+       "youhavenewmessagesmulti": "Sanak ado pasan baru pado $1",
        "editsection": "suntiang",
        "editold": "suntiang",
        "viewsourceold": "caliak sumber",
        "login-abort-generic": "Proses masuak Sanak indak barasil - Dibatalan",
        "loginlanguagelabel": "Baso: $1",
        "suspicious-userlogout": "Pamintaan Sanak untuak kalua log ditulak karano tampaknyo dikirim oleh paramban nan rusak atau proksi panyinggah.",
+       "pt-userlogout": "Kalua log",
        "php-mail-error-unknown": "Kasalahan nan indak jaleh dalam fungsi mail() PHP",
        "user-mail-no-addy": "Mancubo mangirim surel tanpa alamaik surel.",
        "user-mail-no-body": "Mancubo mangirim surel kosong atau pasan talalu pendek",
        "deleteotherreason": "Alasan lain/tambahan:",
        "deletereasonotherlist": "Alasan lain",
        "rollback": "Baliakan suntiangan",
-       "rollback_short": "Baliakan",
        "rollbacklink": "baliakan",
        "rollbacklinkcount": "baliakan $1 {{PLURAL:$1|suntiangan}}",
        "rollbacklinkcount-morethan": "baliakan labiah dari $1 {{PLURAL:$1|suntiangan}}",
        "watchlisttools-edit": "Tunjuakan sarato suntiang daftar pantau",
        "watchlisttools-raw": "Suntiang pantauan mantah",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|maota]])",
-       "unknown_extension_tag": "Tag ekstensi \"$1\" indak tau",
        "duplicate-defaultsort": "'''Peringatan:''' Kunci panguruitan default \"$2\" sabalunnyo mangabaikan kunci panguruitan default \"$1\".",
        "version": "Versi",
        "version-extensions": "Ekstensi tarinstal",
        "version-variables": "Variabel",
        "version-antispam": "Pancagahan spam",
        "version-other": "Lain-lain",
-       "version-version": "(Versi $1)",
+       "version-version": "($1)",
        "version-license": "Lisensi",
        "version-poweredby-credits": "Wiki ko didukuang jo '''[https://www.mediawiki.org/ MediaWiki]''', hak cipta © 2001-$1 $2.",
        "version-poweredby-others": "lainnyo",
index 49ae37a..ab5e833 100644 (file)
@@ -15,7 +15,8 @@
                        "Urhixidur",
                        "לערי ריינהארט",
                        "아라",
-                       "Milicevic01"
+                       "Milicevic01",
+                       "Macofe"
                ]
        },
        "tog-underline": "Потцртување на врски:",
        "disclaimers": "Услови на употреба",
        "disclaimerpage": "Project:Услови на употреба",
        "edithelp": "Помош за уредување",
+       "helppage-top-gethelp": "Помош",
        "mainpage": "Главна страница",
        "mainpage-description": "Главна страница",
        "policy-url": "Project:Начела",
        "missingcommentheader": "'''Потсетување:''' Не внесовте наслов за овој коментар.\nАко повторно стиснете на „{{int:savearticle}}“, уредувањето ќе биде зачувано без наслов.",
        "summary-preview": "Изглед на описот:",
        "subject-preview": "Преглед на предметот/насловот:",
+       "previewerrortext": "Се појави грешка при обидот да се прегледаат промените.",
        "blockedtitle": "Корисникот е блокиран",
        "blockedtext": "'''Вашето корисничко име или IP-адреса е блокирано.'''\n\nБлокирањето е направено од страна на $1.\nДаденото образложение е ''$2''.\n\n* Почеток на блокирањето: $8\n* Истекување на блокирањето: $6\n* Корисникот што требало да биде блокиран: $7\n\nМоже да контактирате со $1 или некој друг [[{{MediaWiki:Grouppage-sysop}}|администратор]] за да разговарате во врска со блокирањето.\nМожете да ја искористите можноста „Е-пошта до овој корисник“ ако е назначена важечка е-поштенска адреса во [[Special:Preferences|вашите нагодувања]] и не ви е забрането да ја користите.\nВашата сегашна IP-адреса е $3, а назнака на блокирањето гласи #$5.\nВе молиме наведете ги сите подробности прикажани погоре, во вашата евентуална реакција.",
        "autoblockedtext": "Вашата IP-адреса е автоматски блокирана бидејќи била користена од страна на друг корисник, кој бил блокиран од $1.\nДаденото образложение е следново:\n\n:''$2''\n\n* Почеток на блокирањето: $8\n* Истекување на блокирањето: $6\n* Со намера да се блокира: $7\n\nМоже да контактирате со $1 или некој друг [[{{MediaWiki:Grouppage-sysop}}|администратор]] за да разговарате во врска со ова блокирање.\n\nИмајте предвид дека можеби нема да можете да ја искористите можноста „Е-пошта до овој корисник“ доколку не е назначена важечка е-поштенска адреса во [[Special:Preferences|вашите нагодувања]] и ви е забрането користитење на истата.\n\nВашата IP-адреса е $3, a ID на блокирањеto е $5.\nВе молиме наведете ги овие подробности доколку реагирате на блокирањето.",
        "import-rootpage-nosubpage": "Именскиот простор „$1“ на основната страница не допушта потстраници.",
        "importlogpage": "Дневник на увезувања",
        "importlogpagetext": "Административно увезување на страници со историја на уредување од други викија.",
-       "import-logentry-upload": "увезена [[$1]] со подигање на податотека",
        "import-logentry-upload-detail": "{{PLURAL:$1|Увезена е една преработка|Увезени се $1 преработки}}",
-       "import-logentry-interwiki": "трансвикифиран $1",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|Увезена е една преработка|Увезени се $1 преработки}} од $2",
        "javascripttest": "Проба на JavaScript",
        "javascripttest-pagetext-noframework": "Оваа страница е резервирана за вршење на проби со JavaScript.",
        "version-parser-function-hooks": "Куки на расчленувачки функции",
        "version-hook-name": "Име на кука",
        "version-hook-subscribedby": "Претплатено од",
-       "version-version": "(Верзија $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[нема име]",
        "version-svn-revision": "прер. $1",
        "version-license": "Лиценца на МедијаВики",
        "logentry-block-reblock": "$1 {{GENDER:$2|го измени}} блокот на {{GENDER:$4|$3}} со истек $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|го блокираше}} {{GENDER:$4|$3}} со истек $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|го измени}} блокот на {{GENDER:$4|$3}} со истек $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|ја увезе}} $3 со податотечно подигање",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|ја увезе}} $3 од друго вики",
        "logentry-merge-merge": "$1 {{GENDER:$2|ја припои}} $3 кон $4 (преработки сè до $5)",
        "logentry-move-move": "$1 {{GENDER:$2|ја премести}} страницата $3 на $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|ја премести}} страницата $3 на $4 без да остави пренасочување",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|ја деактивираше}} ознаката „$4“ за употреба од корисници и ботови",
        "rightsnone": "(нема)",
        "revdelete-summary": "опис на уредување",
+       "feedback-adding": "Го додавам искажаното мислење во страницата...",
+       "feedback-back": "Назад",
+       "feedback-bugcheck": "Одлично! Само проверете да не е една од [$1 веќе познатите грешки].",
+       "feedback-bugnew": "Проверив. Пријави ја како нова грешка.",
        "feedback-bugornote": "Ако сте спремни подробно да го опишете техничкиот проблем, тогаш [$1 пријавете грешка]. \nВо спротивно, послужете се со едноставниот образец подолу. Вашиот коментар ќе стои на страницата „[$3 $2]“, заедно со корисничкото име и прелистувачот што го користите.",
-       "feedback-subject": "Наслов:",
-       "feedback-message": "Порака:",
        "feedback-cancel": "Откажи",
-       "feedback-submit": "Поднеси мислење",
-       "feedback-adding": "Го додавам искажаното мислење во страницата...",
+       "feedback-close": "Готово",
+       "feedback-external-bug-report-button": "Поднеси техничка задача",
+       "feedback-dialog-title": "Поднеси мислење",
+       "feedback-dialog-intro": "Послужете се со едноставниот образец подолу за да го поднесете вашето мислење. Коментарот ќе ви биде додаден на страницата „$1“, заедно со вашето корисничко име.",
+       "feedback-error-title": "Грешка",
        "feedback-error1": "Грешка: Непрепознаен резултат од извршникот",
        "feedback-error2": "Грешка: Уредувањето не успеа",
        "feedback-error3": "Грешка: Извршникот не одговара",
+       "feedback-message": "Порака:",
+       "feedback-subject": "Наслов:",
+       "feedback-submit": "Поднеси",
+       "feedback-terms": "Разбирам дека моите информации за кориснички вршител вклучуваат податоци за точната верзија на прелистувачот и оператиниот систем и дека истите ќе бидат јавно прикажани заедно со моето мислење.",
+       "feedback-termsofuse": "Се согласувам да давам мислење во склад со Условите на употреба.",
        "feedback-thanks": "Благодариме! Вашиот одѕив е објавен на страницата „[$2 $1]“.",
-       "feedback-close": "Готово",
-       "feedback-bugcheck": "Одлично! Само проверете да не е една од [$1 веќе познатите грешки].",
-       "feedback-bugnew": "Проверив. Пријави ја како нова грешка.",
+       "feedback-thanks-title": "Ви благодариме!",
+       "feedback-useragent": "Кориснички вршител:",
        "searchsuggest-search": "Пребарување",
        "searchsuggest-containing": "содржи...",
        "api-error-badaccess-groups": "Не ви е дозволено да подигате податотеки на ова вики.",
index f3c3f3d..b440cbd 100644 (file)
        "disclaimers": "നിരാകരണങ്ങൾ",
        "disclaimerpage": "Project:പൊതുനിരാകരണം",
        "edithelp": "തിരുത്തൽ സഹായി",
+       "helppage-top-gethelp": "സഹായം",
        "mainpage": "പ്രധാന താൾ",
        "mainpage-description": "പ്രധാന താൾ",
        "policy-url": "Project:നയം",
        "readonly_lag": " കീഴ്-വിവരശേഖര സെർവറുകൾ മാസ്റ്റർ വരെ എത്തിയതിനാൽ വിവരശേഖരം സ്വയം ബന്ധിക്കപ്പെട്ടിരിക്കുന്നു",
        "internalerror": "ആന്തരിക പിഴവ്",
        "internalerror_info": "ആന്തരിക പിഴവ്: $1",
+       "internalerror-fatal-exception": "\"$1\" തരത്തിലുള്ള ഗുരുതരമായ എക്സെപ്ഷൻ",
        "filecopyerror": "\"$1\" എന്ന പ്രമാണം \"$2\" എന്നതിലേയ്ക്ക് പകർത്താൻ സാധിച്ചില്ല.",
        "filerenameerror": "പ്രമാണം \"$1\", \"$2\" എന്ന തലക്കെട്ടിലേയ്ക്ക് മാറ്റാൻ സാധിച്ചില്ല.",
        "filedeleteerror": "\"$1\" നീക്കം ചെയ്യാൻ സാധിച്ചില്ല.",
        "unusedimages": "ഉപയോഗിക്കപ്പെടാത്ത പ്രമാണങ്ങൾ",
        "wantedcategories": "അവശ്യ വർഗ്ഗങ്ങൾ",
        "wantedpages": "അവശ്യ താളുകൾ",
+       "wantedpages-summary": "മറ്റുതാളുകളിൽ നിന്ന് ഏറ്റവുമധികം കണ്ണിചേർത്തിരിക്കുന്ന നിലവിലില്ലാത്ത താളുകളുടെ പട്ടികയാണിത്, തിരിച്ചുവിടലുകൾ മാത്രം കണ്ണി ചേർത്തിരിക്കുന്നവ ഒഴിവാക്കിയിരിക്കുന്നു. തിരിച്ചുവിടലുകൾ കണ്ണി ചേർത്തിരിക്കുന്ന നിലവിലില്ലാത്ത താളുകളുടെ പട്ടികയ്ക്ക് [[{{#special:BrokenRedirects}}]] കാണുക.",
        "wantedpages-badtitle": "ഫലങ്ങളുടെ ഗണത്തിൽ അസാധുവായ തലക്കെട്ട്: $1",
        "wantedfiles": "ആവശ്യമുള്ള പ്രമാണങ്ങൾ",
        "wantedfiletext-cat": "താഴെക്കൊടുത്തിരിക്കുന്ന പ്രമാണങ്ങൾ ഉപയോഗിച്ചിട്ടുണ്ടെങ്കിലും നിലവിലില്ല. ബാഹ്യ റെപ്പോസിറ്ററികളിൽ നിന്നുള്ള പ്രമാണങ്ങൾ നിലവിലുണ്ടെങ്കിലും പട്ടികയിൽ ഉൾപ്പെട്ടിട്ടുണ്ടാവാം. അത്തരത്തിൽ തെറ്റായി ഉൾപ്പെടുത്തിയിരിക്കുന്നവ <del>വെട്ടിക്കളയുക</del>. കൂടുതലായി, നിലവിലില്ലാത്ത പ്രമാണങ്ങൾ ഉൾപ്പെടുത്തിയിട്ടുള്ള താളുകൾ കാണാൻ [[:$1]] സന്ദർശിക്കുക.",
        "thumbnail_image-missing": "പ്രമാണം ലഭ്യമല്ലെന്നു കാണുന്നു: $1",
        "thumbnail_image-failure-limit": "ഈ ലഘുചിത്രം സൃഷ്ടിക്കാൻ നിരവധി പരാജയപ്പെട്ട ശ്രമങ്ങൾ ($1 അല്ലെങ്കിൽ കൂടുതൽ) നടന്നിട്ടുണ്ട്. ദയവായി പിന്നീട് ശ്രമിക്കുക.",
        "import": "താളുകൾ ഇറക്കുമതി ചെയ്യുക",
-       "importinterwiki": "à´\85à´¨àµ\8dതർവിà´\95àµ\8dà´\95à´¿ à´\87à´±à´\95àµ\8dà´\95àµ\81മതി",
+       "importinterwiki": "മറàµ\8dà´±àµ\8aà´°àµ\81 à´µà´¿à´\95àµ\8dà´\95à´¿à´¯àµ\80ൽ à´¨à´¿à´¨àµ\8dà´¨àµ\81à´\82 à´\87à´±à´\95àµ\8dà´\95àµ\81മതി à´\9aàµ\86à´¯àµ\8dà´¯àµ\81à´\95",
        "import-interwiki-text": "വിക്കിയും ഇറക്കുമതി ചെയ്യാനുള്ള താളും തിരഞ്ഞെടുക്കുക.\nപുതുക്കൽ തീയതികളും തിരുത്തിയ ആളുകളുടെ പേരും സൂക്ഷിക്കപ്പെടും.\nഅന്തർവിക്കി ഇറക്കുമതിയുടെ എല്ലാ വിവരങ്ങളും [[Special:Log/import|ഇറക്കുമതി പ്രവർത്തനരേഖ]] എന്ന താളിൽ ശേഖരിക്കപ്പെടും.",
        "import-interwiki-sourcewiki": "സ്രോതസ്സ് വിക്കി:",
        "import-interwiki-sourcepage": "സ്രോതസ്സ് താൾ:",
        "importcantopen": "ഇറക്കുമതി പ്രമാണം തുറക്കാൻ കഴിഞ്ഞില്ല",
        "importbadinterwiki": "മോശമായ അന്തർവിക്കി കണ്ണി",
        "importsuccess": "ഇറക്കുമതി ചെയ്തുകഴിഞ്ഞു!",
-       "importnosources": "à´\9fàµ\8dരാൻസàµ\8dâ\80\8câ\80\8cവിà´\95àµ\8dà´\95à´¿ à´\87à´±à´\95àµ\8dà´\95àµ\81മതി à´¸àµ\8dà´°àµ\8bതസàµ\8dà´¸àµ\81കളൊന്നും നിർവചിച്ചിട്ടില്ല, നേരിട്ടുള്ള നാൾവഴി അപ്‌‌ലോഡുകൾ പ്രവർത്തനരഹിതവുമാക്കിയിരിക്കുന്നു.",
+       "importnosources": "à´\87à´±à´\95àµ\8dà´\95àµ\81മതി à´¸àµ\8dà´°àµ\8bതസàµ\8dà´¸àµ\81à´\95ളായ à´µà´¿à´\95àµ\8dà´\95à´¿കളൊന്നും നിർവചിച്ചിട്ടില്ല, നേരിട്ടുള്ള നാൾവഴി അപ്‌‌ലോഡുകൾ പ്രവർത്തനരഹിതവുമാക്കിയിരിക്കുന്നു.",
        "importnofile": "ഇറക്കുമതി പ്രമാണങ്ങളൊന്നും അപ്‌‌ലോഡ് ചെയ്തിട്ടില്ല.",
        "importuploaderrorsize": "ഇറക്കുമതി ചെയ്ത പ്രമാണത്തിന്റെ അപ്‌‌ലോഡ് പരാജയപ്പെട്ടു.\nപ്രമാണം അപ്‌‌ലോഡിങ്ങിനനുവദിക്കപ്പെട്ടിരിക്കുന്ന അളവിലും വലുതാണ്.",
        "importuploaderrorpartial": "ഇറക്കുമതി ചെയ്ത പ്രമാണത്തിന്റെ അപ്‌‌ലോഡ് പരാജയപ്പെട്ടു.\nപ്രമാണം ഭാഗികമായി അപ്‌‌ലോഡ് ചെയ്യപ്പെട്ടിരിക്കുന്നു.",
        "import-rootpage-nosubpage": "മൂലതാളിന്റെ നാമമേഖലയായ \"$1\" ഉപതാളുകൾ അനുവദിക്കുന്നില്ല.",
        "importlogpage": "ഇറക്കുമതി പ്രവർത്തനരേഖ",
        "importlogpagetext": "മറ്റു വിക്കികളിൽ നിന്ന് താളുകൾ നാൾവഴിയടക്കം എടുക്കുന്ന കാര്യനിർവാഹക ഇറക്കുമതി.",
-       "import-logentry-upload": "പ്രമാണ അപ്‌‌ലോഡ് വഴി [[$1]] ഇറക്കുമതി ചെയ്തിരിക്കുന്നു",
        "import-logentry-upload-detail": "{{PLURAL:$1|ഒരു പതിപ്പ്|$1 പതിപ്പുകൾ}} ഇറക്കുമതി ചെയ്തു",
-       "import-logentry-interwiki": "$1 അന്തർവിക്കി ഇറക്കുമതി ചെയ്തു",
        "import-logentry-interwiki-detail": "$2 എന്നതിൽ നിന്ന് {{PLURAL:$1|ഒരു പതിപ്പ്|$1 പതിപ്പുകൾ}} ഇറക്കുമതി ചെയ്തു",
        "javascripttest": "ജാവാസ്ക്രിപ്റ്റ് പരീക്ഷണം",
        "javascripttest-pagetext-noframework": "ഈ താൾ ജാവാസ്ക്രിപ്റ്റ് പരീക്ഷണങ്ങൾ നടത്താനായി മാറ്റിവെച്ചിരിക്കുന്നതാണ്.",
        "tags-hitcount": "{{PLURAL:$1|ഒരു മാറ്റം|$1 മാറ്റങ്ങൾ}}",
        "tags-manage-no-permission": "മാറ്റ ടാഗുകൾ കൈകാര്യം ചെയ്യാനുള്ള അനുവാദം താങ്കൾക്കില്ല.",
        "tags-create-heading": "പുതിയൊരു ടാഗ് സൃഷ്ടിക്കുക",
+       "tags-create-explanation": "സ്വതേ, പുതിയതായി സൃഷ്ടിക്കുന്ന ടാഗുകൾ ഉപയോക്താക്കൾക്കും ബോട്ടുകൾക്കും ലഭ്യമായിരിക്കും.",
+       "tags-create-tag-name": "റ്റാഗിന്റെ പേര്‌:",
+       "tags-create-reason": "കാരണം:",
+       "tags-create-submit": "സൃഷ്ടിക്കുക",
+       "tags-create-no-name": "റ്റാഗിന്റെ പേര് വ്യക്തമാക്കേണ്ടതുണ്ട്.",
+       "tags-create-warnings-above": "\"$1\" എന്ന ടാഗ് സൃഷ്ടിക്കാൻ ശ്രമിക്കുമ്പോൾ താഴെക്കൊടുത്തിരിക്കുന്ന {{PLURAL:$2|മുന്നറിയിപ്പ്|മുന്നറിയിപ്പുകൾ}} വന്നു:",
+       "tags-delete-reason": "കാരണം:",
+       "tags-activate-reason": "കാരണം:",
+       "tags-activate-submit": "സജ്ജമാക്കുക",
+       "tags-deactivate-reason": "കാരണം:",
+       "tags-deactivate-submit": "പ്രവർത്തനരഹിതമാക്കുക",
        "comparepages": "താളുകൾ താരതമ്യപ്പെടുത്തുക",
        "compare-page1": "താൾ 1",
        "compare-page2": "താൾ 2",
        "revdelete-uname-unhid": "ഉപയോക്തൃനാമം മറച്ചത് ഒഴിവാക്കിയിരിക്കുന്നു",
        "revdelete-restricted": "കാര്യനിർവാഹകർക്ക് പ്രവർത്തന അതിരുകൾ ഏർപ്പെടുത്തിയിരിക്കുന്നു",
        "revdelete-unrestricted": "കാര്യനിർവാഹകർക്ക് ഏർപ്പെടുത്തിയ പ്രവർത്തന അതിരുകൾ നീക്കം ചെയ്തിരിക്കുന്നു",
+       "logentry-block-block": "$5 $6 കാലത്തേക്ക് {{GENDER:$4|$3}} എന്ന അംഗത്വത്തെ $1 {{GENDER:$2|തടഞ്ഞിരിക്കുന്നു}}",
+       "logentry-block-unblock": "{{GENDER:$4|$3}} എന്ന അംഗത്വത്തെ $1 {{GENDER:$2|തടഞ്ഞിരിക്കുന്നു}}",
+       "logentry-block-reblock": "$5 $6 കാലത്തേക്ക് {{GENDER:$4|$3}} എന്ന അംഗത്വത്തിന്റെ തടയൽ സജ്ജീകരണങ്ങൾ $1 {{GENDER:$2|മാറ്റിയിരിക്കുന്നു}}",
+       "logentry-suppress-block": "$5 $6 കാലത്തേക്ക് {{GENDER:$4|$3}} എന്ന അംഗത്വത്തെ $1 {{GENDER:$2|തടഞ്ഞിരിക്കുന്നു}}",
+       "logentry-suppress-reblock": "$5 $6 കാലത്തേക്ക് {{GENDER:$4|$3}} എന്ന അംഗത്വത്തിന്റെ തടയൽ സജ്ജീകരണങ്ങൾ $1 {{GENDER:$2|മാറ്റിയിരിക്കുന്നു}}",
        "logentry-merge-merge": "$3 എന്ന താൾ $4 എന്നതിലേക്ക് ($5 നാൾപ്പതിപ്പ് വരെ), $1 {{GENDER:$2|ലയിപ്പിച്ചു}}",
        "logentry-move-move": "$1 എന്ന ഉപയോക്താവ് $3 എന്ന താൾ $4 എന്നാക്കി {{GENDER:$2|മാറ്റിയിരിക്കുന്നു}}",
        "logentry-move-move-noredirect": "$3 എന്ന താൾ $4 എന്ന തലക്കെട്ടിലേയ്ക്ക് തിരിച്ചുവിടലില്ലാതെ $1 {{GENDER:$2|മാറ്റി}}",
        "logentry-newusers-create2": "$3 എന്ന ഉപയോക്തൃ അംഗത്വം $1 {{GENDER:$2|സൃഷ്ടിച്ചിരിക്കുന്നു}}",
        "logentry-newusers-byemail": "$3 എന്ന ഉപയോക്തൃ അംഗത്വം $1 {{GENDER:$2|സൃഷ്ടിച്ചിരിക്കുന്നു}}, രഹസ്യവാക്ക് ഇമെയിൽ വഴി അയച്ചു",
        "logentry-newusers-autocreate": "$1 എന്ന ഉപയോക്തൃ അംഗത്വം സ്വയം {{GENDER:$2|സൃഷ്ടിക്കപ്പെട്ടിരിക്കുന്നു}}",
-       "logentry-rights-rights": "$3 à´\8eà´¨àµ\8dà´¨ à´\89പയàµ\8bà´\95àµ\8dതാവിനàµ\8dà´±àµ\86 à´¸à´\82à´\98 à´\85à´\82à´\97à´¤àµ\8dà´µà´\82, $4 à´\8eà´¨àµ\8dനതിൽ à´¨à´¿à´¨àµ\8dà´¨àµ\81 $5 à´\8eà´¨àµ\8dനതിലàµ\87à´\95àµ\8dà´\95àµ\81, $1 {{GENDER:$2|മാറ്റിയിരിക്കുന്നു}}",
+       "logentry-rights-rights": "$3 à´\8eà´¨àµ\8dà´¨ à´\89പയàµ\8bà´\95àµ\8dതാവിനàµ\8dà´±àµ\86 à´¸à´\82à´\98 à´\85à´\82à´\97à´¤àµ\8dà´µà´\82, $4 à´\8eà´¨àµ\8dനതിൽ à´¨à´¿à´¨àµ\8dà´¨àµ\81 $5 à´\8eà´¨àµ\8dനതിലàµ\87à´\95àµ\8dà´\95àµ\8d, $1 {{GENDER:$2|മാറ്റിയിരിക്കുന്നു}}",
        "logentry-rights-rights-legacy": "$3 എന്ന ഉപയോക്താവിന്റെ സംഘ അംഗത്വം $1 {{GENDER:$2|മാറ്റിയിരിക്കുന്നു}}",
        "logentry-rights-autopromote": "$1 എന്ന ഉപയോക്താവ് $4 എന്നതിൽ നിന്നും $5 എന്നതിലേയ്ക്ക് സ്വയമേവ {{GENDER:$2|ഉയർത്തപ്പെട്ടിരിക്കുന്നു}}",
        "logentry-upload-upload": "$1 $3 {{GENDER:$2|അപ്‌ലോഡ് ചെയ്തു}}",
        "logentry-upload-revert": "$1 $3 {{GENDER:$2|അപ്‌ലോഡ് ചെയ്തു}}",
        "rightsnone": "(ഒന്നുമില്ല)",
        "revdelete-summary": "തിരുത്തലിന്റെ ചുരുക്കം",
+       "feedback-adding": "താങ്കളുടെ അഭിപ്രായങ്ങൾ താളിലേയ്ക്ക് ചേർക്കുന്നു...",
+       "feedback-back": "പുറകോട്ട്",
+       "feedback-bugcheck": "കൊള്ളാം! [$1 അറിയാവുന്ന ബഗുകളിൽ] ഒന്നല്ല എന്ന് ഒന്നു പരിശോധിച്ചേക്കുക.",
+       "feedback-bugnew": "ഞാൻ പരിശോധിച്ചു. പുതിയൊരു ബഗ് ചേർക്കുക",
        "feedback-bugornote": "സാങ്കേതിക പ്രശ്നം എന്താണെന്ന് വിവരിച്ചെഴുതാൻ താങ്കൾ തയ്യാറാണെങ്കിൽ [$1 ബഗ് അറിയിക്കുക].\nഅല്ലെങ്കിൽ താങ്കൾക്ക് താഴെ എളുപ്പത്തിനായി നൽകിയിരിക്കുന്ന ഫോം ഉപയോഗിക്കാം. താങ്കളുടെ കുറിപ്പ് \"[$3 $2]\" താളിൽ, താങ്കളുടെ ഉപയോക്തൃനാമത്തിന്റെയും ഉപയോഗിക്കുന്ന ബ്രൗസറിന്റെ പേരിന്റെയും ഒപ്പം ചേർക്കുന്നതായിരിക്കും.",
-       "feedback-subject": "വിഷയം:",
-       "feedback-message": "സന്ദേശം:",
        "feedback-cancel": "റദ്ദാക്കുക",
-       "feedback-submit": "അഭിപ്രായം സമർപ്പിക്കുക",
-       "feedback-adding": "താങ്കളുടെ അഭിപ്രായങ്ങൾ താളിലേയ്ക്ക് ചേർക്കുന്നു...",
+       "feedback-close": "ചെയ്തു കഴിഞ്ഞു.",
+       "feedback-external-bug-report-button": "ഒരു സാങ്കേതിക കർത്തവ്യം ചേർക്കുക",
+       "feedback-dialog-title": "അഭിപ്രായം സമർപ്പിക്കുക",
+       "feedback-dialog-intro": "താങ്കളുടെ അഭിപ്രായം സമർപ്പിക്കാൻ താങ്കൾക്ക് താഴെയുള്ള ലളിതമായ ഫോം ഉപയോഗിക്കാം. താങ്കളുടെ കുറിപ്പ് \"$1\" എന്ന താളിൽ താങ്കളുടെ ഉപയോക്തൃനാമത്തോടൊപ്പം ചേർക്കപ്പെടുന്നതാണ്.",
+       "feedback-error-title": "പിഴവ്",
        "feedback-error1": "പിഴവ്: എ.പി.ഐ.യിൽ നിന്നും തിരിച്ചറിയാനാകാത്ത ഫലം",
        "feedback-error2": "പിഴവ്: തിരുത്തൽ പരാജയപ്പെട്ടു",
        "feedback-error3": "പിഴവ്: എ.പി.ഐ.യിൽ നിന്നും യാതൊരു പ്രതികരണവുമില്ല",
+       "feedback-message": "സന്ദേശം:",
+       "feedback-subject": "വിഷയം:",
+       "feedback-submit": "സമർപ്പിക്കുക",
+       "feedback-terms": "എന്റെ ബ്രൗസറും ഓപ്പറേറ്റിങ് സിസ്റ്റവും ഏതാണെന്നും പതിപ്പെന്തെന്നും കൃത്യമായി ഉൾപ്പെട്ടതാണ് എന്റെ യൂസർ ഏജന്റ് വിവരം എന്നും അത് എന്റെ അഭിപ്രായത്തോടൊപ്പം സാർവ്വജനികമായി ലഭ്യമാകത്തക്കവിധത്തിൽ പങ്കുവെയ്ക്കപ്പെടുമെന്നും ഞാൻ മനസ്സിലാക്കുന്നു.",
+       "feedback-termsofuse": "ഉപയോഗനിബന്ധനകൾക്ക് അനുസൃതമായാണ് ഈ അഭിപ്രായം നൽകുന്നതെന്ന് ഞാൻ സമ്മതിക്കുന്നു.",
        "feedback-thanks": "നന്ദി! താങ്കളുടെ പ്രതികരണം \"[$2 $1]\" എന്ന താളിൽ പ്രസിദ്ധീകരിച്ചിട്ടുണ്ട്.",
-       "feedback-close": "ചെയ്തു കഴിഞ്ഞു.",
-       "feedback-bugcheck": "കൊള്ളാം! [$1 അറിയാവുന്ന ബഗുകളിൽ] ഒന്നല്ല എന്ന് ഒന്നു പരിശോധിച്ചേക്കുക.",
-       "feedback-bugnew": "ഞാൻ പരിശോധിച്ചു. പുതിയൊരു ബഗ് ചേർക്കുക",
+       "feedback-thanks-title": "നന്ദി!",
+       "feedback-useragent": "യൂസർ ഏജന്റ്:",
        "searchsuggest-search": "തിരയുക",
        "searchsuggest-containing": "ഉൾപ്പെടുന്നവ...",
        "api-error-badaccess-groups": "ഈ വിക്കിയിൽ പ്രമാണങ്ങൾ അപ്‌ലോഡ് ചെയ്യാൻ താങ്കൾക്കനുവാദമില്ല.",
        "json-error-syntax": "എഴുത്തുരീതിയിൽ പിഴവ്",
        "json-error-utf8": "തെറ്റായരൂപത്തിലുള്ള UTF-8 അക്ഷരങ്ങൾ, മിക്കവാറും തെറ്റായി എൻകോഡ് ചെയ്യപ്പെട്ടവ",
        "json-error-recursion": "എൻകോഡ് ചെയ്യേണ്ട വിലയിൽ ഒന്നോ അതിലധികമോ പുനരാവർത്തിത സൂചകങ്ങൾ",
-       "json-error-inf-or-nan": "എൻകോഡ് ചെയ്യേണ്ട വിലയിൽ ഒന്നോ അതിലധികമോ NAN അല്ലെങ്കിൽ INF വിലകൾ"
+       "json-error-inf-or-nan": "എൻകോഡ് ചെയ്യേണ്ട വിലയിൽ ഒന്നോ അതിലധികമോ NAN അല്ലെങ്കിൽ INF വിലകൾ",
+       "headline-anchor-title": "ഈ ഭാഗത്തേക്കുള്ള കണ്ണി"
 }
index dc2cd22..7fe9c72 100644 (file)
        "delete-warning-toobig": "Энэ хуудасны засварын түүх маш том байгаа бөгөөд {{PLURAL:$1| гаруй засвар| гаруй засварууд}} байна.\nУстгавал {{SITENAME}}-н мэдээллийн сангийн үйл ажиллагаанд нөлөөлж магадгүй тул та анхаарна уу.",
        "deleteprotected": "Энэ хуудас хамгаалалттай тул устгаж болохгүй.",
        "rollback": "Засваруудыг буцаах",
-       "rollback_short": "Буцаах",
        "rollbacklink": "буцаах",
        "rollbackfailed": "Буцааж чадсангүй",
        "cantrollback": "Засварласан хэсгийг хуучин төлөвт шилжүүлж чадсангүй;\nсүүлчийн засварыг хийгч нь энэ хуудасны цорын ганц бичигч байна.",
        "import-logentry-interwiki": "$1-г транс-викидлээ",
        "import-logentry-interwiki-detail": "$2-с авсан $1 засвар",
        "javascripttest": "JavaScript туршилт",
-       "javascripttest-title": "$1 теёт хийж байна",
        "javascripttest-pagetext-noframework": "Уг хуудсыг JavaScript тест хийхэд ашиглана.",
        "javascripttest-pagetext-unknownframework": "\"$1\" мэдэхгүй тест фреймворк байна.",
        "tooltip-pt-userpage": "Таны хэрэглэгчийн хуудас",
        "watchlisttools-view": "Холбогдох өөрчлөлтүүдийг үзэх",
        "watchlisttools-edit": "Хянаж буй хуудсуудын жагсаалтаа үзэж засварлах",
        "watchlisttools-raw": "Хянаж буй хуудсуудын жагсаалтаа текстээр засварлах",
-       "unknown_extension_tag": "Үл мэдэгдэх өргөтгөл таг: \"$1\"",
        "duplicate-defaultsort": "'''Анхаар:''' \"$2\" гэсэн default sort key нь \"$1\" гэсэн өмнөх key-н дээгүүр бичигдэх болж байна.",
        "version": "Хувилбар",
        "version-extensions": "Суулгасан өргөтгөлүүд",
        "version-parser-function-hooks": "Парсер функцийн тагууд",
        "version-hook-name": "Хүүкийн нэр",
        "version-hook-subscribedby": "Захиалсан:",
-       "version-version": "(Хувилбар $1)",
+       "version-version": "($1)",
        "version-license": "Лиценз",
        "version-poweredby-credits": "Энэхүү викиг '''[https://www.mediawiki.org/ MediaWiki]''' програмаар ажиллуулдаг, зохиогчийн эрх © 2001-$1 $2.",
        "version-poweredby-others": "бусад",
index 5a34a30..dd8f3c0 100644 (file)
                        "शࣿरीहरि",
                        "संतोष दहिवळ",
                        "아라",
-                       "BPositive"
+                       "BPositive",
+                       "Darshan kandolkar",
+                       "Steinsplitter",
+                       "Macofe",
+                       "Nemo bis"
                ]
        },
        "tog-underline": "दुव्यांचे अधोरेखन:",
        "otherlanguages": "इतर भाषांत",
        "redirectedfrom": "($1 पासून पुनर्निर्देशित)",
        "redirectpagesub": "पुनर्निर्देशनाचे पान",
+       "redirectto": "येथे पुनर्निर्देशित करा:",
        "lastmodifiedat": "या पानातील शेवटचा बदल $1 रोजी $2 वाजता केला गेला.",
        "viewcount": "हे पान {{PLURAL:$1|एकदा|$1 वेळा}} बघितले गेलेले आहे.",
        "protectedpage": "सुरक्षित पृष्ठ",
        "gotaccountlink": "सनोंद-प्रवेश करा",
        "userlogin-resetlink": "सनोंद-प्रवेश तपशील विसरला असाल तर येथे टिचकी मारा.",
        "userlogin-resetpassword-link": "आपला परवलीचा शब्द विसरलात?",
+       "userlogin-helplink2": "सनोंद प्रवेशासंबंधी मदत",
        "userlogin-loggedin": "आपण पुर्वीच {{GENDER:$1|$1}} म्हणून सनोंद प्रवेशित आहात.वेगळ्या सदस्यनावाने सनोंद प्रवेशासाठी खालील आवेदन वापरा.",
        "userlogin-createanother": "दुसरे नवीन खाते तयार करा",
        "createacct-emailrequired": "विपत्र पत्ता(ई-मेल)",
        "token_suffix_mismatch": "'''तुमचे संपादन रद्द करण्यात आलेले आहे कारण तुमच्या क्लायंटनी तुमच्या संपादनातील उद्गारवाचक चिन्हांमध्ये (punctuation) बदल केलेले आहेत.\nपानातील मजकूर खराब होऊ नये यासाठी संपादन रद्द करण्यात आलेले आहे.\nअसे कदाचित तुम्ही अनामिक proxy वापरत असल्याने होऊ शकते.'''",
        "edit_form_incomplete": "'''तुमच्या संपादनाचा काही भाग सर्व्हरपर्यंत पोचला नाही; तुमचे संपादन पूर्ण आहे का याची पुन्हा खात्री करा व पुन्हा प्रयत्न करा.'''",
        "editing": "$1 चे संपादन होत आहे.",
-       "creating": "$1 ची निर्मिती सुरू आहे",
+       "creating": "$1 à¤¯à¤¾ à¤²à¥\87à¤\96ाà¤\9aà¥\80 à¤¨à¤¿à¤°à¥\8dमितà¥\80 à¤¸à¥\81रà¥\82 à¤\86हà¥\87",
        "editingsection": "$1 (विभाग) संपादन",
        "editingcomment": "$1 चे संपादन (प्रतिक्रिया)",
        "editconflict": "संपादन मतभेद: $1",
        "templatesusedpreview": "या झलकेमध्ये {{PLURAL:$1|वापरलेला साचा|वापरलेले साचे}}:",
        "templatesusedsection": "या विभागामध्ये {{PLURAL:$1|वापरलेला साचा|वापरलेले साचे}}:",
        "template-protected": "(सुरक्षित)",
-       "template-semiprotected": "(à¤\85रà¥\8dध-सà¥\81रà¤\95à¥\8dषà¥\80त)",
+       "template-semiprotected": "(à¤\85रà¥\8dध-सà¥\81रà¤\95à¥\8dषित)",
        "hiddencategories": "हे पान खालील {{PLURAL:$1|एका लपविलेल्या वर्गामध्ये|$1 लपविलेल्या वर्गांमध्ये}} आहे:",
        "nocreatetext": "{{SITENAME}}वर नवीन लेख लिहिण्यास मज्जाव करण्यात आलेला आहे. आपण परत जाऊन अस्तित्वात असलेल्या लेखांचे संपादन करू शकता अथवा [[Special:UserLogin|नवीन सदस्यत्व घ्या/ प्रवेश करा]].",
        "nocreate-loggedin": "येथे तुम्हाला नवीन पाने बनवण्याची परवानगी नाही.",
        "import-rootpage-nosubpage": "\"$1\" नामविश्वाची मुल पाने, उपपानास परवानगी देत नाही.",
        "importlogpage": "ईम्पोर्ट सूची",
        "importlogpagetext": "इतर विकिक्डून पानांची, संपादकीय इतिहासासहीत, प्रबंधकीय आयात.",
-       "import-logentry-upload": "संचिका चढवल्याने [[$1]] आयात",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|आवर्तन|आवर्तने}}",
-       "import-logentry-interwiki": "आंतरविकिकरण $1",
        "import-logentry-interwiki-detail": "$2 पासून $1 {{PLURAL:$1|आवर्तन|आवर्तने}}",
        "javascripttest": "जावा स्क्रिप्ट तपासणी",
        "javascripttest-pagetext-noframework": "हे पान जावा स्क्रिप्ट तपासणी साठी सुरक्षित केले आहे",
        "logentry-rights-autopromote": "$1 ला स्वयंचलितरित्या $4 वरुन $5 ला {{GENDER:$2|बढती दिल्या गेली}}",
        "rightsnone": "(काहीही नाही)",
        "revdelete-summary": "संपादन माहिती",
+       "feedback-adding": "आपला पश्चप्रदाय (फिडबॅक)  जोडत आहोत या पानास.......",
+       "feedback-bugcheck": "उत्तम! फक्त एकदा खात्री करा की हा [$1 अगोदरच माहिती असलेला बग] तर नाहीये.",
+       "feedback-bugnew": "मी तपासले आहे. हा एक नवीन बग म्हणून नोंद करावी",
        "feedback-bugornote": "जर आपण तांत्रिक प्रश्न  विस्तृतपणे मांडण्यास तयार असाल तर कृपया [$1 गणकदोष वृतांत] पाठवा. नपेक्षा, खाली देण्यात आलेले सोपे आवेदनपत्र वापरा. आपली टिप्पणी \"[$3 $2]\" या पानास आपले सदस्यनाव व आपण कोणता ब्राउजर वापरता यासह जोडण्यात येईल.",
-       "feedback-subject": "विषय:",
-       "feedback-message": "संदेश:",
        "feedback-cancel": "रद्द करा",
-       "feedback-submit": "प्रतिक्रिया द्या",
-       "feedback-adding": "आपला पश्चप्रदाय (फिडबॅक)  जोडत आहोत या पानास.......",
+       "feedback-close": "झाले",
        "feedback-error1": "चूक: API कडून अनोळखी परिणाम",
        "feedback-error2": "त्रुटी: संपादन रद्द",
        "feedback-error3": "त्रुटी:एपीआय तर्फे काहीच प्रत्युत्तर नाही",
+       "feedback-message": "संदेश:",
+       "feedback-subject": "विषय:",
+       "feedback-submit": "सादर करा",
        "feedback-thanks": " \"[$2 $1]\" या पानात आपला पश्चप्रदाय (फिडबॅक) टाकत आहोत.",
-       "feedback-close": "झाले",
-       "feedback-bugcheck": "उत्तम! फक्त एकदा खात्री करा की हा [$1 अगोदरच माहिती असलेला बग] तर नाहीये.",
-       "feedback-bugnew": "मी तपासले आहे. हा एक नवीन बग म्हणून नोंद करावी",
        "searchsuggest-search": "शोधा",
        "searchsuggest-containing": ".......हे असलेले",
        "api-error-badaccess-groups": "आपणास ह्या विकिवर संचिका चढवण्याची परवानगी नाही",
index 1518d9f..14b518c 100644 (file)
@@ -18,7 +18,8 @@
                        "Zamwan",
                        "לערי ריינהארט",
                        "아라",
-                       "Pizza1016"
+                       "Pizza1016",
+                       "Macofe"
                ]
        },
        "tog-underline": "Garis bawah pautan:",
        "version-parser-function-hooks": "Penyangkuk fungsi penghurai",
        "version-hook-name": "Nama penyangkuk",
        "version-hook-subscribedby": "Dilanggan oleh",
-       "version-version": "(Versi $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[tiada nama]",
        "version-license": "Lesen MediaWiki",
        "version-ext-license": "Lesen",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|mematikan}} teg \"$4\" untuk kegunaan pengguna dan bot",
        "rightsnone": "(tiada)",
        "revdelete-summary": "ringkasan",
+       "feedback-adding": "Maklum balas sedang diisikan ke dalam laman...",
+       "feedback-bugcheck": "Bagus! Cuma pastikan itu bukan salah satu [$1 pepijat] yang sedia diketahui.",
+       "feedback-bugnew": "Saya dah semak. Laporkan pepijat baru",
        "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:",
-       "feedback-message": "Pesanan:",
        "feedback-cancel": "Batalkan",
-       "feedback-submit": "Hantar Maklum Balas",
-       "feedback-adding": "Maklum balas sedang diisikan ke dalam laman...",
+       "feedback-close": "Siap",
        "feedback-error1": "Perhatian: Hasil dari API tidak dikenali",
        "feedback-error2": "Perhatian: Penyuntingan gagal",
        "feedback-error3": "Perhatian: Tiada gerak balas dari API",
+       "feedback-message": "Pesanan:",
+       "feedback-subject": "Perkara:",
+       "feedback-submit": "Hantar",
        "feedback-thanks": "Terima kasih! Maklum balas anda telah dicatatkan pada laman \"[$2 $1]\".",
-       "feedback-close": "Siap",
-       "feedback-bugcheck": "Bagus! Cuma pastikan itu bukan salah satu [$1 pepijat] yang sedia diketahui.",
-       "feedback-bugnew": "Saya dah semak. Laporkan pepijat baru",
        "searchsuggest-search": "Cari",
        "searchsuggest-containing": "mengandungi...",
        "api-error-badaccess-groups": "Anda tidak dibenarkan memuat naik fail di wiki ini.",
index 4215b6b..7f4508b 100644 (file)
@@ -9,7 +9,8 @@
                        "Urhixidur",
                        "아라",
                        "CharlieTheCabbie",
-                       "Leli Forte"
+                       "Leli Forte",
+                       "Macofe"
                ]
        },
        "tog-underline": "Ħoloq sottolinjati:",
        "delete-toobig": "Din il-paġna għandha kronoloġija ta' modifikar kbira, l-fuq minn $1 {{PLURAL:$1|reviżjoni|reviżjonijiet}}.\nTħassir ta' dawn il-paġni huwa limitat sabiex tnaqqas il-ħolqien aċċidentalment ta' problemi fil-funżjoni tad-database ta' {{SITENAME}}.",
        "delete-warning-toobig": "Din il-paġna għandha kronoloġija ta' modifikar kbira, l-fuq minn $1 {{PLURAL:$1|reviżjoni|reviżjonijiet}}.\nTħassara tista' toħloq problema ta' funżjoni fid-database ta' {{SITENAME}}; moħħok hemm.",
        "rollback": "Ħassar il-modifiki",
-       "rollback_short": "Rollback",
        "rollbacklink": "rollback",
        "rollbackfailed": "Rollback ma ħadmitx",
        "cantrollback": "Impossibli tħassar il-modifiki; l-utent li wettaqhom huwa l-unika li għamel kontributi lil din il-paġna.",
        "import-error-invalid": "Il-paġna \"$1\" ma ġietx impurtata minħabba li isimha hi invalida.",
        "importlogpage": "Importazzjoni",
        "importlogpagetext": "Importi amministrativi ta' paġni b'kronoloġiji ta' modifiki minn wikis oħrajn.",
-       "import-logentry-upload": "importajt [[$1]] bl-użu ta' upload.",
        "import-logentry-upload-detail": "{{PLURAL:$1|reviżjoni|$1 reviżjonijiet}}",
-       "import-logentry-interwiki": "Trasferixxejt minn wiki ieħor il-paġna $1",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|reviżjoni|$1 reviżjonijiet}} minn $2",
        "javascripttest": "Testjar tal-JavaScript",
        "javascripttest-pagetext-noframework": "Din il-paġna hi riservata għall-eżekuzzjoni tat-testijiet tal-JavaScript.",
        "version-parser-function-hooks": "''Hooks'' għal funzjonijiet tal-''parser''",
        "version-hook-name": "Isem tal-hook",
        "version-hook-subscribedby": "Reġistrat minn",
-       "version-version": "(Verżjoni $1)",
+       "version-version": "($1)",
        "version-license": "Liċenzja",
        "version-poweredby-credits": "Din il-wiki hija operata minn '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
        "version-poweredby-others": "oħrajn",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|ġie|ġiet}} awtomatikament {{GENDER:$2|promoss|promossa}} minn $4 għal $5",
        "rightsnone": "(xejn)",
        "revdelete-summary": "Taqsira tal-modifika",
+       "feedback-bugcheck": "Tajjeb ħafna! Ivverifika li mhux diġà fost id-[$1 difetti magħrufa].",
+       "feedback-bugnew": "Ikkontrollajt. Irrapporta d-difett",
        "feedback-bugornote": "Jekk int lest biex tiddeskrivi problema teknika fid-dettall, jekk jogħbok [$1 irraporta l-bug].\nInkella, tista' tuża l-formola sempliċi t'hawn taħt. Il-kumment tiegħek se jiżdied mal-paġna \"[$3 $2]\", flimkien ma' isem l-utent tiegħek.",
-       "feedback-subject": "Suġġett:",
-       "feedback-message": "Messaġġ:",
        "feedback-cancel": "Annulla",
-       "feedback-submit": "Ibgħat il-messaġġ",
+       "feedback-close": "Lest",
        "feedback-error1": "Żball: Riżultat mhux rikonoxxut mill-API",
        "feedback-error2": "Żball: Modifika mhux esegwita",
        "feedback-error3": "Żball: L-ebda risposta mill-API",
+       "feedback-message": "Messaġġ:",
+       "feedback-subject": "Suġġett:",
+       "feedback-submit": "Ibgħat",
        "feedback-thanks": "Grazzi! Ir-rispons tiegħek ġie ippubblikat fuq il-paġna \"[$2 $1]\".",
-       "feedback-close": "Lest",
-       "feedback-bugcheck": "Tajjeb ħafna! Ivverifika li mhux diġà fost id-[$1 difetti magħrufa].",
-       "feedback-bugnew": "Ikkontrollajt. Irrapporta d-difett",
        "searchsuggest-search": "Fittex",
        "searchsuggest-containing": "li tinkludi...",
        "api-error-fileexists-forbidden": "Fajl bl-isem \"$1\" diġà jeżisti, u ma jistax jiġi miktub fuqu.",
index a570164..da14248 100644 (file)
        "deletereason-dropdown": "*Нардамонь сех вастневиця тувталтнэ\n** Теицянть вешемазо\n** Теицянь видечинть коламозо\n** Вандализма",
        "delete-edit-reasonlist": "Витнемс-петнемс нардамонь тувталтнэнь",
        "rollback": "Кевердемс витнематнень-петнематнень мекев",
-       "rollback_short": "Мекев кевердема",
        "rollbacklink": "кевердемс",
        "rollbackfailed": "Мекев кевердемась эзь лисе",
        "protectlogpage": "Ванстомань совамо-кемекстамо",
        "version-hooks": "Кечказт",
        "version-hook-name": "Кечказонть лемезэ",
        "version-hook-subscribedby": "Сёрмадстызе",
-       "version-version": "(Версия $1)",
+       "version-version": "($1)",
        "version-license": "Лицензия",
        "version-software": "Нолдань программат",
        "version-software-product": "Шкавкс-нолдавкс",
        "htmlform-selectorother-other": "Лия",
        "rightsnone": "(арасть)",
        "revdelete-summary": "витнемадо-петнемадо нурькине йовтавкс",
-       "feedback-subject": "Мезде:",
-       "feedback-message": "Пачтямнэсь:",
        "feedback-cancel": "А теемс",
        "feedback-close": "Анок",
+       "feedback-message": "Пачтямнэсь:",
+       "feedback-subject": "Мезде:",
        "searchsuggest-search": "Вешнемс",
        "api-error-filename-tooshort": "Керьмазлементь а саты кувалмозо",
        "api-error-illegal-filename": "Керьмазлемесь а маштови.",
index e9974f6..2a70e08 100644 (file)
@@ -10,7 +10,8 @@
                        "SabineCretella",
                        "לערי ריינהארט",
                        "아라",
-                       "Candalua"
+                       "Candalua",
+                       "Macofe"
                ]
        },
        "tog-underline": "Sottolinia 'e jonte:",
        "disclaimers": "Avvertimiènte",
        "disclaimerpage": "Project:Avvertimiènte generale",
        "edithelp": "Guida",
+       "helppage-top-gethelp": "Ajùto",
        "mainpage": "Paggena prencepale",
        "mainpage-description": "Paggena prencepale",
        "policy-url": "Project:Policy",
        "readonly_lag": "'O database s'è bloccato automaticamente pe' tramente ca 'e servers 'e database schiave sincronizzano c' 'o server masto.",
        "internalerror": "Errore 'nterno",
        "internalerror_info": "Errore 'nterno: $1",
+       "internalerror-fatal-exception": "Errore irreversibbele 'e tipo \"$1\"",
        "filecopyerror": "Nun se può copiare 'o file \"$1\" int'a \"$2\".",
        "filerenameerror": "Nun se può rinnummenare 'o file \"$1\" into \"$2\".",
        "filedeleteerror": "Nun se pô scancellà 'o file \"$1\"",
        "unusedimages": "File ca nun s'ausano",
        "wantedcategories": "Categurìe addimannate",
        "wantedpages": "Paggene cchiù addemannate",
+       "wantedpages-summary": "Elenco 'e paggene nun esistente ca teneno na parte assaje d' 'e link ca spuntassero a chiste. Pe' na lista 'e paggene nun esistente ca teneno redirect ca spuntassero a chiste, vide [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Titolo invalido mmiez' 'o nzieme 'e risultate: $1",
        "wantedfiles": "File addimannate",
        "wantedfiletext-cat": "Chisti file s'ausano ma nun esisteno. 'E file ca veneno 'e n'archivio 'e fore s'alencano ccà senza cuntrullà l'esistenza suja. Sti fauze pusitive sarranno <del>nzignate</del>. 'E paggene ca teneno sti file ca nun esisteno song'alencate dint'a [[:$1]].",
        "thumbnail_image-missing": "'O file pare ca nun se trova: $1",
        "thumbnail_image-failure-limit": "Se so' fatte troppe tentative senza ngarrata ($1 o cchiù) 'a generà sta miniatura. Pruvate n'ata vota cchiù tarde.",
        "import": "Mpurta paggene",
-       "importinterwiki": "Mpurtazione transkwiki",
-       "import-interwiki-text": "Scigliete na wiki e nu titolo 'e paggena 'a mpurtà.\n'E date e l'editore s'astiparranno.\nTutte l'aziune 'e mpurtaziune nfra 'e wiki songo riggistrate dint' 'e [[Special:Log/import|riggistre 'e mpurtazione]].",
+       "importinterwiki": "Carreca paggene 'a n'ata wiki",
+       "import-interwiki-text": "Scigliete na wiki e nu titolo 'e paggena 'a mpurtà.\n'E date e l'editore s'astiparranno.\nTutt' 'e mpurtaziune 'a n'ati wiki songo riggistrate dint' 'e [[Special:Log/import|riggistre 'e mpurtazione]].",
        "import-interwiki-sourcewiki": "Wiki d'origgene:",
        "import-interwiki-sourcepage": "Paggena d'origgene:",
        "import-interwiki-history": "Copia tutt' 'a storia d' 'e verziune 'e sta paggena",
        "importcantopen": "Nun se può arapì 'o file 'e mpurtaziona",
        "importbadinterwiki": "Cullegamiento interwiki errato",
        "importsuccess": "Mpurtaziona fernuta!",
-       "importnosources": "Nisciuna fonte p' 'a mpurtaziona transwiki è stata definita; 'e carreche dirette 'e cronologgia nun songo attivate.",
+       "importnosources": "Nisciuna wiki, d' 'a quale s'avess'a mpurtà, è stata definita; 'e carreche dirette 'e cronologgia nun songo attivate.",
        "importnofile": "Nisciunu file 'e mpurtazione è stato carrecato.",
        "importuploaderrorsize": "'A carreca d' 'o file 'e mpurtazione nun è riuscita.\n'O file è cchiù gruosso d' 'a dimenziona massima 'e carreca.",
        "importuploaderrorpartial": "'A carreca d' 'o file mpurtato è fallita.\nNa parta d' 'o file file è stata carrecata ma nun a nu piezzo sano sano.",
        "import-rootpage-nosubpage": "'O namespace \"$1\" d' 'a pàggena princepale nun permette 'e sottopaggene.",
        "importlogpage": "Riggistro 'e mpurtaziune",
        "importlogpagetext": "Mpurtaziune ammenistrative 'e paggene c' 'a storia 'e cagnamiente 'e l'ati wiki.",
-       "import-logentry-upload": "ha mpurtato [[$1]] trammeto upload",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|verzione|verziune}} mpurtate",
-       "import-logentry-interwiki": "trasferito 'a n'ata wiki 'a paggena $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|verzione|verziune}} mpurtate 'a $2",
        "javascripttest": "Test JavaScript",
        "javascripttest-pagetext-noframework": "Sta paggena è riservata pe' l'esecuziune d' 'e test 'e Javascript.",
        "revdelete-uname-unhid": "nomme utente fatto avvedè",
        "revdelete-restricted": "restriziune apprecate a ll'ammenistrature",
        "revdelete-unrestricted": "restriziune luvate a ll'ammenistrature",
+       "logentry-block-block": "$1 {{GENDER:$2|ave bluccato}} {{GENDER:$4|$3}} cu na scadenza 'e $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|ave sbluccato}} {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|ave cagnato}} 'e mpustaziune 'e blocco pe' {{GENDER:$4|$3}} cu na scadenza 'e $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|ave bluccato}} {{GENDER:$4|$3}} cu na scadenza 'e $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|cagnaje}} 'e mpustaziune 'e blocco 'e {{GENDER:$4|$3}} ch' 'ammaturasse a nu $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|ave mpurtato}} $3 pe' bbìa d' 'a carreca",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|ave mpurtato}} $3 pe' bbìa 'e n'atu wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|aunito|aunita}} $3 int' 'a $4 (verziune nzin' 'a $5)",
        "logentry-move-move": "$1 {{GENDER:$2|muvette}} paggena $3 a $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|muvette}} paggena $3 a $4 senza lassà nu redirezionamiento",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|stutaje}} 'o tag \"$4\" pe' ll'uso d'utente e re bot",
        "rightsnone": "(nisciuno)",
        "revdelete-summary": "cagna 'o riepilego",
+       "feedback-adding": "Azzecca nu feedback/na segnalazione â paggena..",
+       "feedback-back": "Arreto",
+       "feedback-bugcheck": "Tutt'appost! Avite surtanto 'a cuntrullà ca chisto nun è unu d' 'e [$1 bug canusciute].",
+       "feedback-bugnew": "Aggio cuntrullato. Manna nu bug nuovo.",
        "feedback-bugornote": "Si site pronto/a a descrivere nu probblema tecnico ch' 'e dettaglie, pe' piacere [$1 mannate nu bug].\nSi nun site pronto/a, allora putite ausà 'o modulo semprice ca vedite ccà abbascio. 'O commento vuosto sarrà mpezzato dint' 'a paggena [$3 $2]\", seguenno 'o nomme utente vuosto e 'o navigatóre web ca state ausanno.",
-       "feedback-subject": "Suggietto:",
-       "feedback-message": "Mmasciata:",
        "feedback-cancel": "Canciella",
-       "feedback-submit": "Manna nu Feedback, na segnalazione",
-       "feedback-adding": "Azzecca nu feedback/na segnalazione â paggena..",
+       "feedback-close": "Fatto",
+       "feedback-external-bug-report-button": "Archivia na fatica tecnica",
+       "feedback-dialog-title": "Manna 'o feedback",
+       "feedback-dialog-intro": "Putite ausà sempricemente 'o modulo ccà abbascio pe' putè mannà 'o feedback vuosto. 'O cummento sarrà azzeccato â paggena \"$1\", nziem' 'o nomme vuosto.",
+       "feedback-error-title": "Errore",
        "feedback-error1": "Errore: Risultato nun aspettato 'a ll'API",
        "feedback-error2": "Errore: Cagnamiento scassato",
        "feedback-error3": "Errore: Ll'API nun risponne",
+       "feedback-message": "Mmasciata:",
+       "feedback-subject": "Suggietto:",
+       "feedback-submit": "Manna",
+       "feedback-terms": "Me so' fatto/a capace ca ll'aggente 'e nfurmaziune 'e cunto ave accesso a nfurmaziune ncopp'a 'o navigatore e 'o browser ca stongo 'ausà e ca chisto sarrà spartuto pubbrecamente c' 'o feedback mio.",
+       "feedback-termsofuse": "So' d'accordo ca sto a mannà nu feedback cu sti térmene d'uso.",
        "feedback-thanks": "Grazie! 'O feedback vuosto s'è mpizzato dint' 'a paggena \"[$2 $1]\".",
-       "feedback-close": "Fatto",
-       "feedback-bugcheck": "Tutt'appost! Avite surtanto 'a cuntrullà ca chisto nun è unu d' 'e [$1 bug canusciute].",
-       "feedback-bugnew": "Aggio cuntrullato. Manna nu bug nuovo.",
+       "feedback-thanks-title": "Ve ringraziammo!",
+       "feedback-useragent": "Aggente utente:",
        "searchsuggest-search": "Truova",
        "searchsuggest-containing": "tène...",
        "api-error-badaccess-groups": "Tun putite carrecà file ncopp' 'a sta wiki.",
index 11325a9..0ad7c89 100644 (file)
@@ -42,7 +42,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Chameleon222",
-                       "Helland"
+                       "Helland",
+                       "Macofe"
                ]
        },
        "tog-underline": "Strek under lenker:",
        "disclaimers": "Forbehold",
        "disclaimerpage": "Project:Generelle forbehold",
        "edithelp": "Redigeringshjelp",
+       "helppage-top-gethelp": "Hjelp",
        "mainpage": "Forside",
        "mainpage-description": "Forside",
        "policy-url": "Project:Retningslinjer",
        "readonly_lag": "Databasen er automatisk skrivebeskyttet så slavetjenerne kan ta igjen mestertjeneren",
        "internalerror": "Intern feil",
        "internalerror_info": "Intern feil: $1",
+       "internalerror-fatal-exception": "Uhåndterlig unntak av typen «$1»",
        "filecopyerror": "Klarte ikke å kopiere filen «$1» til «$2».",
        "filerenameerror": "Klarte ikke å døpe om filen «$1» til «$2».",
        "filedeleteerror": "Klarte ikke å slette filen «$1».",
        "withoutinterwiki-legend": "Prefiks",
        "withoutinterwiki-submit": "Vis",
        "fewestrevisions": "Artikler med færrest revisjoner",
-       "nbytes": "$1 {{PLURAL:$1|byte|bytes}}",
+       "nbytes": "$1 {{PLURAL:$1|byte}}",
        "ncategories": "$1 {{PLURAL:$1|kategori|kategorier}}",
        "ninterwikis": "$1 {{PLURAL:$1|interwiki|interwikier}}",
        "nlinks": "$1 {{PLURAL:$1|lenke|lenker}}",
        "unusedimages": "Ubrukte filer",
        "wantedcategories": "Ønskede kategorier",
        "wantedpages": "Etterspurte sider",
+       "wantedpages-summary": "Liste av ikke-eksisterende sider med flest lenker mot dem, bortsett fra omdirigeringer. Den siste gruppen finnes gjennom [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Ugyldig tittel i resultatene: $1",
        "wantedfiles": "Ønskede filer",
        "wantedfiletext-cat": "Følgende filer refereres, men eksisterer ikke. Filer fra fremmede samlinger kan listes selv om de ikke finnes. Alle slik falske treff vil <del>strykes</del>. I tillegg er sider som har innebygde, ikke-eksisterende filer listet opp i [[:$1]].",
        "thumbnail_image-missing": "Filen ser ut til å mangle: $1",
        "thumbnail_image-failure-limit": "Det har vært for mange nylige forsøk ($1 eller flere) på å gjengi dette miniatyrbildet. Vennligst prøv igjen senere.",
        "import": "Importer sider",
-       "importinterwiki": "Transwiki-importering",
-       "import-interwiki-text": "Velg en wiki og en side å importere. Revisjonsdatoer og bidragsyteres navn blir bevart. Alle transwiki-importeringer listes i [[Special:Log/import|importloggen]].",
+       "importinterwiki": "Importere fra en annen wiki",
+       "import-interwiki-text": "Velg en wiki og en side å importere.\nRevisjonsdatoer og bidragsyteres navn blir bevart. Alle transwiki-importeringer listes i [[Special:Log/import|importloggen]].",
        "import-interwiki-sourcewiki": "Kildewiki:",
        "import-interwiki-sourcepage": "Kildeside:",
        "import-interwiki-history": "Kopier all historikk for denne siden",
        "import-rootpage-nosubpage": "Navnerommet \"$1\" til grunnsiden tillater ikke undersider.",
        "importlogpage": "Importlogg",
        "importlogpagetext": "Administrativ import av sider med redigeringshistorikk fra andre wikier.",
-       "import-logentry-upload": "importerte [[$1]] ved opplasting",
        "import-logentry-upload-detail": "{{PLURAL:$1|\\Én revisjon|$1 revisjoner}} er importert",
-       "import-logentry-interwiki": "transwikiimporterte $1",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|Én revisjon|$1 revisjoner}} er importert fra $2",
        "javascripttest": "JavaScript-testing",
        "javascripttest-pagetext-noframework": "Denne siden er reservert for å kjøre JavaScript-tester.",
        "version-parser-function-hooks": "Parserfunksjoner",
        "version-hook-name": "Navn",
        "version-hook-subscribedby": "Brukes av",
-       "version-version": "(versjon $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[uten navn]",
        "version-license": "Lisens",
        "version-ext-license": "Lisens",
        "revdelete-uname-unhid": "brukernavn synlig",
        "revdelete-restricted": "begrensninger gjelder også administratorer",
        "revdelete-unrestricted": "fjernet begrensninger for administratorer",
+       "logentry-block-block": "$1 {{GENDER:$2|blokkerte}} {{GENDER:$4|$3}} med en utløpstid på $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|opphevet blokkeringen av}} {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|endret}} blokkeringsinnstillingen av {{GENDER:$4|$3}} med en utløpstid på $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|blokkerte}} {{GENDER:$4|$3}} med en utløpstid på $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|endret}} blokkeringsinnstillingen for {{GENDER:$4|$3}} med en utløpstid på $5 $6",
        "logentry-merge-merge": "$1 {{GENDER:$2|slo sammen}} $3 i $4 (versjonene t.o.m. $5)",
        "logentry-move-move": "$1 {{GENDER:$2|flyttet}} siden $3 til $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|flyttet}} siden $3 til $4 uten å etterlate en omdirigering",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|deaktiverte}} taggen «$4» for bruk av brukere og roboter",
        "rightsnone": "(ingen)",
        "revdelete-summary": "redigeringssammendrag",
+       "feedback-adding": "Tilføyer tilbakmelding til side ...",
+       "feedback-back": "Tilbake",
+       "feedback-bugcheck": "Suprert! Bare sjekk at den ikke er en av de [$1 kjente feilene]",
+       "feedback-bugnew": "Jeg sjekket. Rapporter en ny bug.",
        "feedback-bugornote": "Hvis du er klar til å sende inn en detaljert feilrapport, vennligst [$1 rapporter en feil].\nOm det ikke er tilfellet, kan du bruke det enkle skjemaet som du finner under. Kommentaren din vil bli lagt til siden \"[$3 $2]\", sammen med brukernavnet ditt og informasjon om hvilken nettleser du bruker.",
-       "feedback-subject": "Emne:",
-       "feedback-message": "Melding:",
        "feedback-cancel": "Avbryt",
-       "feedback-submit": "Send tilbakemelding",
-       "feedback-adding": "Tilføyer tilbakmelding til side ...",
+       "feedback-close": "Utført",
+       "feedback-external-bug-report-button": "Registrer en teknisk sak",
+       "feedback-dialog-title": "Send tilbakemelding",
+       "feedback-error-title": "Feil",
        "feedback-error1": "Feil: Ukjent resultat fra API",
        "feedback-error2": "Feil: Redigering feilet",
        "feedback-error3": "Feil: Ingen respons fra API",
+       "feedback-message": "Melding:",
+       "feedback-subject": "Emne:",
+       "feedback-submit": "Send",
        "feedback-thanks": "Din tilbakemelding til siden \"[ $2  $1 ]\" er sendt. Takk skal du ha!",
-       "feedback-close": "Utført",
-       "feedback-bugcheck": "Suprert! Bare sjekk at den ikke er en av de [$1 kjente feilene]",
-       "feedback-bugnew": "Jeg sjekket. Rapporter en ny bug.",
+       "feedback-thanks-title": "Takk!",
        "searchsuggest-search": "Søk",
        "searchsuggest-containing": "inneholder …",
        "api-error-badaccess-groups": "Du har ikke tillatelse til å laste opp filer til denne wikien.",
index 090503a..31e0f6b 100644 (file)
@@ -15,7 +15,8 @@
                        "Ævar Arnfjörð Bjarmason <avarab@gmail.com>",
                        "לערי ריינהארט",
                        "아라",
-                       "Kolega2357"
+                       "Kolega2357",
+                       "Macofe"
                ]
        },
        "tog-underline": "Verwiezingen onderstrepen",
        "createaccounterror": "Kon de gebrukersnaam niet anmaken: $1",
        "nocookiesnew": "De gebrukersnaam is an-emaakt, mer je bin niet an-emeld.\n{{SITENAME}} gebruuk scheumbestaanden (cookies) um gebrukers an te melden.\nJe hebben disse scheumbestaanden uutezet.\nZet ze an, en meld daornao an mit de nieje gegevens.",
        "nocookieslogin": "t Anmelden is mislokt umdat de webkieker gien scheumbestaanden (cookies) an hef staon. Probeer t aksepteren van scheumbestaanden an te zetten en daornao opniej an te melden.",
-       "nocookiesfornew": "De gebruker is niet an-emaakt, umdat de bron niet bevestigd kon wörden.\nZörg derveur da'j scheumbestaanden (cookies) an hebben staon, herlaoj disse zied en probeer t opniej.",
+       "nocookiesfornew": "De gebruker is niet an-emaakt, umdat de bron niet bevestigd kon wörden.\nZörg derveur da'j scheumbestaanden (cookies) an hebben staon, herlaoi disse zied en probeer t opniej.",
        "noname": "Je mutten n gebrukersnaam opgeven.",
        "loginsuccesstitle": "Suksesvol an-emeld",
        "loginsuccess": "Je bin noen an-emeld bie {{SITENAME}} as \"$1\".",
        "revdelete-show-file-confirm": "Bi'j der wisse van da'j de vortedaone versie van t bestaand \"<nowiki>$1</nowiki>\" van $2 um $3 bekieken willen?",
        "revdelete-show-file-submit": "Ja",
        "logdelete-selected": "{{PLURAL:$1|Ekeuzen logboekboekaksie|Ekeuzen logboekaksies}}:",
+       "revdelete-text-text": "Vortedaone versies bin nog altied zichtbaor in de geschiedenisse, mer delen van de inhoud bin niet openbaor.",
+       "revdelete-text-file": "Vortedaone versies bin nog altied zichtbaor in de bestaandsgeschiedenisse, mer delen van de inhoud bin niet openbaor.",
+       "revdelete-text-others": "Aandere beheerders kunnen de verbörgen inhoud nog altied inzien en weer zichtbaor maken, behalven as der anvullende beparkingen in-esteld bin.",
        "revdelete-confirm": "Bevestig da'j dit doon wollen, da'j de gevolgen dervan begriepen en da'j t doon in overeenstemming mit t geldende [[{{MediaWiki:Policy-url}}|beleid]].",
        "revdelete-suppress-text": "Onderdrokken ma'j '''allinnig''' gebruken in de volgende gevallen:\n* Ongepassen persoonlike informasie\n*: ''adressen en tillefoonnummers, burgerservicenummers, en gao zo mer deur.''",
        "revdelete-legend": "Stel versiebeparkingen in:",
        "suppressionlog": "Verbargingslogboek",
        "suppressionlogtext": "In de onderstaande lieste staon de vortedaone ziejen en blokkeringen die veur beheerders verbörgen bin. \nIn de [[Special:BlockList|blokkeerlieste]] bin de blokkeringen, die noen van toepassige bin, te bekieken.",
        "mergehistory": "Geschiedenisse van ziejen bie mekaar doon",
-       "mergehistory-header": "Via disse zied ku'j versies uut de geschiedenisse van n bronzied mit n niejere zied samenvoegen. Zörg derveur dat disse versies uut de geschiedenisse histories juus bin.",
+       "mergehistory-header": "Via disse zied ku'j versies uut de geschiedenisse van n bronzied mit n niejere zied samenvoegen. Zörg derveur dat disse versies uut de geschiedenisse histories juust bin.",
        "mergehistory-box": "Geschiedenisse van twee ziejen bie mekaar doon:",
        "mergehistory-from": "Bronzied:",
        "mergehistory-into": "Bestemmingszied:",
        "mimesearch": "Zeuken op MIME-type",
        "mimesearch-summary": "Op disse spesiale zied kunnen de bestaanden naor t MIME-type efiltreerd wörden. In de invoer mut altied t media- en subtype staon, bieveurbeeld: <code>aofbeelding/jpeg</code>.",
        "mimetype": "MIME-type:",
-       "download": "binnenhaolen",
+       "download": "neerlaojen",
        "unwatchedpages": "Ziejen die niet evolgd wörden",
        "listredirects": "Lieste van deurverwiezingen",
        "listduplicatedfiles": "Lieste mit bestaanden mit duplikaoten",
        "import-rootpage-nosubpage": "In de naamruumte \"$1\" van de baosiszied is t anmaken van onderziejen niet meugelik.",
        "importlogpage": "Invoerlogboek",
        "importlogpagetext": "Administratieve invoer van ziejen mit geschiedenisse van aandere wiki's.",
-       "import-logentry-upload": "hef [[$1]] in-evoerd",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|versie|versies}}",
-       "import-logentry-interwiki": "transwiki $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|versie|versies}} van $2",
        "javascripttest": "JavaScript testen",
        "javascripttest-pagetext-noframework": "Disse zied is ereserveerd veur t uutvoeren van JavaScript-testen.",
        "version-parser-function-hooks": "Parserfunksiehoeken",
        "version-hook-name": "Hooknaam",
        "version-hook-subscribedby": "In-eschreven deur",
-       "version-version": "(Versie $1)",
+       "version-version": "($1)",
        "version-license": "MediaWiki-lisensie",
        "version-ext-colheader-version": "Versie",
        "version-ext-colheader-license": "Lisensie",
        "revdelete-uname-unhid": "gebrukersnaam zichtbaor emaakt",
        "revdelete-restricted": "hef beparkingen an beheerders op-eleg",
        "revdelete-unrestricted": "hef beparkingen veur beheerders deraof ehaold",
+       "logentry-block-block": "$1 {{GENDER:$2|hef}} {{GENDER:$4|$3}} eblokkeerd veur de duur van $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|hef}} {{GENDER:$4|$3}} eblokkeerd veur de duur van $5 $6",
        "logentry-move-move": "$1 hef de zied $3 {{GENDER:$2|herneumd}} naor $4",
        "logentry-move-move-noredirect": "$1 hef de zied $3 {{GENDER:$2|herneumd}} naor $4 zonder n deurverwiezing achter te laoten",
        "logentry-move-move_redir": "$1 hef de zied $3 {{GENDER:$2|herneumd}} naor $4 over n deurverwiezing heer",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|is}} automaties bevorderd van $4 tot $5",
        "rightsnone": "(gien)",
        "revdelete-summary": "samenvatting bewarken",
+       "feedback-adding": "Joew kommentaar wörden op de zied ezet...",
+       "feedback-bugcheck": "Mooi! Kiek nao of t niet al één van de [$1 bekende problemen] is.",
+       "feedback-bugnew": "Ik heb t nao-ekeken. Meld n nieje programmafout",
        "feedback-bugornote": "A'j zovere bin um n technies probleem nauwkeurig te beschrieven, [$1 meld dan n programmafout].\nAanders ku'j oek t eenvoudige formulier hieronder gebruken. Joew kommentaar zal op de zied \"[$3 $2]\" ezet wörden, samen mit joew gebrukersnaam en de webkieker die'j gebruken.",
-       "feedback-subject": "Onderwarp:",
-       "feedback-message": "Bericht:",
        "feedback-cancel": "Aofbreken",
-       "feedback-submit": "Kommentaar geven",
-       "feedback-adding": "Joew kommentaar wörden op de zied ezet...",
+       "feedback-close": "Ree",
        "feedback-error1": "Fout: onbekend resultaot uut de API",
        "feedback-error2": "Fout: de bewarking is mislokt",
        "feedback-error3": "Fout: gien reaksie van de API",
+       "feedback-message": "Bericht:",
+       "feedback-subject": "Onderwarp:",
+       "feedback-submit": "Opslaon",
        "feedback-thanks": "Bedankt! Joew kommentaar is op de zied \"[$2 $1]\" ezet.",
-       "feedback-close": "Ree",
-       "feedback-bugcheck": "Mooi! Kiek nao of t niet al één van de [$1 bekende problemen] is.",
-       "feedback-bugnew": "Ik heb t nao-ekeken. Meld n nieje programmafout",
        "searchsuggest-search": "Zeuken / zuken / zuiken",
        "searchsuggest-containing": "bevat...",
        "api-error-badaccess-groups": "Je maggen gien bestaanden in disse wiki oplaojen.",
index 6e349e3..f8301c3 100644 (file)
        "import-invalid-interwiki": "Ut dat angevene Wiki is en Import nich mööglich.",
        "importlogpage": "Import-Logbook",
        "importlogpagetext": "Administrativen Import vun Sieden mit Versionsgeschicht vun annere Wikis.",
-       "import-logentry-upload": "hett „[[$1]]“ ut Datei importeert",
        "import-logentry-upload-detail": "{{PLURAL:$1|ene Version|$1 Versionen}}",
-       "import-logentry-interwiki": "hett „$1“ importeert (Transwiki)",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|ene Version|$1 Versionen}} vun $2",
        "tooltip-pt-userpage": "Dien Brukersied",
        "tooltip-pt-anonuserpage": "De Brukersiet för de IP-Adress ünner de du schriffst",
        "version-parser-function-hooks": "Parser-Funkschonen",
        "version-hook-name": "Hook-Naam",
        "version-hook-subscribedby": "Opropen vun",
-       "version-version": "(Version $1)",
+       "version-version": "($1)",
        "version-license": "Lizenz",
        "version-poweredby-credits": "Dit Wiki bruukt '''[https://www.mediawiki.org/ MediaWiki]''', Copyright © 2001–$1 $2.",
        "version-poweredby-others": "annere",
        "sqlite-no-fts": "$1 ahn Stöhn för Vulltext-Söök",
        "revdelete-restricted": "Inschränkungen för Administraters instellt",
        "revdelete-unrestricted": "Inschränkungen för Administraters rutnahmen",
+       "logentry-block-block": "$1 {{GENDER:$2|block}} {{GENDER:$4|$3}} för en Tiedruum vun $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|block}} {{GENDER:$4|$3}} för en Tiedruum vun $5 $6",
        "rightsnone": "(kene)",
        "revdelete-summary": "Tosamenfaten",
        "searchsuggest-search": "Söken",
index fd2f490..7e10184 100644 (file)
                        "Reedy",
                        "ne.wikipedia.org sysops",
                        "सरोज कुमार ढकाल",
-                       "아라"
+                       "아라",
+                       "Steinsplitter",
+                       "Macofe",
+                       "बिप्लब आनन्द"
                ]
        },
        "tog-underline": "सम्बन्ध निम्न रेखाङ्कन:",
@@ -89,7 +92,7 @@
        "october": "अक्टोबर",
        "november": "नोभेम्बर",
        "december": "डिसेम्बर",
-       "january-gen": "à¤\9cà¥\87नवरà¥\80",
+       "january-gen": "जनवरी",
        "february-gen": "फेब्रुअरी",
        "march-gen": "मार्च",
        "april-gen": "एप्रील",
        "history_short": "पृष्ठको इतिहास",
        "updatedmarker": "मेरो अन्तिम भ्रमण पछि अद्यतन गरिएको",
        "printableversion": "छाप्नयोग्य संस्करण",
-       "permalink": "स्थायीलिङ्क",
+       "permalink": "स्थायी लिङ्क",
        "print": "छाप्नुहोस्",
        "view": "अवलोकन गर्ने",
        "view-foreign": " $1 हेर्नुहोस",
-       "edit": "परिवरà¥\8dतन",
+       "edit": "समà¥\8dपादन",
        "edit-local": "स्थानिय वर्णन सम्पादन गर्नुहोस्",
        "create": "सृजना गर्नुहोस्",
        "create-local": "स्थानीय वर्णन थप्नुहोस",
        "disclaimers": "अस्विकारोक्तिहरु",
        "disclaimerpage": "Project:सामान्य अस्वीकारोक्ति",
        "edithelp": "सम्पादन सहायता",
-       "mainpage": "मुख्य पृष्ठ",
-       "mainpage-description": "मुख्य पृष्ठ",
+       "helppage-top-gethelp": "सहायता",
+       "mainpage": "गृह पृष्ठ",
+       "mainpage-description": "गृह पृष्ठ",
        "policy-url": "Project:निति",
        "portal": "सामाजिक पोर्टल",
        "portal-url": "Project:सामाजिक पोर्टल",
        "hidetoc": "लुकाउनुहोस्",
        "collapsible-collapse": "खुम्च्याउने",
        "collapsible-expand": "फैलाउ",
+       "confirmable-confirm": "तपाईं {{GENDER:$1|लिङ्ग}} हो?",
        "confirmable-yes": "हो",
        "confirmable-no": "होइन",
        "thisisdeleted": "$1 हेर्ने या पूर्वरुपमा फर्काउने हो ?",
        "login-abort-generic": "तपाईंको प्रवेश असफल भयो - छोड़ियो",
        "loginlanguagelabel": "भाषा: $1",
        "suspicious-userlogout": "तपाईंको निर्गमन अनुरोध अस्विकार गरिन्छ किन कि यो खराब ब्राउजर वा क्यासिङ प्रोक्सिले पठाएको जस्तो देखिन्छ।",
-       "pt-login": "प्रवेश",
+       "pt-login": "प्रवेश (लग ईन)",
        "pt-login-button": "प्रवेश",
        "pt-createaccount": "खाता खोल्नुहोस्",
        "pt-userlogout": "निर्गमन (लग आउट)",
        "subject": "विषय/शीर्षक:",
        "minoredit": "यो सानो सम्पादन हो",
        "watchthis": "यो पृष्ठ अवलोकन गर्नुहोस्",
-       "savearticle": "सà¤\82ग्रह गर्ने",
+       "savearticle": "सà¤\99à¥\8dग्रह गर्ने",
        "preview": "पूर्वावलोकन",
        "showpreview": "पूर्वालोकन देखाउनुहोस्",
        "showdiff": "परिवर्तन देखाउनुहोस्",
-       "anoneditwarning": "'''चेतावनी:''' तपाईँले प्रवेश गर्नु भएको छैन।\nतपाईँको IP ठेगाना पृष्ठसम्पादन इतिहासमा दर्तागरिने छ ।",
+       "anoneditwarning": "<strong>चेतावनी:</strong> तपाईँले प्रवेश गर्नु भएको छैन । तपाईँको आइपि ठेगाना पृष्ठ सम्पादन इतिहासमा दर्ता गरिने छ र यो सबैले हेर्न सक्छन । यदि तपाईं <strong>[$1 लगईन]</strong> वा <strong>[$2 नयाँ खाता बनाउने] गर्नुभयो भने तपाईंद्वारा गरिएको सम्पादन तपाईंको प्रयोगकर्तानाममा जोडिनेछ।",
        "anonpreviewwarning": "''तपाईंले प्रवेश गर्नु भएको छैन। संग्रह (Save) गरेको खण्डमा पृष्ठको इतिहासमा तपाईंको IP ठेगाना अंकित गरिनेछ।''",
        "missingsummary": "'''यादगर्नुहोस् :''' तपाईले सम्पादन सारांश दिनुभएको छैन ।\nयदि तपाईले संग्रहगर्नुहोस्  थिच्नुभयो भने , सारांश बिना नै संग्रहित गरिने छ ।",
        "missingcommenttext": "कृपया टिप्पणी प्रविष्ठ गर्नुहोस् ।",
        "searchprofile-advanced": "उन्नत",
        "searchprofile-articles-tooltip": "$1 मा खोज्ने",
        "searchprofile-images-tooltip": "फाइलहरु खोज्ने",
-       "searchprofile-everything-tooltip": "सबै सामग्री खोज्ने(वार्तालाप समेत )",
+       "searchprofile-everything-tooltip": "सबै सामग्री खोज्ने (वार्तालाप समेत )",
        "searchprofile-advanced-tooltip": "अनुकुल नेमस्पेसमा खोज्ने",
        "search-result-size": "$1 ({{PLURAL:$2|1 शव्द|$2 शव्दहरु}})",
        "search-result-category-size": "{{PLURAL:$1|एक सदस्य|$1 सदस्यहरु}} ({{PLURAL:$2|1 उपश्रेणी|$2  उपश्रेणीहरु}}, {{PLURAL:$3|एउटा फाइल|$3 फाइलहरु}})",
        "recentchanges-label-minor": "यो साधारण सम्पादन हो",
        "recentchanges-label-bot": "यो सम्पादन बोटद्वारा गरिएको थियो",
        "recentchanges-label-unpatrolled": "यो सम्पादन अहिले सम्म पट्रोल गरिएको छैन",
+       "recentchanges-legend-heading": "'''आदर्श वाक्य:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|list of new pages]] यो पनि हेर्नुहोस्)",
        "recentchanges-legend-plusminus": "(''±१२३'')",
        "rcnotefrom": "'''$2''' देखिका परिवर्तनहरु तल ('''$1''' सम्मका देखाइन्छ)।",
        "recentchangeslinked": "सम्बन्धित परिवर्तनहरू",
        "recentchangeslinked-feed": "सम्बन्धित परिवर्तनहरू",
        "recentchangeslinked-toolbox": "सम्बन्धित परिवर्तनहरू",
-       "recentchangeslinked-title": "\"$1\"सम्वन्धित परिवर्तनसँग",
-       "recentchangeslinked-summary": "यà¥\8b à¤¸à¥\82à¤\9aà¥\80 à¤¨à¤¿à¤°à¥\8dदिषà¥\8dà¤\9f à¤ªà¥\83षà¥\8dठ (वा à¤¨à¤¿à¤°à¥\8dदिषà¥\8dà¤\9f à¤¶à¥\8dरà¥\87णà¥\80)सित à¤\9cà¥\8bड़िà¤\8fà¤\95ा  à¤­à¤°à¥\8dà¤\96रà¥\88 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤­à¤\8fà¤\95ा à¤ªà¥\83षà¥\8dठà¤\95à¥\8b  à¤¹à¥\8b। [[Special:Watchlist|तपाà¤\88à¤\81à¤\95à¥\8b à¤¨à¤¿à¤\97रानà¥\80 à¤¸à¥\82à¤\9aà¥\80]]à¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\81 '''à¤\97ाढा à¤\85à¤\95à¥\8dषरमा''' छन्।",
+       "recentchangeslinked-title": "\"$1\" सँग सम्बन्धित परिवर्तन",
+       "recentchangeslinked-summary": "यà¥\8b à¤¸à¥\82à¤\9aà¥\80 à¤¨à¤¿à¤°à¥\8dदिषà¥\8dà¤\9f à¤ªà¥\83षà¥\8dठ (वा à¤¨à¤¿à¤°à¥\8dदिषà¥\8dà¤\9f à¤¶à¥\8dरà¥\87णà¥\80)सित à¤\9cà¥\8bडिà¤\8fà¤\95ा à¤­à¤°à¥\8dà¤\96रà¥\88 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन à¤­à¤\8fà¤\95ा à¤ªà¥\83षà¥\8dठà¤\95à¥\8b  à¤¹à¥\8b। [[Special:Watchlist|तपाà¤\88à¤\81à¤\95à¥\8b à¤§à¥\8dयानसà¥\82à¤\9aà¥\80]]à¤\95ा à¤ªà¥\83षà¥\8dठहरà¥\81 <strong>à¤\97ाढा à¤\85à¤\95à¥\8dषरमा</strong> छन्।",
        "recentchangeslinked-page": "पृष्ठ नाम:",
        "recentchangeslinked-to": "यसको सट्टा यो पृष्ठसँग जोडिएका पृष्ठहरुको परिवर्तन देखाउने",
        "upload": "फाइल उर्ध्वभरण",
        "suppress": "अतिदृष्टि",
        "booksources": "किताबका श्रोतहरु",
        "booksources-search-legend": "किताबका श्रोतहरु खोज्ने",
+       "booksources-search": "खोज",
        "specialloguserlabel": "निष्पादक:",
        "speciallogtitlelabel": "लक्ष्य (शीर्षक वा प्रयोगकर्ता)",
        "log": "लगहरु",
        "import-invalid-interwiki": "खुलाइएको विकिबाट आयात गर्न सकिएन",
        "importlogpage": "आयात सूची",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|संशोधन|संशोधनहरु}}",
-       "import-logentry-interwiki": " $1लाई अन्तरविकिकरण गरियो",
        "import-logentry-interwiki-detail": "$2 देखि $1 {{PLURAL:$1|पुनरावलोकन|पुनरावलोकनहरु}}",
        "tooltip-pt-userpage": "तपाईको प्रयोगकर्ता पृष्ठ",
        "tooltip-pt-anonuserpage": "तपाईले जुन IP ठेगानाको रुपमा सम्पादन गर्दै हुनुहुन्छ , त्यसको प्रयोगकर्ता पृष्ठ निम्न छ :",
        "tooltip-pt-mycontris": "तपाईको योगदानको सूची",
        "tooltip-pt-login": "तपाईँलाई प्रवेशगर्न सुझाव दिइन्छ ; तर यो जरुरी भने छैन",
        "tooltip-pt-logout": "निर्गमन (लग आउट) गर्नुहोस्",
+       "tooltip-pt-createaccount": "तपाईंलाई खाता बनाउन र लग इन गर्न हामि प्रोत्साहित गर्छौ; तथापि, यो अनिवार्य भने छैन।",
        "tooltip-ca-talk": "सामग्री पृष्ठबारेमा छलफल",
-       "tooltip-ca-edit": "तपाईँले यो पृष्ठ सम्पादन गर्न सक्नुहुन्छ ।\nकृपया संग्रह ‍पहिले पूर्वावलोकन बटन प्रयोग गर्नुहोला ।",
+       "tooltip-ca-edit": "तपाईँले यो पृष्ठ सम्पादन गर्न सक्नुहुन्छ । कृपया सङ्ग्रह ‍गर्नु पूर्व पूर्वावलोकन बटन प्रयोग गर्नुहोला ।",
        "tooltip-ca-addsection": "नयाँ खण्ड सुरु गर्नुहोस्",
        "tooltip-ca-viewsource": "यो पृष्ठ सुरक्षित गरिएको छ। यसको श्रोत हेर्न सक्नुहुन्छ।",
        "tooltip-ca-history": "यस पृष्ठको पहिलेका पुनरावलोकनहरु",
        "tooltip-n-mainpage": "मुख्य पृष्ठमा जाने",
        "tooltip-n-mainpage-description": "मुख्य पृष्ठमा जानुहो्स्",
        "tooltip-n-portal": "आयोजनाका बारेमा , तपाईँ के गर्न सक्नुहुन्छ , सामग्री कहाँ भेट्टाउने",
-       "tooltip-n-currentevents": "हालैको घटनाको बारेमा पृष्ठभूमि जानकारी पत्तालगाउनुहोस्",
+       "tooltip-n-currentevents": "हालैको घटनाको बारेमा पृष्ठभूमि जानकारी पत्ता लगाउनुहोस्",
        "tooltip-n-recentchanges": "विकिमा गरिएका हालैका परिवर्तनहरुको सूची",
        "tooltip-n-randompage": "जुन कुनै पृष्ठ खोल्ने",
        "tooltip-n-help": "पत्तालगाउनु पर्ने स्थान",
-       "tooltip-t-whatlinkshere": "यà¥\8b à¤¸à¤¿à¤¤ à¤\9cà¥\8bड़िएका सबै विकि पृष्ठहरुको सूची",
+       "tooltip-t-whatlinkshere": "यà¥\8b à¤¸à¤\81à¤\97 à¤\9cà¥\8bडिएका सबै विकि पृष्ठहरुको सूची",
        "tooltip-t-recentchangeslinked": "यस पृष्ठमा जोडिएका पृष्ठहरुमा हालैको परिवर्तन",
        "tooltip-feed-rss": "यो पृष्ठको लागि RSS फिड",
-       "tooltip-feed-atom": "यो पृष्ठको लागि Atom फिड",
+       "tooltip-feed-atom": "यो पृष्ठको लागि एटम फिड",
        "tooltip-t-contributions": "यस प्रयोगकर्ताका योगदानहरूको सूची हेर्नुहोस्",
        "tooltip-t-emailuser": "यो प्रयोगकर्तालाई इमेल पठाउनुहोस्",
        "tooltip-t-upload": "फाइल अपलोड गर्ने",
        "spambot_username": "MediaWiki स्पाम सर-सफाइ",
        "spam_reverting": "$1 मा कडीहरू  नभएका पुरानो अवतरणमा पुनर्स्थापित गर्दै",
        "spam_blanking": "$1 का सबै अवतरणहरूमा कडीहरू  भेटिए, मेटाएर खालि गर्दै",
+       "simpleantispam-label": "ऐन्टी-स्प्याम जाँच।\nयसलाई <strong>नहीं</strong> भर्ने!",
        "pageinfo-title": " \"$1\"को लागि जाकारी",
        "pageinfo-header-basic": "साधारण जानकारी",
        "pageinfo-header-edits": "सम्पादन इतिहास",
        "file-info-size-pages": "$1 × $2 पिक्सेलहरु, फाइल आकार: $3, MIME प्रकार: $4, $5 {{PLURAL:$5|पृष्ठ|पृष्ठहरु}}",
        "file-nohires": "उच्च रिजोल्युशन अनुपलब्ध",
        "svg-long-desc": "SVG फाइल,साधारण $1 × $2 पिक्सेलहरु, फाइल आकार: $3",
-       "show-big-image": "पà¥\82रा à¤°à¤¿à¤\9cà¥\8bलà¥\8dयà¥\81शन",
-       "show-big-image-preview": "यस पूर्व रुपको आकार: $1.",
-       "show-big-image-other": "अरु रिजोल्युशनहरु: $1।",
+       "show-big-image": "मà¥\82ल à¤«à¤¾à¤\87ल",
+       "show-big-image-preview": "यस पूर्व रुपको आकार: $1",
+       "show-big-image-other": "अरु {{PLURAL:$2|resolution|रिजोल्युशनहरु}}: $1।",
        "show-big-image-size": "$1 × $2 पिक्सल",
        "file-info-gif-looped": "चकृय गरिएको",
        "file-info-gif-frames": "$1 {{PLURAL:$1|फ्रेम|फ्रेमहरु}}",
        "version-parser-function-hooks": "पार्सर फङ्सन हुक",
        "version-hook-name": "हुक नाम",
        "version-hook-subscribedby": "ग्राह्यता गर्ने",
-       "version-version": "(संस्करण $1)",
+       "version-version": "($1)",
        "version-svn-revision": "(r$2)",
        "version-license": "इजाजतपत्र",
        "version-poweredby-credits": "यो विकी '''[https://www.mediawiki.org/ मिडियाविकि]''' द्वारा सशक्तिकरण गरिएको छ, copyright © सन् २००१-$1 $2.",
        "revdelete-uname-unhid": "प्रयोगकर्ता देखाइएको",
        "revdelete-restricted": "प्रबन्धकहरुमाथि सीमितता लागू गरियो",
        "revdelete-unrestricted": "प्रवन्धककोलागि निषेधहरु हटाइयो ।",
-       "logentry-move-move": "$1 द्वारा $3 पृष्ठलाई $4 मा सारियो",
+       "logentry-move-move": "$1 {{GENDER:$2|द्वारा}} $3 पृष्ठलाई $4 मा सारियो",
        "rightsnone": "(कुनैपनि होइन)",
        "revdelete-summary": "सम्पादन सारांश",
-       "feedback-subject": "विषय:",
-       "feedback-message": "सन्देश:",
        "feedback-cancel": "रद्द गर्ने",
-       "feedback-submit": "प्रतिकृया बुझाउनुहोस्",
-       "feedback-error2": "त्रुटि: सम्पादन असफल",
        "feedback-close": "गरियो",
+       "feedback-error2": "त्रुटि: सम्पादन असफल",
+       "feedback-message": "सन्देश:",
+       "feedback-subject": "विषय:",
+       "feedback-submit": "बुझाउने",
        "searchsuggest-search": "खोज",
        "api-error-badaccess-groups": "यस विकिमा तपाईंलाई फाइल अपलोड गर्ने अनुमति छैन।",
        "api-error-copyuploaddisabled": "यस सर्वरमा URL द्वारा अपलोड गर्ने व्यवस्था निस्क्रिय गरिएकोछ।",
index aa4b6d9..18e08e8 100644 (file)
@@ -65,7 +65,9 @@
                        "Mirolith",
                        "Akoopal",
                        "Sikjes",
-                       "Robin0van0der0vliet"
+                       "Robin0van0der0vliet",
+                       "Kthoelen",
+                       "Mbch331"
                ]
        },
        "tog-underline": "Koppelingen onderstrepen:",
        "disclaimers": "Voorbehoud",
        "disclaimerpage": "Project:Algemeen voorbehoud",
        "edithelp": "Hulp bij bewerken",
+       "helppage-top-gethelp": "Help",
        "mainpage": "Hoofdpagina",
        "mainpage-description": "Hoofdpagina",
        "policy-url": "Project:Beleid",
        "import-rootpage-nosubpage": "In de naamruimte \"$1\" van de basispagina is het aanmaken van subpagina's niet mogelijk.",
        "importlogpage": "Importlogboek",
        "importlogpagetext": "Administratieve import van pagina's met geschiedenis van andere wiki's.",
-       "import-logentry-upload": "heeft [[$1]] geïmporteerd via een bestandsupload",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|versie|versies}} geïmporteerd",
-       "import-logentry-interwiki": "importeerde $1 via transwiki",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|versie|versies}} geïmporteerd uit $2",
        "javascripttest": "JavaScript testen",
        "javascripttest-pagetext-noframework": "Deze pagina is gereserveerd voor het uitvoeren van JavaScripttesten.",
        "revdelete-uname-unhid": "gebruikersnaam zichtbaar gemaakt",
        "revdelete-restricted": "heeft beperkingen aan beheerders opgelegd",
        "revdelete-unrestricted": "heeft beperkingen voor beheerders opgeheven",
+       "logentry-block-block": "$1 {{GENDER:$2|heeft}} {{GENDER:$4|$3}} geblokkeerd voor de duur van $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|heeft}} {{GENDER:$4|$3}} gedeblokkeerd",
+       "logentry-block-reblock": "$1 {{GENDER:$2|heeft}} de blokkade voor {{GENDER:$4|$3}} aangepast. Deze vervalt nu op $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|heeft}} {{GENDER:$4|$3}} geblokkeerd voor de duur van $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|heeft}} de blokkade voor {{GENDER:$4|$3}} aangepast. Deze vervalt nu op $5 $6",
        "logentry-merge-merge": "$1 {{GENDER:$2|heeft}} $3 samengevoegd naar $4 (versies tot en met $5)",
        "logentry-move-move": "$1 {{GENDER:$2|heeft}} pagina $3 hernoemd naar $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|heeft}} de pagina $3 hernoemd naar $4 zonder een doorverwijzing achter te laten",
        "logentry-managetags-create": "$1 heeft het label \"$4\" {{GENDER:$2|aangemaakt}}",
        "rightsnone": "(geen)",
        "revdelete-summary": "bewerkingssamenvatting",
+       "feedback-adding": "Uw terugkoppeling wordt aan de pagina toegevoegd...",
+       "feedback-back": "Terug",
+       "feedback-bugcheck": "Geweldig! Controleer even of het niet al één van de [$1 bekende problemen] is.",
+       "feedback-bugnew": "Heb ik gecontroleerd; nieuw probleem melden",
        "feedback-bugornote": "Als u zover bent om een technisch probleem in detail te beschrijven, [$1 rapporteer dan een bug].\nAnders kunt u ook het eenvoudige formulier hieronder gebruiken. Uw reactie wordt dan toegevoegd aan de pagina \"[$3 $2]\", samen met uw gebruikersnaam en de browser die u gebruikt.",
-       "feedback-subject": "Onderwerp:",
-       "feedback-message": "Bericht:",
        "feedback-cancel": "Annuleren",
-       "feedback-submit": "Terugkoppeling opslaan",
-       "feedback-adding": "Uw terugkoppeling wordt aan de pagina toegevoegd...",
+       "feedback-close": "Afgerond",
        "feedback-error1": "Fout: onbekend resultaat uit de API",
        "feedback-error2": "Fout: de bewerking is mislukt",
        "feedback-error3": "Fout: geen reactie van de API",
+       "feedback-message": "Bericht:",
+       "feedback-subject": "Onderwerp:",
+       "feedback-submit": "Opslaan",
        "feedback-thanks": "Bedankt! Uw terugkoppeling is op de pagina \"[$2 $1]\" geplaatst.",
-       "feedback-close": "Afgerond",
-       "feedback-bugcheck": "Geweldig! Controleer even of het niet al één van de [$1 bekende problemen] is.",
-       "feedback-bugnew": "Heb ik gecontroleerd; nieuw probleem melden",
+       "feedback-thanks-title": "Bedankt!",
        "searchsuggest-search": "Zoeken",
        "searchsuggest-containing": "bevat...",
        "api-error-badaccess-groups": "U mag geen bestanden uploaden in deze wiki.",
        "json-error-utf8": "Ongeldige UTF-8-tekens, mogelijk verkeerd gecodeerd",
        "json-error-recursion": "Een of meer recursieve verwijzingen in de waarde die moet worden gecodeerd",
        "json-error-inf-or-nan": "Een of meer NAN- of INF-waarden in de waarde die moet worden gecodeerd",
-       "json-error-unsupported-type": "Er is een waarde opgegeven van een type dat niet kan worden gecodeerd"
+       "json-error-unsupported-type": "Er is een waarde opgegeven van een type dat niet kan worden gecodeerd",
+       "headline-anchor-title": "Koppeling naar deze sectie maken"
 }
index b667237..4cad6dd 100644 (file)
@@ -21,7 +21,8 @@
                        "Ranveig",
                        "לערי ריינהארט",
                        "아라",
-                       "Gaute"
+                       "Gaute",
+                       "Macofe"
                ]
        },
        "tog-underline": "Strek under lenkjer:",
        "blocklogpage": "Blokkeringslogg",
        "blocklog-showlog": "Denne brukaren har tidlegare vorte blokkert.\nBlokkeringsloggen er sett opp nedanfor, som referanse.",
        "blocklog-showsuppresslog": "Denne brukaren har tidlegare vorte blokkert og skjult.\nLoggføringa er synt nedanfor som referanse:",
-       "blocklogentry": "Blokkerte «[[$1]]» med opphøyrstid $2 $3",
+       "blocklogentry": "blokkerte [[$1]] med opphøyrstid $2 $3",
        "reblock-logentry": "endra blokkeringsinnstillingar for [[$1]] med tida $2 $3",
        "blocklogtext": "Dette er ein logg over blokkeringar og oppheving av blokkeringar gjorde.\nIP-adresser som blir automatisk blokkerte er ikkje lista her. Sjå [[Special:BlockList|blokkeringslista]] for alle aktive blokkeringar.",
        "unblocklogentry": "oppheva blokkering av «$1»",
        "import-rootpage-nosubpage": "Namnerommet «$1» til rotsida tillèt ikkje undersider.",
        "importlogpage": "Importeringslogg",
        "importlogpagetext": "Administrativ import av sider med endringshistorikk frå andre wikiar.",
-       "import-logentry-upload": "importerte [[$1]] frå opplasta fil",
        "import-logentry-upload-detail": "{{PLURAL:$1|Éin versjon|$1 versjonar}}",
-       "import-logentry-interwiki": "overførte $1 mellom wikiar",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|Éin versjon|$1 versjonar}} frå $2",
        "javascripttest": "JavaScript-utrøyning",
        "javascripttest-pagetext-noframework": "Sida er reservert for køyring av JavaScript-utrøyningar.",
        "tooltip-ca-nstab-template": "Vis mal",
        "tooltip-ca-nstab-help": "Vis hjelpeside",
        "tooltip-ca-nstab-category": "Vis kategoriside",
-       "tooltip-minoredit": "Merk dette som småplukk",
+       "tooltip-minoredit": "Merk endringa som småplukk",
        "tooltip-save": "Lagra endringane dine",
        "tooltip-preview": "Førehandsvis endringane dine. Helst brukar du denne funksjonen før du lagrar.",
        "tooltip-diff": "Sjå kva endringar du gjorde i teksten",
        "spam_reverting": "Attenderullar til siste versjon utan lenkje til $1",
        "spam_blanking": "Alle versjonar inneheldt lenkje til $1, tømmer sida",
        "spam_deleting": "Alle versjonane inneheldt lenkjer til $1, slettar.",
-       "simpleantispam-label": "Antispam-kontroll.\n'''IKKJE''' fyll ut dette feltet!",
+       "simpleantispam-label": "Antispam-kontroll.\n<strong>IKKJE</strong> fyll ut dette feltet!",
        "pageinfo-title": "Informasjon om «$1»",
        "pageinfo-not-current": "Diverre er det umogeleg å gje ut denne informasjonen for gamle versjonar.",
        "pageinfo-header-basic": "Grunnleggjande informasjon",
        "version-parser-function-hooks": "Parserfunksjonstillegg",
        "version-hook-name": "Namn på tillegg",
        "version-hook-subscribedby": "Brukt av",
-       "version-version": "(versjon $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[utan namn]",
        "version-license": "MediaWiki-lisens",
        "version-ext-license": "Lisens",
        "tags-tag": "Merkenamn",
        "tags-display-header": "Utsjånad på endringslister",
        "tags-description-header": "Tyding",
+       "tags-source-header": "Kjelde",
        "tags-active-header": "Verksamt?",
        "tags-hitcount-header": "Merkte endringar",
+       "tags-actions-header": "Handlingar",
        "tags-active-yes": "Ja",
        "tags-active-no": "Nei",
+       "tags-source-extension": "Definert av ei utviding",
+       "tags-source-manual": "Brukt manuelt av brukarar og robotar",
+       "tags-source-none": "Ikkje lenger i bruk",
        "tags-edit": "endra",
+       "tags-delete": "slett",
+       "tags-activate": "slå på",
+       "tags-deactivate": "slå av",
        "tags-hitcount": "{{PLURAL:$1|éi endring|$1 endringar}}",
+       "tags-manage-no-permission": "Du har ikkje løyve til å handsama endringsmerke.",
+       "tags-create-heading": "Opprett nytt merke",
+       "tags-create-explanation": "Som standard vert nyoppretta merke gjorde tilgjengelege for brukarar og robotar.",
+       "tags-create-tag-name": "Merkenamn:",
+       "tags-create-reason": "Årsak:",
+       "tags-create-submit": "Opprett",
+       "tags-create-no-name": "Du må oppgje eit merkenamn.",
        "comparepages": "Samanlikna sider",
        "compare-page1": "Side 1",
        "compare-page2": "Side 2",
        "logentry-rights-autopromote": "$1 vart automatisk {{GENDER:$2|forfremja}} frå $4 til $5",
        "rightsnone": "(ingen)",
        "revdelete-summary": "Samandrag",
+       "feedback-adding": "Legg til attendemeldinga til sida...",
+       "feedback-bugcheck": "Bra! No lyt du berre sjå etter om han er ein av dei [$1 kjende feila].",
+       "feedback-bugnew": "Eg såg etter. Rapporter ein ny feil",
        "feedback-bugornote": "Er du klar til å skildra ein teknisk vanske i detalj, gjer vel å [$1 rapportera inn ein feil].\nOm ikkje kan du nytta det enkle skjemaet under. Merknaden din vert lagd til på sida «[$3 $2]», i lag med brukarnamnet ditt og kva for nettlesar du nyttar.",
-       "feedback-subject": "Emne:",
-       "feedback-message": "Melding:",
        "feedback-cancel": "Bryt av",
-       "feedback-submit": "Send attendemelding",
-       "feedback-adding": "Legg til attendemeldinga til sida...",
+       "feedback-close": "Gjort",
        "feedback-error1": "Feil: Ukjent resultat frå API",
        "feedback-error2": "Feil: Brigdinga gjekk ikkje",
        "feedback-error3": "Feil: Saknar svar frå API",
+       "feedback-message": "Melding:",
+       "feedback-subject": "Emne:",
+       "feedback-submit": "Send",
        "feedback-thanks": "Takk! Attendemeldinga di er lagd inn på sida «[$2 $1]».",
-       "feedback-close": "Gjort",
-       "feedback-bugcheck": "Bra! No lyt du berre sjå etter om han er ein av dei [$1 kjende feila].",
-       "feedback-bugnew": "Eg såg etter. Rapporter ein ny feil",
        "searchsuggest-search": "Søk",
        "searchsuggest-containing": "som inneheld …",
        "api-error-badaccess-groups": "Du har ikkje løyve til å lasta opp filer til wikien.",
        "mediastatistics-header-text": "Tekstformat",
        "mediastatistics-header-executable": "Kan køyrast",
        "mediastatistics-header-archive": "Komprimerte format",
-       "json-error-syntax": "Syntaksfeil"
+       "json-error-syntax": "Syntaksfeil",
+       "headline-anchor-title": "Lenk til denne bolken"
 }
index 1e1748a..b4cb832 100644 (file)
        "unusedimages": "Imatges orfanèls",
        "wantedcategories": "Categorias mai demandadas",
        "wantedpages": "Paginas mai demandadas",
+       "wantedpages-summary": "Aquesta pagina compta totes los ligams, encluses los inserits via de modèls de navigacion. Per una lista dels articles mai demandats, vejatz articles mai demandats, que comptabiliza pas que las referéncias que provenon de l'espaci de nom dels articles. Vejatz tanben lo '''articles mai demandats'''.",
        "wantedpages-badtitle": "Títol invalid dins los resultats : $1",
        "wantedfiles": "Fichièrs desirats",
        "wantedfiletext-cat": "Los fichièrs seguents son utilizats, mas existisson pas localament. Se se tròban sus un depaus partejat, pòdon èsser listats aicí, mentre que sián, de fach, ja disponibles. Totes aqueles falses positius seràn <del>raiats</del>. Amai, las paginas qu'intègran de fichièrs qu'existisson pas son repertoriadas dins [[:$1]].",
        "undelete-show-file-submit": "Òc",
        "namespace": "Espaci de noms :",
        "invert": "Inversar la seleccion",
+       "tooltip-invert": "Marcatz aquesta casa per amagar las modificacions de las paginas dins l'espaci de noms seleccionat (e l'espaci de noms associat se marcat)",
        "namespace_association": "Espaci de nom associat",
+       "tooltip-namespace_association": "Marcatz aquesta casa per inclure tanben l'espaci de noms de discussion associat a l'espaci de noms seleccionat",
        "blanknamespace": "(Principal)",
        "contributions": "Contribucions de l'{{GENDER:$1|utilizaire|utilizaira}}",
        "contributions-title": "Lista de las contribucions de l’utilizaire $1",
        "thumbnail_gd-library": "Configuracion incompleta de la bibliotèca GD : foncion $1 introbabla",
        "thumbnail_image-missing": "Lo fichièr seguent es introbable : $1",
        "import": "Importar de paginas",
-       "importinterwiki": "Impòrt interwiki",
+       "importinterwiki": "Importar a partir d'un autre wiki",
        "import-interwiki-text": "Seleccionatz un wiki e un títol de pagina d'importar.\nLas datas de las versions e los noms dels editors seràn preservats.\nTotas las accions d’importacion interwiki son conservadas dins lo [[Special:Log/import|jornal d’impòrt]].",
        "import-interwiki-sourcewiki": "Wiki font :",
        "import-interwiki-sourcepage": "Pagina font :",
        "import-rootpage-nosubpage": "L'espaci de noms « $1 » de la pagina raiç autoriza pas las sospaginas.",
        "importlogpage": "Istoric de las importacions de paginas",
        "importlogpagetext": "Impòrts administratius de paginas amb l’istoric a partir dels autres wikis.",
-       "import-logentry-upload": "a importat [[$1]] per mandadís de fichièr",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|revision importada|revisions importadas}}",
-       "import-logentry-interwiki": "a importat $1 d'un wiki a l'autre",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|revision importada|revisions importadas}} dempuèi $2",
        "javascripttest": "Tèst de JavaScript",
        "javascripttest-pagetext-noframework": "Aquesta pagina es reservada per l'execucion dels tèsts JavaScript.",
        "tooltip-pt-mycontris": "Lista de vòstras contribucions",
        "tooltip-pt-login": "Sètz convidat(ada) a vos identificar, mas es pas obligatòri.",
        "tooltip-pt-logout": "Se desconnectar",
+       "tooltip-pt-createaccount": "Vos es conselhat de crear un compte e de vos connectar ; pasmens, es pas obligatòri",
        "tooltip-ca-talk": "Discussion a prepaus d'aquesta pagina",
        "tooltip-ca-edit": "Podètz modificar aquesta pagina. Mercé de previsualizar abans d’enregistrar.",
        "tooltip-ca-addsection": "Començar una seccion novèla",
        "version-parser-function-hooks": "Croquets de las foncions del parser",
        "version-hook-name": "Nom del croquet",
        "version-hook-subscribedby": "Definit per",
-       "version-version": "(Version $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[sens nom]",
        "version-license": "Licéncia de MediaWiki",
        "version-ext-license": "Licéncia",
        "logentry-upload-revert": "$1 {{GENDER:$2|a telecargat}} $3",
        "rightsnone": "(cap)",
        "revdelete-summary": "modificar lo somari",
-       "feedback-subject": "Subjècte :",
-       "feedback-message": "Messatge :",
-       "feedback-cancel": "Anullar",
-       "feedback-submit": "Mandar vòstres comentaris",
        "feedback-adding": "Apondon de vòstres comentaris a la pagina...",
+       "feedback-bugcheck": "Remirable ! Verificatz simplament qu'es pas un dels [$1 bugs ja coneguts].",
+       "feedback-bugnew": "Ai verificat. Senhalar un bug novèl",
+       "feedback-cancel": "Anullar",
+       "feedback-close": "Fach",
        "feedback-error1": "Error : Resultat de l'IPA pas reconegut",
        "feedback-error2": "Error : la modificacion a fracassat",
        "feedback-error3": "Error : pas cap de responsa de l'API",
+       "feedback-message": "Messatge :",
+       "feedback-subject": "Subjècte :",
+       "feedback-submit": "Mandar",
        "feedback-thanks": "Mercé ! Vòstre comentari es estat publicat sus la pagina \"[$2 $1]\".",
-       "feedback-close": "Fach",
-       "feedback-bugcheck": "Remirable ! Verificatz simplament qu'es pas un dels [$1 bugs ja coneguts].",
-       "feedback-bugnew": "Ai verificat. Senhalar un bug novèl",
        "searchsuggest-search": "Recercar",
        "searchsuggest-containing": "que conten...",
        "api-error-badaccess-groups": "Sètz pas autorizat a cargar de fichièrs sus aqueste wiki.",
index cce25e5..9303048 100644 (file)
@@ -11,7 +11,8 @@
                        "Sambiwiki",
                        "Shisir 1945",
                        "ଶିତିକଣ୍ଠ ଦାଶ",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "ତଳେ ଥିବା ଲିଙ୍କ:",
        "deleteprotected": "ଏହି ପୃଷ୍ଠାଟି କିଳାଯାଇଥିବାରୁ ଆପଣ ଏହାକୁ ଲିଭାଇପାରିବେ ନାହିଁ ।",
        "deleting-backlinks-warning": "''' ଚେତାବନୀ:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|ବାକି ପୃଷ୍ଠା]] ଆପଣ ଲିଭାଇବାକୁ ଯାଉଥିବା ପୃଷ୍ଠାଟି ସହିତ ଲିଙ୍କ କରନ୍ତୁ କିମ୍ବା ତାହାକୁ କାଢ଼ନ୍ତୁ ।",
        "rollback": "ପୁରାପୁରି ପଛକୁ ଫେରିବା ବଦଳ",
-       "rollback_short": "ପୂରାପୂରି ପଛକୁ ଫେରିଯିବେ",
        "rollbacklink": "ପୂରାପୂରି ପଛକୁ ଫେରିଯିବେ",
        "rollbacklinkcount": "{{PLURAL:$1|edit|edits}} $1 ପଛକୁ ଫେରାଇବେ",
        "rollbacklinkcount-morethan": "{{PLURAL:$1|edit|edits}} $1ରୁ ଅଧିକ ପଛକୁ ଫେରାଇବେ",
        "import-rootpage-nosubpage": "ମୂଳ ପୃଷ୍ଠାର \"$1\" ନେମସ୍ପେସ ଉପପୃଷ୍ଠାର ଅନୁମତି ଦିଏନାହିଁ ।",
        "importlogpage": "ଇତିହାସ ଆହରଣ",
        "importlogpagetext": "ଅନ୍ୟ ଉଇକିରୁ ପରିଛାଙ୍କ ଦେଇ ସମ୍ପାଦନା ଇତିହାସ ସହ କରାହୋଇଥିବା ପୃଷ୍ଠା ଆମଦାନି ।",
-       "import-logentry-upload": "ଫାଇଲ ଅପଲୋଡ଼ ଦେଇ [[$1]] ଆମଦାନି କରାଯାଇଛି",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|ଗୋଟି ସଂସ୍କରଣ|ଗୋଟି ସଂସ୍କରଣ}} ଅଣାଗଲା",
-       "import-logentry-interwiki": "$1 କୁ ଟ୍ରାନ୍ସଉଇକି କରାଗଲା",
        "import-logentry-interwiki-detail": "$2ରୁ $1 {{PLURAL:$1|ଗୋଟି ସଂସ୍କରଣ|ଗୋଟି ସଂସ୍କରଣ}} ଅଣାଗଲା",
        "javascripttest": "ଜାଭାସ୍କ୍ରିପ୍ଟ ପରଖ",
-       "javascripttest-title": "ଚାଲୁଥିବା $1 ପରଖଗୁଡିକ",
        "javascripttest-pagetext-noframework": "ଏହି ପୃଷ୍ଠାଟି ଜାଭାସ୍କ୍ରିପ୍ଟ ପରଖ ପାଇଁ ସଂରକ୍ଷଣ କରି ରଖାଯାଇଛି ।",
        "javascripttest-pagetext-unknownframework": "\"$1\" ଅଜଣା ପରଖ ଗତିବିଧି ।",
        "javascripttest-pagetext-frameworks": "ଦୟାକରି ନିମ୍ନରେ ଥିବା ଏକ ପରଖ ପ୍ରକ୍ରିୟାକୁ ବାଛନ୍ତୁ :$1",
        "javascripttest-pagetext-skins": "ଏହି ପରଖକୁ ଚାଲୁ କରିବା ପାଇଁ ଏକ ଆବରଣ ବାଛନ୍ତୁ ।",
        "javascripttest-qunit-intro": "mediawiki.orgରେ [$1 testing documentation]କୁ ଦେଖନ୍ତୁ ।",
-       "javascripttest-qunit-heading": "ମେଡିଆଉଇକି ଜାଭାସ୍କ୍ରିପ୍ଟ Qunit ପରଖ ପ୍ରକ୍ରିୟା",
        "tooltip-pt-userpage": "ଆପଣଙ୍କ ବ୍ୟବହାରକାରୀ ପୃଷ୍ଠା",
        "tooltip-pt-anonuserpage": "ଆପଣ ଯେଉଁ IP ଠିକଣାର ବ୍ୟବହାରକାରୀ ପୃଷ୍ଠାଟି ବଦଳାଇବା ପାଇଁ ଚେଷ୍ଟା କରୁଛନ୍ତି",
        "tooltip-pt-mytalk": "ଆପଣଙ୍କ ଆଲୋଚନା ପୃଷ୍ଠା",
        "version-parser-function-hooks": "ପାର୍ସର କାମ ହୁକ",
        "version-hook-name": "ହୁକ ନାମ",
        "version-hook-subscribedby": "କାହା ଦେଇ ମଗାଯାଇଛି",
-       "version-version": "(ଭାଗ $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[କୌଣସି ନାମ ନାହିଁ]",
        "version-license": "ମିଡ଼ିଆଉଇକି ସ୍ୱତ୍ୱ",
        "version-ext-license": "ଲାଇସେନ୍ସ",
        "logentry-upload-revert": "$1, $3 {{GENDER:$2|ଅପଲୋଡ଼ କଲେ}}",
        "rightsnone": "(କିଛି ନାହିଁ)",
        "revdelete-summary": "ସାରକଥା ସମ୍ପାଦନା",
+       "feedback-adding": "ପୃଷ୍ଠାରେ ମତାମତ ଦେଉଛି...",
+       "feedback-bugcheck": "ବହୁତ ଭଲ ! ଖାଲି ଦେଖିଦିଅନ୍ତୁ ଯେ ଏହା ଆଗରୁ ଥିବା [$1 known bugs] ମଧ୍ୟରୁ ନୁହେଁ ତ ।",
+       "feedback-bugnew": "ମୁଁ ଯାଞ୍ଚ କରିଦେଲି । ନୂତନ ଅସୁବିଧାର ବିବରଣ କରନ୍ତୁ ।",
        "feedback-bugornote": "ଦୟାକରି ଆପଣ ଏକ କାରିଗରି ଅସୁବିଧାଟିଏ ଜଣାଇବା ପାଇଁ ଚାହୁଁଥିଲେ ଦୟାକରି [$1 ଏଠାରେ ଅସୁବିଧାଟି ଜଣାନ୍ତୁ] । \nଅଥବା, ଆପଣ ତଳେ ଠିଆ ସହଜ ଆବେଦନ ପତ୍ରଟି ପୁରଣ କରିପାରିବେ ।  ଆପଣଙ୍କ ବ୍ୟବହାରକାରୀ ନାମ ଓ ଆପଣ ବ୍ୟବହାର କରୁଥିବା ବ୍ରାଉଜର ଅନୁସାରେ ଆପଣଙ୍କ ମତାମତ \"[$3 $2]\"ରେ ଯୋଡ଼ାଯିବ ।",
-       "feedback-subject": "ବିଷୟ:",
-       "feedback-message": "ଖବର:",
        "feedback-cancel": "ନାକଚ",
-       "feedback-submit": "ମତାମତ ଦିଅନ୍ତୁ",
-       "feedback-adding": "ପୃଷ୍ଠାରେ ମତାମତ ଦେଉଛି...",
+       "feedback-close": "ହୋଇଗଲା",
        "feedback-error1": "ଭୁଲ: API ରୁ ଅଚିହ୍ନା ଫଳାଫଳ",
        "feedback-error2": "ଅସୁବିଧା: ସମ୍ପାଦନା ବିଫଳ ହେଲା",
        "feedback-error3": "ଅସୁବିଧା: API ରୁ କିଛି ଉତ୍ତର ମିଳିଲା ନାହିଁ",
+       "feedback-message": "ଖବର:",
+       "feedback-subject": "ବିଷୟ:",
+       "feedback-submit": "ଦାଖଲ କରିବା",
        "feedback-thanks": "ଧନ୍ୟବାଦ ! ଆପଣଙ୍କର ମତାମତ  \"[$2 $1]\" ପୃଷ୍ଠାରେ ଦର୍ଶାଯାଇଛି ।",
-       "feedback-close": "ହୋଇଗଲା",
-       "feedback-bugcheck": "ବହୁତ ଭଲ ! ଖାଲି ଦେଖିଦିଅନ୍ତୁ ଯେ ଏହା ଆଗରୁ ଥିବା [$1 known bugs] ମଧ୍ୟରୁ ନୁହେଁ ତ ।",
-       "feedback-bugnew": "ମୁଁ ଯାଞ୍ଚ କରିଦେଲି । ନୂତନ ଅସୁବିଧାର ବିବରଣ କରନ୍ତୁ ।",
        "searchsuggest-search": "ଖୋଜନ୍ତୁ",
        "searchsuggest-containing": "ଖୋଜୁଛି...",
        "api-error-badaccess-groups": "ଆପଣଙ୍କୁ ଏହି ଉଇକିରେ ଅପଲୋଡ଼ କରିବାକୁ ଅନୁମତି ଦିଆଯାଇନାହିଁ ।",
index 392fee0..89ef183 100644 (file)
        "editlink": "ивын",
        "viewsourcelink": "Код кæсын",
        "editsectionhint": "Хай ивын: $1",
-       "toc": "Сæртæ",
+       "toc": "Сæргæндтæ",
        "showtoc": "равдисын",
        "hidetoc": "бамбæхсын",
        "collapsible-collapse": "Стухын",
        "gotaccount": "Регистрацигонд дæ? $1.",
        "gotaccountlink": "Бахизын",
        "userlogin-resetlink": "Ферох дæ сты дæ бахизæнтæ?",
-       "userlogin-resetpassword-link": "Ð\94æ Ð¿Ð°Ñ\80олÑ\8c Ð½Ð¾Ð³Ã¦Ð¹ Ñ\81æвæÑ\80",
+       "userlogin-resetpassword-link": "ФеÑ\80оÑ\85 Ð¸ Ð´Ã¦ Ð¿Ð°Ñ\80олÑ\8c?",
        "createacct-emailrequired": "Электрон посты адрис",
        "createacct-emailoptional": "Электрон посты адрис (фæндон)",
        "createacct-email-ph": "Бафысс дæ электрон посты адрис",
        "login-abort-generic": "Нæ дын бантыст бахизын. Урæд.",
        "loginlanguagelabel": "Æвзаг: $1",
        "suspicious-userlogout": "Дæ рахизыны домæн нæ сæххæст ис, уымæн æмæ хæлд браузерæй кæнæ кешгæнæг проксийæ æрвысты хуызæн у.",
+       "pt-userlogout": "Рахизын",
        "php-mail-error-unknown": "Нæбæрæг рæдыд PHP-йы mail() функцийы.",
        "user-mail-no-addy": "Е-mail æрвыста æнæ e-mail адрисæй.",
        "user-mail-no-body": "Фæлварста афтид кæнæ æнæбары мидисимæ фыстæг арвитын.",
        "size-gigabytes": "$1 ГБ",
        "watchlistedit-normal-title": "Цæстдард ивæн",
        "watchlistedit-normal-submit": "Схафын фыстытæ",
-       "watchlistedit-raw-titles": "СæÑ\80тæ:",
+       "watchlistedit-raw-titles": "ФæÑ\80Ñ\81тæ:",
        "watchlistedit-raw-submit": "Номхыгъд бафснай",
        "watchlisttools-view": "Баст ивдтытæ фен",
        "watchlisttools-edit": "Бакæсын æмæ ивын цæстдард рæгъ",
        "version": "Фæлтæр",
        "version-skins": "Цъар",
        "version-other": "Æндæр",
-       "version-version": "(Фæлтæр $1)",
+       "version-version": "($1)",
        "version-license": "Лицензи",
        "version-poweredby-credits": "Ацы викийæн тых радта '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
        "version-poweredby-others": "æндæртæ",
        "logentry-delete-restore": "$1 рацарæзта фарс $3",
        "rightsnone": "(нæй)",
        "revdelete-summary": "ивддзинады мидис",
-       "feedback-subject": "Сæр:",
-       "feedback-message": "Фыстæг:",
        "feedback-cancel": "Ныууадзын",
        "feedback-close": "Æххæст",
+       "feedback-message": "Фыстæг:",
+       "feedback-subject": "Сæр:",
        "searchsuggest-search": "Агурын",
        "api-error-missingparam": "Мидæггаг рæдыд: Курдиаты параметртæ нæй.",
        "api-error-missingresult": "Мидæггаг рæдыд: Нæ рауадис сбæрæг кæнын къопи кæнын куыд бантыстис.",
index c75a11d..b6c1679 100644 (file)
@@ -20,7 +20,8 @@
                        "Xqt",
                        "Ævar Arnfjörð Bjarmason",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "ਲਿੰਕ ਹੇਠ-ਲਾਈਨ:",
        "mypreferencesprotected": "ਤੁਹਾਨੂੰ ਆਪਣੀਆਂ ਪਸੰਦਾਂ ਵਿੱਚ ਸੋਧ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।",
        "ns-specialprotected": "ਖ਼ਾਸ ਸਫ਼ਿਆਂ ’ਚ ਫੇਰ-ਬਦਲ ਨਹੀਂ ਹੋ ਸਕਦੇ।",
        "titleprotected": "ਇਹ ਸਿਰਲੇਖ [[User:$1|$1]] ਵੱਲੋਂ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਵਰਤਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ। ਦਿੱਤਾ ਹੋਇਆ ਕਾਰਨ ਹੈ, \"''$2''\"।",
-       "filereadonlyerror": "\"$1\" à¨«à¨¼à¨¾à¨\88ਲ à¨µà¨¿à©±à¨\9a à¨¤à¨¬à¨¦à©\80ਲà©\80 à¨¨à¨¹à©\80à¨\82 à¨¹à©\8b à¨¸à¨\95ਦà©\80 à¨\95ਿà¨\89à¨\82à¨\95ਿ à¨«à¨¼à¨¾à¨\88ਲ à¨­à©°à¨¡à¨¾à¨° \"$2\" à¨¸à¨¿à¨°à¨«à¨¼ à¨µà©\87à¨\96ਣਯà©\8bà¨\97 à¨°à©\82ਪ à¨µà¨¿à¨\9a à¨¹à©\88।\n\nà¨\89ਹ à¨ªà©\8dਰਬੰਧà¨\95, à¨\9cਿਹਨੇ ਇਹ ਰੋਕ ਲਾਈ ਹੈ, ਦਾ ਕਹਿਣਾ ਹੈ: ''$3''",
+       "filereadonlyerror": "\"$1\" à¨«à¨¼à¨¾à¨\88ਲ à¨µà¨¿à©±à¨\9a à¨¤à¨¬à¨¦à©\80ਲà©\80 à¨¨à¨¹à©\80à¨\82 à¨¹à©\8b à¨¸à¨\95ਦà©\80 à¨\95ਿà¨\89à¨\82à¨\95ਿ à¨«à¨¼à¨¾à¨\88ਲ à¨­à©°à¨¡à¨¾à¨° \"$2\" à¨¸à¨¿à¨°à¨«à¨¼ à¨µà©\87à¨\96ਣਯà©\8bà¨\97 à¨°à©\82ਪ à¨µà¨¿à¨\9a à¨¹à©\88।\n\nà¨\89ਹ à¨ªà©\8dਰਬੰਧà¨\95, à¨\9cਿਸਨੇ ਇਹ ਰੋਕ ਲਾਈ ਹੈ, ਦਾ ਕਹਿਣਾ ਹੈ: ''$3''",
        "invalidtitle-knownnamespace": "ਥਾਂ-ਨਾਮ \"$2\" ਅਤੇ ਲਿਖਤ \"$3\" ਵਾਲ਼ਾ ਗ਼ਲਤ ਸਿਰਲੇਖ",
        "invalidtitle-unknownnamespace": "ਅਣਜਾਣ ਨਾਂ-ਸਥਾਨ ਗਿਣਤੀ $1 ਅਤੇ ਲਿਖਤ $2 ਵਾਲ਼ਾ ਗ਼ਲਤ ਸਿਰਲੇਖ",
        "exception-nologin": "ਲਾਗਇਨ ਨਹੀਂ ਕੀਤਾ",
        "deletereason-dropdown": "*ਮਿਟਾਉਣ ਦੇ ਆਮ ਕਾਰਨ\n**ਲੇਖਕ ਦੇ ਕਹਿਣ ’ਤੇ\n**ਕਾਪੀਰਾਈਟ ਦੀ ਉਲੰਘਣਾ\n**ਵੰਦਾਲਿਜ਼ਮ",
        "delete-edit-reasonlist": "ਮਿਟਾਉਣ ਦੇ ਕਾਰਨ ਸੋਧੋ",
        "rollback": "ਸੋਧਾਂ ਵਾਪਸ ਮੋੜੋ",
-       "rollback_short": "ਰੋਲਬੈਕ",
        "rollbacklink": "ਵਾਪਸ ਮੋੜੋ",
        "rollbacklinkcount": "$1 {{PLURAL:$1|ਸੋਧ|ਸੋਧਾਂ}} ਵਾਪਸ ਮੋੜੋ",
        "rollbacklinkcount-morethan": "$1 ਤੋਂ ਜ਼ਿਆਦਾ {{PLURAL:$1|ਸੋਧ|ਸੋਧਾਂ}} ਵਾਪਸ ਮੋੜੋ",
        "import-invalid-interwiki": "ਦੱਸੇ ਹੋਏ ਵਿਕੀ ਤੋਂ ਮੰਗਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ।",
        "importlogpage": "ਮੰਗਾਉਣ ਦਾ ਚਿੱਠਾ",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|ਸੁਧਾਈ|ਸੁਧਾਈਆਂ}} ਦੀ ਦਰਾਮਦ ਹੋਈ",
-       "import-logentry-interwiki": "$1 ਦੀ ਵਿਕੀ-ਪਾਰ ਘੱਲਿਆ",
        "tooltip-pt-userpage": "ਤੁਹਾਡਾ ਵਰਤੋਂਕਾਰ ਸਫ਼ਾ",
        "tooltip-pt-mytalk": "ਤੁਹਾਡਾ ਗੱਲ-ਬਾਤ ਸਫ਼ਾ",
        "tooltip-pt-anontalk": "ਇਸ IP ਪਤੇ ਤੋਂ ਹੋਈਆਂ ਸੋਧਾਂ ਬਾਰੇ ਚਰਚਾ",
        "watchlisttools-view": "ਸਬੰਧਤ ਤਬਦੀਲੀਆਂ ਵੇਖੋ",
        "watchlisttools-edit": "ਨਿਗਰਾਨੀ-ਸੂਚੀ ਵੇਖੋ ’ਤੇ ਸੋਧੋ",
        "watchlisttools-raw": "ਕੱਚੀ ਨਿਗਰਾਨ-ਸੂਚੀ ਸੋਧੋ",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|ਗੱਲ-ਬਾਤ]])",
        "duplicate-defaultsort": "ਪੁਰਾਣੀ ਮੂਲ ਕਰਮਾਂਕਨ ਕੁੰਜੀ $1 ਦੇ ਬਜਾਏ ਹੁਣ ਮੂਲ ਕਰਮਾਂਕਨ ਕੁੰਜੀ $2 ਹੋਵੇਗੀ।",
        "version": "ਵਰਜਨ",
        "version-skins": "ਥਾਪੀਆਂ ਖੱਲਾਂ",
        "logentry-newusers-create2": "ਵਰਤੋਂਕਾਰ ਖਾਤਾ $3, $1 ਦੁਆਰਾ ਬਣਾਇਆ ਗਿਆ ਸੀ",
        "rightsnone": "(ਕੋਈ ਨਹੀਂ)",
        "revdelete-summary": "ਸੰਖੇਪ ਸੋਧ",
-       "feedback-subject": "ਵਿਸ਼ਾ:",
-       "feedback-message": "ਸੁਨੇਹਾ:",
-       "feedback-cancel": "ਰੱਦ ਕਰੋ",
-       "feedback-submit": "ਵਿਚਾਰ ਦਿਓ",
        "feedback-adding": "ਸਫ਼ੇ ਨਾਲ਼ ਵਿਚਾਰ ਜੁੜ ਰਹੇ ਹਨ...",
+       "feedback-bugnew": "ਮੈਂ ਚੈੱਕ ਕੀਤਾ। ਇੱਕ ਨਵੇਂ ਦੋਸ਼ ਦੀ ਰਿਪੋਰਟ ਕਰੋ",
+       "feedback-cancel": "ਰੱਦ ਕਰੋ",
+       "feedback-close": "ਹੋ ਗਿਆ",
        "feedback-error2": "ਦੋਸ਼:ਸੋਧ ਫੇਲ੍ਹ ਹੋਈ",
        "feedback-error3": "ਦੋਸ਼:API ਵੱਲੋਂ ਕੋਈ ਜੁਆਬ ਨਹੀਂ",
-       "feedback-close": "ਹੋ ਗਿਆ",
-       "feedback-bugnew": "ਮੈਂ ਚੈੱਕ ਕੀਤਾ। ਇੱਕ ਨਵੇਂ ਦੋਸ਼ ਦੀ ਰਿਪੋਰਟ ਕਰੋ",
+       "feedback-message": "ਸੁਨੇਹਾ:",
+       "feedback-subject": "ਵਿਸ਼ਾ:",
+       "feedback-submit": "ਹਵਾਲੇ ਕਰੋ",
        "searchsuggest-search": "ਖੋਜ",
        "api-error-badaccess-groups": "ਤੁਹਾਨੂੰ ਇਸ ਵਿਕੀ ਉੱਤੇ ਫ਼ਾਈਲਾਂ ਅੱਪਲੋਡ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਹੈ।",
        "api-error-badtoken": "ਅੰਦਰੂਨੀ ਦੋਸ਼: ਗ਼ਲਤ ਟੋਕਨ",
index a7245dc..81c2ba3 100644 (file)
        "disclaimers": "Pamananggi",
        "disclaimerpage": "Project:Pangkabilugan a pamananggi",
        "edithelp": "Saup pamanalili",
+       "helppage-top-gethelp": "Saup",
        "mainpage": "Pun Bulung",
        "mainpage-description": "Pun Bulung",
        "policy-url": "Project:Tuntunan",
        "thumbnail_invalid_params": "E la matatanggap deng sukad a thumbnail (thumbnail parameters)",
        "thumbnail_dest_directory": "E makapaglalang piyakitan da reng puntalan (destination directory)",
        "import": "Maglub bulung",
-       "importinterwiki": "Pamaglub a transwiki (transwiki import)",
+       "importinterwiki": "Maglub (mag-import) ibat aliwang wiki",
        "import-interwiki-text": "Mamili kang wiki ampong bansag bulung a ilub.\nManatili la reng petsa ring pamagbayu ampo reng lagyu ring editor.\nMaka-login la reng eganaganang pamaglub a transwiki (transwiki import actions) ketang [[Special:Log/import|import log]].",
        "import-interwiki-history": "Kopian la reng eganaganang bersion ning amlat para king bulung a ini.",
        "import-interwiki-submit": "Maglub (import)",
        "version": "Bersion",
        "version-specialpages": "Bulung a makabukud",
        "version-other": "Aliwa",
-       "version-version": "(Bersion $1)",
+       "version-version": "($1)",
        "version-license": "Lisensia",
        "version-software-product": "Produktu",
        "version-software-version": "Bersion",
        "revdelete-restricted": "ipairal la reng limitasiun kareng sysop",
        "revdelete-unrestricted": "ilako la reng makabawal kareng sysops",
        "rightsnone": "(ala)",
-       "revdelete-summary": "sampulung da reng mibayu (edit summary)"
+       "revdelete-summary": "sampulung da reng mibayu (edit summary)",
+       "feedback-back": "Mibalik",
+       "feedback-error-title": "Mali",
+       "feedback-submit": "I-sumiti",
+       "feedback-thanks-title": "Salamat pu!",
+       "headline-anchor-title": "Ing suglung king seksyun a ini"
 }
index 5157220..0ca450f 100644 (file)
@@ -5,7 +5,8 @@
                        "Krinkle",
                        "Shirayuki",
                        "Xqt",
-                       "לערי ריינהארט"
+                       "לערי ריינהארט",
+                       "아라"
                ]
        },
        "tog-underline": "Gleecher unnerleine:",
        "version-specialpages": "Besunnere Bledder",
        "version-other": "Anneres",
        "version-mediahandlers": "Media-Haendlers",
-       "version-version": "(Version $1)",
+       "version-version": "($1)",
        "version-poweredby-others": "annere",
        "version-software-version": "Version",
        "fileduplicatesearch-filename": "Feilnaame:",
index baf36fa..007387b 100644 (file)
                        "아라"
                ]
        },
-       "tog-underline": "Lingg unnaschdraische",
-       "tog-hideminor": "Vaschdegg klääne Bearwaidunge",
-       "tog-hidepatrolled": "Vaschdegg gsischdede Ännarunge",
-       "tog-extendwatchlist": "Zaisch alle Ännarunge unn ned nur die ledschde",
-       "tog-showtoolbar": "Wergzaisch fas Schaffe zaische",
-       "tog-previewontop": "Vorbligg owwahalwb vum Beaawaidungsfenschda zaische",
-       "tog-previewonfirst": "Zaischen Vorbligg baim erschdemol Schaffe",
+       "tog-underline": "Ling'g unnaschdraische",
+       "tog-hideminor": "Vaschdeggl klääne Beawaidunge vunde „Ledschde Ännarunge“",
+       "tog-hidepatrolled": "Vaschdeggl gsischdede Ännarunge inde „Ledschde Ännarunge“",
+       "tog-extendwatchlist": "Zaisch alle Ännarunge unn nedd nua die ledschde",
+       "tog-showtoolbar": "Weagzaisch fas Schaffe zaische",
+       "tog-previewontop": "VoAbligg owwahalwb vum Beawaidungsfenschda zaische",
+       "tog-previewonfirst": "Zaischn VoAbligg baim erschdemol Schaffe",
        "tog-oldsig": "Voahonneni Unnaschrifd",
        "tog-uselivepreview": "Uuvazeschada Vorbligg (vasugswais)",
        "tog-showhiddencats": "Zaisch vaschdeglde Grubbe",
@@ -31,7 +31,7 @@
        "wednesday": "Middwoch",
        "thursday": "Dunnaschdaach",
        "friday": "Fraidaach",
-       "saturday": "Sõmschdaach",
+       "saturday": "Soamschdaach",
        "sun": "Su",
        "mon": "Mo",
        "tue": "Di",
@@ -41,7 +41,7 @@
        "sat": "So",
        "january": "Janua",
        "february": "Februa",
-       "march": "März",
+       "march": "Mäaz",
        "april": "Abril",
        "may_long": "Mai",
        "june": "Juni",
@@ -53,7 +53,7 @@
        "december": "Dezemba",
        "january-gen": "Janua",
        "february-gen": "Februa",
-       "march-gen": "März",
+       "march-gen": "Mäaz",
        "april-gen": "Abril",
        "may-gen": "Mai",
        "june-gen": "Juni",
@@ -65,7 +65,7 @@
        "december-gen": "Dezemba",
        "jan": "Jan",
        "feb": "Feb",
-       "mar": "Mär",
+       "mar": "Mäa",
        "apr": "Abr",
        "may": "Mai",
        "jun": "Jun",
@@ -81,6 +81,7 @@
        "april-date": "$1. Abril",
        "may-date": "$1. Mai",
        "june-date": "$1. Juni",
+       "july-date": "$1. Juli",
        "august-date": "$1. Auguschd",
        "september-date": "$1. Sebdemba",
        "october-date": "$1. Ogdowa",
        "subcategories": "Unnagrubbe",
        "category-media-header": "Medje indɐ Sachgrubb „$1“",
        "category-empty": "\"Die Sachgrubb hodd kä Said odda Medje.\"",
-       "hidden-categories": "{{PLURAL:$1|Vaschdegldi Sachgrubb|Vaschdeglde Sachgrubbe}}",
+       "hidden-categories": "{{PLURAL:$1|Vaschdeggldi Sachgrubb|Vaschdegglde Sachgrubbe}}",
        "hidden-category-category": "Verschdegelde Grubbe",
        "category-subcat-count": "{{PLURAL:$2|Die Sachgrubb hodd die Unnagrubb.|Die Sachgrubb hodd {{PLURAL:$1|Unnagrubb|$1 Unnagrubbe}}, vun gsomd $2.}}",
        "category-subcat-count-limited": "Die Sachgrubb hod die {{PLURAL:$1|Unagrubb|$1 Unagrubbe}}.",
        "category-article-count": "{{PLURAL:$2|Die Sachgrubb hodd bloß die Said.|Die {{PLURAL:$1|Said|$1 Saide}} gibbds inde Sachgrubb, vun gsomd $2.}}",
        "category-article-count-limited": "Die {{PLURAL:$1|Said|$1 Saide}} hodds inde Sachgrubb.",
-       "category-file-count": "{{PLURAL:$2|Die Sachgrubb hodd ä Said.|Die {{PLURAL:$1|Said isch änni vun $2 Saide:|S'werren $1 vun gsomd $2 Saide gzaischd:}}}}",
+       "category-file-count": "{{PLURAL:$2|Die Sachgrubb hoddä Said.|Die {{PLURAL:$1|Said isch änni vun $2 Saide:|S'werren $1 vun gsomd $2 Saide gzaischd:}}}}",
        "category-file-count-limited": "Die {{PLURAL:$1|Dadai|$1 Dadije}} hodds inde Sachgrubb.",
        "listingcontinuesabbrev": "(Waida)",
        "index-category": "Eafassdi Saide",
        "noindex-category": "Saide, wu ned im Vazaischnis sinn",
        "about": "Iwwa",
-       "newwindow": "(werd innem naije Fenschda uffgmachd)",
+       "newwindow": "(wead innem naije Fenschda uffgmachd)",
        "cancel": "Abbresche",
        "moredotdotdot": "Mea …",
        "mypage": "Said",
        "qbpageoptions": "Die Said",
        "qbmyoptions": "Moi Saide",
        "faq": "Ofd gschdeldi Froche",
-       "actions": "Maßnõhme",
-       "namespaces": "Nõmensreum",
+       "actions": "Maßnoahme",
+       "namespaces": "Noamensreum",
        "variants": "Tibbe",
+       "navigation-heading": "Nawigadzionsmeni",
        "errorpagetitle": "Irrdumm",
-       "returnto": "Zrick zu $1.",
+       "returnto": "Zrick uff $1.",
        "tagline": "Vun {{SITENAME}}",
-       "help": "Unaschdidzung",
+       "help": "Unnaschdidzung",
        "search": "Nochgugge",
        "searchbutton": "Gugg",
        "go": "Ausfiere",
        "searcharticle": "Ausfiare",
        "history": "Gschischd vunde Said",
        "history_short": "Gschischd",
-       "printableversion": "Drugg-Õsischd",
-       "permalink": "Schdendischa Lingg",
+       "printableversion": "Drugg-Oasischd",
+       "permalink": "Schdendischa Ling'g",
        "print": "Drugge",
-       "view": "Ogugge",
+       "view": "Oagugge",
+       "view-foreign": "Uff $1 oagugge",
        "edit": "Schaffe",
        "edit-local": "Gugg uff $1",
-       "create": "Õleesche",
+       "create": "Oaleesche",
+       "create-local": "Fiesch hiesischi B'schraiwung dzu",
        "editthispage": "Onde Said schaffe",
        "create-this-page": "Mach die Said",
        "delete": "Lesche",
        "newpage": "Naiji Said",
        "talkpage": "Iwwa die Said dischbediere",
        "talkpagelinktext": "Dischbediere",
-       "specialpage": "Schbezielli Said",
-       "personaltools": "Persenlischs Wergzaisch",
-       "articlepage": "Inhald õgugge",
+       "specialpage": "Schbezjelli Said",
+       "personaltools": "Persenlischs Weagzaisch",
+       "articlepage": "Inhald oagugge",
        "talk": "Dischbediere",
        "views": "Uffruf",
-       "toolbox": "Wergzaisch",
-       "userpage": "Middawaidasaid õgugge",
-       "projectpage": "Brojegdsaid õgugge",
-       "imagepage": "Dadaisaid õgugge",
-       "mediawikipage": "Nochrischd õgugge",
-       "templatepage": "Voalach õgugge",
-       "viewhelppage": "Hilf õgugge",
+       "toolbox": "Weagzaisch",
+       "userpage": "Middawaidasaid oagugge",
+       "projectpage": "Brojegdsaid oagugge",
+       "imagepage": "Dadaisaid oagugge",
+       "mediawikipage": "Nochrischd oagugge",
+       "templatepage": "Voalach oagugge",
+       "viewhelppage": "Hilf oagugge",
        "categorypage": "Zaisch die Kadegorie",
        "viewtalkpage": "Zaischs Gbabbl",
-       "otherlanguages": "In õnnare Schbroche",
+       "otherlanguages": "In oannare Schbroche",
        "redirectedfrom": "(Nochgschiggd worre vun $1)",
        "redirectpagesub": "Nochschigg-Said",
-       "lastmodifiedat": "Die Said ischs ledschde Mol gännad worre õm $1, õm $2.",
+       "redirectto": "Umlaidung uff:",
+       "lastmodifiedat": "Die Said ischs ledschde Mol g'ännad worre uff $1, om $2.",
        "viewcount": "Die Said isch bis jedz {{PLURAL:$1|ämol1|$1 mol}} uffgrufe worre.",
        "protectedpage": "Said schidze",
        "jumpto": "Hubs uff:",
        "aboutsite": "Iwwa {{SITENAME}}",
        "aboutpage": "Project:Iwwa",
        "copyright": "Was do drin schded isch unna $1 vafieschba, wonn nedd onnaschda vameagd.",
-       "copyrightpage": "{{ns:project}}:Urhewareschd",
+       "copyrightpage": "{{ns:project}}:Uahewareschd",
        "currentevents": "Aggduelli Gscheniss",
        "currentevents-url": "Project: Leschdi Gschneniss",
        "disclaimers": "Hafdungsausschluß",
        "disclaimerpage": "Project:Impressum",
-       "edithelp": "Unaschdizung fas Schaffe",
+       "edithelp": "Unnaschdizung fas Schaffe",
+       "helppage-top-gethelp": "Hilf",
        "mainpage": "Schdadsaid",
        "mainpage-description": "Schdadsaid",
        "policy-url": "Project:Grundsedz",
-       "portal": "{{SITENAME}}-Bordal",
-       "portal-url": "Project:Gmoinschafdsbordal",
+       "portal": "{{SITENAME}}-Boadal",
+       "portal-url": "Project:Gmoinschafdsboadal",
        "privacy": "Daadeschuds",
        "privacypage": "Project:Daadeschuds",
        "badaccess": "Ned genuch Reschd",
        "youhavenewmessages": "Du hoschd $1 ($2).",
        "newmessagesdifflinkplural": "ledschdi {{PLURAL:$1|Ännarung|999=Ännarunge}}",
        "youhavenewmessagesmulti": "Do hoschd ä Nochrischd grischd: $1",
-       "editsection": "schaffe",
-       "editold": "schaffe",
-       "viewsourceold": "Gwelltegschd õgugge",
+       "editsection": "Schaffe",
+       "editold": "Schaffe",
+       "viewsourceold": "Gwelltegschd oagugge",
        "editlink": "schaffe",
-       "viewsourcelink": "Gwell õgugge",
+       "viewsourcelink": "Gwell oagugge",
        "editsectionhint": "Deel ännare: $1",
        "toc": "Inhald",
        "showtoc": "zaische",
        "hidetoc": "vaschdeggle",
        "collapsible-collapse": "Oiglabbe",
        "collapsible-expand": "Uffglabbe",
-       "thisisdeleted": "$1 õgugge odda widdaheaschdelle?",
+       "confirmable-yes": "Ja",
+       "confirmable-no": "Nä",
+       "thisisdeleted": "$1 oagugge odda widdaheaschdelle?",
        "viewdeleted": "$1 zaische?",
        "restorelink": "{{PLURAL:$1|ä gleschdi Ännarung|$1 gleschde Ännarunge}}",
        "site-rss-feed": "$1 RSS-Feed",
        "nstab-main": "Said",
        "nstab-user": "Middawaidasaid",
        "nstab-media": "Medije",
-       "nstab-special": "Schbezialsaid",
+       "nstab-special": "Sondasaid",
        "nstab-project": "Bordal",
        "nstab-image": "Dadai",
        "nstab-mediawiki": "Middeelung",
-       "nstab-template": "Vorlach",
+       "nstab-template": "Vorlaach",
        "nstab-help": "Unaschdidzung",
        "nstab-category": "Sachgrubb",
        "nosuchaction": "Des hodds nedd",
        "nosuchspecialpage": "Schbezialsaid hodds nedd",
        "error": "Irrdumm",
        "databaseerror": "Daadebongg-Irrdumm",
+       "databaseerror-query": "Abfroche: $1",
        "databaseerror-error": "Fehla: $1",
        "laggedslavemode": "<strong>Baßma uff:</strong> Die Said hodd viellaischd die ledschde Ännarunge nedd.",
        "readonly": "Daadebongg blogiead",
        "formerror": "Irrdumm: hoddma nedd mache kenne.",
        "badarticleerror": "Des geed nedd uffde Said.",
        "cannotdelete-title": "\"$1\" komma nedd lesche",
-       "badtitle": "Schleschde Didl",
-       "badtitletext": "De Tidl vunde õgfordad Said isch nedd gildisch, lea, oddan nedd gildische Lingg vunem õnnare Wiki.\nS konn soi, dasses ä odda mea Zaische drin hodd, wu im Tidl vunde Said nedd gbrauchd werre dirfn.",
-       "viewsource": "Gwelltegschd õgugge",
-       "viewsource-title": "D'Tegschd vun $1 õgugge",
-       "viewsourcetext": "Konschdas õgugge un abschraiwe",
-       "viewyourtext": "Konschda doi Eawed uff de Said õgugge un abschraiwe:",
-       "ns-specialprotected": "Do komma nedd drõ schaffe",
-       "exception-nologin": "Bischd nedd õgmeld",
+       "badtitle": "Schleschda Didl",
+       "badtitletext": "De Tidl vunde oagfoadad Said isch nedd gildisch, lea, oddan nedd gildische Ling'g vunnem oannare Wiki.\nS'konn soi, dasses ä odda mea Zaische drin hodd, wu im Tidl vunde Said nedd gbrauchd werre diafn.",
+       "viewsource": "Gwelltegschd oagugge",
+       "viewsource-title": "D'Tegschd vun $1 oagugge",
+       "viewsourcetext": "Konschdas oagugge un abschraiwe",
+       "viewyourtext": "Konschda <strong>doi Eawed</strong> uffde Said oagugge un abschraiwe:",
+       "ns-specialprotected": "Do komma nedd droa schaffe",
+       "exception-nologin": "Bischd nedd oagmeld",
        "virus-unknownscanner": "Uubekonnda Viresucha:",
        "welcomeuser": "Willkumme, $1!",
-       "yourname": "Middawaidanõme:",
+       "yourname": "Middawaidanoame:",
        "userlogin-yourname": "Middawaida",
        "userlogin-yourname-ph": "Gebb doin Nome oi",
        "createacct-another-username-ph": "Middawaida",
        "createacct-yourpasswordagain": "Password bschdedische",
        "createacct-yourpasswordagain-ph": "Bschdedisch doi Password",
        "remembermypassword": "Moi Kennword uffm Brausa merge (hegschdns fa $1 {{PLURAL:$1|Daach|Daach}})",
-       "login": "Õmelde",
-       "nav-login-createaccount": "Õmelde / Kondo õleesche",
-       "userlogin": "Õmelde / Kondo õleesche",
+       "userlogin-remembermypassword": "Oagmeld blaiwe",
+       "login": "Oamelde",
+       "nav-login-createaccount": "Oamelde / Kondo oaleesche",
+       "userlogin": "Oamelde / Kondo oaleesche",
        "userloginnocreate": "Oilogge",
        "logout": "Uffhere",
        "userlogout": "Uffhere",
+       "notloggedin": "Bischd nedd oagmeld",
        "userlogin-noaccount": "Hoschd kä Kondo?",
+       "userlogin-joinproject": "Bai {{SITENAME}} oamelde",
        "nologin": "Hoschd noch kä Kondo? $1",
-       "nologinlink": "E Kondo õleesche",
-       "createaccount": "Kondo õleesche",
+       "nologinlink": "Ä Kondo oaleesche",
+       "createaccount": "Kondo oaleesche",
        "gotaccount": "Hoschd schun ä Kondo? $1",
-       "gotaccountlink": "Õmelde",
+       "gotaccountlink": "Oamelde",
        "userlogin-resetlink": "Hoschd doi Daade vagesse?",
+       "userlogin-resetpassword-link": "Hoschd doi Kennwoad vagesse?",
+       "userlogin-helplink2": "Hilf baim Oamelde",
+       "userlogin-createanother": "Leschda nochä Kondo oa",
+       "createacct-emailrequired": "E-Mail-Address",
+       "createacct-emailoptional": "E-Mail-Adress (fraiwillisch)",
+       "createacct-email-ph": "Gebb doi E-Mail-Adress oi",
+       "createacct-another-email-ph": "Gebb doi E-Mail-Adress oi",
+       "createacct-realname": "Wie heschd (mugschds awwa nedd)",
        "createaccountreason": "Grund:",
+       "createacct-reason": "Bgrindung",
+       "createacct-captcha": "Sischahaidsbriefung",
+       "createacct-imgcaptcha-ph": "Gebbde Tegschd oi, wu owwe seje duschd",
+       "createacct-submit": "Leschda ä Kondo oa",
+       "createacct-another-submit": "Leschda ä onnares Kondo oa",
+       "createacct-benefit-heading": "{{SITENAME}} wead vun Laid wie dia gmachd.",
+       "createacct-benefit-body1": "{{PLURAL:$1|B'waidung|B'waidunge}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|Said|Saide}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|Ledscha|Ledsche}} Middawaida",
        "badretype": "Kennword bassd nedd",
        "userexists": "De Middawaida hodds schun.\nNemmen onnare.",
-       "loginerror": "Irrdumm baim Õmelde",
+       "loginerror": "Irrdumm baim Oamelde",
        "createaccounterror": "Kondo $1 komma nedd mache",
        "loginsuccesstitle": "Konschd schaffe",
        "login-userblocked": "De Middawaida deaf do nemme schaffe.",
        "wrongpasswordempty": "Hoschds Kennword vagesse. Mags nomol.",
        "passwordtooshort": "Kennword muss {{PLURAL:$1|1 Zaische|$1 Zaische}} hawe.",
        "password-name-match": "Doi Kennword deaf nedd so heese wie du.",
-       "password-login-forbidden": "De Nõme uns Kennword sinn fabode.",
+       "password-login-forbidden": "De Noame uns Kennword sinn fabode.",
        "mailmypassword": "Kennword zriggsedze",
-       "accountcreated": "Kondo õgleeschd",
+       "accountcreated": "Kondo oagleeschd",
        "login-abort-generic": "Hodd nedd gklabbd - Abgbroche",
        "loginlanguagelabel": "Schbrooch: $1",
+       "pt-login": "Oilogge",
+       "pt-login-button": "Oilogge",
+       "pt-createaccount": "Kondo oaleesche",
+       "pt-userlogout": "Uffhere",
+       "changepassword": "Passwoad weggsle",
+       "resetpass_header": "Passwoad weggsle",
        "oldpassword": "Alds Kennword",
        "newpassword": "Naijes Kennword",
        "retypenew": "Naijes Kennword nomol oigewe:",
+       "changepassword-success": "Doi Passwoad isch gweggsld worre!",
        "resetpass_forbidden": "Kennwerda komma nedd wegsle",
        "resetpass-submit-loggedin": "Password wegsle",
        "resetpass-submit-cancel": "Uffhere",
        "resetpass-temp-password": "Bschrengds Kennword",
+       "resetpass-abort-generic": "S'Passwoad weggsle isch vunna Eawaidarung unnabroche worre.",
+       "resetpass-expired": "Doi Passwoad isch abgloffe. Gebbä naijes Passwoad oi.",
        "passwordreset": "Kennword zriggsedze",
        "passwordreset-legend": "Kennword zriggsedze",
        "passwordreset-username": "Middawaida:",
        "passwordreset-capture": "E-Mail õgugge?",
+       "changeemail": "E-Mail-Adress ännare",
        "changeemail-none": "(käni)",
+       "changeemail-submit": "E-Mail-Adress ännare",
+       "resettokens-token-label": "$1 (jedzischa Wead: $2)",
        "bold_sample": "Feddi Schrifd",
        "bold_tip": "Feddi Schrifd",
        "italic_sample": "Schebbi Schrifd",
        "italic_tip": "Schebbi Schrifd",
        "link_sample": "Schdischwoad",
-       "link_tip": "Inderna Lingg",
-       "extlink_sample": "http://www.example.com Linggtegschd",
-       "extlink_tip": "Exderna Lingg (uff http:// uffbasse)",
+       "link_tip": "Inderna Ling'g",
+       "extlink_sample": "http://www.example.com Ling'gtegschd",
+       "extlink_tip": "Exderna Ling'g (uff http:// uffbasse)",
        "headline_sample": "Schlaachzail",
        "headline_tip": "Iwwaschrifd Ewene 2",
-       "nowiki_sample": "Gebb do'n Tegschd oi, wu nedd uffberaid werd",
-       "nowiki_tip": "Wiki-Formatierunge ned beachde",
+       "nowiki_sample": "Gebb do'n Tegschd oi, wu nedd uffb'raid wead",
+       "nowiki_tip": "Wiki-Formatierunge nedd beachde",
        "image_tip": "Bildvawais",
-       "media_tip": "Dadailingg",
-       "sig_tip": "Doi Unnaschrifd midena Zaidõgawb",
-       "hr_tip": "Waagreschdi Linje (schbaasõm vawende)",
+       "media_tip": "Dadailing'g",
+       "sig_tip": "Doi Unnaschrifd midd ena Zaidoagawb",
+       "hr_tip": "Waagreschdi Linje (schbaasoam vawende)",
        "summary": "Iwwabligg:",
        "subject": "Bedreff:",
-       "minoredit": "Des ische glänni Beawaidung",
+       "minoredit": "Des ischä glänni Beawaidung",
        "watchthis": "Die Said im Aach palde",
-       "savearticle": "Said schbaischere",
+       "savearticle": "Said schbaischare",
        "preview": "Voaschau",
        "showpreview": "Voaschau zaische",
        "showdiff": "Ännarunge zaische",
-       "anoneditwarning": "'''Baßma uff:''' Du bischd ned õgemeld. Doi IP-Adress werd inde Gschischd vum Adiggl gschbaischad.",
+       "anoneditwarning": "'''Baßma uff:''' Du bischd ned oagemeld. Doi IP-Adress wead inde Gschischd vum Adiggl gschbaischad, wonn schaffe duschd. Wonn<strong>[$1 oilogschd]</strong> oddan <strong>[$2 Account magschd]</strong>, werren doi Eawede unna doim Benudzanoame gzaischd, newe onnare Voadel.",
+       "anonpreviewwarning": "''Du bischd nedd oagmeld. Baim Schbaischare wead doi IP-Adress inde Gschischd vameagd.''",
        "summary-preview": "Iwwabligg:",
        "blockedtitle": "Middawaida isch gschbead",
        "blockednoreason": "s'hod kän Grund",
        "whitelistedittext": "Mugschd disch $1 fas schaffe",
        "loginreqtitle": "Mugschd disch õmelde",
-       "loginreqlink": "Õmelde",
+       "loginreqlink": "Oamelde",
        "loginreqpagetext": "Mugschd disch $1 fas õgugge.",
        "accmailtitle": "Kennword gschiggd",
        "newarticle": "(Naij)",
-       "newarticletext": "Du bischdm Lingg nochgõnge zu enna Said, wus ganedd hodd.\nFa die Said õzleesche, konnschd do im Käschdl unne õfonge mid schraiwe (gugg [$1 Hilf] fa mea Auskinfd).\nWonn do nedd hoschd heakumme wolle, drigg uff Browser uff '''Zrigg'''.",
-       "noarticletext": "Uffde Said hods noch kän Tegschd. Du konnschd uff õnnare Saide nochm [[Special:Search/{{PAGENAME}}|Oidrach gugge]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Logbuchaidrach gugge, wu dezu kead],\nodda [{{fullurl:{{FULLPAGENAME}}|action=edit}} die Said beawaide]</span>.",
-       "noarticletext-nopermission": "Do hods känn Tegschd.\nDu konschd uff onnare Saide [[Special:Search/{{PAGENAME}}|faden Tidl gugge]], odda <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} in alle Logs gugge]</span>, awwa du hoschd kä Ealauwnis die Said zu mache.",
+       "newarticletext": "Du bischdm Ling'g nochgoange zu enna Said, wus ganedd hodd.\nFa die Said oazleesche, konnschd do im Käschdl unne oafonge midd schraiwe (gugg [$1 Hilf] fa mea Auskinfd).\nWonn do nedd hoschd heakumme wolle, drigg uffm Browser uff '''Zrigg'''.",
+       "noarticletext": "Uffde Said hodds noch kän Tegschd. Konnschd uff oannare Saide nochm [[Special:Search/{{PAGENAME}}|Oidrach gugge]], <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} Logbuchoidrach gugge, wu dzu kead],\nodda [{{fullurl:{{FULLPAGENAME}}|action=edit}} die Said b'awaide]</span>.",
+       "noarticletext-nopermission": "Do hodds känn Tegschd.\nDu konschd uff oannare Saide [[Special:Search/{{PAGENAME}}|faden Tidl gugge]], odda <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} in alle Logs gugge]</span>, awwa hoschd kä Ealauwbnis die Said zu mache.",
        "updated": "(Gännad)",
        "note": "'''Hiwes:'''",
        "previewnote": "'''Deng'g drõõ, dasses nua e Vorschau isch.'''\nDoi Ännarunge sinn noch nedd gschbaischadd worre!",
-       "editing": "Õm $1 schaffe",
-       "creating": "Magsch $1",
+       "editing": "Oam $1 schaffe",
+       "creating": "Magschd $1",
        "editingsection": "$1 schaffe (Deel)",
        "editingcomment": "$1 schaffe (Deel)",
        "editconflict": "Schdraid ums Ännare: $1",
        "storedversion": "Gschbaischerdi Version",
        "yourdiff": "Unaschied",
        "copyrightwarning": "Baß uff, dass alli Baidräch fa {{SITENAME}} unna $2 vaeffendlischd werren (gugg $1 fa mea Enzlhaide).\nWonnsda ned basse dud, dass des wu gschriwwe hoschd, gännad un kopiead werre konn, donn duus do ned noischraiwe.<br />\nDu gibbschd do a zu, dasses selwaschd gschriwwe hoschd odda vuna effendlischi, fraiji Gwell ('''public domain''') odda vuna ähnlichi fraiji Gwell hawe duschd.\n'''Du do nix noi schraiwe, wa unnam Uahewareschd gschizd isch!'''",
-       "templatesused": "{{PLURAL:$1|Vorlach wu uffde Said gbrauchd werd|Vorlache wu uffde Saide gbrauchd werren}}:",
+       "templatesused": "{{PLURAL:$1|Vorlach wu uffde Said gbrauchd wead|Vorlache wu uffde Saide gbrauchd werren}}:",
        "templatesusedpreview": "{{PLURAL:$1|Vorlach wu inde Vorschau gbrauchd werd|Vorlache wu inde Vorschau gbrauchd werren}}:",
        "template-protected": "(gschizd)",
        "template-semiprotected": "(halwa-gschizd)",
-       "hiddencategories": "Die Said kerd zu vaschdeggelde {{PLURAL:$1|1 Sachgrubb|$1 Sachgrubbe}}:",
+       "hiddencategories": "Die Said kead zude vaschdeggelde {{PLURAL:$1|1 Sachgrubb|$1 Sachgrubbe}}:",
+       "permissionserrors": "Uugnieschnd Reschde",
        "permissionserrorstext-withaction": "Du därfschd nedd $2, weesch{{PLURAL:$1|m Grund|ede Grind}}:",
        "recreate-moveddeleted-warn": "'''Baßma uff: Du maggschd do ä Said, wuma frija schumol geleschd kabd hod.'''",
-       "moveddeleted-notice": "Die Said isch gleschd worre.\nDe Leschoidrach fa die Said isch do unne als Gwell õgewwe.",
+       "moveddeleted-notice": "Die Said isch g'leschd worre. De Leschoidraach fa die Said isch do unne als Gwell oagewwe.",
        "log-fulllog": "Alli Oidräsch vunde Logbischa õgugge",
        "edit-conflict": "Schdraid ums Ännare.",
        "content-model-text": "Glaategschd",
+       "content-model-javascript": "JavaScript",
        "content-model-css": "CSS",
        "post-expand-template-inclusion-warning": "'''Baßma uff:''' Greeß vunde Vorlach isch iwwaschridde. Oinischi Vorlache werren ned bnuzd.",
        "post-expand-template-inclusion-category": "Saide mid Vorlache, wu die Greeß iwwaschridde worre isch",
        "post-expand-template-argument-warning": "'''Baßma uff:''' Die Said hodd wenigschdns ä Vorlach midä Kenngreeß, wu groß werre dud. Die Kenngreeß wead do nedd õgeguggd.",
        "post-expand-template-argument-category": "Saide, wu wegfallene Vorlachewead hawen.",
-       "viewpagelogs": "Lochbischa fa die Said õgugge",
+       "undo-nochange": "Die Ännarung isch schunmol rigg'gängisch g'machd worre.",
+       "cantcreateaccounttitle": "Konn kä Kondo mache",
+       "viewpagelogs": "Lochbischa fa die Said oagugge",
+       "nohistory": "Vunde Said hodds kä Gschischd.",
        "currentrev": "Ledschdi Änarung",
-       "currentrev-asof": "Agduell Ausgab vun $1",
-       "revisionasof": "Iwwaawaidung vun $1",
+       "currentrev-asof": "Agduell Ausgawb vun $1",
+       "revisionasof": "Iwwa'awaidung vun $1",
        "revision-info": "Ännarung vun $1 duasch $2",
-       "previousrevision": "← Älderi Beawaidung",
+       "previousrevision": "← Äldere Beawaidung",
        "nextrevision": "Naijari Ausgawb →",
        "currentrevisionlink": "Agduelli Ausgawb",
        "cur": "jedzischi",
        "histlast": "naijschde",
        "historyempty": "(lea)",
        "history-feed-title": "Ännarungsgschischd",
+       "history-feed-description": "Gschischd vunde Said uff {{SITENAME}}",
        "history-feed-item-nocomment": "$1 õm $2",
-       "rev-delundel": "zaisch/vaschdeggl",
+       "rev-deleted-comment": "(Zsommefassung gleschd)",
+       "rev-deleted-user": "(Middawaidnoame gleschd)",
+       "rev-deleted-event": "(Logbuchänzlhaid gleschd)",
+       "rev-deleted-user-contribs": "[Middawaid- odda IP-Adress gleschd – Bawaidung aus Baidräch vaschdeggd]",
+       "rev-delundel": "änna Sischdbakaid",
        "rev-showdeleted": "zaische",
        "revisiondelete": "Lesche/Heaschdelle vun Ännarunge",
        "revdelete-show-file-submit": "Ja",
+       "revdelete-text-text": "Gleschdi Ännarunge blaiwen inde Gschischd, awwa Deel dvu sinn fa die Effendlischkaid vaschdeggld.",
+       "revdelete-text-file": "Gleschde Ännarunge blaiwen inde Gschischd, awwa Deel dvu sinn fa die Effendlischkaid vaschdeggld.",
        "revdelete-hide-image": "Vaschdegglde Inhald",
-       "revdelete-hide-name": "Vaschdeggls",
+       "revdelete-hide-name": "Vaschdeggls Ziel unn Kenngreeß",
        "revdelete-hide-comment": "Ännas Resimee",
        "revdelete-hide-user": "Middawaidanome/IP-Address",
+       "revdelete-hide-restricted": "Daade voa Adminischdradore unn a Middawaid unnadrigge",
        "revdelete-radio-same": "(dudo nix ännare)",
        "revdelete-radio-set": "Vaschdegld",
        "revdelete-radio-unset": "Sischdba",
        "revdel-restore": "Sischdbakaid ännare",
        "pagehist": "Gschischd vunde Said",
        "deletedhist": "Gleschde Gschischde",
-       "revdelete-reasonotherlist": "Õnnare Grund",
-       "mergehistory": "Gschischde zõmmefiere",
+       "revdelete-reasonotherlist": "Oannare Grund",
+       "mergehistory": "Gschischde zoammefiere",
+       "mergehistory-header": "Midde Said konschd Gschischde vunna Said innä onnari Said bringe. Bass uff, dass die Gschischd vunde Said rischdisch isch.",
+       "mergehistory-box": "Gschischde vun ywee Saide zsommefiare:",
+       "mergehistory-list": "Gschischde, wuma zsommebringe konn",
        "mergehistory-go": "Zaisch, wasma vaoinische konn",
        "mergehistory-submit": "Gschischde zõmmefiere",
+       "mergehistory-fail": "Gschischde zsommebringen hodd nedd gklabd, gugg nomol uffde Saide unn uffde Zaidoagawe.",
+       "mergehistory-fail-toobig": "S'Zsommefiare vunde Saide konn nedd klabbe, sunschd deedn mea als {{PLURAL:$1|eine Version|$1 Gschischde}} vaschowe werre.",
+       "mergehistory-autocomment": "„[[:$1]]“ midd „[[:$2]]“ vabinne",
+       "mergehistory-comment": "„[[:$1]]“ midd „[[:$2]]“ vabinne: $3",
        "mergehistory-reason": "Grund:",
        "revertmerge": "Zõmmefiehrung rigggängisch mache",
+       "mergelogpagetext": "Unne hoddsä Lischd midde ledschde Zsommefiarunge vun Gschischde.",
        "history-title": "Ännarungsgschischd vun \"$1\"",
+       "difference-title": "Unnaschied vunde Gschischde vun \"$1\"",
        "lineno": "Zail $1:",
        "compareselectedversions": "Ausgawe midnonna vaglaische",
        "showhideselectedversions": "Zaisch/Vaschdeggl gwehldi Ausgawe",
        "editundo": "zriggnemme",
+       "diff-empty": "(kän Unnaschied)",
+       "diff-multi-sameuser": "({{PLURAL:$1|Ä dzwischelischndi Ännarung vum selwe Middawaid wead|$1 dzwischelischnde Ännarunge vum selwe Middawaid werren}} nedd gzaischd)",
        "searchresults": "Eagewnis nochgugge",
        "searchresults-title": "Eagewnis gugge fa \"$1\"",
        "notextmatches": "Kä Iwwaoinschdimmunge midm Tegschd",
-       "prevn": "ledschda {{PLURAL:$1|$1}}",
-       "nextn": "negschd {{PLURAL:$1|$1}}",
+       "prevn": "{{PLURAL:ledschd $1|ledschde $1}}",
+       "nextn": "{{PLURAL:negschd $1|negschde $1}}",
        "prevn-title": "Frijari $1 {{PLURAL:$1|Eagewniss|Eagewnisse}}",
        "nextn-title": "Negschdi $1 {{PLURAL:$1|Eagewniss|Eagewnisse}}",
        "shown-title": "Zaisch $1 {{PLURAL:$1|Eagewnis}} bro Said",
        "searchprofile-advanced": "Foadgschridde",
        "searchprofile-articles-tooltip": "In $1 gugge",
        "searchprofile-images-tooltip": "Gugg noch Bilda",
-       "searchprofile-everything-tooltip": "Such iwwaraal (a wuma dischbedierd)",
-       "searchprofile-advanced-tooltip": "Gugg in õnnare Nõmensreum",
-       "search-result-size": "$1 ({{PLURAL:$2|1 Word|$2 Wärda}})",
+       "searchprofile-everything-tooltip": "Such iwwaraal (a wuma dischbediead)",
+       "searchprofile-advanced-tooltip": "Gugg in oannare Noamensreum",
+       "search-result-size": "$1 ({{PLURAL:$2|1 Woad|$2 Wäada}})",
        "search-result-category-size": "{{PLURAL:$1|1 Said|$1 Saide}} ({{PLURAL:$2|1 Sachgrubb|$2 Sachgrubbe}}, {{PLURAL:$3|1 Dadai|$3 Dadaije}})",
        "search-redirect": "(Waidalaidung $1)",
        "search-section": "(Abschnidd $1)",
        "search-relatedarticle": "Vawond",
        "searchrelated": "vawond",
        "searchall": "alle",
-       "search-nonefound": "Kä Eagewnis vunde Õfroch.",
+       "search-showingresults": "{{PLURAL:$4|Resuldad <strong>$1</strong> vun <strong>$3</strong>|Resuldad <strong>$1 - $2</strong> vun <strong>$3</strong>}}",
+       "search-nonefound": "Kä Eagewnis vunde Oafroch.",
        "powersearch-legend": "Erwaiterte Such",
        "powersearch-ns": "In de Namensraim suche:",
        "powersearch-togglelabel": "Wehl:",
        "powersearch-togglenone": "Kään",
        "preferences": "Obzione",
        "mypreferences": "Oischdellunge",
+       "prefs-edits": "Oazahl vunde B'awaidunge:",
+       "prefsnologintext2": "Logdisch oi unn änna doi Oischdellunge",
+       "prefs-skin": "Ausseje",
+       "skin-preview": "Voaschau",
        "datedefault": "Kä Oischdellunge",
+       "prefs-user-pages": "Middawaidasaides",
+       "prefs-rc": "Ledschdi Ännarunge",
        "prefs-watchlist": "Beowachdungslischd",
-       "prefs-watchlist-edits-max": "Hegschdi Õzahl: 1000",
+       "prefs-watchlist-edits-max": "Hegschdi Oazahl: 1000",
        "prefs-misc": "Schunschdisches",
+       "prefs-resetpass": "Passwoad weggsle",
+       "prefs-changeemail": "E-Mail-Adress ännare",
+       "prefs-email": "E-Mail-Oischdellunge",
        "prefs-rendering": "Uffdridd",
        "saveprefs": "Oischdellunge schbaischere",
        "prefs-editing": "Schaffe",
        "columns": "Schbalde",
        "searchresultshead": "Nochgugge",
        "stub-threshold-disabled": "Abgschdeld",
+       "recentchangesdays": "Oazahl vunde Daach inde ledschde Ännarunge:",
+       "recentchangesdays-max": "Hegschdgrens $1 {{PLURAL:$1|Daach|Daache}}",
        "guesstimezone": "Aus em Browser iwwernemme",
        "timezoneregion-africa": "Afrika",
-       "timezoneregion-america": "Õmerika",
-       "timezoneregion-antarctica": "Õngdagdika",
+       "timezoneregion-america": "Oamerika",
+       "timezoneregion-antarctica": "Oangdaagdika",
        "timezoneregion-arctic": "Aadigk",
        "timezoneregion-asia": "Asije",
-       "timezoneregion-atlantic": "Adlõndischa Ozeõn",
+       "timezoneregion-atlantic": "Adloendischa Ozean",
        "timezoneregion-australia": "Auschdralije",
        "timezoneregion-europe": "Oirobba",
-       "timezoneregion-indian": "Indischa Ozeõn",
-       "timezoneregion-pacific": "Pazifischa Ozeõn",
+       "timezoneregion-indian": "Indischa Ozean",
+       "timezoneregion-pacific": "Pazifischa Ozean",
        "prefs-searchoptions": "Nochgugge",
        "default": "Schdondad",
+       "prefs-files": "Dadaije",
        "youremail": "E-Mail:",
        "username": "{{GENDER:$1|Middawaida}}:",
        "prefs-memberingroups": "{{GENDER:$2|Middglied}} vun {{PLURAL:$1|Grubb|Grubbe}}:",
-       "yourrealname": "Birschalischa Nõme:",
+       "yourrealname": "Birschalischa Noame:",
        "yourlanguage": "Schbrooch:",
        "yournick": "Naiji Unnaschfrid",
        "yourgender": "Wasfa'ä Gschleschd bischdn?",
        "gender-unknown": "Do saach isch nix",
        "gender-male": "Isch binnen Monn",
        "gender-female": "Isch binä Fraa",
+       "email": "E-Mail",
        "prefs-help-email": "E-mail muss ned soi, awwa wead fas naijsedze vum Kennwoad bneedischd, wonns vagesse hoschd.",
        "prefs-help-email-others": "Konschd a wehle, ob õnnare disch iwwan Lingg uff doina Dischbedier-Said õschbresche kennen.\nDoi Address werd ned gzaischd, wõnse midda babbln.",
+       "prefs-advancedrc": "Waidari Meschlischkaide",
+       "prefs-advancedrendering": "Waidari Meschlischkaide",
+       "prefs-advancedsearchoptions": "Waidari Meschlischkaide",
+       "prefs-advancedwatchlist": "Waidari Meschlischkaide",
        "prefs-diffs": "Unaschied",
        "userrights-groupsmember": "Midglied vun:",
        "userrights-reason": "Grund:",
        "group-bureaucrat-member": "{{GENDER:$1|Birokrad}}",
        "grouppage-sysop": "{{ns:project}}:Adminischtratore",
        "right-read": "Saide leese",
-       "right-edit": "Õnde Saide schaffe",
+       "right-edit": "Oande Saide schaffe",
        "right-createpage": "Saide mache",
        "right-createtalk": "Dischbediersaide mache",
        "right-move": "Said bwesche",
        "right-move-subpages": "Said midde Unasaide bwesche",
        "right-movefile": "Saide vaschiewe",
+       "right-suppressredirect": "Kä Umleidunge mache womma Saide vaschiewe dud",
        "right-upload": "Dadaije nufflade",
+       "right-reupload": "Iwwaschraiwb ä Said, wus gibd",
        "right-upload_by_url": "Dadaije vunna Address nufflaade",
+       "right-writeapi": "Vawendung vum API fas Schraiwe",
        "right-delete": "Saide lesche",
+       "right-deletedhistory": "Glesche Ännarunge inde Gschischd ohne Tegschd oagugge",
        "right-undelete": "Said widdaheaschdelle",
-       "newuserlogpage": "Naijõmeldungs-Logbuch",
+       "right-unblockself": "Enschberr Disch",
+       "right-mergehistory": "Gschischde vun Saide zsommefiare",
+       "newuserlogpage": "Naijoameldungs-Logbuch",
        "rightslog": "Middawaidareschd-Logbuch",
+       "action-read": "Lees die Said",
        "action-edit": "onde Said schaffe",
+       "action-createpage": "Mach Saide",
+       "action-createtalk": "Mach Dischbediersaide",
+       "action-createaccount": "Machä Middawaidakondo",
+       "action-history": "Guggda die Gschischd vunde Said oa",
+       "action-move": "Die Said vaschiewe",
+       "action-move-subpages": "Die Said unn alle Unnasaide vaschiewe",
+       "action-move-categorypages": "Grubbesaide vaschiewe",
+       "action-movefile": "Die Said vaschiewe",
+       "action-upload": "Saide nufflaade",
+       "action-reupload": "Iwwaschraiwb die Said, wus schun hodd",
+       "action-delete": "Lesch die Said",
+       "action-deleterevision": "Lesch die Ännarung",
+       "action-deletedhistory": "guggda die gleschd Gschischd vunde Said oa",
+       "action-browsearchive": "Gugg noch gleschde Saide",
+       "action-undelete": "Said widdaheaschdelle",
+       "action-suppressrevision": "Vaschdeggelde Ännarunge oagugge unn widdaheaschdelle",
+       "action-mergehistory": "Gschisch vunde Said zsommefiere",
+       "action-sendemail": "E-Mails schigge",
        "nchanges": "$1 {{PLURAL:$1|Ännarung|Ännarunge}}",
-       "recentchanges": "Ledschdi Ännarunge",
-       "recentchanges-legend": "Wehl ä Õzaisch fa die ledschde Ännarunge",
+       "enhancedrc-history": "Gschischd",
+       "recentchanges": "Ledschde Ännarunge",
+       "recentchanges-legend": "Wehl ä Oazaisch fa die ledschde Ännarunge",
+       "recentchanges-summary": "Do konschd die ledschde Ännarunge vunde {{SITENAME}} vafolsche.",
        "recentchanges-feed-description": "Ledschde Ännarunge vun {{SITENAME}} im Feed oigewwe.",
        "recentchanges-label-newpage": "Domid magschd ä naiji Said",
        "recentchanges-label-minor": "S'ische glenni Beawaidung",
        "recentchanges-label-bot": "Ännarunge duaschn Bod",
        "recentchanges-label-unpatrolled": "Die Ännarung isch noch nedd iwwabriefd worre",
+       "recentchanges-label-plusminus": "Ännarung vunde Saidegreeß in Bytes",
+       "recentchanges-legend-heading": "'''Bildtegschd:'''",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (gugg a uff [[Special:NewPages|Lischd vun naije Saide]])",
        "rcnotefrom": "Unne sinn Ännarunge said <strong>$2<-strong> (bis <strong>$1<-strong>).",
        "rclistfrom": "Zaisch die ledschde Ännarunge ab $3 $2",
        "rcshowhideminor": "Glenni Ännarunge $1",
+       "rcshowhideminor-show": "Zaische",
+       "rcshowhideminor-hide": "Vaschdeggle",
        "rcshowhidebots": "Bots $1",
-       "rcshowhideliu": "Õgmelde Middawaida $1",
-       "rcshowhideanons": "Ned õgmelda Middawaida $1",
+       "rcshowhidebots-show": "Zaische",
+       "rcshowhidebots-hide": "Vaschdeggle",
+       "rcshowhideliu": "Oagmelde Middawaida $1",
+       "rcshowhideliu-show": "Zaische",
+       "rcshowhideliu-hide": "Vaschdeggle",
+       "rcshowhideanons": "Nedd oagmelda Middawaida $1",
+       "rcshowhideanons-show": "Zaische",
+       "rcshowhideanons-hide": "Vaschdeggle",
        "rcshowhidepatr": "$1 iwabriefde Ännarunge",
+       "rcshowhidepatr-show": "Zaische",
+       "rcshowhidepatr-hide": "Vaschdeggle",
        "rcshowhidemine": "Moi Beawaidunge $1",
+       "rcshowhidemine-show": "Zaische",
+       "rcshowhidemine-hide": "Vaschdeggle",
        "rclinks": "Zaisch die ledschde $1 Ännarunge inde ledschde $2 Daach<br />$3",
        "diff": "Unnaschied",
        "hist": "Gschischd",
        "hide": "vaschdeggle",
-       "show": "zaische",
+       "show": "Zaische",
        "minoreditletter": "k",
        "newpageletter": "N",
        "boteditletter": "B",
        "rc_categories": "Oigschrengd uff Sachgrubbe (abgdeeld middm \"|\")",
        "rc_categories_any": "Ebbes",
+       "rc-change-size-new": "$1 {{PLURAL:$1|Byte}} nochde Ännarung",
        "rc-enhanced-expand": "Änzlhaide zaische",
-       "rc-enhanced-hide": "Õgawe vaschdeggle",
-       "recentchangeslinked": "Was õn valinggde Saide gännad worre isch",
+       "rc-enhanced-hide": "Oagawe vaschdeggle",
+       "recentchangeslinked": "Was oan valingde Saide gännad worre isch",
        "recentchangeslinked-feed": "Ännarunge on valinggde Saide",
        "recentchangeslinked-toolbox": "Ännarunge uff verlingde Saide",
-       "recentchangeslinked-title": "Ännarunge õn Saide, wu „$1“ druff verlinggd",
-       "recentchangeslinked-summary": "Die Lischd zaischd ledschdi Ännarunge, vunna bschdimmde Said, wu do valinggd isch (odda ä Midglied vunna bschdimmde Sachgrubb isch).\nSaide uff [[Special:Watchlist|Doina Beowachdungslischd]] sinn '''fedd'''.",
+       "recentchangeslinked-title": "Ännarunge oan Saide, wu „$1“ druff valingd",
+       "recentchangeslinked-summary": "Die Lischd zaischd ledschde Ännarunge, vunna bschdimmde Said, wu do valinggd isch (odda ä Midglied vunna bschdimmde Sachgrubb isch).\nSaide uff [[Special:Watchlist|Doina Beowachdungslischd]] sinn <strong>fedd</strong>.",
        "recentchangeslinked-page": "Saide:",
-       "recentchangeslinked-to": "Zaisch Ännarunge uff Saide, wu do her valinggd sinn",
-       "upload": "Nufflade",
+       "recentchangeslinked-to": "Zaisch Ännarunge uff Saide, wu dohea valingd sinn",
+       "upload": "Nufflaade",
        "uploadbtn": "Dadai nufflade",
+       "uploadnologin": "Bischd nedd oagmeld",
        "uploadlogpage": "Dadaije-Logbuch",
        "filedesc": "Iwwabligg",
        "fileuploadsummary": "Iwwabligg:",
+       "badfilename": "D'Dadainoame hodd sisch uff \"$1\" g'ännad.",
+       "file-deleted-duplicate": "Ä Dadai, wu glaisch isch wie die do ([[:$1]]), hoddma schunmol gleschd kabd. Guggdas Logbuch oa, bvoase nufflaade duschd.",
        "savefile": "Dadai schbaischere",
+       "backend-fail-alreadyexists": "Die Dadai \"$1\" hodds schunn.",
        "lockmanager-notlocked": "„$1“ hod ned uffgmachd were kenne, s'isch ganed gschberd gwesd.",
        "lockmanager-fail-closelock": "Die gbscherd Dadai „$1“ hod ned gschlosse were kenne.",
        "lockmanager-fail-deletelock": "Die gbscherd Dadai „$1“ hod ned gleschd were kenne.",
        "lockmanager-fail-releaselock": "„$1“ konn ned fraigewe werre.",
        "license": "Bwillischung",
        "license-header": "Bwillischung",
+       "nolicense": "Nix ausgweeld",
+       "listfiles-delete": "lesche",
+       "imgfile": "Dadai",
        "listfiles_name": "Nome",
+       "listfiles_user": "Middawaida",
        "listfiles_size": "Greeß",
        "listfiles_count": "Versione",
+       "listfiles-latestversion-yes": "Ja",
+       "listfiles-latestversion-no": "Nä",
        "file-anchor-link": "Dadai",
        "filehist": "Dadaigschischd",
-       "filehist-help": "Drigg uffn Zaidpunggd zum õzaische, wies dord ausgseje hodd.",
+       "filehist-help": "Drigg uffn Zaidpungd zum oazaische, wies doad ausgseje hodd.",
        "filehist-deleteall": "alles lesche",
        "filehist-deleteone": "lesche",
        "filehist-revert": "zriggsedze",
        "filehist-current": "agduell",
        "filehist-datetime": "Zaidpungd",
        "filehist-thumb": "Gleenes Bild",
-       "filehist-thumbtext": "Skizz fa die Ausgab vum $1",
+       "filehist-thumbtext": "Skizz fa die Ausgawb vum $1",
        "filehist-user": "Middawaida",
        "filehist-dimensions": "Maß",
        "filehist-comment": "Oißarung",
        "linkstoimage": "Die {{PLURAL:$1|Said vawaisd|$1 Saide vawaisn}} uff die Dadai:",
        "nolinkstoimage": "Do hodds kä Said, wu dohea zaischd.",
        "sharedupload": "Die Datei isch vun $1 un s kann sai, dass se ach vun annere Projekt gebraucht werd.",
-       "sharedupload-desc-here": "Die Dadai isch vun $1 un konn a wuonaschda bnuzd werre.\nÄ Bschraiwung finschd [$2 Dadaibschraiwungssaid] unne.",
+       "sharedupload-desc-here": "Die Dadai isch vun $1 unn konn a wuonaschda bnuzd werre.\nÄ Bschraiwung finschd [$2 Dadaibschraiwungssaid] unne.",
        "uploadnewversion-linktext": "E naiere Version vun derre Datei hochlade",
+       "shared-repo-from": "vun $1",
+       "upload-disallowed-here": "Du konschd do nix iwwaschraiwe.",
        "filedelete": "Lesch $1",
        "filedelete-legend": "Dadai lesche",
+       "filedelete-intro": "Du bischd drummunndroa die Said '''„[[Media:$1|$1]]“''' midde Gschischd zu lesche.",
        "filedelete-submit": "Lesche",
        "filedelete-success": "'''$1''' isch gleschd worre.",
        "filedelete-maintenance-title": "Dadai konnned gleschd werre",
        "download": "Runalaade",
-       "randompage": "Irschndn Adiggl",
+       "randompage": "Iaschnd n'Adiggl",
+       "randomincategory-category": "Sachgrubb:",
        "statistics": "Schdadischdigge",
        "statistics-pages": "Saide",
+       "doubleredirects": "Dobblde Waidalaidung",
        "brokenredirects-edit": "schaffe",
        "brokenredirects-delete": "lesche",
        "withoutinterwiki-submit": "Zaische",
        "nrevisions": "$1 {{PLURAL:$1|Ännarung|Ännarunge}}",
        "nimagelinks": "Used on $1 {{PLURAL:$1|Said|Saide}}",
        "ntransclusions": "oigsedzd uff $1 {{PLURAL:$1|Said|Saide}}",
+       "lonelypages": "Vawaide Saide",
        "uncategorizedpages": "Said ohne Sachgrubb",
        "uncategorizedcategories": "Sachgrubb ohne Sachgrubb",
        "uncategorizedimages": "Dadai ohne Sachgrubb",
        "wantedcategories": "Gwinschde Sachgrubbe",
        "wantedpages": "Gwinschde Saide",
        "mostlinkedcategories": "Nizlischi Sachgrubbe",
-       "mostlinkedtemplates": "Niylischi Vorlache",
-       "mostcategories": "Saide midd õm maigschde Sachgrubbe",
+       "mostlinkedtemplates": "Maischdoigbunnene Saide",
+       "mostcategories": "Saide midd oam maigschde Sachgrubbe",
        "prefixindex": "Alle Saide (midd Voasilw)",
        "listusers-editsonly": "Zaisch bloß Bnudza mid Baidräsch",
        "usercreated": "{{GENDER:$3|Gmachd}} vun $1 om $2",
        "pager-older-n": "{{PLURAL:$1|vorisch 1|vorische $1}}",
        "booksources": "Buchgwelle",
        "booksources-search-legend": "Noch Buchgwelle gugge",
+       "booksources-search": "Gugg",
        "log": "Logbischa",
        "allpages": "Alle Saide",
+       "nextpage": "Negschd Said ($1)",
        "prevpage": "Voriche Said ($1)",
        "allpagesfrom": "Saide aazaische wu aafange mid:",
        "allpagesto": "Saide aazaische wu ufhere mid:",
        "allarticles": "Alle Saide",
        "allpagessubmit": "Zaische",
+       "allpages-hide-redirects": "Waidalaidunge vaschdeggle",
        "categories": "Sachgrubbe",
        "categoriespagetext": "Folschndi {{PLURAL:$1|Sachgrubb hodd|Sachgrubbe hawen}} Saide odda Dadaije. [[Special:UnusedCategories|Ubnudze Sachgrubbe]] werren do nedd gzaischd. Gugg a uffde [[Special:WantedCategories|gwinschde Sachgrubbe]].",
-       "categoriesfrom": "Zaisch Sachgrubbe õgfonge middt:",
+       "categoriesfrom": "Zaisch Sachgrubbe oagfonge middt:",
        "sp-deletedcontributions-contribs": "Baidräsch",
        "linksearch": "Exderne Lings",
        "linksearch-pat": "Suchmuschda",
+       "linksearch-ok": "Gugge",
        "linksearch-line": "$1 isch vun $2 valinggd",
        "listusers-submit": "Zaische",
        "listusers-noresult": "Kä Middawaida gfunne",
        "listusers-blocked": "(gschberd)",
        "listgrouprights-group": "Grubb",
        "listgrouprights-members": "(Midgliedalischd)",
-       "emailuser": "E-Mail õnde Middawaida",
-       "emailusername": "Middawaidanõme:",
+       "emailuser": "E-Mail oande Middawaida",
+       "emailusername": "Middawaidanoame:",
        "emailfrom": "Vum:",
        "emailto": "Fa:",
        "emailsubject": "Bdreff:",
        "deletepage": "Said lesche",
        "confirm": "Beschdedische",
        "delete-legend": "Lesche",
+       "historywarning": "<strong>Bassma uff:</strong> Die Said, wu lesche wilschd, hoddä Gschischd midd {{PLURAL:$1|äna Ännarung|$1 Ännarunge}}:",
        "confirmdeletetext": "Du bisch debai e Said z lesche mid alle Versione.\nBitte du bstätiche, dass Du des wllscht du, dass Du verstehsch, was des hääßt, un dass Du des machscht in Iwweraistimmung mit de [[{{MediaWiki:Policy-url}}|Richtline]].",
        "actioncomplete": "Maßnohm ferdisch",
        "actionfailed": "Maßnohm gschaidad",
        "deletecomment": "Grund:",
        "deleteotherreason": "Annere/zusätzliche Grund:",
        "deletereasonotherlist": "Annere Grund",
+       "delete-toobig": "Die Said hodd midd mea als $1 {{PLURAL:$1|Ännarung|Ännarunge}} ä longi Gschischd. S'Lesche vun denne Saide isch bschrengd, domidd de Seava nedd aus Vaseje zsommekrache dud.",
+       "delete-warning-toobig": "Die Said hodd midd mea als $1 {{PLURAL:$1|Ännarung|Ännarunge}} ä longi Gschischd. S'Lesche konn zu Schderunge inde Daadebong'g fiare.",
        "rollbacklink": "Zriggsedze",
+       "rollbacklinkcount": "{{PLURAL:$1|Ä Ännarung|$1 Ännarunge}} z'riggsedze",
+       "rollbackfailed": "Zriggsedze hodd nedd g'klabbd",
        "protectlogpage": "Saideschudz-Logbuch",
        "protectedarticle": "hodd \"[[$1]]\" gschizd",
        "modifiedarticleprotection": "hot de Schutzstatus vun \"[[$1]]\" gännert",
        "protect-cascadeon": "Die Said isch gschizd, wail se {{PLURAL:$1|zu derre Said kead|zu denne Saide kead}}, wuä Kaskadeschberrung gild.\nÄnnarunge vum Saideschudz hodd awwa kän Oifluß uff die Kaskadeschberrung.",
        "protect-default": "Alle Middawaida erlauwe",
        "protect-fallback": "Bloß fa Laid mid \"$1\" Bereschdischung",
-       "protect-level-autoconfirmed": "Naiji un nedd õgmeld Middawaida schberre",
+       "protect-level-autoconfirmed": "Naiji un nedd oagmeld Middawaida schberre",
        "protect-level-sysop": "Bloß fa Adminischdradore",
        "protect-summary-cascade": "Kaskade",
        "protect-expiring": "bis $1 (UTC)",
        "protect-expiring-local": "bis $1",
+       "protect-expiry-indefinite": "uubschdimmd",
        "protect-cascade": "Kaskadesperrung – alle aigebunnene Vorlache sinn midgsperrd.",
        "protect-cantedit": "Du kannscht de Schutzstatus vun derre Said nit ännere, wail Du nid d Berechdichung dezu hoscht.",
+       "protect-othertime": "Onnari Dauwa",
        "restriction-type": "Berechdichung:",
        "restriction-level": "Schudsewene:",
        "restriction-edit": "Schaffe",
        "restriction-move": "Verschiewe",
+       "restriction-create": "Oaleesche",
+       "restriction-upload": "Nufflaade",
        "undelete": "Widderherschdelle",
+       "undeleteextrahelp": "Domidd die Said kombledd midde Gschischd widdaheagschdeld werre konn, gligg alles weg un gligg uff <strong<em>{{int:undeletebtn}}</em></strong>.\nDomidd bschdimmdi Ännarunge zriggkrische duschd, gliggschd die endschbreschende Käschde oa unn glischd donn uff <strong><em>{{int:undeletebtn}}</em></strong>.",
+       "undeleterevisions": "$1 {{PLURAL:$1|Ännarung|Ännarunge}} aschiviad",
+       "undeletehistory": "Wonn die Said zriggholschd, kummen alle Ännarunge midd.\nWonnä naiji Said middm selwe Noame oageleschd wead, saidse gleschd worre isch, easchoinen die Ännarunge middm Zrigghole inde Gschischd.",
        "undeletebtn": "Widderherschdelle",
-       "undeletelink": "õgugge/widda herschdelle",
-       "undeleteviewlink": "Õgugge",
+       "undeletelink": "oagugge/widda herschdelle",
+       "undeleteviewlink": "Oagugge",
+       "undelete-search-title": "Gugg noch g'leschde Saide",
+       "undelete-search-box": "Gugg noch g'leschde Saide",
+       "undelete-search-submit": "Gugge",
        "undelete-show-file-submit": "Ja",
-       "namespace": "Nõmensraum",
+       "namespace": "Noamensraum",
        "invert": "Wahl dausche",
+       "tooltip-invert": "Gligg uffde Auswahlkaschde, um Ännarunge im gwehlde Noamensraum unn, wonns gwehld hoschd, em endschbreschende zukehrische Noamensraum zum Vaschwinde zu bringe",
+       "namespace_association": "Zukehrische Noamensraum",
+       "tooltip-namespace_association": "De Kaschde oagligge, um a's Dischbediere vum zukearisch Noamensraum zu krische.",
        "blanknamespace": "(Schdadsaid)",
        "contributions": "{{GENDER:$1|Wassa gemachd hodd}}",
        "contributions-title": "Middawaidabaidräsch vun $1",
        "sp-contributions-logs": "Logbischa",
        "sp-contributions-talk": "Dischbediere",
        "sp-contributions-search": "Noch Baidräsch gugge",
-       "sp-contributions-username": "IP-Adress odda Middawaidanõme:",
+       "sp-contributions-username": "IP-Adress odda Middawaidanoame:",
        "sp-contributions-toponly": "Bloß agduelli Ännarunge zaische",
        "sp-contributions-submit": "Gugge",
-       "whatlinkshere": "Was doher zaische dud",
-       "whatlinkshere-title": "Saide wu uff \"$1\" valinggn",
+       "whatlinkshere": "Was dohea zaische dud",
+       "whatlinkshere-title": "Saide wu uff \"$1\" valing'gn",
        "whatlinkshere-page": "Said:",
-       "linkshere": "Die Saide valinggn uff '''[[:$1]]''':",
+       "linkshere": "Die Saide valing'gn uff '''[[:$1]]''':",
        "nolinkshere": "Kä Said zaischd uff '''[[:$1]]'''.",
        "isredirect": "Waidalaidungsaid",
        "istemplate": "Vorlacheoibindung",
-       "isimage": "Dadailingg",
+       "isimage": "Dadailing'g",
        "whatlinkshere-prev": "{{PLURAL:$1|vorisch|vorische $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|negschd|negschde $1}}",
-       "whatlinkshere-links": "← Linggs",
+       "whatlinkshere-links": "← Ling'gs",
        "whatlinkshere-hideredirs": "$1 Waidalaidunge",
        "whatlinkshere-hidetrans": "$1 Vorlacheoibindunge",
-       "whatlinkshere-hidelinks": "$1 Linggs",
+       "whatlinkshere-hidelinks": "$1 Ling'gs",
        "whatlinkshere-hideimages": "$1 Dadailinggs",
        "whatlinkshere-filters": "Filda",
        "blockip": "Middawaida bloggiere",
        "ipbsubmit": "Middawaida bloggiere",
+       "ipbother": "Onnari Dauwa:",
        "ipboptions": "2 Schdunne:2 hours,1 Daach:1 day,3 Daach:3 days,1 Woch:1 week,2 Woche:2 weeks,1 Monad:1 month,3 Monad:3 months,6 Monad:6 months,1 Johr:1 year,Fa imma:infinite",
+       "ipb-unblock-addr": "Fraigewwe $1",
        "ipusubmit": "Die Adreß fraigewwe",
-       "ipblocklist": "Gschberrdi IP-Adress un Middawaidanõme",
+       "ipblocklist": "Gschberrdi IP-Adress un Middawaidanoame",
        "infiniteblock": "ubgrensd",
-       "blocklink": "schberre",
+       "blocklink": "Schberre",
        "unblocklink": "Sperr uffhewe",
        "change-blocklink": "Schberr ännare",
        "contribslink": "Baidräsch",
        "blocklogpage": "Schberrlogbuch",
        "blocklogentry": "hodd [[$1]] gschberrd fa'n Zaidraum vun $2 $3",
        "unblocklogentry": "hot d Sperr vun $1 uffghowwe",
-       "block-log-flags-nocreate": "Õleesche vun Konde isch gschberrd",
-       "lockbtn": "Dadebongg schberre",
-       "unlockbtn": "Dadebongg fraigewwe",
+       "block-log-flags-nocreate": "Oaleesche vun Konde isch gschberrd",
+       "lockbtn": "Dadebong'g schberre",
+       "unlockbtn": "Dadebong'g fraigewwe",
        "move-page-legend": "Said vaschiewe",
        "movepagetext": "Midm Formad konnschd ä Said en naije Nome gewwe, debai werrem alli alde Ausgawe uffde nai Nome vaschowe.\nAusm alde Nome werd e Waidalaidungssaid zum naije Nome.\nWaidalaidungssaide, wu uffde ald Nome umlaide dun, konnschd vun allä uffde naischde Schdond bringe.\nWonndes ned willschd, guggschd uff [[Special:DoubleRedirects|dobbldi]] odda [[Special:BrokenRedirects|kabuddi Waidalaidunge]].\nSoasch dfia, dass Linggs waida uffdie rischdische Saide fiehan.\n\nGebb Achd, dass die Said '''ned''' vaschowe werd, wonns schunä Said midm naije Nome hod, außa wonnse lea isch odda e Waidalaidung.\nDes heeßd, Du konnschd ke Said, wus schun gibbd, iwwaschraiwe.\n\n'''BAßMAUFF!'''\nDes isch e wischdischi Ännarung fa e Said un konn zimlisch uuerwaaded soi fa wischdischi Saide;\nmach des bloß, wonn die Folsche vunde Maßnohm a abschedze konnschd.",
+       "movepagetext-noredirectfixer": "Middm Foamula unne koschd die Said nai bnenne, wonnse midde gonse Gschischd uffn naije Noame bwesche duschd.\nDe ald Tidl weadä Said midd änna Waidalaidung uff die Said werre.\nBass uff unn gugg uff [[Special:DoubleRedirects|dobbelde]] odda [[Special:BrokenRedirects|kabudde Waidalaidunge]]. Du bischd dvoa vaondwoadlisch, dass Ling'gs uffs rischdische zaische dun.\n\nBass uff, die Said wead <strong>nedd</strong> vaschowe, wonns schun ä Said gewwe dud, wude selwe Noame hodd, aussa, s'isch ä Waidalaidung ohne Gschischd.\nDes heesd, wonnän Fehla gmschd hoschd, konschd ä Said zrigg. Awwa konschd kä Said iwwaschraiwe, wus schun hodd.\n\n<strong>Bassma uff, Beaschl!</strong>\nDes konn schlimme Folsche fa b'liewde Saide hawwe. Saida wiaglisch sischa, dass a alles was do due wilschd, a vaschdonne hoschd. Odda losses sunschd bessa soi.",
        "movepagetalktext": "D Dischbediersaid werd ach mid verschowe, '''ausser:'''\n* Du verschiebsch die Saide in e annere Namensraum, odder\n* s gebbt schun e Dischbediersaid mi dem Name, orrer\n* Du wählsch unne d Option, se nid z verschiewe.\n\nIn denne Fäll misst mer d Dischbediersaid vun Hand kopiere.",
        "movearticle": "Said vaschiewe:",
        "newtitle": "Zum naije Didl:",
        "revertmove": "Zurigg vaschiewe",
        "delete_and_move": "Lesche un Verschiewe",
        "delete_and_move_confirm": "Ja, Said lesche",
-       "export": "Saide rausgewe",
+       "export": "Saide rausgewwe",
+       "exportcuronly": "Bloß die ledschd Ännarung vunde Said exboadiere",
        "export-submit": "Saide exbordiere",
        "export-addcattext": "Saide vunde Sachgrubb dzufiesche:",
-       "allmessagesname": "Nõme",
-       "allmessagesdefault": "Vorgewene Tegschd",
+       "allmessagesname": "Noame",
+       "allmessagesdefault": "Voagewene Tegschd",
        "allmessages-filter-modified": "Vaännad",
-       "thumbnail-more": "Mags greßa",
+       "thumbnail-more": "Mags greeßa",
        "thumbnail_error": "Baim Voaschaubild ischwas falsch glaafe: $1",
        "import-interwiki-submit": "Impordiere",
        "tooltip-pt-userpage": "Doi Miaddawaidasaid",
        "tooltip-pt-preferences": "Doi Oischdellunge",
        "tooltip-pt-watchlist": "Lischd vun Saide, wu beowachde duschd",
        "tooltip-pt-mycontris": "Lischd vun doine Baidräsch",
-       "tooltip-pt-login": "Du konnschd disch õmelde, awwa mugschd ned",
+       "tooltip-pt-login": "Du konnschd disch oamelde, mugschd awwa ned",
        "tooltip-pt-logout": "Uffhere",
-       "tooltip-ca-talk": "Iwwa d Inhaldssaid dischbediere",
-       "tooltip-ca-edit": "Du konnschd onde Said schaffe.\nBidde nemmde Vorschau-Gnobb vorm Schbaischare",
-       "tooltip-ca-addsection": "N'naije Abschnidd õleche",
-       "tooltip-ca-viewsource": "Die Said isch gschizd. Du konnschdda de Gwelltegschd õgugge.",
-       "tooltip-ca-history": "Ledschdi Ausgawe vunde Said",
+       "tooltip-pt-createaccount": "Fiel disch eamudischd da ä Middawaidakondo oazuleesche unn disch oazumelde. Mugschd awwa nedd.",
+       "tooltip-ca-talk": "Iwwa d'Inhaldssaid dischbediere",
+       "tooltip-ca-edit": "Du konnschd onde Said schaffe.\nBidde nemmde Vorschau-Gnobb voam Schbaischare",
+       "tooltip-ca-addsection": "N'naije Abschnidd oaleche",
+       "tooltip-ca-viewsource": "Die Said isch gschizd. Du konnschdda de Gwelltegschd oagugge.",
+       "tooltip-ca-history": "Ledschde Ausgawe vunde Said",
        "tooltip-ca-protect": "Die Said schidze",
        "tooltip-ca-delete": "Die Said lesche",
        "tooltip-ca-move": "Die Said vaschiewe",
        "tooltip-ca-watch": "Die Said zu doina Beowachdungslischd dzufiesche",
        "tooltip-ca-unwatch": "Die Said vun doina Beowachdunschlischd wegnemme",
        "tooltip-search": "Gugg uff {{SITENAME}} fa",
-       "tooltip-search-go": "Geh zude Said midm Nõme, wonnses hodd",
+       "tooltip-search-go": "Geh zude Said midm Noame, wonnses hodd",
        "tooltip-search-fulltext": "Gugg inde Said nochm Tegschd",
        "tooltip-p-logo": "Schdadsaid",
        "tooltip-n-mainpage": "Uff d'Schdadsaid geje",
-       "tooltip-n-mainpage-description": "Haubdsaid õgugge",
+       "tooltip-n-mainpage-description": "Haubdsaid oagugge",
        "tooltip-n-portal": "Iwwas Brojegd, wu mache konnschd, wu ebbes finne duschd",
        "tooltip-n-currentevents": "Finn Auskinfd iwwas Naijischde",
        "tooltip-n-recentchanges": "Lischd vunde ledschde Ännarunge im Wiki",
-       "tooltip-n-randompage": "Laad e zufellischi Said",
+       "tooltip-n-randompage": "Laad ä zufellischi Said",
        "tooltip-n-help": "Do konschds rausfinne",
        "tooltip-t-whatlinkshere": "Lischd vun alle Wikisaide, wu dohie verlingd sinn",
-       "tooltip-t-recentchangeslinked": "Ledschdi Ännarunge in Saide, wu vun do verlinggd sinn",
+       "tooltip-t-recentchangeslinked": "Ledschde Ännarunge in Saide, wu vun do verlingd sinn",
        "tooltip-feed-rss": "RSS feed fer die Said",
        "tooltip-feed-atom": "Atom-Feed fa die Said",
-       "tooltip-t-contributions": "Ledschdi Baidräsch vum Middawaida õgugge",
+       "tooltip-t-contributions": "Ledschde Baidräsch vum Middawaida oagugge",
        "tooltip-t-emailuser": "Dem Middawaida e E-Mail schigge",
-       "tooltip-t-upload": "Dadaije nufflade",
-       "tooltip-t-specialpages": "Lischd vunde Schbezialsaide",
-       "tooltip-t-print": "Druggausgab vunde Said",
-       "tooltip-t-permalink": "N'dauwahafde Lingg uff die Ausgab vunde Said",
-       "tooltip-ca-nstab-main": "Inhald õgugge",
-       "tooltip-ca-nstab-user": "Middawaidasaid õgugge",
-       "tooltip-ca-nstab-special": "Des isch e Spezialsaid, du konnschd d Said selwaschd nedd ännare",
-       "tooltip-ca-nstab-project": "Brojegdsaid õgugge",
-       "tooltip-ca-nstab-image": "Dadaisaid õgugge",
-       "tooltip-ca-nstab-template": "Vorlach õgugge",
-       "tooltip-ca-nstab-category": "Sachgrubbsaid õgugge",
+       "tooltip-t-upload": "Dadaije nufflaade",
+       "tooltip-t-specialpages": "Lischd vunde Sondasaide",
+       "tooltip-t-print": "Druggausgawb vunde Said",
+       "tooltip-t-permalink": "N'dauwahafde Ling'g uff die Ausgawb vunde Said",
+       "tooltip-ca-nstab-main": "Inhald oagugge",
+       "tooltip-ca-nstab-user": "Middawaidasaid oagugge",
+       "tooltip-ca-nstab-special": "Des ischä Sondasaid, du konnschd die Said selwa nedd ännare",
+       "tooltip-ca-nstab-project": "Brojegdsaid oagugge",
+       "tooltip-ca-nstab-image": "Dadaisaid oagugge",
+       "tooltip-ca-nstab-template": "Vorlaach oagugge",
+       "tooltip-ca-nstab-category": "Sachgrubbsaid oagugge",
        "tooltip-minoredit": "Als gleeni Ännarung makiere",
        "tooltip-save": "Doi Ännarunge schbaischare",
-       "tooltip-preview": "Guggda doi Ännarunge inde Vorschau õ, bvor uff Schbaischare drigschd!",
-       "tooltip-diff": "Gugg, welschi Ännarunge im Tegschd gmachd hoschd",
+       "tooltip-preview": "Guggda doi Ännarunge inde Vorschau oa, bvor uff Schbaischare driggschd!",
+       "tooltip-diff": "Gugg, welsche Ännarunge im Tegschd gmachd hoschd",
        "tooltip-compareselectedversions": "D Unnaschied zwische denne zwee gwehlde Ausgawe õgugge",
        "tooltip-watch": "Die Said zu doina Beowachdunglischd zufiesche",
-       "tooltip-rollback": "„Zriggsedze“ machd alli Beawaidunge vum ledschde Middawaida rigg'gängisch",
-       "tooltip-undo": "„Zrigg“ machd nua die Ännarung rigg'gängich un zaischd ä Vorschau õ.\nKonnschdn Grund inde Zommefassung õgewwe.",
-       "tooltip-summary": "Gebä koaz Resimee",
+       "tooltip-rollback": "„Zriggsedze“ machd alle Beawaidunge vum ledschde Middawaida rigg'gängisch",
+       "tooltip-undo": "„Zrigg“ machd nua die Ännarung rigg'gängich unn zaischdä Vorschau.\nKonnschdn Grund inde Zommefassung oagewwe.",
+       "tooltip-summary": "Gebb ä koaz Resimee",
+       "simpleantispam-label": "Schbämschudzpriefung.\nDo <strong>NIX</strong> oidraache!",
        "pageinfo-hidden-categories": "{{PLURAL:$1|Vaschdeggldi Sachgrubb|Vaschdegglde Sachgrubbe}} ($1)",
-       "pageinfo-category-info": "Sachgrubb-Õgawe",
-       "pageinfo-category-subcats": "Õzahl vun Unnagrubbe",
-       "previousdiff": "← Äldari Beawaidung",
+       "pageinfo-toolboxlink": "Auskinfd zude Said",
+       "pageinfo-contentpage-yes": "Ja",
+       "pageinfo-protect-cascading-yes": "Ja",
+       "pageinfo-category-info": "Sachgrubb-Oagawe",
+       "pageinfo-category-subcats": "Oazahl vun Unnagrubbe",
+       "previousdiff": "← Äldare Beawaidung",
        "nextdiff": "Naijari Beawaidung →",
        "file-info-size": "$1 × $2 Pixels, Dadaigreß: $3, MIME-Type: $4",
-       "file-nohires": "Ke heheri Ufflesung vafieschba.",
+       "file-nohires": "Kä hejari Ufflesung vafieschba.",
        "svg-long-desc": "SVG-Datei, Grundgreß $1 × $2 Pixels, Dadaigreß: $3",
        "show-big-image": "Uaschbringlischi Dadai",
+       "show-big-image-preview": "Greeß vunde Voaschau: $1.",
+       "show-big-image-other": "Waidari {{PLURAL:$2|Uffleesung|Uffleesunge}}: $1.",
+       "show-big-image-size": "$1 × $2 Pixl",
        "ilsubmit": "Such",
        "bad_image_list": "Uffbau: bloß Zaile, wu midm * õfonge werren briggsischdischd.\nDe erschd Lingg mussn Lingg zu änna uuerwinschde Dadai soi.\nÕnnare Linggs inde glaische Zail werren als Ausnõhm gnumme, des heesd, Saide, wu inde Dadai vorkumme dirfn.",
        "metadata": "Medadaade",
-       "metadata-help": "Die Dadai hodd waidari Õgawe, waschoinlisch vunde Digidalkõmara odda vum Skänna, wumase mid gmachd hodd.\nWonn die Dadai vaännad worre isch, donn konns soi, daß zusedzlischi Õgawe fa die vaännad Dadai nemme rischdisch sinn.",
+       "metadata-help": "Die Dadai hodd waidare Oagawe, waschoinlisch vunde Digidalkomara odda vum Skänna, wumase midd gmachd hodd.\nWonn die Dadai vaännad worre isch, konns soi, daß zusedzlischi Oagawe nemme rischdisch sinn.",
        "metadata-expand": "Erwaiterte Details aazaiche",
        "metadata-collapse": "Erwaiterte Details versteckeln",
-       "metadata-fields": "Die EXIF-Medadaade werren inde Bild-Bschraiwung a õgzaischd, wonn die Medadaade-Tabell vaschdegld isch.\nÕnnare Medadaade sinn noamalawais vaschdegld.\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": "Die EXIF-Medadaade werrn inde Bild-Bschraiwung a oagzaischd, wonn die Medadaade-Tabell vaschdeggld isch.\nOannare Medadaade sinn noamalawais vaschdeggld.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "exif-orientation": "Ausrischdung",
+       "exif-xresolution": "Waagreschdi Ufflesung",
+       "exif-yresolution": "Seng'greschdi Ufflesung",
+       "exif-datetime": "Schbaischazaidpungd",
+       "exif-make": "Kamaraheaschdella",
+       "exif-model": "Kamaramodel",
+       "exif-software": "Sofdwaa",
+       "exif-exifversion": "Exif-Veasion",
+       "exif-colorspace": "Fawe",
+       "exif-datetimeoriginal": "Zaidpungd vunde Eafassung",
+       "exif-datetimedigitized": "Zaidpungd vunde Digidalisierung",
        "exif-iimcategory": "Sachgrubb",
        "exif-iimsupplementalcategory": "Ergenzndi Sachgrubbe",
+       "exif-orientation-1": "Noamal",
        "exif-gaincontrol-0": "Kään",
        "namespacesall": "alle",
        "monthsall": "alle",
-       "watchlisttools-view": "Die wischdische Ännarunge õgugge",
-       "watchlisttools-edit": "Beowachdunglischd õgugge un drõ schaffe",
-       "watchlisttools-raw": "Im große Tegschdfeld schaffe",
+       "watchlisttools-view": "Die wischdische Ännarunge oagugge",
+       "watchlisttools-edit": "Beowachdunglischd oagugge un droa schaffe",
+       "watchlisttools-raw": "Im große Tegschdkaschde schaffe",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|Gbabbl]])",
        "duplicate-defaultsort": "'''Baßma uff:''' De Schlissl \"$2\" dudde frijare Schlissl \"$1\" iwwaschraiwe.",
-       "specialpages": "Schbezialsaide",
+       "specialpages": "Sondasaide",
        "specialpages-group-other": "Onare bsundare Saide",
        "specialpages-group-pagetools": "Wergzaisch fa Saide",
        "specialpages-group-wiki": "Daade un Wergzaisch",
        "external_image_whitelist": " #Loss die Zail wiese isch.<pre>\n#Geb unne Deel vunde regulere Ausdrigg (de Deel zwischede //) oi.\n#Die werren midde URLs vun aissare Bilda vaglische.\n#Die wu passen werren gzaischd un schunschd sieschdn n'Ling'g.\n#Zaile, wu midd # ofongen sinnen Kommenda.\n#Glä- odda Großschraiwung isch do egal.\n\n#Deel vun regulere Ausdrigg nochde Zeil oidrache. Loss die Zail do uuvaännad.</pre>",
        "tag-filter": "[[Special:Tags|Bschildarungs]]-Filda:",
+       "tag-list-wrapper": "([[Special:Tags|{{PLURAL:$1|Tag}}]]: $2)",
+       "tags-active-yes": "Ja",
+       "tags-active-no": "Nä",
        "tags-edit": "bearwaide",
+       "htmlform-no": "Nä",
+       "htmlform-yes": "Ja",
+       "logentry-delete-delete": "$1 {{GENDER:$2|hodd}} Said $3 gleschd",
+       "logentry-move-move": "$1 {{GENDER:$2|hodd}} die Said $3 noch $4 vaschowe",
+       "logentry-newusers-create": "Middawaidakondo $1 isch {{GENDER:$2|easchdelld}} worre",
+       "logentry-upload-upload": "$1 {{GENDER:$2|hodd}} $3 nuffg'laade",
        "rightsnone": "(-)",
        "feedback-close": "Erledischd",
-       "searchsuggest-search": "Suche",
+       "searchsuggest-search": "Gugg",
        "api-error-unknownerror": "Uubekonde Irrdumm: \"$1\".",
        "duration-seconds": "$1 {{PLURAL:$1|Sekund|Sekunde}}",
        "duration-minutes": "$1 {{PLURAL:$1|Minud|Minude}}",
index 267242d..4dde90c 100644 (file)
@@ -90,7 +90,7 @@
        "tog-watchcreations": "Dodawaj do obserwowanych tworzone przeze mnie strony oraz wgrywane przeze mnie pliki",
        "tog-watchdefault": "Dodawaj do obserwowanych strony i pliki, które edytuję",
        "tog-watchmoves": "Dodawaj do obserwowanych strony i pliki, które przenoszę",
-       "tog-watchdeletion": "Dodawać do listy obserwowanych usunięte mną strony i pliki",
+       "tog-watchdeletion": "Dodawaj do obserwowanych strony i pliki, które usuwam",
        "tog-watchrollback": "Dodawaj do obserwowanych strony, w których {{GENDER:|wycofałem|wycofałam}} edycję",
        "tog-minordefault": "Wszystkie edycje domyślnie oznaczaj jako drobne",
        "tog-previewontop": "Pokazuj podgląd powyżej obszaru edycji",
        "jumptonavigation": "nawigacja",
        "jumptosearch": "szukaj",
        "view-pool-error": "Niestety w chwili obecnej serwery są przeciążone.\nZbyt wielu użytkowników próbuje wyświetlić tę stronę.\nPoczekaj chwilę przed ponowną próbą dostępu do tej strony.\n\n$1",
-       "generic-pool-error": "Niestety w chwili obecnej serwery są przeciążone.\nZbyt wielu użytkowników próbuje wyświetlić tę stronę.\nPoczekaj chwilę przed ponowną próbą dostępu do tej strony.",
+       "generic-pool-error": "Niestety w chwili obecnej serwery są przeciążone.\nZbyt wielu użytkowników próbuje wyświetlić ten zasób.\nPoczekaj chwilę przed ponowną próbą dostępu do tego zasobu.",
        "pool-timeout": "Zbyt długi czas oczekiwania na blokadę",
        "pool-queuefull": "Kolejka zadań jest pełna",
        "pool-errorunknown": "Błąd nieznany",
        "disclaimers": "Informacje prawne",
        "disclaimerpage": "Project:Informacje prawne",
        "edithelp": "Pomoc w edycji",
+       "helppage-top-gethelp": "Pomoc",
        "mainpage": "Strona główna",
        "mainpage-description": "Strona główna",
        "policy-url": "Project:Zasady",
        "readonly_lag": "Baza danych została automatycznie zablokowana na czas potrzebny do wykonania synchronizacji zmian między serwerem głównym i serwerami pośredniczącymi.",
        "internalerror": "Błąd wewnętrzny",
        "internalerror_info": "Błąd wewnętrzny – $1",
+       "internalerror-fatal-exception": "Krytyczny wyjątek typu \"$1\"",
        "filecopyerror": "Nie można skopiować pliku „$1” do „$2”.",
        "filerenameerror": "Nie można zmienić nazwy pliku „$1” na „$2”.",
        "filedeleteerror": "Nie można usunąć pliku „$1”.",
        "missingcommentheader": "'''Uwaga''' – treść tytułu lub nagłówka komentarza jest pusta.\nJeśli ponownie klikniesz „{{int:savearticle}}“, zmiany zostaną zapisane bez niego.",
        "summary-preview": "Podgląd opisu:",
        "subject-preview": "Podgląd nagłówka:",
+       "previewerrortext": "Wystąpił błąd podczas próby podglądu Twoich zmian.",
        "blockedtitle": "Użytkownik jest zablokowany",
        "blockedtext": "'''Twoje konto lub adres IP zostały zablokowane.'''\n\nBlokada została nałożona przez $1.\nPodany powód to: ''$2''.\n\n* Początek blokady: $8\n* Wygaśnięcie blokady: $6\n* Zablokowany został: $7\n\nW celu wyjaśnienia przyczyny zablokowania możesz się skontaktować z $1 lub innym [[{{MediaWiki:Grouppage-sysop}}|administratorem]].\nNie możesz użyć funkcji „Wyślij e‐mail do tego użytkownika”, jeśli brak jest poprawnego adresu e‐mail w Twoich [[Special:Preferences|preferencjach]] lub jeśli taka możliwość została Ci zablokowana.\nTwój obecny adres IP to $3, a numer identyfikacyjny blokady to $5.\nProsimy o podanie obu tych informacji przy wyjaśnianiu blokady.",
        "autoblockedtext": "Ten adres IP został zablokowany automatycznie, gdyż korzysta z niego inny użytkownik, zablokowany przez administratora $1.\nPowód blokady:\n\n:''$2''\n\n* Początek blokady: $8\n* Wygaśnięcie blokady: $6\n* Zablokowany został: $7\n\nMożesz skontaktować się z $1 lub jednym z pozostałych [[{{MediaWiki:Grouppage-sysop}}|administratorów]] w celu uzyskania informacji o blokadzie.\n\nNie możesz użyć funkcji „Wyślij e‐mail do tego użytkownika”, jeśli brak jest poprawnego adresu e‐mail w Twoich [[Special:Preferences|preferencjach]] lub jeśli taka możliwość została Ci zablokowana.\n\nTwój obecny adres IP to $3, a numer identyfikacyjny blokady to $5.\nProsimy o podanie obu tych numerów przy wyjaśnianiu blokady.",
        "unusedimages": "Nieużywane pliki",
        "wantedcategories": "Brakujące kategorie",
        "wantedpages": "Najpotrzebniejsze strony",
+       "wantedpages-summary": "Najczęściej linkowane nieistniejące strony, z wyłączeniem stron, do których linkują wyłącznie przekierowania. Lista nieistniejących stron, do których linkują przekierowania, znajduje się na [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Nieprawidłowy tytuł wśród wyników – $1",
        "wantedfiles": "Potrzebne pliki",
        "wantedfiletext-cat": "Następujące pliki są używane, ale nie istnieją. Pliki z obcych repozytoriów mogą być wymienione pomimo istnienia. Takie fałszywe wyniki zostaną <del>przekreślone</del>. Ponadto strony, które osadzają pliki, które nie istnieją, są wymienione w [[:$1]].",
        "sp-contributions-newbies-sub": "Dla nowych użytkowników",
        "sp-contributions-newbies-title": "Wkład nowych użytkowników",
        "sp-contributions-blocklog": "blokady",
-       "sp-contributions-suppresslog": "stłumiony wkład użytkownika",
+       "sp-contributions-suppresslog": "utajniony wkład użytkownika",
        "sp-contributions-deleted": "usunięty wkład użytkownika",
        "sp-contributions-uploads": "przesłane pliki",
        "sp-contributions-logs": "rejestry",
        "importcantopen": "Nie można otworzyć importowanego pliku",
        "importbadinterwiki": "Błędny link interwiki",
        "importsuccess": "Import zakończony powodzeniem!",
-       "importnosources": "MożliwoÅ\9bÄ\87 bezpoÅ\9bredniego importu historii zostaÅ\82a wyÅ\82Ä\85czona, ponieważ nie zdefiniowano ÅºródÅ\82a.",
+       "importnosources": "MożliwoÅ\9bÄ\87 bezpoÅ\9bredniego importu historii zostaÅ\82a wyÅ\82Ä\85czona, ponieważ nie zdefiniowano Å¼adnych wiki, z których można byÅ\82oby importowaÄ\87.",
        "importnofile": "Importowany plik nie został przesłany.",
        "importuploaderrorsize": "Przesyłanie pliku importowanego zawiodło. Jest większy niż dopuszczalny rozmiar dla przesyłanych plików.",
        "importuploaderrorpartial": "Przesyłanie pliku importowanego zawiodło. Został przesłany tylko częściowo.",
        "import-rootpage-nosubpage": "Przestrzeń nazw \"$1\" strony głównej nie dopuszcza stron podrzędnych.",
        "importlogpage": "Rejestr importu",
        "importlogpagetext": "Rejestr przeprowadzonych importów stron z innych serwisów wiki.",
-       "import-logentry-upload": "zaimportował(a) [[$1]] przez pobieranie plików",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|wersja|wersje|wersji}}",
-       "import-logentry-interwiki": "zaimportował(a) $1 używając transwiki",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|wersja|wersje|wersji}} z $2",
        "javascripttest": "Testowanie JavaScript",
        "javascripttest-pagetext-noframework": "Ta strona jest zarezerwowana dla wykonywania testów JavaScript.",
        "version-parser-function-hooks": "Funkcje haków analizatora składni (ang. parser function hooks)",
        "version-hook-name": "Nazwa haka (ang. hook name)",
        "version-hook-subscribedby": "Zapotrzebowany przez",
-       "version-version": "(Wersja $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[bez nazwy]",
        "version-license": "Licencja MediaWiki",
        "version-ext-license": "Licencja",
        "revdelete-uname-unhid": "wycofano ukrycie nazwy użytkownika",
        "revdelete-restricted": "ograniczono widoczność dla administratorów",
        "revdelete-unrestricted": "wycofano ograniczenie widoczności dla administratorów",
+       "logentry-block-block": "$1 {{GENDER:$2|zablokował|zablokowała|zablokował(a)}} {{GENDER:$4|$3}}, czas blokady: $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|zdjął|zdjęła}} blokadę z {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|zmienił|zmieniła}} ustawienia blokady dla {{GENDER:$4|$3}}, czas blokady: $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|zablokował|zablokowała}} {{GENDER:$4|$3}}, czas blokady: $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|zmienił|zmieniła}} ustawienia blokady dla {{GENDER:$4|$3}}, czas blokady: $5 $6",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|zaimportował|zaimportowała}} $3 z innej wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|scalił|scaliła}} stronę $3 do $4 (wersje do $5)",
        "logentry-move-move": "$1 {{GENDER:$2|przeniósł|przeniosła}} stronę $3 do $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|przeniósł|przeniosła}} stronę $3 na $4, bez pozostawienia przekierowania pod starym tytułem",
        "logentry-managetags-create": "$1 {{GENDER:$2|utworzył|utworzyła}} znacznik „$4”",
        "rightsnone": "brak",
        "revdelete-summary": "opis zmian",
+       "feedback-adding": "Dodawanie opinii do strony...",
+       "feedback-back": "Wstecz",
+       "feedback-bugcheck": "Świetnie! Tylko sprawdź, czy nie jest to jeden z już [$1 znanych błędów].",
+       "feedback-bugnew": "Sprawdziłam(łem). Zgłoś nowy błąd",
        "feedback-bugornote": "Jeśli jesteś w stanie szczegółowo opisać problem techniczny, proszę [$1 zgłoś błąd].\nW przeciwnym wypadku można użyć prostego formularza poniżej. Komentarz zostanie dodany do strony \"[$3  $2]\", wraz z nazwą użytkownika.",
-       "feedback-subject": "Temat",
-       "feedback-message": "Wiadomość:",
        "feedback-cancel": "Anuluj",
-       "feedback-submit": "Prześlij opinię",
-       "feedback-adding": "Dodawanie opinii do strony...",
+       "feedback-close": "Gotowe",
+       "feedback-external-bug-report-button": "Zgłoś problem techniczny",
+       "feedback-dialog-title": "Prześlij opinię",
+       "feedback-dialog-intro": "Możesz użyć tego prostego formularza w celu zgłoszenia swojej opinii. Twój komentarz, wraz z Twoją nazwą użytkownika (albo numerem IP) pojawi się na stronie $1.",
+       "feedback-error-title": "Błąd",
        "feedback-error1": "Błąd – nierozpoznana odpowiedź API",
        "feedback-error2": "Błąd – edycja nieudana",
        "feedback-error3": "Błąd – brak odpowiedzi API",
+       "feedback-message": "Wiadomość:",
+       "feedback-subject": "Temat",
+       "feedback-submit": "Wyślij",
+       "feedback-terms": "Rozumiem, że mój identyfikator User Agenta zawiera informacje o wersjach mojej przeglądarki i systemu operacyjnego oraz że będzie udostępniony publicznie wraz z moim komentarzem.",
+       "feedback-termsofuse": "Zgadzam się udostępnić komentarz zgodnie z warunkami korzystania.",
        "feedback-thanks": "Dziękujemy! Twoja opinia została opublikowana na stronie \"[$2 $1]\".",
-       "feedback-close": "Gotowe",
-       "feedback-bugcheck": "Świetnie! Tylko sprawdź, czy nie jest to jeden z już [$1 znanych błędów].",
-       "feedback-bugnew": "Sprawdziłam(łem). Zgłoś nowy błąd",
+       "feedback-thanks-title": "Dziękujemy!",
        "searchsuggest-search": "Szukaj",
        "searchsuggest-containing": "zawierające...",
        "api-error-badaccess-groups": "Nie masz uprawnień aby przesyłać pliki do tej wiki.",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''wyłączone''')",
        "mediastatistics": "Statystyki mediów",
        "mediastatistics-summary": "Statystyki dotyczące przesłanych typów plików. Dotyczą one tylko najnowszej wersji pliku. Starsze lub usunięte wersje plików nie są uwzględniane.",
-       "mediastatistics-nbytes": "{{PLURAL:$1|$1 bajt|$1 bajty/ów}} ($2; $3%)",
+       "mediastatistics-nbytes": "{{PLURAL:$1|$1 bajt|$1 bajty|$1 bajtów}} ($2; $3%)",
        "mediastatistics-table-mimetype": "Typ MIME",
        "mediastatistics-table-extensions": "Możliwe rozszerzenia",
        "mediastatistics-table-count": "Liczba plików",
index da318e6..d83eb17 100644 (file)
        "disclaimers": "Avertense",
        "disclaimerpage": "Project:Avertense generaj",
        "edithelp": "Agiut a la modìfica",
+       "helppage-top-gethelp": "Agiut",
        "mainpage": "Intrada",
        "mainpage-description": "Intrada",
        "policy-url": "Project:Régole",
        "missingcommentheader": "'''Ch'a arcòrda:''' A l'ha pa dàit ëd soget o d'intestassion për cost coment.\nSe a sgnaca torna «{{int:savearticle}}», soa modìfica a sarà salvà sensa gnun-a intestassion.",
        "summary-preview": "Preuva dël resumé:",
        "subject-preview": "Preuva dl'oget/intestassion:",
+       "previewerrortext": "A l'é rivaje n'eror durant ël tentativ ëd previsualisassion ëd soe modìfiche.",
        "blockedtitle": "L'utent a l'é blocà.",
        "blockedtext": "'''Sò stranòm ò pura adrëssa IP a l'é stàit blocà.'''\n\nËl blocagi a l'é stàit fàit da $1.\nComa rason a l'ha butà ''$2''.\n\n* Blocà a parte dal: $8\n* Fin al: $6\n* As veul blochesse: $7\n\nA peul butesse an contat con $1 ò pura n'àotr [[{{MediaWiki:Grouppage-sysop}}|aministrator]] për discute ëd sò blocagi.\nCh'a ten-a present ch'a podrà dovré la fonsion «mandeje un messagi ëd pòsta eletrònica a l'utent» mach s'a l'ha specificà n'adrëssa ëd vàlida ant [[Special:Preferences|sò gust]] e se sta fonsion a l'é nen ëstàita blocà 'cò chila.\nSoa adrëssa IP corenta a l'é $3, e l'identificativ dël blocagi a l'é #$5.\nPër piasì, ch'a-j buta tut e doj ant soe comunicassion ant sta question-sì.",
        "autoblockedtext": "Soa adrëssa IP a l'è stàita blocà n'automàtich ën essend ch'a l'era dovrà da n'àutr utent, che a l'é stàit blocà da $1.\nLa rason ësmonùa a l'é\n\n:''$2''\n\n* Ël blocagi a part dai: $8\n* A va a la fin ai: $6\n* As veul blochesse: $7\n\nA peul contaté $1 ò pura n'àotr dj'[[{{MediaWiki:Grouppage-sysop}}|aministrator]] për discute d'ës blocagi.\n\nCh'a varda mach ch'a peul nen dovré l'opsion ëd «mandeje un mëssagi a l'utent» se a l'ha nen n'adrëssa ëd pòsta eletrònica vàlida registrà ant [[Special:Preferences|sò gust]] o se chiel a l'é stàit blocà ëdcò dal dovrela.\n\nSoa adrëssa IP corenta a l'é $3, e sò nùmer ëd blocagi a l'é $5.\nPër piasì, ch'a buta sempe tùit ij detaj an tute j'arceste ch'a farà.",
        "import-rootpage-nosubpage": "Lë spassi nominal «$1» ëd la pàgina prinsipal a përmët pa dle sot-pagine.",
        "importlogpage": "Registr dj'amportassion",
        "importlogpagetext": "Amportassion aministrative ëd pàgine e ëd soa stòria da dj'àutre wiki.",
-       "import-logentry-upload": "a l'ha amportà [[$1]] con un càrich d'archivi",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|revision}} amportà",
-       "import-logentry-interwiki": "Amportà da n'àutra wiki $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|revision}} amportà da $2",
        "javascripttest": "Preuva ëd JavaScript",
        "javascripttest-pagetext-noframework": "Costa pàgina a l'é arservà për fé dle preuve JavaScript.",
        "tags-activate-not-allowed": "A l'é nen possìbil ativé la tichëtta «$1».",
        "tags-activate-not-found": "La tichëtta «$1» a esist nen.",
        "tags-activate-submit": "Ativé",
+       "tags-deactivate-title": "Disativé la tichëtta",
+       "tags-deactivate-question": "A sta për disativé la tichëtta «$1».",
+       "tags-deactivate-reason": "Rason:",
+       "tags-deactivate-not-allowed": "A l'é nen possìbil disativé la tichëtta «$1».",
+       "tags-deactivate-submit": "Disativé",
        "comparepages": "Confronté dle pàgine",
        "compare-page1": "Pàgina 1",
        "compare-page2": "Pàgina 2",
        "revdelete-uname-unhid": "stranòm dëscoatà",
        "revdelete-restricted": "restrission aplicà a j'aministrator",
        "revdelete-unrestricted": "restrission për j'aministrator gavà",
+       "logentry-block-block": "$1 {{GENDER:$2|a l'ha blocà}} {{GENDER:$4|$3}} për na durà ëd $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|a l'ha dësblocà}} {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|a l'ha modificà}} ij paràmeter ëd blocagi për {{GENDER:$4|$3}} con na durà ëd $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|a l'ha blocà}} {{GENDER:$4|$3}} për na durà ëd $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|a l'ha modificà}} ij paràmeter ëd blocagi për {{GENDER:$4|$3}} con na durà ëd $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|a l'ha amportà}} $3 an cariand d'archivi",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|a l'ha amportà}} $3 da n'àutra wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|a l'ha gionzù}} $3 an $4 (revision fin-a a $5)",
        "logentry-move-move": "$1 {{GENDER:$2|a l'ha tramudà}} la pàgina $3 a $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|a l'ha tramudà}} la pàgina $3 a $4 sensa lassé na ridiression",
        "logentry-upload-upload": "$1 {{GENDER:$2|a l'ha carià}} $3",
        "logentry-upload-overwrite": "$1 {{GENDER:$2|a l'ha carià}} na neuva version ëd $3",
        "logentry-upload-revert": "$1 {{GENDER:$2|a l'ha carià}} $3",
+       "log-name-managetags": "Argistr dle modìfiche ëd tichëtte",
+       "log-description-managetags": "Costa pàgina a lista ij travaj ëd manutension gropà a le [[Special:Tags|tichëtte]]. L'argistr a conten mach j'assion fàite a man da n'aministrator; le tichëtte a peulo esse creà o eliminà dal programa wiki sensa che l'assion a sia marcà an s'argistr.",
+       "logentry-managetags-create": "$1 {{GENDER:$2|a l'ha creà}} la tichëtta « $4 ».",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|a l'ha dëscancelà}} la tichëtta « $4 » (gavà da {{PLURAL:$5|na revision o vos d'argistr|$5 revision o vos d'argistr}})",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|a l'ha ativà}} la tichëtta \"$4\" për l’usagi dj'utent e dij trigomiro",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|a l'ha disativà}} la tichËtta « $4 » pour l’usagi dj'utent e dij trigomiro",
        "rightsnone": "(gnun)",
        "revdelete-summary": "resumé dla modìfica",
+       "feedback-adding": "Gionta dij coment a la pàgina...",
+       "feedback-back": "André",
+       "feedback-bugcheck": "Bin fàit! Ch'a contròla mach ch'a sia pa già un dij [$1 bigat conossù].",
+       "feedback-bugnew": "I l'heu controlà. Signalé n'eror neuv.",
        "feedback-bugornote": "S'a l'é pront a descrive un problema técnich an detaj, për piasì ch'a [$1 signala un bigat]. \nDësnò, a peul dovré ël formolari semplificà sì-sota. Sò coment a sarà giontà a la pàgina «[$3 $2]», con sò stranòm.",
-       "feedback-subject": "Soget:",
-       "feedback-message": "Mëssagi:",
        "feedback-cancel": "Anulé",
-       "feedback-submit": "Spedì ij coment",
-       "feedback-adding": "Gionta dij coment a la pàgina...",
+       "feedback-close": "Fàit",
+       "feedback-external-bug-report-button": "Presenta un travaj tècnich",
+       "feedback-dialog-title": "Spedì ij coment",
+       "feedback-dialog-intro": "A peul dovré ël formolari sempi sì-sota për spedì ij sò coment. Ij sò coment a saran giontà a la pàgina «$1», ansema a sò stranòm.",
+       "feedback-error-title": "Eror",
        "feedback-error1": "Eror: Arzultà ëd l'API nen arconossù",
        "feedback-error2": "Eror: Modìfica falìa",
        "feedback-error3": "Eror: gnun-e rispòste da l'API",
+       "feedback-message": "Mëssagi:",
+       "feedback-subject": "Soget:",
+       "feedback-submit": "Spediss",
+       "feedback-terms": "I capisso che j'anformassion ëd mè agent d'utent a conten-o d'anformassion an sla version precisa ëd mè navigador e sistema operativ e a saran condividùe publicament ansema ai mè coment.",
+       "feedback-termsofuse": "I son d'acòrdi a dé ij coment an acòrd con le Condission d'Usagi.",
        "feedback-thanks": "Mersì! Sò coment a l'é stàit publicà an sla pàgina \"[$2 $1]\".",
-       "feedback-close": "Fàit",
-       "feedback-bugcheck": "Bin fàit! Ch'a contròla mach ch'a sia pa già un dij [$1 bigat conossù].",
-       "feedback-bugnew": "I l'heu controlà. Signalé n'eror neuv.",
+       "feedback-thanks-title": "Mersì!",
+       "feedback-useragent": "Agent d'utent:",
        "searchsuggest-search": "Arserché",
        "searchsuggest-containing": "contenent ...",
        "api-error-badaccess-groups": "Chiel a peul pa carié d'archivi su costa wiki.",
        "json-error-utf8": "Caràter UTF-8 mal formà, miraco mal codificà",
        "json-error-recursion": "Un-a o pi rëspondense ant ël valor da codifiché",
        "json-error-inf-or-nan": "Un o pi valor NAN o INF ant ël valor da codifiché",
-       "json-error-unsupported-type": "A l'é stàit dàit un valor ëd na sòrt ch'a peul nen esse codificà"
+       "json-error-unsupported-type": "A l'é stàit dàit un valor ëd na sòrt ch'a peul nen esse codificà",
+       "headline-anchor-title": "Liura a sta session"
 }
index 9a79230..f125288 100644 (file)
@@ -7,7 +7,8 @@
                        "Rachitrali",
                        "Reedy",
                        "ZaDiak",
-                       "아라"
+                       "아라",
+                       "Amire80"
                ]
        },
        "tog-underline": "حوڑ تھلے لین:",
        "mytalk": "میریاں گلاں",
        "anontalk": "اس آئی پی آسطے گل کرو",
        "navigation": "کھوج",
-       "and": "&#32;and",
+       "and": "&#32;تے",
        "qbfind": "کھوج",
        "qbbrowse": "لبو",
        "qbedit": "لکھو",
        "delete-toobig": "ایس صفے دی اک لمبی تبدیلی دی تریخ اے $1 توں ود {{PLURAL:$1|ریوین|ریویناں}}\nایے صفیاں دے مٹان تے کج روک اے {{SITENAME }} دی اچانک خرابی توں بچن لئی۔",
        "delete-warning-toobig": "ایس صفے دی تبدیلی دی اک لمی تریخ اے۔ $1 توں ود {{PLURAL:$1|ریوین|ریویناں}}۔\nاینوں مٹان تے {{SITENAME}} دے ڈیٹا اوپریشنز چ مسلہ بن سکدا اے۔\nسوچ سمج کے اگے ودو۔",
        "rollback": "لکھائیاں واپس کرو",
-       "rollback_short": "واپس کرو",
        "rollbacklink": "واپس",
        "rollbackfailed": "واپس کرن ناکام",
        "cantrollback": "تبدیلی واپس نئیں ہوسکدی؛\nآخری لکھاری ای ایدا اکو لکھاری سی۔",
        "import-logentry-interwiki": "ٹرانسوکیڈ  $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|ریوین|ریویناں }} $2 توں",
        "javascripttest": "JavaScript ٹیسٹنگ",
-       "javascripttest-title": "ٹیسٹ  $1 چلدا اے۔",
        "javascripttest-pagetext-noframework": "ایہ صفہ JavaScript  ٹیسٹاں لئی بچایا گیا اے۔",
        "javascripttest-pagetext-unknownframework": "\"$1\" انجانا ٹیسٹنگ فریمورک۔",
        "javascripttest-pagetext-frameworks": "مہربانی کرکے تھلے دتے گۓ ٹیسٹ فریمورکاں چوں اک چنو : $1",
        "javascripttest-pagetext-skins": "اپنی پسند دا کوئی نمونہ چنو جیدے تے ٹیسٹ چلن:",
        "javascripttest-qunit-intro": "mediawiki.org تے [$1 ٹسٹنگ ڈوکومنٹیشن] ویکھو۔",
-       "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit test suite",
        "tooltip-pt-userpage": "میرا صفہ",
        "tooltip-pt-anonuserpage": "ورتن صفہ IP  پتے لئی تسی تبدیل کر رۓ او۔۔۔",
        "tooltip-pt-mytalk": "میریاں گلاں",
        "watchlisttools-edit": "اکھ تھلے رکھے ہوۓ صفحیاں نوں ویکھو تے تبدیل کرو",
        "watchlisttools-raw": "کچی اکھ تھلے رکھی ہوئی نو تبدیل کرو",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|talk]])",
-       "unknown_extension_tag": "انجان ایکسٹنشن ٹیگ \"$1\"",
        "duplicate-defaultsort": "'''خبردار:''' ڈیفالٹ چابی \"$2\" پہلی ڈیفالٹ چابی \"$1\" دے اتے لگ گئی اے۔",
        "version": "ورژن",
        "version-extensions": "انسٹالڈ کیتیاں گیاں ایکسٹنشن",
        "version-parser-function-hooks": "پاسر فنکشن ہکز",
        "version-hook-name": "ہک ناں",
        "version-hook-subscribedby": "جینے لئی",
-       "version-version": "(ورین $1)",
+       "version-version": "($1)",
        "version-license": "لائیسنس",
        "version-poweredby-credits": "ایس وکی نوں '''[https://www.mediawiki.org/ میڈیاوکی]''', copyright © 2001-$1 $2. چلاندا اے۔",
        "version-poweredby-others": "دوجے",
        "logentry-newusers-autocreate": "کھاتہ $1 اپنے آپ ای {{جنس:$2|بنایا گیا}} بنایا گیا۔",
        "rightsnone": "(کوئی وی نئیں)",
        "revdelete-summary": "لکھائی دا خلاصہ",
+       "feedback-adding": "مشورہ  صفے تے دیو۔۔۔۔۔۔۔",
+       "feedback-bugcheck": "بعوت ودیا ! صرف ایہ ویکھو جے کیا ایہ پہلے لبے ہوۓ [$1 known bugs] چو اک تے نئیں۔",
+       "feedback-bugnew": "میں ویکھیا اے۔ نویں بگ دی رپورٹ کرو۔",
        "feedback-bugornote": "اگر تسیں اک تکنیکی مسلے نوں  پوری طراں دسن لئی تیار او تے فیر مہربانی کرکے [$1 بگ بارے دسو]۔  ںئیں تے تسیں تھلے دتا گیا فارم ورتو۔ تواڈی گل صفہ \"[$3 $2]\" تے جڑے گی،  تواڈے ورتن والے ناں تے براؤزر جیہڑا تسیں ورت رۓ او۔",
-       "feedback-subject": "آرٹیکل",
-       "feedback-message": "سنیعہ:",
        "feedback-cancel": "واپس",
-       "feedback-submit": "مشورہ دیو",
-       "feedback-adding": "مشورہ  صفے تے دیو۔۔۔۔۔۔۔",
+       "feedback-close": "ہوگیا۔",
        "feedback-error1": "غلطی: اے پی آئی توں ناں پچھانے گۓ نتارے۔",
        "feedback-error2": "غلطی: تبدیلی نئیں چلی",
        "feedback-error3": "غلطی: اے پی آئی توں کوئی جواب نئیں۔",
+       "feedback-message": "سنیعہ:",
+       "feedback-subject": "آرٹیکل",
+       "feedback-submit": "مشورہ دیو",
        "feedback-thanks": "شکریہ ! تواڈی صلاع  صفہ \"[$2 $1]\" تے چاڑ دتی گئی اے۔",
-       "feedback-close": "ہوگیا۔",
-       "feedback-bugcheck": "بعوت ودیا ! صرف ایہ ویکھو جے کیا ایہ پہلے لبے ہوۓ [$1 known bugs] چو اک تے نئیں۔",
-       "feedback-bugnew": "میں ویکھیا اے۔ نویں بگ دی رپورٹ کرو۔",
        "searchsuggest-search": "کھوج",
        "searchsuggest-containing": "بند کر ریا اے۔۔۔",
        "api-error-badaccess-groups": "تھوانوں ایس وکی تے فائلاں چڑھان دی اجازت نئیں۔",
index 3c36073..d0b33ea 100644 (file)
        "delete-edit-reasonlist": "Redigīs āupausinsenes brewīnslins",
        "delete-toobig": "Šin pāusan turri spārtai ilgan istōrijan stēisan redigīsenin, kīrsa $1 {{PLURAL:$1|kitawīdisnan|kitawīdisnans}}.\nTenesse āupausinsenins mazīlai dīlintun ārdisenins en dīlasnan stesse {{SITENAME}} be pastāi arāikintan.",
        "rollback": "Etwārtai wartinnais redigīsenin",
-       "rollback_short": "Etwārtai wartinnais",
        "rollbacklink": "etwārtai wartinnais",
        "rollbackfailed": "Kitawīdisnas etwārtai wartīnsna ni izpalla",
        "cantrollback": "Ni mazīngi etwārtai wartīntun redigīsenin, beggi ast tēr aīna šisse pāusas wersiōni.",
        "version-parser-extensiontags": "Parseras plattinsenes zentlitajai",
        "version-parser-function-hooks": "Parseras funkciōnis ānsai",
        "version-hook-name": "Ānsas pabilisnā",
-       "version-version": "(Wersiōni $1)",
+       "version-version": "($1)",
        "version-license": "Licēnci",
        "version-software": "Instalītas prōgraminis",
        "version-software-version": "Wersiōni",
index e2f4c99..390a7ed 100644 (file)
        "disclaimers": "ردادعاليکونه",
        "disclaimerpage": "Project:ټولگړی ردادعاليک",
        "edithelp": "د لارښود سمون",
+       "helppage-top-gethelp": "لارښود",
        "mainpage": "لومړی مخ",
        "mainpage-description": "لومړی مخ",
        "policy-url": "Project:تگلاره",
        "nospecialpagetext": "<strong>تاسې د يو ناسم ځانگړي مخ غوښتنه کړې.</strong>\n\nتاسې کولای شی چې د سمو ځانگړو مخونو لړليک په [[Special:SpecialPages|{{int:specialpages}}]] کې ومومۍ.",
        "error": "تېروتنه",
        "databaseerror": "د ډاټابېز تېروتنه",
+       "databaseerror-query": "تپوس: $1",
+       "databaseerror-function": "کړنه: $1",
        "databaseerror-error": "تېروتنه: $1",
        "laggedslavemode": "'''گواښنه:''' په دې مخ کې کېدای شي تازه اوسمهالېدنې نه وي.",
        "readonly": "توکبنسټ تړل شوی",
        "edit-gone-missing": "د دې مخ اوسمهالول و نه کړای شول.\nداسې ښکاري چې دا مخ ړنگ شوی.",
        "edit-conflict": "د سمولو خنډ",
        "edit-no-change": "ستاسې سمون بابېزه وګڼل شو، دا ځکه چې تاسې په متن کې کوم بدلون نه دی راوستلی.",
+       "postedit-confirmation-created": "مخ جوړ شوی.",
+       "postedit-confirmation-restored": "مخ بيازېرمل شوی.",
        "postedit-confirmation-saved": "ستاسې سمون خوندي شو.",
        "edit-already-exists": "په دې نوم يو نوی مخ جوړ نه شو.\nپدې نوم د پخوا نه يو مخ شته.",
        "defaultmessagetext": "تلواليزه پيغام متن",
        "mergehistory-invalid-source": "د سرچينې مخ بايد يو سم سرليک وي.",
        "mergehistory-invalid-destination": "د موخې مخ بايد يو سم سرليک وي.",
        "mergehistory-reason": "سبب:",
+       "mergelog": "د اخږلو يادښت",
        "revertmerge": "بېلول",
        "history-title": "د \"$1\" د مخليدنې پېښليک",
        "difference-title": "د \"$1\" د بڼو تر مېنځ توپير",
+       "difference-title-multipage": "د \"$1\" او \"$2\" مخونو تر مېنځ توپير",
        "difference-multipage": "(د مخونو تر مېنځ توپير)",
        "lineno": "$1 کرښه:",
        "compareselectedversions": "ټاکلې بڼې سره پرتلل",
        "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-redirect": "(د $1 Ù\85Ø® Ú«Ø±Ú\81Ù\88نه)",
+       "search-redirect": "(د $1 Ù\85Ø® Ú¯Ø±Ú\81Û\90دنه)",
        "search-section": "(برخه $1)",
        "search-category": "(وېشنيزه $1)",
+       "search-file-match": "(د دوتنو مېنځپانگې سره ورته دي)",
        "search-suggest": "آيا همدا مو موخه وه: $1",
        "search-interwiki-caption": "خورلڼې پروژې",
        "search-interwiki-default": "پايلې له $1 څخه:",
        "searchrelated": "اړونده",
        "searchall": "ټول",
        "showingresults": "دلته لاندې تر {{PLURAL:$1|'''1''' پايله|'''$1''' پايلې}} ښکاره شوي پيل له #'''$2''' شوی.",
+       "search-showingresults": "{{PLURAL:$4|<strong>$1</strong> پايله، ټولټال <strong>$3</strong>|<strong>$1 - $2</strong> پايلې، ټولټال <strong>$3</strong>}}",
        "search-nonefound": "ستاسې دغوښتنې اړونده پايلې و نه موندل شوې.",
        "powersearch-legend": "ژوره پلټنه",
        "powersearch-ns": "په نوم-تشيالونو کې پلټنه:",
        "right-minoredit": "سمونونه واړه په نخښه کول",
        "right-move": "مخونه لېږدول",
        "right-move-subpages": "مخونه د خپلو څېرمه مخونو سره لېږدول",
+       "right-move-categorypages": "د وېشنيزې مخونه لېږدول",
        "right-movefile": "دوتنې لېږدول",
        "right-upload": "دوتنې پورته کول",
        "right-upload_by_url": "د يو URL نه دوتنې پورته کول",
        "action-createaccount": "دا گڼون جوړول",
        "action-minoredit": "دا سمون وړوکی په نخښه کول",
        "action-move": "همدا مخ لېږدول",
+       "action-move-categorypages": "د وېشنيزې مخونه لېږدول",
        "action-movefile": "همدا دوتنه لېږدول",
        "action-upload": "همدا دوتنه پورته کول",
        "action-upload_by_url": "دا دوتنه له يوه URL نه پورته کول",
        "uploadnologintext": "د دوتنې پورته کولو لپاره بايد $1",
        "uploaderror": "د پورته کولو ستونزه",
        "uploadtext": "د دوتنې د پورته کېدو لپاره لاندينی چوکاټ وکاروۍ.\nکه چېرته د پخونيو پورته شويو دوتنو کتل او پلټل غواړۍ نو [[Special:FileList|د پورته شويو دوتنو لړليک]] ته ورشۍ، [[Special:Log/upload|د (بيا) پورته شويو دوتنو يادښتونه]] او [[Special:Log/delete|د ړنگېدو يادښتونه]] هم کتلای شی.\n\nددې لپاره چې يوه مخ ته انځور ورواچوی، نو بيا پدې ډول تړنې (لېنک) وکاروی\n* د يوې دوتنې د بشپړې بڼې د کارولو په موخه د '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' کوډ وکاروۍ.\n* د '۲۰۰ پېکسل' په کچه د 'بټنوک' په توگه د يوې دوتنې کارول چې د مخ کيڼې څنډې کې او ترلاندې 'د انځور څرگندونې' ولري، نو د دې موخې لپاره د '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|بټنوک|کيڼ|د انځور څرگندونې]]</nowiki></code>''' کوډ وکاروۍ.\n* د انځور د ښودلو نه پرته، د دوتنې سره د سيخې تړنې لپاره د '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' کوډ وکاروۍ.",
-       "upload-permitted": "د Ù¾Ø±Û\90Ú\9aÙ\88دÙ\84Ù\88 Ø¯Ù\88تÙ\86Ù\88 Ú\89Ù\88Ù\84Ù\88Ù\86Ù\87: $1.",
+       "upload-permitted": "د Ù¾Ø±Û\90Ú\9aÙ\84Û\90 {{PLURAL:$2|دÙ\88تÙ\86Û\90 Ú\89Ù\88Ù\84|دÙ\88تÙ\86Ù\88 Ú\89Ù\88Ù\84Ù\88Ù\86Ù\87}}: $1.",
        "upload-preferred": "د غوره {{PLURAL:$2|دوتنې ډول|دوتنو ډول}}: $1.",
-       "upload-prohibited": "د Ù\85Ù\86ع Ø´Ù\88Ù\8aÙ\88 Ø¯Ù\88تÙ\86Ù\88 Ú\89Ù\88Ù\84Ù\88Ù\86Ù\87: $1.",
+       "upload-prohibited": "د Ù\86اپرÛ\90Ú\9aÙ\84Û\90 {{PLURAL:$2|دÙ\88تÙ\86Û\90 Ú\89Ù\88Ù\84|دÙ\88تÙ\86Ù\88 Ú\89Ù\88Ù\84Ù\88Ù\86Ù\87}}: $1.",
        "uploadlogpage": "د پورته شويو دوتنو يادښت",
        "uploadlogpagetext": "دا لاندې د نوو پورته شوو دوتنو لړليک دی.",
        "filename": "د دوتنې نوم",
        "illegal-filename": "د دوتنې نوم نه دی پرېښل شوی.",
        "unknown-error": "يوه ناڅرګنده تېروتنه رامېنځته شوه.",
        "tmp-create-error": "لنډمهاله دوتنه جوړېدای نه شي",
-       "fileexists": "د پخوا نه پدې نوم يوه دوتنه شته، که تاسو ډاډه نه ياست او يا هم که تاسو غواړۍ چې بدلون پکې راولۍ، لطفاً <strong>[[:$1]]</strong> وگورۍ.\n[[$1|بټنوک]]",
-       "fileexists-extension": "په همدې نوم يوه بله دوتنه د پخوا نه شته: [[$2|thumb]]\n* د پورته کېدونکې دوتنې نوم: <strong>[[:$1]]</strong>\n* د پخوا نه شته دوتنه: <strong>[[:$2]]</strong>\nلطفاً يو داسې نوم وټاکی چې د پخوانۍ دوتنې سره توپير ولري.",
+       "fileexists": "د پخوا څخه پدې نوم يوه دوتنه شته، که {{GENDER:|تاسې}} پرې ډاډمن نه ياست چې بدلون پکې راولۍ، نو لطفاً <strong>[[:$1]]</strong> وگورئ.\n[[$1|بټنوک]]",
+       "fileexists-extension": "په دې نوم يوه بله دوتنه د پخوا څخه شته: [[$2|بټنوک]]\n* د پورته کېدونکې دوتنې نوم: <strong>[[:$1]]</strong>\n* د پخوانۍ موجودې دوتنې نوم: <strong>[[:$2]]</strong>\nآيا تاسې غواړۍ چې يو داسې بېل نوم ټاکۍ چې د پخوانۍ دوتنې سره توپير ولري؟",
        "fileexists-forbidden": "د پخوا نه پدې نوم يوه دوتنه شته، او په دې نوم بله دوتنه نه پورته کېږي.\nکه تاسې بيا هم د خپلې دوتنې پورته کول غواړۍ، نو لطفاً بېرته وګرځۍ او همدغه دوتنه بيا په يوه نوي نوم پورته کړی.\n[[File:$1|thumb|center|$1]]",
        "file-exists-duplicate": "همدا دوتنه د {{PLURAL:$1|لاندينۍ دوتنې|لاندينيو دوتنو}} غبرگه لمېسه ده:",
        "uploadwarning": "د پورته کولو گواښ",
        "license-header": "منښتليک:",
        "nolicense": "هېڅ نه دي ټاکل شوي",
        "license-nopreview": "(مخليدنه نشته)",
-       "upload_source_file": "(ستاسو په کمپيوټر کې يوه دوتنه)",
+       "upload_source_file": "(ستاسې کمپيوټر کې ستاسې ټاکلې دوتنه)",
        "listfiles-delete": "ړنگول",
        "listfiles-summary": "همدا ځانگړی مخ ټولې پورته شوې دوتنې ښکاره کوي.",
        "listfiles_search_for": "د رسنۍ نوم پلټنه:",
        "filepage-nofile-link": "په دې نوم کومه دوتنه نشته، خو تاسې يې [$1 پورته کولی شی].",
        "uploadnewversion-linktext": "د همدغې دوتنې نوې بڼه پورته کول",
        "shared-repo-from": "د $1 لخوا",
+       "shared-repo-name-wikimediacommons": "ويکيمېډيا کامنز",
        "upload-disallowed-here": "تاسې د دې دوتنې دپاسه نشی ليکلی.",
        "filerevert": "$1 بيااړول",
        "filerevert-legend": "دوتنه بيااړول",
        "listgrouprights-addgroup-self-all": "خپل گڼون کې ټولې ډلې ورگډول",
        "listgrouprights-removegroup-self-all": "خپل گڼون نه ټولې ډلې ليري کول",
        "listgrouprights-namespaceprotection-namespace": "نوم-تشيال",
+       "trackingcategories": "موندونکې وېشنيزې",
        "trackingcategories-name": "پيغام نوم",
        "mailnologin": "د لېږلو پته نشته",
        "emailuser": "کارن ته برېښليک لېږل",
        "undelete-show-file-submit": "هو",
        "namespace": "نوم-تشيال:",
        "invert": "ټاکنې سرچپه کول",
+       "tooltip-invert": "په ټاکلو نومتشيالونو کې (او اړونده نومتشيال کې که په نښه شوی وي) د مخونو بدلونونو د پټولو لپاره دا بکس په نښه کړئ",
        "namespace_association": "مل نومتشيال",
        "blanknamespace": "(آرنی)",
        "contributions": "{{GENDER:$1|کارن}} ونډې",
        "movepage-moved-redirect": "يو مخ گرځونی جوړ شو.",
        "articleexists": "په همدې نوم يوه بله پاڼه د پخوا نه شته او يا خو دا نوم چې تاسې ټاکلی سم نه دی. لطفاً يو بل نوم وټاکۍ.",
        "movetalk": "د خبرو اترو اړونده مخ ورسره لېږدول",
+       "movepage-page-moved": "د $1 مخ $2 ته ولېږدل شو.",
+       "movepage-page-unmoved": "د $1 مخ $2 ته و نه لېږدل شو.",
        "movelogpage": "د لېږدولو يادښت",
        "movelogpagetext": "دا لاندې د لېږدول شوو مخونو لړليک دی.",
        "movesubpage": "{{PLURAL:$1|څېرمه مخ|څېرمه مخونه}}",
        "thumbnail-more": "لويول",
        "filemissing": "دوتنه ورکه ده",
        "thumbnail_error": "د  بټنوک د جوړېدنې ستونزه: $1",
+       "import-interwiki-sourcewiki": "د ويکي سرچينه:",
+       "import-interwiki-sourcepage": "د سرچينې مخ:",
        "import-interwiki-history": "د دې مخ د پېښليک ټولې بڼې لمېسل",
        "import-interwiki-templates": "ټولې کينډۍ نغاړل",
        "import-interwiki-submit": "رالېږدول",
        "tooltip-pt-mycontris": "ستاسې د ونډو لړليک",
        "tooltip-pt-login": "تاسې ته په غونډال کې د ننوتلو سپارښتنه کوو، که څه هم چې دا يو اړين کار نه دی.",
        "tooltip-pt-logout": "وتل",
-       "tooltip-pt-createaccount": "تاسې ته په ښه نيت بلنه درکوو چې ګڼوڼ جوړ کړۍ۔کچرې تاسې ګڼوڼ نه جوړوۍ نو اهم خبره نه ده۔",
+       "tooltip-pt-createaccount": "تاسې ته د يو گڼون د جوړولو او بيا غونډال کې ورننوتلو سپارښتنه کېږي؛ که څه هم چې دا يو اړين کار نه دی",
        "tooltip-ca-talk": "د مخ د مېنځپانگې په اړه خبرې اترې",
        "tooltip-ca-edit": "تاسې همدا مخ سمولای شی. لطفاً د ليکنې د خوندي کولو دمخه، د همدې ليکنې مخليدنه وگورۍ.",
        "tooltip-ca-addsection": "يوه نوې برخه پيلول",
        "siteusers": "د {{SITENAME}} {{PLURAL:$2|کارن|کارنان}} $1",
        "anonusers": "د {{SITENAME}} {{PLURAL:$2|ورکنومی کارن|ورکنومي کارنان}} $1",
        "creditspage": "د دې مخ کرېډټونه",
+       "simpleantispam-label": "سپام-ضد څارنه.\nدا برخه <strong>مه </strong> ډکوئ!",
        "pageinfo-title": "د \"$1\" مالومات",
        "pageinfo-header-basic": "بنسټيز مالومات",
        "pageinfo-header-edits": "د سمون پېښليک",
        "pageinfo-firstuser": "مخ جوړونکی",
        "pageinfo-firsttime": "د مخ جوړېدنې نېټه",
        "pageinfo-lastuser": "وروستنی سمونگر",
+       "pageinfo-lasttime": "د سمون وروستنۍ نېټه",
        "pageinfo-edits": "د ټولو سمونونو شمېر",
+       "pageinfo-authors": "د بېلابېلو ليکوالو ټولټال شمېر",
+       "pageinfo-recent-edits": "د وروستني سمونونو شمېر (په تېرو $1 کې)",
        "pageinfo-toolboxlink": "د مخ مالومات",
        "pageinfo-redirectsto-info": "مالومات",
        "pageinfo-contentpage": "مېنځپانگيز مخ کې شمېرل شوی",
        "svg-long-desc": "SVG دوتنه، نومېنلي $1 × $2 پېکسل، د دوتنې کچه: $3",
        "show-big-image": "آرنۍ دوتنه",
        "show-big-image-preview": "د همدې ليدنې کچه: $1.",
+       "show-big-image-other": "{{PLURAL:$2|بل ژورليد|نورې ژورليدنې}}: $1.",
        "show-big-image-size": "$1 × $2 پېکسل",
        "file-info-gif-frames": "$1 {{PLURAL:$1|چوکاټ|چوکاټونه}}",
        "file-info-png-repeat": "$1 {{PLURAL:$1|ځل|ځله}} وغږېده",
        "minutes-ago": "$1 {{PLURAL:$1|دقيقه|دقيقې}} دمخه",
        "seconds-ago": "$1 {{PLURAL:$1|ثانيه|ثانيې}} دمخه",
        "monday-at": "Monday at $1",
+       "yesterday-at": "پرون په $1",
        "bad_image_list": "بڼه يې په لاندې توگه ده:\n\nيواځې د لړليک توکي (هغه کرښې چې پېلېږي پر *) په پام کې نيول شوي.\nبايد چې په يوه کرښه کې لومړنۍ تړنه د يوې خرابې دوتنې سره وي.\nپه يوې کرښې باندې هر ډول وروستۍ تړنې به د استثنا په توگه وگڼلای شي، د ساري په توگه هغه مخونو کې چې يوه دوتنه پر کرښه پرته وي.",
        "metadata": "مېټاډاټا",
        "metadata-help": "همدا دوتنه نور اضافه مالومات هم لري، چې کېدای شي ستاسې د گڼياليزې کامرې او يا هم د ځيرڅار په کارولو سره د گڼيالېدنې په وخت کې ورسره مل شوي.\nکه همدا دوتنه د خپل آرني دريځ څخه بدله شوې وي نو ځينې تفصيلونه به په بدل شوي دوتنه کې په بشپړه توگه نه وي.",
        "metadata-fields": "د انځور مېټاډاټا ډگرونه چې لړليک يې په همدې پيغام کې په لاندې توگه راغلی د انځور مخ په ښکارېدنه کې به هغه وخت ورگډ شي کله چې د مېټاډاټا لښتيال غځېږي.\nنور څه به په تلواليزه توگه پټ پاتې وي.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-imagewidth": "سوروالی",
        "exif-imagelength": "لوړوالی",
+       "exif-orientation": "لورموندنه",
+       "exif-xresolution": "څنډيز ژورليد",
+       "exif-yresolution": "ولاړيز ژورليد",
        "exif-stripoffsets": "د انځور مالوماتځی",
        "exif-datetime": "د دوتنې د بدلون وخت او نېټه",
        "exif-imagedescription": "انځور سرليک",
        "exif-software": "کارېدلې ساوترۍ",
        "exif-artist": "ليکوال",
        "exif-copyright": "د رښتو خاوند",
+       "exif-exifversion": "Exif بڼه",
        "exif-colorspace": "رنگ تشيال",
        "exif-pixelydimension": "د انځور سور",
        "exif-pixelxdimension": "د انځور جگوالی",
        "exif-usercomment": "د کارن تبصرې",
        "exif-relatedsoundfile": "اړونده غږيزه دوتنه",
+       "exif-datetimeoriginal": "د اومتوک د جوړېدنې وخت او نېټه",
        "exif-datetimedigitized": "د گڼياليز کېدنې وخت او نېټه",
        "exif-fnumber": "F شمېره",
        "exif-lightsource": "د رڼا سرچينه",
        "percent": "$1%",
        "parentheses": "($1)",
        "brackets": "[$1]",
-       "imgmultipageprev": "â\86\90 Ù¾Ø®Ù\88اÙ\86Û\8c مخ",
+       "imgmultipageprev": "â\86\92 ØªÛ\90ر مخ",
        "imgmultipagenext": "راتلونکی مخ →",
        "imgmultigo": "ورځه!",
        "imgmultigoto": "د $1 مخ ته ورځه",
        "version-other": "بل",
        "version-hooks": "کونډۍ",
        "version-hook-name": "کونډۍ نوم",
-       "version-version": "(بڼه $1)",
+       "version-version": "($1)",
        "version-license": "مېډياويکي منښتليک",
        "version-ext-license": "منښتليک",
        "version-skin-colheader-name": "پوښۍ",
        "tags-actions-header": "کړنې",
        "tags-active-yes": "هو",
        "tags-active-no": "نه",
+       "tags-source-none": "نور نه کارېږي",
        "tags-edit": "سمول",
        "tags-delete": "ړنگول",
        "tags-activate": "فعالول",
        "revdelete-uname-unhid": "ښکاره کارن-نوم",
        "logentry-move-move": "$1 د $3 مخ $4 ته {{GENDER:$2|ولېږداوه}}",
        "logentry-move-move-noredirect": "$1 پرته له دې چې يو مخ گرځونی پرېږدي له $3 څخه $4 ته مخ {{GENDER:$2|ولېږداوه}}",
+       "logentry-move-move_redir": "$1 د $3 مخ $4 ته د مخ گرځونې له لارې {{GENDER:$2|ولېږداوه}}.",
        "logentry-move-move_redir-noredirect": "$1 پرته له دې چې يو مخ گرځونی پرېږدي له $3 څخه $4 ته مخ {{GENDER:$2|ولېږداوه}}",
        "logentry-newusers-newusers": "د $1 کارن گڼون {{GENDER:$2|جوړ شو}}",
        "logentry-newusers-create": "د $1 کارن گڼون {{GENDER:$2|جوړ شو}}",
        "logentry-upload-upload": "$1 $3 {{GENDER:$2|ورپورته يې کړ}}",
        "rightsnone": "(هېڅ)",
        "revdelete-summary": "لنډيز سمول",
-       "feedback-subject": "سکالو:",
-       "feedback-message": "پيغام:",
        "feedback-cancel": "ناگارل",
        "feedback-close": "ترسره شو",
+       "feedback-error-title": "تېروتنه",
+       "feedback-message": "پيغام:",
+       "feedback-subject": "سکالو:",
+       "feedback-submit": "سپارل",
+       "feedback-thanks-title": "مننه!",
        "searchsuggest-search": "پلټل",
        "api-error-duplicate-popup-title": "غبرګونې {{PLURAL:$1|دوتنه|دوتنې}}.",
        "api-error-empty-file": "کومه دوتنه چې تاسې دلته سپارلې هغه تشه ده.",
index 0bbcb07..0ff7f07 100644 (file)
@@ -77,7 +77,9 @@
                        "He7d3r",
                        "PauloEduardo",
                        "Webysther",
-                       "Fasouzafreitas"
+                       "Fasouzafreitas",
+                       "RosaMafalda17",
+                       "Macofe"
                ]
        },
        "tog-underline": "Sublinhar links:",
        "disclaimers": "Exoneração de responsabilidade",
        "disclaimerpage": "Project:Aviso_geral",
        "edithelp": "Ajuda de edição",
+       "helppage-top-gethelp": "Ajuda",
        "mainpage": "Página principal",
        "mainpage-description": "Página principal",
        "policy-url": "Project:Políticas",
        "readonly_lag": "O banco de dados foi automaticamente bloqueado enquanto os servidores secundários se sincronizam com o principal",
        "internalerror": "Erro interno",
        "internalerror_info": "Erro interno: $1",
+       "internalerror-fatal-exception": "Excepção fatal do tipo \"$1\"",
        "filecopyerror": "Não foi possível copiar o arquivo \"$1\" para \"$2\".",
        "filerenameerror": "Não foi possível renomear o arquivo \"$1\" para \"$2\".",
        "filedeleteerror": "Não foi possível eliminar o arquivo \"$1\".",
        "welcomeuser": "Bem-vindo, $1!",
        "welcomecreation-msg": "A sua conta foi criada.\nNão se esqueça de personalizar as suas [[Special:Preferences|preferências no wiki {{SITENAME}}]].",
        "yourname": "Nome de usuário:",
-       "userlogin-yourname": "Nome de usuário",
+       "userlogin-yourname": "Nome de usuário(a)",
        "userlogin-yourname-ph": "Escreva seu nome de usuário",
        "createacct-another-username-ph": "Forneça o nome de usuário",
        "yourpassword": "Senha:",
        "currentrevisionlink": "Revisão atual",
        "cur": "atu",
        "next": "prox",
-       "last": "ult",
+       "last": "ant",
        "page_first": "primeira",
        "page_last": "última",
        "histlegend": "Como selecionar: marque as caixas de seleção das versões que deseja comparar e pressione enter ou clique no botão na parte inferior do formulário.<br />\nLegenda: '''({{int:cur}})''' = diferenças em relação a última versão, '''({{int:last}})''' = diferenças em relação a versão anterior, '''{{int:minoreditletter}}''' = edição menor.",
        "nextn-title": "{{PLURAL:$1|próximo|próximos}} $1 {{PLURAL:$1|resultado|resultados}}",
        "shown-title": "Mostrar $1 {{PLURAL:$1|resultado|resultados}} por página",
        "viewprevnext": "Ver ($1 {{int:pipe-separator}} $2) ($3).",
-       "searchmenu-exists": "<strong>Há uma página com o nome \"[[:$1]]\" neste wiki.</strong> {{PLURAL:$2|0=|Veja também os outros resultados da pesquisa encontrados.}}",
+       "searchmenu-exists": "<strong>Há uma página com o nome \"[[:$1]]\" nesta wiki.</strong> {{PLURAL:$2|0=|Veja também os outros resultados da pesquisa encontrados.}}",
        "searchmenu-new": "<strong>Criar a página \"[[:$1]]\" nesta wiki!</strong>{{PLURAL:$2|0=| Veja também a página encontrada com sua pesquisa.|Veja também os resultados das pesquisas encontradas.}}",
        "searchprofile-articles": "Páginas de conteúdo",
        "searchprofile-images": "Multimídia",
        "userrights-lookup-user": "Administrar grupos de usuários",
        "userrights-user-editname": "Forneça um nome de usuário:",
        "editusergroup": "Editar grupos de usuários",
-       "editinguser": "Modificando privilégios do usuário '''[[User:$1|$1]]''' $2",
+       "editinguser": "Modificando privilégios d{{GENDER:$1|o usuário|a usuária|o(a) usuário(a)}} '''[[User:$1|$1]]''' $2",
        "userrights-editusergroup": "Editar grupos do usuário",
        "saveusergroups": "Salvar grupos do usuário",
        "userrights-groupsmember": "Membro de:",
        "group-suppress": "Oversights",
        "group-all": "(todos)",
        "group-user-member": "{{GENDER:$1|usuário|usuária}}",
-       "group-autoconfirmed-member": "{{GENDER:$1|usuário autoconfirmado|usuária autoconfirmada}}",
+       "group-autoconfirmed-member": "{{GENDER:$1|usuário autoconfirmado|usuária autoconfirmada|usuário(a) autoconfirmado(a)}}",
        "group-bot-member": "robô",
-       "group-sysop-member": "{{GENDER:$1|administrador|administradora}}",
+       "group-sysop-member": "{{GENDER:$1|administrador|administradora|administrador(a)}}",
        "group-bureaucrat-member": "burocrata",
        "group-suppress-member": "{{GENDER:$1|supressor|supressora}}",
        "grouppage-user": "{{ns:project}}:Usuários",
        "isimage": "link para o arquivo",
        "whatlinkshere-prev": "{{PLURAL:$1|anterior|$1 anteriores}}",
        "whatlinkshere-next": "{{PLURAL:$1|próximo|próximos $1}}",
-       "whatlinkshere-links": "← links",
+       "whatlinkshere-links": "← afluentes",
        "whatlinkshere-hideredirs": "$1 redirecionamentos",
        "whatlinkshere-hidetrans": "$1 transclusões",
        "whatlinkshere-hidelinks": "$1 links",
        "movepagetalktext": "A página de \"discussão\" associada, se existir, será automaticamente movida, '''a não ser que:'''\n*Uma página de discussão com conteúdo já exista sob o novo título, ou\n*Você não marque a caixa abaixo.\n\nNestes casos, você terá que mover ou mesclar a página manualmente, se assim desejar.",
        "movearticle": "Mover página",
        "moveuserpage-warning": "'''Aviso:''' Você irá mover uma página de usuário. Note que apenas a página será movida, ''sem'' alterar o nome do usuário.",
+       "movecategorypage-warning": "<strong>Aviso:</strong> Você está prestes a mover uma página de categoria. Por favor, note que apenas a página será transferida e quaisquer páginas da categoria antiga <em>não</em> serão recategorizadas para o novo.",
        "movenologintext": "Você precisa ser um usuário registrado e [[Special:UserLogin|autenticado]] para poder mover uma página.",
        "movenotallowed": "Você não possui permissão para mover páginas.",
        "movenotallowedfile": "Você não possui permissão para mover arquivos.",
        "thumbnail-temp-create": "Não foi possível criar o arquivo temporário de miniatura",
        "thumbnail-dest-create": "Não foi possível salvar a miniatura no destino",
        "thumbnail_invalid_params": "Parâmetros de miniatura inválidos",
+       "thumbnail_toobigimagearea": "Arquivo com dimensões maiores que $1",
        "thumbnail_dest_directory": "Não foi possível criar o diretório de destino",
        "thumbnail_image-type": "Tipo de imagem não suportado",
        "thumbnail_gd-library": "Configuração da biblioteca GD incompleta: função $1 não encontrada",
        "thumbnail_image-missing": "Arquivo aparentemente inexistente: $1",
        "thumbnail_image-failure-limit": "Houveram muitas tentativas falhas recentemente ($1 ou mais) de criação desta miniatura. Por favor, tente novamente mais tarde.",
        "import": "Importar páginas",
-       "importinterwiki": "Importação transwiki",
+       "importinterwiki": "importar páginas a partir de outra wiki",
        "import-interwiki-text": "Selecione um wiki e um título de página para importar.\nAs datas das edições e os seus editores serão mantidos.\nTodas as ações de importação transwiki são registradas no [[Special:Log/import|Registro de importações]].",
        "import-interwiki-sourcewiki": "Fonte wiki:",
        "import-interwiki-sourcepage": "Página de origem:",
        "import-rootpage-nosubpage": "O espaço nominal $1 da página principal não permite subpáginas.",
        "importlogpage": "Registro de importações",
        "importlogpagetext": "Importações administrativas de páginas com a preservação do histórico de edição de outros wikis.",
-       "import-logentry-upload": "importou [[$1]] através de arquivo de importação",
        "import-logentry-upload-detail": "{{PLURAL:$1|uma edição|$1 edições}}",
-       "import-logentry-interwiki": "transwiki $1",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|$1 edição|$1 edições}} de $2",
        "javascripttest": "Teste de JavaScript",
        "javascripttest-pagetext-noframework": "Esta página é exclusiva para testes de JavaScript.",
        "javascripttest-pagetext-unknownframework": "A estrutura de testes \"$1\" é desconhecida.",
+       "javascripttest-pagetext-unknownaction": "Ação desconhecida de $1",
        "javascripttest-pagetext-frameworks": "Escolha uma das seguintes estruturas de teste: $1",
        "javascripttest-pagetext-skins": "Escolha o tema para executar os testes:",
        "javascripttest-qunit-intro": "Veja a [$1 documentação de testes] no mediawiki.org.",
        "table_pager_prev": "Página anterior",
        "table_pager_first": "Primeira página",
        "table_pager_last": "Última página",
-       "table_pager_limit": "Mostrar $1 items por página",
+       "table_pager_limit": "Mostrar $1 itens por página",
        "table_pager_limit_label": "Itens por página:",
        "table_pager_limit_submit": "Ir",
        "table_pager_empty": "Sem resultados",
        "version-parser-function-hooks": "Funções \"hooks\" de \"parser\"",
        "version-hook-name": "Nome do hook",
        "version-hook-subscribedby": "Subscrito por",
-       "version-version": "(Versão $1)",
+       "version-version": "($1)",
        "version-license": "Licença do MediaWiki",
        "version-ext-license": "Licença",
        "version-ext-colheader-name": "Extensão",
        "logentry-upload-upload": "$1 {{GENDER:$2|carregado}} $3",
        "rightsnone": "(nenhum)",
        "revdelete-summary": "sumário de edição",
+       "feedback-adding": "Adicionando os comentários na página...",
+       "feedback-bugcheck": "Perfeito! Apenas verifique se não é um dos [$1 bugs já conhecidos].",
+       "feedback-bugnew": "Eu verifiquei. Relatar um bug novo",
        "feedback-bugornote": "Se você está preparado para descrever detalhadamente um problema técnico, [$1 relate um bug].\nCaso contrário, você poderá usar o formulário simplificado a seguir. Seu comentário será adicionado à página \"[$3 $2]\", junto com o seu nome de usuário e o navegador que estiver usando neste momento.",
-       "feedback-subject": "Assunto:",
-       "feedback-message": "Mensagem:",
        "feedback-cancel": "Cancelar",
-       "feedback-submit": "Enviar Comentários",
-       "feedback-adding": "Adicionando os comentários na página...",
+       "feedback-close": "Feito",
        "feedback-error1": "Erro: O resultado da API não foi reconhecido",
        "feedback-error2": "Erro: A edição falhou",
        "feedback-error3": "Erro: A API não responde",
+       "feedback-message": "Mensagem:",
+       "feedback-subject": "Assunto:",
+       "feedback-submit": "Enviar",
        "feedback-thanks": "Obrigado! O seu comentário foi adicionado à página \"[$2 $1]\".",
-       "feedback-close": "Feito",
-       "feedback-bugcheck": "Perfeito! Apenas verifique se não é um dos [$1 bugs já conhecidos].",
-       "feedback-bugnew": "Eu verifiquei. Relatar um bug novo",
        "searchsuggest-search": "Pesquisa",
        "searchsuggest-containing": "contendo...",
        "api-error-badaccess-groups": "Você não tem permissão para enviar arquivos para este wiki.",
index b23881e..4293f11 100644 (file)
        "disclaimers": "Exoneração de responsabilidade",
        "disclaimerpage": "Project:Aviso_geral",
        "edithelp": "Ajuda de edição",
+       "helppage-top-gethelp": "Ajuda",
        "mainpage": "Página principal",
        "mainpage-description": "Página principal",
        "policy-url": "Project:Políticas",
        "right-reupload-shared": "Sobrescrever localmente ficheiros no repositório partilhado de imagens",
        "right-upload_by_url": "Carregar um ficheiro de um endereço URL",
        "right-purge": "Limpar a ''cache'' de uma página no servidor sem confirmação",
-       "right-autoconfirmed": "Editar páginas semi-protegidas",
+       "right-autoconfirmed": "Não ser afetado pelos limites de frequência baseados no número de IP",
        "right-bot": "Ser tratado como um processo automatizado",
        "right-nominornewtalk": "Não despoletar o aviso de mensagens novas ao fazer edições menores a páginas de discussão",
        "right-apihighlimits": "Usar limites superiores nas consultas ''(queries)'' via API",
        "isimage": "ligação para ficheiro",
        "whatlinkshere-prev": "{{PLURAL:$1|anterior|$1 anteriores}}",
        "whatlinkshere-next": "{{PLURAL:$1|próximo|próximos $1}}",
-       "whatlinkshere-links": "← ligações",
+       "whatlinkshere-links": "← afluentes",
        "whatlinkshere-hideredirs": "$1 redirecionamentos",
        "whatlinkshere-hidetrans": "$1 transclusões",
        "whatlinkshere-hidelinks": "$1 ligações",
        "import-rootpage-nosubpage": "O domínio \"$1\" da página de raiz não permite subpáginas.",
        "importlogpage": "Registo de importações",
        "importlogpagetext": "Importações administrativas de páginas com a preservação do histórico de edição de outras wikis.",
-       "import-logentry-upload": "importou [[$1]] por carregamento de ficheiro",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|edição importada|edições importadas}}",
-       "import-logentry-interwiki": "transwikis $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|edição importada|edições importadas}} de $2",
        "javascripttest": "Teste de JavaScript",
        "javascripttest-pagetext-noframework": "Esta página é reservada para a execução de testes de JavaScript.",
        "version-parser-function-hooks": "''Hooks'' das funções do analisador sintático",
        "version-hook-name": "Nome do hook",
        "version-hook-subscribedby": "Subscrito por",
-       "version-version": "(Versão $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[sem nome]",
        "version-license": "Licença do MediaWiki",
        "version-ext-license": "Licença",
        "log-description-managetags": "Esta página lista as tarefas de gestão relacionadas com [[Special:Tags|etiquetas]]. O registo contém apenas ações realizadas manualmente por um administrador; etiquetas podem ser criadas ou eliminadas pelo ''software'' da wiki sem uma entrada a ser gravada neste registo.",
        "logentry-managetags-create": "$1 {{GENDER:$2|criou}} a etiqueta \"$4\"",
        "logentry-managetags-delete": "$1 {{GENDER:$2|eliminou}} a etiqueta \"$4\" (removida de $5 {{PLURAL:$5|edição ou entrada de registo|edições e/ou entradas de registo}})",
-       "logentry-managetags-activate": "$1 {{GENDER:$2|ativou}} a etiqueta \"$1\" para uso de utilizadores e robôs.",
-       "logentry-managetags-deactivate": "$1 {{GENDER:$2|desativou}} a etiqueta \"$1\" para uso de utilizadores e robôs.",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|ativou}} a etiqueta \"$4\" para uso de utilizadores e robôs.",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|desativou}} a etiqueta \"$4\" para uso de utilizadores e robôs.",
        "rightsnone": "(nenhum)",
        "revdelete-summary": "editar resumo",
+       "feedback-adding": "A acrescentar os comentários à página...",
+       "feedback-back": "Retroceder",
+       "feedback-bugcheck": "Perfeito! Verifique apenas que não é já um dos [$1 defeitos conhecidos].",
+       "feedback-bugnew": "Eu verifiquei. Comunicar um novo defeito.",
        "feedback-bugornote": "Se está pronto para descrever um problema técnico em detalhe, por favor, [$1 comunique o defeito].\nCaso contrário, pode facilmente usar o formulário abaixo. O seu comentário será adicionado à página \"[$3 $2]\", junto com o seu nome de utilizador e o navegador que está a usar.",
-       "feedback-subject": "Assunto:",
-       "feedback-message": "Mensagem:",
        "feedback-cancel": "Cancelar",
-       "feedback-submit": "Enviar Comentários",
-       "feedback-adding": "A acrescentar os comentários à página...",
+       "feedback-close": "Feito",
+       "feedback-dialog-title": "Enviar opinião",
+       "feedback-dialog-intro": "Pode usar o fácil formulário abaixo para enviar os seus comentários. A sua opinião será adicionada à página \"$1\", juntamente com o seu nome de utilizador(a).",
+       "feedback-error-title": "Erro",
        "feedback-error1": "Erro: O resultado da API não foi reconhecido",
        "feedback-error2": "Erro: A edição falhou",
        "feedback-error3": "Erro: A API não responde",
+       "feedback-message": "Mensagem:",
+       "feedback-subject": "Assunto:",
+       "feedback-submit": "Enviar",
+       "feedback-termsofuse": "Concordo em fornecer comentários de acordo com as Condições de Uso.",
        "feedback-thanks": "Obrigado! O seu comentário foi adicionado à página \"[$2 $1]\".",
-       "feedback-close": "Feito",
-       "feedback-bugcheck": "Perfeito! Verifique apenas que não é já um dos [$1 defeitos conhecidos].",
-       "feedback-bugnew": "Eu verifiquei. Comunicar um novo defeito.",
+       "feedback-thanks-title": "Obrigado!",
        "searchsuggest-search": "Pesquisa",
        "searchsuggest-containing": "contendo...",
        "api-error-badaccess-groups": "Não tem permissão para enviar ficheiros para esta wiki.",
index 6253fc9..f573d45 100644 (file)
                        "គីមស៊្រុន",
                        "아라",
                        "Jdforrester",
-                       "Mar(c)"
+                       "Mar(c)",
+                       "Pikne"
                ]
        },
        "sidebar": "{{notranslate}}",
        "edithelp": "This is the text that appears on the editing help link that is near the bottom of the editing page",
        "edithelppage": "The help page displayed when a user clicks on editing help link which is present on the right of Show changes button.\n{{doc-important|Do not change the \"<tt>Help:</tt>\" part.}}",
        "helppage": "{{ignored}}\nThe link destination used by default in the sidebar, and in {{msg-mw|Noarticletext}}.",
+       "helppage-top-gethelp": "Link to some MediaWiki.org help page or tutorial.\n{{Identical|Help}}",
        "mainpage": "Defines the link and display name of the main page of the wiki. Shown as the top link in the navigation part of the interface. Please do not change it too often, that could break things!\n\nSee also:\n* {{msg-mw|Mainpage}}\n* {{msg-mw|Accesskey-n-mainpage}}\n* {{msg-mw|Tooltip-n-mainpage}}\n{{Identical|Main page}}",
        "mainpage-description": "The same as {{msg-mw|mainpage}}, used as link text on [[MediaWiki:Sidebar]].\n\nThis makes it possible to the change the link destination (the message \"mainpage\") without changing the link text or without disabling translations.\n\nSee also:\n* {{msg-mw|Mainpage-description}}\n* {{msg-mw|Accesskey-n-mainpage-description}}\n* {{msg-mw|Tooltip-n-mainpage-description}}\n{{Identical|Main page}}",
        "policy-url": "{{doc-important|Do not change the <code>Project:</code> part.}}\nThe URL of the project page describing the policies of the wiki.\n\nThis is shown below every page (the left link).",
        "bold_sample": "This is the sample text that you get when you press the first button on the left on the edit toolbar.\n\n{{Identical|Bold text}}",
        "bold_tip": "This is the text that appears when you hover the mouse over the first button on the left of the edit toolbar.\n\n{{Identical|Bold text}}",
        "italic_sample": "The sample text that you get when you press the second button from the left on the edit toolbar.\n\n{{Identical|Italic text}}",
-       "italic_tip": "This is the text that appears when you hover the mouse over the second button from the left on the edit toolbar.\n\n{{Identical|Italic text}}",
+       "italic_tip": "This is the tooltip that appears when the user points to the \"Italic\" button in the edit toolbar.\n\n{{Identical|Italic text}}",
        "link_sample": "This is the default text in the internal link that is created when you press the third button from the left on the edit toolbar (the \"Ab\" icon).",
        "link_tip": "Tip for internal links.\n{{Identical|Internal link}}",
        "extlink_sample": "This message appears when clicking on the fourth button of the edit toolbar. You can translate \"link title\". Because many of the localisations had urls that went to domains reserved for advertising, it is recommended that the link is left as-is. All customised links were replaced with the standard one, that is reserved in the standard and will never have ads or something.",
        "missingcommentheader": "Edit summary that is shown if you enable \"Prompt me when entering a blank summary\" and add a new section without headline to a talk page.\n\nSee also:\n* {{msg-mw|Missingsummary}}\n* {{msg-mw|Savearticle}}",
        "summary-preview": "Preview of the edit summary, shown under the edit summary itself.\nShould match: {{msg-mw|summary}}.",
        "subject-preview": "Should match {{msg-mw|subject}}",
+       "previewerrortext": "When a user has the editing preference LivePreview enabled, clicked the Preview or Show Changes button in the edit page and the action did not succeed.",
        "blockedtitle": "Used as title displayed for blocked users. The corresponding message body is one of the following messages:\n* {{msg-mw|Blockedtext|notext=1}}\n* {{msg-mw|Autoblockedtext|notext=1}}",
        "blockedtext": "Text displayed to blocked users.\n\n\"email this user\" should be consistent with {{msg-mw|Emailuser}}.\n\nParameters:\n* $1 - the blocking sysop (with a link to his/her userpage)\n* $2 - the reason for the block\n* $3 - the current IP address of the blocked user\n* $4 - (Unused) the blocking sysop's username (plain text, without the link)\n* $5 - the unique numeric identifier of the applied autoblock\n* $6 - the expiry of the block\n* $7 - the intended target of the block (what the blocking user specified in the blocking form)\n* $8 - the timestamp when the block started\nSee also:\n* {{msg-mw|Grouppage-sysop}}\n* {{msg-mw|Autoblockedtext}}",
        "autoblockedtext": "Text displayed to automatically blocked users.\n\n\"email this user\" should be consistent with {{msg-mw|Emailuser}}.\n\nParameters:\n* $1 - the blocking sysop (with a link to his/her userpage)\n* $2 - the reason for the block (in case of autoblocks: {{msg-mw|autoblocker}})\n* $3 - the current IP address of the blocked user\n* $4 - (Unused) the blocking sysop's username (plain text, without the link). Use it for GENDER.\n* $5 - the unique numeric identifier of the applied autoblock\n* $6 - the expiry of the block\n* $7 - the intended target of the block (what the blocking user specified in the blocking form)\n* $8 - the timestamp when the block started\nSee also:\n* {{msg-mw|Grouppage-sysop}}\n* {{msg-mw|Blockedtext}}",
        "editingsection": "This message displays at the top of the page when a user is editing a page section. Parameters:\n* $1 - page name\n{{Related|Editing}}",
        "editingcomment": "This message displays at the top of the page when a user is creating a new section. Parameters:\n* $1 - page name\n{{Related|Editing}}",
        "editconflict": "Used as title of error message. Parameters:\n* $1 - page title",
+       "editnotice-notext": "{{ignored}}\nCustom message on top of the edit page if no edit notices apply to this page.",
        "explainconflict": "Appears at the top of a page when there is an edit conflict.\n\nSee also:\n* {{msg-mw|Savearticle}}",
        "yourtext": "Used in Diff Preview page. The diff is between {{msg-mw|currentrev}} and {{msg-mw|yourtext}}.\n\nAlso used in Edit Conflict page; the diff between {{msg-mw|yourtext}} and {{msg-mw|storedversion}}.",
        "storedversion": "This is used in an edit conflict as the label for the top revision that has been stored, as opposed to your version {{msg-mw|yourtext}} that has not been stored which is shown at the bottom of the page.",
        "import-rootpage-nosubpage": "Used on [[Special:Import]], when the import namespace does not support subpages. Parameters:\n* $1 is a namespace name.",
        "importlogpage": "{{doc-logpage}}",
        "importlogpagetext": "This text appears at the top of the [{{canonicalurl:Special:Log|type=import}} import log] special page.",
-       "import-logentry-upload": "This is the text of an entry in the Import log (and Recent Changes), after hour (and date, only in the Import log) and sysop name:\n* $1 is the name of the imported file",
+       "import-logentry-upload": "{{ignored}}This is ''logentry'' message only used on IRC.\n* $1 is the name of the imported file",
        "import-logentry-upload-detail": "Used as success message and log entry. Parameters:\n* $1 - number of succeeded revisions\nSee also:\n* {{msg-mw|Import-logentry-interwiki-detail}}",
-       "import-logentry-interwiki": "Used as action listed in the log. Parameters:\n* $1 - page title",
+       "import-logentry-interwiki": "{{ignored}}This is ''logentry'' message only used on IRC. Parameters:\n* $1 - page title",
        "import-logentry-interwiki-detail": "Used as success message and log entry. Parameters:\n* $1 - number of succeeded revisions\n* $2 - interwiki name\nSee also:\n* {{msg-mw|Import-logentry-upload-detail}}",
        "javascripttest": "Title of the special page [[Special:JavaScriptTest]].\n\nSee also:\n* {{msg-mw|Javascripttest|title}}\n* {{msg-mw|Javascripttest-pagetext-noframework|summary}}\n* {{msg-mw|Javascripttest-pagetext-unknownframework|error message}}",
        "javascripttest-backlink": "{{optional}}\nUsed as subtitle in [[Special:JavaScriptTest]]. Parameters:\n* $1 - page title",
        "patrol-log-header": "Text that appears above the log entries on the [[Special:log|patrol log]].",
        "log-show-hide-patrol": "Used in [[Special:Log]]. Parameters:\n* $1 - link text; one of {{msg-mw|Show}} or {{msg-mw|Hide}}\n{{Related|Log-show-hide}}",
        "deletedrevision": "Used as log comment. Parameters:\n* $1 - archive name of old image",
-       "filedeleteerror-short": "Used as error message. Parameters:\n* $1 - page title\nSee also:\n* {{msg-mw|Filedeleteerror-long}}",
+       "filedeleteerror-short": "Used as error message. Parameters:\n* $1 – There are two uses: 1) filename or 2) more specific error message like {{msg-mw|Backend-fail-internal}}.\nSee also:\n* {{msg-mw|Filedeleteerror-long}}",
        "filedeleteerror-long": "Used as error message. Parameters:\n* $1 - ...\nSee also:\n* {{msg-mw|Filedeleteerror-short}}",
        "filedelete-missing": "Used as error message. Parameters:\n* $1 - filename\nSee also:\n* {{msg-mw|Filedelete-old-unregistered}}\n* {{msg-mw|Filedelete-current-unregistered}}",
        "filedelete-old-unregistered": "Used as error message. Parameters:\n* $1 - name\nSee also:\n* {{msg-mw|Filedelete-current-unregistered}}\n* {{msg-mw|Filedelete-missing}}",
        "logentry-block-reblock": "{{Logentry|[[Special:Log/block]]}}\n* $4 - user name for gender or empty string for autoblocks\n* $5 - the block duration, localized and formatted with the english tooltip\n* $6 - block detail flags or empty string\n\nCf. {{msg-mw|Reblock-logentry}}",
        "logentry-suppress-block": "{{Logentry}}\n* $4 - user name for gender or empty string for autoblocks\n* $5 - the block duration, localized and formatted with the english tooltip\n* $6 - block detail flags or empty string",
        "logentry-suppress-reblock": "{{Logentry}}\n* $4 - user name for gender or empty string for autoblocks\n* $5 - the block duration, localized and formatted with the english tooltip\n* $6 - block detail flags or empty string",
+       "logentry-import-upload": "{{Logentry|[[Special:Log/import]]}}",
+       "logentry-import-interwiki": "{{Logentry|[[Special:Log/import]]}}",
        "logentry-merge-merge": "{{Logentry|[[Special:Log/merge]]}}\n* $4 - the page into which the content is merged\n* $5 - a timestamp of limit\n\nThe log and its associated special page 'MergeHistory' is not enabled by default.\n\nPlease note that the parameters in a log entry will appear in the log only in the default language of the wiki. View [[Special:Log]] for examples on translatewiki.net with English default language.",
        "logentry-move-move": "{{Logentry|[[Special:Log/move]]}}\nParameter $4, the target page, is also not visible to parser functions.",
        "logentry-move-move-noredirect": "{{Logentry|[[Special:Log/move]]}}\nParameter $4, the target page, is also not visible to parser functions.",
        "newuserlog-autocreate-entry": "This message is used in the [[:mw:Extension:Newuserlog|new user log]] to mark an account that was created by MediaWiki as part of a [[:mw:Extension:CentralAuth|CentralAuth]] global account.",
        "rightslogentry": "This message is displayed in the [[Special:Log/rights|User Rights Log]] when a bureaucrat changes the user groups for a user.\n\nParameters:\n* $1 - the username\n* $2 - list of user groups or {{msg-mw|Rightsnone}}\n* $3 - list of user groups or {{msg-mw|Rightsnone}}\n\nThe name of the bureaucrat who did this task appears before this message.\n\nSimilar to {{msg-mw|Gur-rightslog-entry}}",
        "rightslogentry-autopromote": "This message is displayed in the [[Special:Log/rights|User Rights Log]] when a user is automatically promoted to a user group.\n\nParameters:\n* $1 - (Unused)\n* $2 - a comma separated list of old user groups or {{msg-mw|Rightsnone}}\n* $3 - a comma separated list of new user groups",
+       "feedback-adding": "Progress notice",
+       "feedback-back": "Button to go back to the previous action in the feedback dialog.\n{{Identical|Back}}",
+       "feedback-bugcheck": "Message that appears before the user submits a bug, reminding them to check for known bugs.\n\nParameters:\n* $1 - bug list page URL",
+       "feedback-bugnew": "Button label - asserts that the user has checked for existing bugs. When clicked will launch an external form to add a new bug in a new tab or window",
        "feedback-bugornote": "When feedback dialog box is opened, this introductory message in small print explains the options to report a bug or add simple feedback.\n\nWe expect that people in a hurry will not read this.\n\nParameters:\n* $1 - Bug note URL\n* $2 - \"Feedback\"\n* $3 - Feedback page URL",
-       "feedback-subject": "Label for a text input\n{{Identical|Subject}}",
-       "feedback-message": "Label for a textarea; signature referrs to a Wikitext signature.\n{{Identical|Message}}",
        "feedback-cancel": "Button label\n{{Identical|Cancel}}",
-       "feedback-submit": "Button label\n{{Identical|Submit}}",
-       "feedback-adding": "Progress notice",
+       "feedback-close": "Button label\n{{Identical|Done}}",
+       "feedback-external-bug-report-button": "A button for submitting an external technical bug report.",
+       "feedback-dialog-title": "Title of the feedback dialog",
+       "feedback-dialog-intro": "An introduction at the top of the feedback dialog. $1 - Feedback page link",
+       "feedback-error-title": "{{Identical|Error}}",
        "feedback-error1": "Error message, appears when an unknown error occurs submitting feedback",
        "feedback-error2": "Error message, appears when we could not add feedback",
        "feedback-error3": "Error message, appears when we lose our connection to the wiki",
+       "feedback-message": "Label for a textarea; signature refers to a Wikitext signature.\n{{Identical|Message}}",
+       "feedback-subject": "Label for a text input\n{{Identical|Subject}}",
+       "feedback-submit": "Button label\n{{Identical|Submit}}",
+       "feedback-terms": "Label for a checkbox asking for permissions to submit browser information.",
+       "feedback-termsofuse": "Label with an agreement about the terms of use.",
        "feedback-thanks": "Thanks message, appears if feedback was successful. Parameters:\n* $1 - \"Feedback\"\n* $2 - Feedback page URL",
-       "feedback-close": "Button label\n{{Identical|Done}}",
-       "feedback-bugcheck": "Message that appears before the user submits a bug, reminding them to check for known bugs.\n\nParameters:\n* $1 - bug list page URL",
-       "feedback-bugnew": "Button label - asserts that the user has checked for existing bugs. When clicked will launch a bugzilla form to add a new bug in a new tab or window",
+       "feedback-thanks-title": "The title of the thank you dialog at the end of the submission process.\n{{Identical|Thank you}}",
+       "feedback-useragent": "A label denoting the user agent in the feedback that is posted to the feedback page.",
        "searchsuggest-search": "Greyed out default text in the simple search box in the Vector skin. (It disappears and lets the user enter the requested search terms when the search box receives focus.)\n\n{{Identical|Search}}",
        "searchsuggest-containing": "Label used in the special item of the search suggestions list which gives the user an option to perform a full text search for the term.",
        "api-error-badaccess-groups": "API error message that can be used for client side localisation of API errors.",
        "json-error-utf8": "User error message when there are malformed UTF-8 characters, possibly incorrectly encoded.\nSee http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}",
        "json-error-recursion": "PHP JSON encoding/decoding error. See http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}",
        "json-error-inf-or-nan": "PHP JSON encoding/decoding error. See http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}",
-       "json-error-unsupported-type": "PHP JSON encoding/decoding error. See http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}"
+       "json-error-unsupported-type": "PHP JSON encoding/decoding error. See http://php.net/manual/en/function.json-last-error.php\n{{Related|Json-error}}",
+       "special-characters-group-latin": "This is the name of a script, or alphabet, not a language.",
+       "special-characters-group-latinextended": "The name of the Latin Extended character set.",
+       "special-characters-group-ipa": "IPA means a script: \"international phonetic alphabet\" here, and not \"international phonetic association\", the organization behind it.",
+       "special-characters-group-symbols": "The section name for symbols\n\n{{Identical|Symbol}}",
+       "special-characters-group-greek": "This is the name of a script, or alphabet, not a language.",
+       "special-characters-group-cyrillic": "This is the name of a script, or a group of alphabets, used mainly in Eastern Europe and North and Central Asia.",
+       "special-characters-group-arabic": "This is the name of a script, or alphabet, not a language.",
+       "special-characters-group-arabicextended": "This is a description of the additional group of Arabic script characters for languages such as a Persian, Urdu, Pashto and others. This message is supposed to be similar to {{msg-mw|special-characters-group-latinextended}}.",
+       "special-characters-group-persian": "The name of the Persian character set (alphabet).",
+       "special-characters-group-hebrew": "This is the name of a script, or alphabet, not a language.",
+       "special-characters-group-bangla": "The name of the [[w:Bengali alphabet|Bangla]] (a.k.a. Bengali) character set (alphabet).",
+       "special-characters-group-tamil": "The name of the [[w:Tamil_Script#Numerals_and_symbols|Tamil]] numerals and symbols.",
+       "special-characters-group-telugu": "The name of the [[w:Telugu language#Alphabet|Telugu]] character set (alphabet).",
+       "special-characters-group-lao": "{{Identical|Lao}}",
+       "special-characters-group-khmer": "{{Identical|Khmer}}",
+       "special-characters-title-endash": "Title tooltip for the en dash character (–); See https://en.wikipedia.org/wiki/Dash",
+       "special-characters-title-emdash": "Title tooltip for the em dash character (—); See https://en.wikipedia.org/wiki/Dash",
+       "special-characters-title-minus": "Title tooltip for the minus sign character (−), not to be confused with a hyphen"
 }
index 32a6b1c..19870a6 100644 (file)
@@ -9,7 +9,8 @@
                        "The Evil IP address",
                        "לערי ריינהארט",
                        "아라",
-                       "Fitoschido"
+                       "Fitoschido",
+                       "Macofe"
                ]
        },
        "tog-underline": "T'inkikunata uranpi sikwiy",
        "searchall": "tukuy",
        "showingresults": "Qhipanpiqa rikuchkanki {{PLURAL:$1|'''1''' tarisqatam|'''$1'''-kama tarisqakunatam}}, '''$2''' huchhawan qallarispa.",
        "showingresultsinrange": "Qhipanpiqa rikuchkanki {{PLURAL:$1|<strong>1</strong>-kama tarisqatam|<strong>$1</strong>-kama tarisqakunatam}}, #<strong>$2</strong> huchhamanta #<strong>$3</strong> huchhakama.",
+       "search-showingresults": "{{PLURAL:$4|Taripasqa <strong>$1</strong>, <strong>$3</strong>-pura|Taripasqakuna <strong>$1</strong>-manta <strong>$2</strong>-kama, <strong>$3</strong>-pura}}",
        "search-nonefound": "Maskaypaq kay hina kachun nisqakamaqa manam kanchu taripasqakuna.",
        "powersearch-legend": "Ñawparikusqa maskay",
        "powersearch-ns": "Kay suti k'itikunapi maskay:",
        "delete-toobig": "Kay p'anqaqa ancha wiñay kawsaysapa, $1-manta aswan {{PLURAL:$1|musuqchasqayuq|musuqchasqayuq}}. Kay hina p'anqakunata qulluyqa saywachasqam, {{SITENAME}}ta mana waqllinapaq.",
        "delete-warning-toobig": "Kay p'anqaqa ancha wiñay kawsaysapa, $1-manta aswan {{PLURAL:$1|musuqchasqayuq|musuqchasqayuq}}. Kay hina p'anqata qulluspaykiqa, {{SITENAME}}ta waqllinkimanchá. Kay ruraymanta anchata yuyaychakuspa hamut'ay.",
        "rollback": "Hukchasqakunata kutichiy",
-       "rollback_short": "Kutichiy",
        "rollbacklink": "Kutichiy",
        "rollbacklinkcount": "$1 {{PLURAL:$1|hukchasqata}} kutichiy",
        "rollbacklinkcount-morethan": "$1-manta aswan {{PLURAL:$1|hukchasqakunata}} kutichiy",
        "import-rootpage-nosubpage": "Saphi p'anqap \"$1\" sutisuyunpiqa urin p'anqakuna manam kanqachu.",
        "importlogpage": "Hawamanta chaskiy hallch'a",
        "importlogpagetext": "Huk wikikunamanta wiñay kawsayniyuq p'anqakunata kamachina chaskiykuna.",
-       "import-logentry-upload": "hawamanta chaskisqa [[$1]] willañiqita churkuspa",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|hukchasqa|hukchasqakuna}}",
-       "import-logentry-interwiki": "huk wikimanta chaskisqa $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|hukchasqa|hukchasqakuna}} $2-manta",
        "javascripttest": "JavaScript llanchiy",
-       "javascripttest-title": "$1 llanchiykunam richkan",
        "javascripttest-pagetext-noframework": "Kay p'anqaqa JavaScript llanchina purichinallapaqmi kachun.",
        "javascripttest-pagetext-unknownframework": "Mana riqsisqa \"$1\" nisqa llanchina inchu ruray",
        "javascripttest-pagetext-frameworks": "Ama hina kaspa, kay qatiq llanchina inchu ruraykunamanta hukta akllay: $1",
        "javascripttest-pagetext-skins": "Qarata akllay llanchiykunata paywan purichinaykipaq:",
        "javascripttest-qunit-intro": "Qhaway [$1 llanchina yachachinapi], mediawiki.org nisqapi kaq.",
-       "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit llanchina",
        "tooltip-pt-userpage": "Qampa ruraqpa p'anqayki",
        "tooltip-pt-anonuserpage": "IP huchhaykipaq ruraqpa p'anqan",
        "tooltip-pt-mytalk": "Rimanakuy p'anqayki",
        "watchlisttools-edit": "Watiqana sutisuyuta qhawaspa llamk'apuy",
        "watchlisttools-raw": "Chawa watiqana sutisuyuta llamk'apuy",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|rimanakuy]])",
-       "unknown_extension_tag": "Mana riqsisqa \"$1\" mast'arina k'askana",
        "duplicate-defaultsort": "Paqtataq: Kikinmanta allinchana llawi «$2» ñawpaq kikinmanta allinchana llawitam «$1» huknachan.",
        "version": "Musuqchasqa",
        "version-extensions": "Tiyachisqa mast'arinakuna",
        "version-parser-function-hooks": "T'ikrana rurana ch'iwinakuna",
        "version-hook-name": "Ch'iwinap sutin",
        "version-hook-subscribedby": "Kay runap mañaykusqan:",
-       "version-version": "(Musuqchasqa $1)",
+       "version-version": "($1)",
        "version-license": "Saqillay",
        "version-ext-license": "Saqillay",
        "version-ext-colheader-name": "Mast'ariy",
        "specialpages-group-wiki": "Willakuna llamk'anakunapas",
        "specialpages-group-redirects": "Pusapunapaq sapaq p'anqakuna",
        "specialpages-group-spam": "Spam nisqa millay rurayta hark'anapaq llamk'anakuna",
+       "specialpages-group-developer": "Kururachiqkunapaq llamk'anakuna",
        "blankpage": "Ch'usaq p'anqa",
        "intentionallyblankpage": "Kay p'anqaqa munaylla ch'usaqmi kachun",
        "external_image_whitelist": "  #Kay sinruta kay hinallatam saqiy<pre>\n#Ñiqilla hawanchana rakikunata churay (// nisqapura rakitam) urapi\n#Kaykunaqa hawa (q'uñilla t'inkisqa) rikchakunap URL tiyayninkunawanmi taripanachisqa kanqa\n#Taripasqakunaqa rikcha hinam rikurinqa, hukkunapaqtaq rikchaman t'inkillam rikurinqa\n#«#» nisqawan qallariq sinrukunaqa willapuy hinam llamk'apusqa kanqa\n#Kayqa manam musyanchu uchuy icha hatun sanancha kayta\n\n#Tukuy regex rakikunata kay siq'ip hananman churay. Kay sinruta kay hinallatam saqiy</pre>",
        "logentry-rights-autopromote": "{{GENDER:$2|}}$1 sutiyuq ruraqqa kikinmantam ñawparikun $4-manta $5-man",
        "rightsnone": "(-)",
        "revdelete-summary": "yuyarinata llamk'apuy",
+       "feedback-adding": "Willapuyniykita kay p'anqaman yapay: ...",
+       "feedback-bugcheck": "Allillanmi! Llanchirillay [$1 riqsisqapura huk pantasqañachu] mana kanmanchu.",
+       "feedback-bugnew": "Llanchisqañam. Musuq pantasqamanta willay",
        "feedback-bugornote": "Allwiyapi sasachakuymanta imaymanachanta willayta munaspaykiqa, [$1 pantasqamanta willay].\nMana chayqa, kay qatiqpi kaq hunt'ana p'anqatam llamk'achiyta atinki. Willapuyniykiqa \"[$3 $2]\" sutiyuq p'anqamanmi yapasqa kanqa, hinallataqmi ruraqpa sutiykipas qampa llamk'achisqayki llika wamp'unapas.",
-       "feedback-subject": "Yuyancha:",
-       "feedback-message": "Willay:",
        "feedback-cancel": "Ama niy",
-       "feedback-submit": "Willapuyniykita kachay",
-       "feedback-adding": "Willapuyniykita kay p'anqaman yapay: ...",
+       "feedback-close": "Rurasqañam",
        "feedback-error1": "Pantasqa: API nisqamanta taripasqaqa manam riqsirisqachu",
        "feedback-error2": "Pantasqa: Manam llamk'apuyta atinchu",
        "feedback-error3": "Pantasqa: API nisqaqa manam kutipanchu",
+       "feedback-message": "Willay:",
+       "feedback-subject": "Yuyancha:",
+       "feedback-submit": "Kachay",
        "feedback-thanks": "Añaychayki! Willapuyniykiqa \"[$2 $1]\" sutiyuq p'anqaman yapasqañam.",
-       "feedback-close": "Rurasqañam",
-       "feedback-bugcheck": "Allillanmi! Llanchirillay [$1 riqsisqapura huk pantasqañachu] mana kanmanchu.",
-       "feedback-bugnew": "Llanchisqañam. Musuq pantasqamanta willay",
        "searchsuggest-search": "Maskay",
        "searchsuggest-containing": "kaykunayuq: ...",
        "api-error-badaccess-groups": "Kay wikipiqa willañiqikunata manam churkuyta atinkichu.",
index 983b819..a94802c 100644 (file)
@@ -8,7 +8,9 @@
                        "Shirayuki",
                        "Urhixidur",
                        "לערי ריינהארט",
-                       "Davent"
+                       "Davent",
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Suttastritgar colliaziuns:",
        "import-rootpage-nosubpage": "Il tip da pagina \"$1\" da la pagina principala na lubescha naginas sutpaginas.",
        "importlogpage": "Protocol dals imports",
        "importlogpagetext": "Import administrativ da paginas cun cronologia da modificaziuns dad autras wikis.",
-       "import-logentry-upload": "ha importà [[$1]] cun chargiar si ina datoteca",
        "import-logentry-upload-detail": "{{PLURAL:$1|Ina versiun|$1 versiuns}}",
-       "import-logentry-interwiki": "ha importà $1 (transwiki)",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|Ina versiun|$1 versiuns}} da $2",
        "javascripttest": "Test da JavaScript",
        "javascripttest-pagetext-noframework": "Questa pagina è reservada per exequir tests da JavaScript.",
        "version-parser-function-hooks": "Hooks per funcziuns dal parser",
        "version-hook-name": "Num dal hook",
        "version-hook-subscribedby": "Abonnà da",
-       "version-version": "(Versiun $1)",
+       "version-version": "($1)",
        "version-license": "Licenza",
        "version-poweredby-credits": "Questa wiki utilisescha '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
        "version-poweredby-others": "auters",
        "logentry-rights-autopromote": "$1 è vegnì {{GENDER:$2|promovì|promovida}} automaticamain da $4 a $5",
        "rightsnone": "(nagins)",
        "revdelete-summary": "resumaziun da la midada",
+       "feedback-adding": "Agiuntar il resun a la pagina…",
+       "feedback-bugcheck": "Grondius! Controllescha simplamain che quai n'è betg gia in da las [$1 errurs enconuschentas].",
+       "feedback-bugnew": "Jau hai controllà. Rapportar ina nova errur.",
        "feedback-bugornote": "Sche ti vuls descriver detagliadamain in problem techic, lura [$1 rapporta in bug].\nUschiglio pos ti utilisar il formular simpel sutvart. Tes commentari vegn agiuntà a la pagina \"[$3 $2]\" ensemen cun tes num d'utilisader.",
-       "feedback-subject": "Object:",
-       "feedback-message": "Messadi:",
        "feedback-cancel": "Interrumper",
-       "feedback-submit": "Trametter il resun",
-       "feedback-adding": "Agiuntar il resun a la pagina…",
+       "feedback-close": "Terminà",
        "feedback-error1": "Errur: Resultat nunenconuschent dal API",
        "feedback-error2": "Errur: La modificaziun n'è betg reussida",
        "feedback-error3": "Errur: Nagina resposta dal API",
+       "feedback-message": "Messadi:",
+       "feedback-subject": "Object:",
+       "feedback-submit": "Trametter",
        "feedback-thanks": "Grazia! Tes resun è vegnì publitgà sin la pagina \"[$2 $1]\".",
-       "feedback-close": "Terminà",
-       "feedback-bugcheck": "Grondius! Controllescha simplamain che quai n'è betg gia in da las [$1 errurs enconuschentas].",
-       "feedback-bugnew": "Jau hai controllà. Rapportar ina nova errur.",
        "searchsuggest-search": "Tschertgar",
        "searchsuggest-containing": "cuntegna…",
        "api-error-badaccess-groups": "Ti na dastgas betg chargiar datotecas en quest wiki.",
index b6fcb4a..d3caab0 100644 (file)
@@ -24,7 +24,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "XXN",
-                       "Fitoschido"
+                       "Fitoschido",
+                       "Macofe"
                ]
        },
        "tog-underline": "Sublinierea legăturilor:",
        "disclaimers": "Termeni",
        "disclaimerpage": "Project:Termeni",
        "edithelp": "Ajutor pentru modificare",
+       "helppage-top-gethelp": "Ajutor",
        "mainpage": "Pagina principală",
        "mainpage-description": "Pagina principală",
        "policy-url": "Project:Politică",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|a dezactivat}} eticheta „$4” de la utilizarea de către utilizatori și roboți",
        "rightsnone": "(niciunul)",
        "revdelete-summary": "descrierea modificărilor",
+       "feedback-adding": "Se adaugă părerea pe pagină...",
+       "feedback-back": "Înapoi",
+       "feedback-bugcheck": "Minunat! Trebuie doar să verificați dacă nu cumva problema a fost [$1 deja înregistrată].",
+       "feedback-bugnew": "Am verificat. O raportez drept o problemă nouă",
        "feedback-bugornote": "Dacă sunteți pregătit să descrieți o problemă tehnică în detaliu vă rugăm să [$1 raportați un bug].\nÎn caz contrar, puteți utiliza formularul de mai jos. Comentariul dumneavoastră va fi adăugat pe pagina „[$3 $2]”, împreună cu numele de utilizator și numele navigatorului pe care îl folosiți.",
-       "feedback-subject": "Subiect:",
-       "feedback-message": "Mesaj:",
        "feedback-cancel": "Revocare",
-       "feedback-submit": "Trimite părerea",
-       "feedback-adding": "Se adaugă părerea pe pagină...",
+       "feedback-close": "Gata",
+       "feedback-dialog-title": "Trimitere păreri",
+       "feedback-dialog-intro": "Puteți folosi formularul simplificat de mai jos pentru a vă trimite părerile. Comentariul dumneavoastră va fi adăugat în pagina „$1”, alături de numele dumneavoastră de utilizator.",
+       "feedback-error-title": "Eroare",
        "feedback-error1": "Eroare: Rezultat necunoscut de la API",
        "feedback-error2": "Eroare: editarea nu a reușit",
        "feedback-error3": "Eroare: Niciun răspuns de la API",
+       "feedback-message": "Mesaj:",
+       "feedback-subject": "Subiect:",
+       "feedback-submit": "Trimite",
+       "feedback-terms": "Înțeleg că informațiile mele din agentul utilizator includ informații exacte despre navigatorul și versiunea sistemului de operare și că acestea vor fi făcute publice alături de comentariile mele.",
+       "feedback-termsofuse": "Sunt de acord să trimit păreri în acord cu Termenii de utilizare.",
        "feedback-thanks": "Mulțumim! Comentariile dumneavoastră au fost publicate pe pagina „[ $2  $1 ]”.",
-       "feedback-close": "Gata",
-       "feedback-bugcheck": "Minunat! Trebuie doar să verificați dacă nu cumva problema a fost [$1 deja înregistrată].",
-       "feedback-bugnew": "Am verificat. O raportez drept o problemă nouă",
+       "feedback-thanks-title": "Mulțumim!",
+       "feedback-useragent": "Agent utilizator:",
        "searchsuggest-search": "Căutare",
        "searchsuggest-containing": "conținând...",
        "api-error-badaccess-groups": "Nu aveți dreptul să încărcați fișiere pe acest wiki.",
index 876012d..35f8049 100644 (file)
@@ -6,7 +6,8 @@
                        "McDutchie",
                        "Reder",
                        "아라",
-                       "C.R."
+                       "C.R.",
+                       "Macofe"
                ]
        },
        "tog-underline": "Collegaminde sottolinèate:",
        "pool-timeout": "Tiembe d'attese scadute pu 'u blocche",
        "pool-queuefull": "'A code de le sondagge jè chiene",
        "pool-errorunknown": "Errore scanusciute",
+       "poolcounter-usage-error": "Errore d'ause: $1",
        "aboutsite": "Sus a {{SITENAME}}",
        "aboutpage": "Project:Sus a",
        "copyright": "'U condenute jè disponibile sotte a $1.",
        "disclaimers": "No ne sacce ninde",
        "disclaimerpage": "Project:Scareca uarrile",
        "edithelp": "Cangianne l'ajute",
+       "helppage-top-gethelp": "Aijute",
        "mainpage": "Pàgene Prengepàle",
        "mainpage-description": "Pàgene Prengepàle",
        "policy-url": "Project:Reghele",
        "hidetoc": "scunne",
        "collapsible-collapse": "Scunne",
        "collapsible-expand": "Spanne",
+       "confirmable-confirm": "{{GENDER:$1|Sì}} secure?",
        "confirmable-yes": "Sìne",
        "confirmable-no": "None",
        "thisisdeleted": "Vide o ripristine $1?",
        "readonly_lag": "'U database ha state automaticamende blocchete purcè le server de le database ca depennene da 'u master onne sciute in eccezzione",
        "internalerror": "Errore inderne",
        "internalerror_info": "Errore inderne: $1",
+       "internalerror-fatal-exception": "Eccezzione fatale d'u tipe \"$1\"",
        "filecopyerror": "Non ge pozze cupià 'u fail \"$1\" jndr'à \"$2\".",
        "filerenameerror": "Non ge pozze cangià 'u nome d'u fail \"$1\" jndr'à \"$2\".",
        "filedeleteerror": "Non ge pozze scangillà 'u fail \"$1\".",
        "thumbnail_gd-library": "Configurazione d'a libbrerie GD ingomblete: funziona perse $1",
        "thumbnail_image-missing": "'U file pare ca non ge se iacchie: $1",
        "import": "Pàggene 'mbortete",
-       "importinterwiki": "'Mborte da Transuicchi",
-       "import-interwiki-text": "Schacchie 'na Uicchi e 'nu titele de pàgene da 'mbortà.\nLe date d'a revisione e 'u nome de le cangiature avènene preservate.\nTutte le aziune de 'mbortaziune 'mbrà le Uicchi sonde reggistrate jndr'à l'[[Special:Log/import|archivije de le 'mbortaziune]].",
+       "importinterwiki": "'Mborte da 'n'otra uicchi",
+       "import-interwiki-text": "Schacchie 'na Uicchi e 'nu titole de pàgene da 'mbortà.\nLe date d'a revisione e 'u nome de le cangiature avènene preservate.\nTutte le aziune de 'mbortaziune 'mbrà le Uicchi sonde reggistrate jndr'à l'[[Special:Log/import|archivije de le 'mbortaziune]].",
        "import-interwiki-history": "Copie tutte 'a sotrie de le versiune de sta pàgene",
        "import-interwiki-templates": "Inglude tutte le template",
        "import-interwiki-submit": "'Mborte",
        "import-rootpage-nosubpage": "Namespace \"$1\" d'a pàgene prengepàle non ge permette le sottopàggene.",
        "importlogpage": "Archivie de le 'mbortaziune",
        "importlogpagetext": "'Mbortaziune amministrative de pàggene cu 'a storie de le cangiaminde da otre Uicchi.",
-       "import-logentry-upload": "'mbortete [[$1]] da 'u fail carechete",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|revisione|revisiune}} 'mbortate",
-       "import-logentry-interwiki": "transuicchied $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|revisione|revisiune}} 'mbortate da $2",
        "javascripttest": "Test de JavaScript",
        "javascripttest-pagetext-noframework": "Sta pàgene jè riservate pe le esecuziune de le test de Javascript.",
        "version-parser-function-hooks": "Funziune hook de l'analizzatore",
        "version-hook-name": "Nome de l'hook",
        "version-hook-subscribedby": "Sottoscritte da",
-       "version-version": "(Versione $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[nisciune nome]",
        "version-svn-revision": "(r$2)",
        "version-license": "Licenze",
        "logentry-rights-autopromote": "$1 ha state {{GENDER:$2|promosse}} automaticamende da $4 a $5",
        "rightsnone": "(ninde)",
        "revdelete-summary": "cange 'u riepileghe",
+       "feedback-adding": "Aggiunge feedback a 'a pàgene...",
+       "feedback-bugcheck": "Granne! Appene verificate ca non g'è une de le [$1 bug canusciute].",
+       "feedback-bugnew": "Agghie verificate. Manne 'nu bug nuève",
        "feedback-bugornote": "Ce tu si pronde a descrivere 'nu probbleme tecniche cu le dettaglie pe piacere [$1 manne 'nu bug].\nCe nò, tu puè ausà 'u module facile aqquà sotte. 'U commende tune avène aggiunde a 'a pàgene [$3 $2]\", seguenne 'u nome utende tune e ce browser tu ste ause.",
-       "feedback-subject": "Oggette:",
-       "feedback-message": "Messàgge:",
        "feedback-cancel": "Annulle",
-       "feedback-submit": "Conferme 'a segnalazione",
-       "feedback-adding": "Aggiunge feedback a 'a pàgene...",
+       "feedback-close": "Fatte",
        "feedback-error1": "Errore: resultate inaspettate da l'API",
        "feedback-error2": "Errore: Cangiamende fallite",
        "feedback-error3": "Errore: Nisciuna resposte da l'API",
+       "feedback-message": "Messàgge:",
+       "feedback-subject": "Oggette:",
+       "feedback-submit": "Conferme",
        "feedback-thanks": "Grazie! 'A segnalaziona toje ha state mannate a 'a pàgene \"[$2 $1]\".",
-       "feedback-close": "Fatte",
-       "feedback-bugcheck": "Granne! Appene verificate ca non g'è une de le [$1 bug canusciute].",
-       "feedback-bugnew": "Agghie verificate. Manne 'nu bug nuève",
        "searchsuggest-search": "Cirche",
        "searchsuggest-containing": "tène...",
        "api-error-badaccess-groups": "Tu non ge puè carecà file sus a sta Uicchi.",
index d2106c1..8140f40 100644 (file)
@@ -76,7 +76,9 @@
                        "Tourorist",
                        "Purodha",
                        "Максим777",
-                       "Sealle"
+                       "Sealle",
+                       "Macofe",
+                       "DonRumata"
                ]
        },
        "tog-underline": "Подчёркивание ссылок:",
        "disclaimers": "Отказ от ответственности",
        "disclaimerpage": "Project:Отказ от ответственности",
        "edithelp": "Справка по редактированию",
+       "helppage-top-gethelp": "Помощь",
        "mainpage": "Заглавная страница",
        "mainpage-description": "Заглавная страница",
        "policy-url": "Project:Правила",
        "readonly_lag": "База данных автоматически заблокирована от изменений на время, пока вторичные сервера базы данных не синхронизируются с первичным.",
        "internalerror": "Внутренняя ошибка",
        "internalerror_info": "Внутренняя ошибка: $1",
+       "internalerror-fatal-exception": "Неустранимое исключение типа «$1»",
        "filecopyerror": "Невозможно скопировать файл «$1» в «$2».",
        "filerenameerror": "Невозможно переименовать файл «$1» в «$2».",
        "filedeleteerror": "Невозможно удалить файл «$1».",
        "editundo": "отменить",
        "diff-empty": "(нет различий)",
        "diff-multi-sameuser": "(не {{PLURAL:$1|показана одна промежуточная версия|показаны $1 промежуточные версии|показано $1 промежуточных версий}} этого же участника)",
-       "diff-multi-otherusers": "(не {{PLURAL:$1|показана одна промежуточная версия|показаны $1 промежуточные версии|показано $1 промежуточных версий}} {{PLURAL:$2|$2 участника|$2 участников}})",
+       "diff-multi-otherusers": "(не {{PLURAL:$1|показана $1 промежуточная версия|показаны $1 промежуточные версии|показано $1 промежуточных версий}} {{PLURAL:$2|$2 участника|$2 участников}})",
        "diff-multi-manyusers": "({{PLURAL:$1|не показана $1 промежуточная версия, сделанная|не показаны $1 промежуточных версий, сделанных|не показаны $1 промежуточные версии, сделанные}} более чем {{PLURAL:$2|$2 участником|$2 участниками}})",
        "difference-missing-revision": "Не {{PLURAL:$2|1=найдена|найдены}} {{PLURAL:$2|$2 версия|$2 версий|$2 версии|1=одна из версий}} для этого сравнения ($1).\n\nТакое обычно случается при переходе по устаревшей ссылке сравнения версий для страницы, которая была удалена.\nПодробности могут быть в [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} журнале удалений].",
        "searchresults": "Результаты поиска",
        "unusedimages": "Неиспользуемые файлы",
        "wantedcategories": "Требуемые категории",
        "wantedpages": "Требуемые страницы",
+       "wantedpages-summary": "Список несуществующих страниц с наибольшим количеством ссылок на них, за исключением страниц, у которых есть только страницы-перенаправления, указывающие на них. Для получения списка несуществующих страниц, у который есть перенаправления, ссылающиеся на них, см. [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Ошибочный заголовок в результатах запроса: $1",
        "wantedfiles": "Требуемые файлы",
        "wantedfiletext-cat": "Следующие файлы пытаются использовать, хотя их не существует. В этот список могут ошибочно попасть файлы, находящиеся во внешних хранилищах. Подобные ложные срабатывания будут отмечены <del>зачёркиванием</del>. Кроме того, страницы, содержащие несуществующие файлы, перечислены в [[:$1]].",
        "move-page": "$1 — переименование",
        "move-page-legend": "Переименование страницы",
        "movepagetext": "Воспользовавшись нижеприведённой формой, вы переименуете страницу, одновременно переместив на новое место её журнал изменений.\nСтарое название станет перенаправлением на новое.\nВы можете автоматически обновить перенаправления, которые вели на старое название.\nЕсли вы этого не сделаете, пожалуйста, проверьте наличие [[Special:DoubleRedirects|двойных]] и [[Special:BrokenRedirects|разорванных перенаправлений]].\nВы отвечаете за то, чтобы ссылки продолжали и далее указывать туда, куда предполагалось.\n\nОбратите внимание, что страница '''не будет''' переименована, если уже существует страница с названием, идентичным выбранному, кроме случаев, когда такая страница является перенаправлением или пуста, и при этом не имеет истории правок.\nЭто означает, что если вы сделали преименование ошибочно, вы можете переименовать страницу обратно в то название, которое у неё только что было, но вы не можете случайно затереть существующую страницу.\n\n'''Предупреждение!'''\nПереименование ''популярных'' страниц может привести к масштабным и неожиданным изменениям.\nПожалуйста, прежде чем продолжать, убедитесь, что понимаете все возможные последствия.",
-       "movepagetext-noredirectfixer": "Воспользовавшись формой ниже, вы переименуете страницу, одновременно переместив на новое место её журнал изменений.\nСтарое название станет перенаправлением на новое название.\nПожалуйста, проверьте наличие [[Special:DoubleRedirects|двойных]] и [[Special:BrokenRedirects|разорванных перенаправлений]].\nВы отвечаете за то, что бы ссылки продолжали и далее указывают туда, куда предполагалось.\n\nОбратите внимание, что страница '''не будет''' переименована, если страница с новым названием уже существует, кроме случаев, если она является перенаправлением или пуста и не имеет истории правок.\nЭто означает, что вы можете переименовать страницу обратно в то название, которое у него только что было, если вы переименовали по ошибке, но вы не можете случайно затереть существующую страницу.\n\n'''ПРЕДУПРЕЖДЕНИЕ!'''\nПереименование может привести к масштабным и неожиданным изменениям для ''популярных'' страниц.\nПожалуйста, прежде чем вы продолжите, убедитесь, что вы понимаете все возможные последствия.",
+       "movepagetext-noredirectfixer": "Воспользовавшись формой ниже, вы переименуете страницу, одновременно переместив на новое место её журнал изменений.\nСтарое название станет перенаправлением на новое название.\nПожалуйста, проверьте наличие [[Special:DoubleRedirects|двойных]] и [[Special:BrokenRedirects|разорванных перенаправлений]].\nВы отвечаете за то, чтобы ссылки продолжали и далее указывать туда, куда предполагалось.\n\nОбратите внимание, что страница <strong>не будет</strong> переименована, если страница с новым названием уже существует, кроме случаев, если она является перенаправлением или пуста и не имеет истории правок.\nЭто означает, что вы можете переименовать страницу обратно в то название, которое у него только что было, если вы переименовали по ошибке, но вы не можете случайно затереть существующую страницу.\n\n<strong>ПРЕДУПРЕЖДЕНИЕ!</strong>\nПереименование может привести к масштабным и неожиданным изменениям для популярных страниц.\nПожалуйста, прежде чем вы продолжите, убедитесь, что вы понимаете все возможные последствия.",
        "movepagetalktext": "Присоединённая страница обсуждения будет также автоматически переименована, '''кроме случаев, когда:'''\n\n*Не пустая страница обсуждения уже существует под таким же именем или\n*Вы не поставили галочку в поле ниже.\n\nВ этих случаях, вы будете вынуждены переместить или объединить страницы вручную, если это нужно.",
        "movearticle": "Переименовать страницу",
        "moveuserpage-warning": "'''Внимание.''' Вы собираетесь переименовать страницу участника. Пожалуйста, обратите внимание, что переименована будет только страница, участник '''не''' будет переименован.",
        "thumbnail_image-missing": "По-видимому, отсутствует файл $1",
        "thumbnail_image-failure-limit": "Было сделано слишком много неудачных попыток ($1 или больше) формирования этого эскиза. Пожалуйста, повторите попытку позже.",
        "import": "Импортирование страниц",
-       "importinterwiki": "Ð\9cежвики Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82",
-       "import-interwiki-text": "УкажиÑ\82е Ð²Ð¸ÐºÐ¸ Ð¸ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82иÑ\80Ñ\83емой Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b.\nÐ\94аÑ\82Ñ\8b Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ Ð¸ Ð¸Ð¼ÐµÐ½Ð° Ð°Ð²Ñ\82оÑ\80ов Ð±Ñ\83дÑ\83Ñ\82 Ñ\81оÑ\85Ñ\80аненÑ\8b.\nÐ\92Ñ\81е Ð¾Ð¿ÐµÑ\80аÑ\86ии Ð¼ÐµÐ¶Ð²Ð¸ÐºÐ¸ Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82а Ñ\80егиÑ\81Ñ\82Ñ\80иÑ\80Ñ\83Ñ\8eÑ\82Ñ\81Ñ\8f Ð² [[Special:Log/import|Ñ\81ооÑ\82веÑ\82Ñ\81Ñ\82вÑ\83Ñ\8eÑ\89ем Ð¶Ñ\83Ñ\80нале]].",
+       "importinterwiki": "Ð\98мпоÑ\80Ñ\82 Ð¸Ð· Ð´Ñ\80Ñ\83гой Ð²Ð¸ÐºÐ¸",
+       "import-interwiki-text": "УкажиÑ\82е Ð²Ð¸ÐºÐ¸ Ð¸ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82иÑ\80Ñ\83емой Ñ\81Ñ\82Ñ\80аниÑ\86Ñ\8b.\nÐ\94аÑ\82Ñ\8b Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ Ð¸ Ð¸Ð¼ÐµÐ½Ð° Ð°Ð²Ñ\82оÑ\80ов Ð±Ñ\83дÑ\83Ñ\82 Ñ\81оÑ\85Ñ\80аненÑ\8b.\nÐ\92Ñ\81е Ð¾Ð¿ÐµÑ\80аÑ\86ии Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82а Ð¸Ð· Ð´Ñ\80Ñ\83гиÑ\85 Ð²Ð¸ÐºÐ¸ Ñ\80егиÑ\81Ñ\82Ñ\80иÑ\80Ñ\83Ñ\8eÑ\82Ñ\81Ñ\8f Ð² [[Special:Log/import|жÑ\83Ñ\80нале Ð¸Ð¼Ð¿Ð¾Ñ\80Ñ\82а]].",
        "import-interwiki-sourcewiki": "Исходный вики-проект:",
        "import-interwiki-sourcepage": "Исходная страница:",
        "import-interwiki-history": "Копировать всю историю изменений этой страницы",
        "importcantopen": "Невозможно открыть импортируемый файл",
        "importbadinterwiki": "Неправильная интервики-ссылка",
        "importsuccess": "Импортирование выполнено!",
-       "importnosources": "Не был выбран источник межвики-импорта, прямая загрузка истории изменений отключена.",
+       "importnosources": "Не была выбрана вики, из которой должен быть произведён импорт, и прямая загрузка истории изменений отключена.",
        "importnofile": "Файл для импорта не был загружен.",
        "importuploaderrorsize": "Не удалось загрузить или импортировать файл. Размер файла превышает установленный предел.",
        "importuploaderrorpartial": "Не удалось загрузить или импортировать файл. Он был загружен лишь частично.",
        "import-rootpage-nosubpage": "В пространстве имён указанной корневой страницы «$1» подстраницы запрещены.",
        "importlogpage": "Журнал импорта",
        "importlogpagetext": "Импортирование администраторами страниц с историей изменений из других вики.",
-       "import-logentry-upload": "«[[$1]]» — импорт из файла",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|версия импортирована|версии импортировано|версий импортировано}}",
-       "import-logentry-interwiki": "«$1» — межвики импорт",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|версия импортирована|версии импортировано|версий  импортировано}} из $2",
        "javascripttest": "Проверка JavaScript",
        "javascripttest-pagetext-noframework": "Эта страница зарезервирована для запуска JavaScript-тестов.",
        "version-parser-function-hooks": "Перехватчики функций синтаксического анализатора",
        "version-hook-name": "Имя перехватчика",
        "version-hook-subscribedby": "Подписан на",
-       "version-version": "(Версия $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[без названия]",
        "version-license": "Лицензия MediaWiki",
        "version-ext-license": "Лицензия",
        "tags-activate": "активировать",
        "tags-deactivate": "отключить",
        "tags-hitcount": "$1 {{PLURAL:$1|изменение|изменения|изменений}}",
+       "tags-manage-no-permission": "У вас нет прав на управление изменениями меток.",
        "tags-create-heading": "Создать новую метку",
+       "tags-create-explanation": "Вновь созданные метки по умолчанию будут созданы доступными для использования участниками и ботами.",
        "tags-create-tag-name": "Название метки:",
        "tags-create-reason": "Причина:",
        "tags-create-submit": "Создать",
        "tags-create-no-name": "Вы должны указать имя метки.",
+       "tags-create-invalid-chars": "Имена меток не должны содержать запятые (<code>,</code>) или символы косой черты (<code>/</code>).",
+       "tags-create-invalid-title-chars": "Имена меток не должны содержать символы, которые не могут быть использованы в заголовках страниц.",
        "tags-create-already-exists": "Метка «$1» уже существует.",
+       "tags-create-warnings-above": "При попытке создать метку «$1» обнаружен{{PLURAL:$2|о следующее предупреждение|ы следующие предупреждения}}:",
        "tags-create-warnings-below": "Вы хотите продолжить создание метки?",
        "tags-delete-title": "Удалить метку",
        "tags-delete-explanation-initial": "Вы собираетесь удалить метку «$1» из базы данных.",
        "tags-delete-reason": "Причина:",
+       "tags-delete-submit": "Безвозвратно удалить эту метку",
+       "tags-delete-not-allowed": "Метки, определённые расширением, не могут быть удалены, если только расширения явно не даёт возможности этого делать.",
+       "tags-delete-not-found": "Метка «$1» не существует.",
        "tags-activate-title": "Активировать метку",
        "tags-activate-question": "Вы собираетесь активировать метку «$1».",
        "tags-activate-reason": "Причина:",
        "tags-activate-not-found": "Метка «$1» не существует.",
        "tags-activate-submit": "Активировать",
        "tags-deactivate-title": "Отключить метку",
+       "tags-deactivate-question": "Вы собираетесь отключить метку «$1».",
        "tags-deactivate-reason": "Причина:",
+       "tags-deactivate-not-allowed": "Невозможно отключить метку «$1».",
        "tags-deactivate-submit": "Отключить",
        "comparepages": "Сравнение страниц",
        "compare-page1": "Первая страница",
        "revdelete-uname-unhid": "имя участника раскрыто",
        "revdelete-restricted": "ограничения применяются к администраторам",
        "revdelete-unrestricted": "ограничения сняты для администраторов",
+       "logentry-block-block": "$1 заблокировал{{GENDER:$2||а}} {{GENDER:$4|$3}} на период $5 $6",
+       "logentry-block-unblock": "$1 разблокировал{{GENDER:$2||а}} {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|изменил|изменила}} срок блокировки {{GENDER:$4|$3}} на период $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|заблокировал}} {{GENDER:$4|$3}} сроком на $5 $6",
+       "logentry-import-interwiki": "$1 импортировал{{GENDER:$2||а}} $3 из другой вики",
        "logentry-merge-merge": "$1 объедининил{{GENDER:$2||а}} $3 в $4 (версии до $5)",
        "logentry-move-move": "$1 {{GENDER:$2|переименовал|переименовала}} страницу $3 в $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|переименовал|переименовала}} страницу $3 в $4 без оставления перенаправления",
        "logentry-upload-overwrite": "$1 загрузил{{GENDER:$2||а}} новую версию $3",
        "logentry-upload-revert": "$1 загрузил{{GENDER:$2||а}} $3",
        "log-name-managetags": "Журнал управления метками",
+       "log-description-managetags": "На этой странице перечислены задачи, связанные с управлением [[Special:Tags|метками]]. Журнал содержит только действия, выполненные администратором вручную. Метки могут быть созданы или удалены с помощью программного обеспечения вики без добавления записей в этот журнал.",
        "logentry-managetags-create": "$1 создал{{GENDER:$2||а}} метку «$4»",
+       "logentry-managetags-activate": "$1 активировал{{GENDER:$2||а}} метку «$4» для использования участниками и ботами",
+       "logentry-managetags-deactivate": "$1 отключил{{GENDER:$2||а}} метку «$4» для использования участниками и ботами",
        "rightsnone": "(нет)",
        "revdelete-summary": "описание изменений",
+       "feedback-adding": "Добавление отзыва на страницу…",
+       "feedback-back": "Назад",
+       "feedback-bugcheck": "Прекрасно! Только проверьте, что в списке [$1 известных ошибок] нет подобной записи.",
+       "feedback-bugnew": "Я проверил. Сообщить о новой ошибке",
        "feedback-bugornote": "Если вы готовы подробно описать техническую проблему, пожалуйста, [$1 сообщите об ошибке].\nВ противном случае вы можете использовать данную простую форму. Ваш комментарий будет добавлен на страницу «[$3 $2]» вместе с вашим именем участника и используемым браузером.",
-       "feedback-subject": "Тема:",
-       "feedback-message": "Сообщение:",
        "feedback-cancel": "Отмена",
-       "feedback-submit": "Отправить отзыв",
-       "feedback-adding": "Добавление отзыва на страницу…",
+       "feedback-close": "Готово",
+       "feedback-dialog-title": "Отправить отзыв",
+       "feedback-error-title": "Ошибка",
        "feedback-error1": "Ошибка. Неизвестный результат из API",
        "feedback-error2": "Ошибка. Сбой редактирования",
        "feedback-error3": "Ошибка. Нет ответа от API",
+       "feedback-message": "Сообщение:",
+       "feedback-subject": "Тема:",
+       "feedback-submit": "Отправить",
        "feedback-thanks": "Спасибо! Ваш отзыв размещён на странице «[$2 $1]».",
-       "feedback-close": "Готово",
-       "feedback-bugcheck": "Прекрасно! Только проверьте, что в списке [$1 известных ошибок] нет подобной записи.",
-       "feedback-bugnew": "Я проверил. Сообщить о новой ошибке",
+       "feedback-thanks-title": "Спасибо!",
+       "feedback-useragent": "Браузер:",
        "searchsuggest-search": "Поиск",
        "searchsuggest-containing": "содержащие…",
        "api-error-badaccess-groups": "Вам не разрешено загружать файлы в эту вики.",
        "json-error-utf8": "Некорректные символы UTF-8, возможно, неверная кодировка",
        "json-error-recursion": "Должны быть закодированы одна или несколько рекурсивных ссылок в значении",
        "json-error-inf-or-nan": "Должны быть закодированы одно или несколько NAN- или INF-значений",
-       "json-error-unsupported-type": "Было указано значение типа, который не может быть закодирован"
+       "json-error-unsupported-type": "Было указано значение типа, который не может быть закодирован",
+       "headline-anchor-title": "Ссылка на этот раздел"
 }
index 52949b0..b8b776d 100644 (file)
@@ -8,7 +8,9 @@
                        "Nemo bis",
                        "Reedy",
                        "Tkalyn",
-                       "아라"
+                       "아라",
+                       "Dicto23456",
+                       "Macofe"
                ]
        },
        "tog-underline": "Підкреслёвати одказы:",
        "otherlanguages": "Іншыма языками",
        "redirectedfrom": "(Напрямленый з $1)",
        "redirectpagesub": "Сторінка-напрямлїня",
+       "redirectto": "Напрямлїня на:",
        "lastmodifiedat": "Послїдня зміна той сторінкы: $2, $1.",
        "viewcount": "Сторінка была зображена  {{PLURAL:$1|раз|$1разы|$1раз}}.",
        "protectedpage": "Замкнута сторінка",
        "import-rootpage-nosubpage": "В просторї назв вказаной корїнёвой сторінкы «$1» не дозволены підсторінкы",
        "importlogpage": "Книга імпортів",
        "importlogpagetext": "На тій сторінцї ся зображують адміністраторскы імпорты сторінок враховано едітовань з іншых вікі.",
-       "import-logentry-upload": "імпортовав [[$1]] наладованём файлу",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|ревізія|ревізії|ревізій}}",
-       "import-logentry-interwiki": "міджівікі імпорт $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|ревізія|ревізії|ревізій}} з $2",
        "javascripttest": "Тестованя JavaScript",
        "javascripttest-pagetext-noframework": "Тота сторінка є резервована про тестованя JavaScript.",
        "version-parser-function-hooks": "Функціа парсера",
        "version-hook-name": "Назва припойного пункту",
        "version-hook-subscribedby": "Підписаный на",
-       "version-version": "(Верзія $1)",
+       "version-version": "($1)",
        "version-license": "Ліценція",
        "version-ext-license": "Ліценція",
        "version-ext-colheader-name": "Росшырїня",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|быв автоматічно переведеный|была автоматічно переведана}} з $4 на $5",
        "rightsnone": "(жадне)",
        "revdelete-summary": "коментарь едітованя",
+       "feedback-adding": "Коментарь ся придавать на сторінку…",
+       "feedback-bugcheck": "Герешнї! Лем перевірьте, ці то не єдна з [$1 уж знамых хыб].",
+       "feedback-bugnew": "Перевірив(а) єм то. Хочу повідомити нову хыбу.",
        "feedback-bugornote": "Кідь сьте прирыхтованый подробно описати технічный проблем, можете [$1 наголосити хыбу].\nІнакше можете схносновати простый формулать ниже. Ваш коментарь буде приданый на сторінку „[$3 $2]“ разом з вашым іменом хоснователя тай інформаціов о тім, якый бровсер хоснуєте.",
-       "feedback-subject": "Предмет:",
-       "feedback-message": "Повідомлїня:",
        "feedback-cancel": "Сторно",
-       "feedback-submit": "Одослати одозву",
-       "feedback-adding": "Коментарь ся придавать на сторінку…",
+       "feedback-close": "Готово",
        "feedback-error1": "Хыба: Нерозознаый резултат з API",
        "feedback-error2": "Хыба: Едітованя ся не вдало",
        "feedback-error3": "Хыба: API не вернуло жадну одповідь",
+       "feedback-message": "Повідомлїня:",
+       "feedback-subject": "Предмет:",
+       "feedback-submit": "Одослати",
        "feedback-thanks": "Дякуєме! Ваш коментарь быв приданый на сторінку „[$2 $1]“.",
-       "feedback-close": "Готово",
-       "feedback-bugcheck": "Герешнї! Лем перевірьте, ці то не єдна з [$1 уж знамых хыб].",
-       "feedback-bugnew": "Перевірив(а) єм то. Хочу повідомити нову хыбу.",
        "searchsuggest-search": "Глядати",
        "searchsuggest-containing": "обсягуючій...",
        "api-error-badaccess-groups": "Не мате дозволено наладововати файлы на тоту вікі.",
index e830e18..59c5687 100644 (file)
@@ -20,7 +20,8 @@
                        "Shubha",
                        "Vibhijain",
                        "రాకేశ్వర",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "परिसन्धेः अधो रेखाङ्कनम्:",
        "tog-hidepatrolled": "सद्योजातानां परिवर्तनानां परिशीलितानि सम्पादनानि गोप्यन्ताम्",
        "tog-newpageshidepatrolled": "नूतनपृष्ठानाम् आवलेः परिशीलितानि पृष्ठानि गोप्यन्त्ताम्",
        "tog-extendwatchlist": "न केवलं सद्योजातानि अपि तु अवेक्षणाऽऽवलेः सर्वाणि परिवर्तनानि दृश्यन्ताम्",
-       "tog-usenewrc": "सद्यपरिवर्तनावल्यां, अवेक्षणाऽऽवल्यां च पृष्ठानि विभागानुसारं प्रदर्श्यन्ताम् (जावा-लिपिः अपेक्ष्यते)",
-       "tog-numberheadings": "शà¥\80रà¥\8dषà¤\95ानà¥\8d à¤¸à¥\8dवयमà¥\87व à¤¸à¤\95à¥\8dरमाà¤\99à¥\8dà¤\95à¥\80à¤\95रà¥\8bतà¥\81।",
+       "tog-usenewrc": "सदà¥\8dयà¤\83 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनावलà¥\8dयाà¤\82, à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\8dयाà¤\82 à¤\9a à¤ªà¥\83षà¥\8dठानि à¤µà¤¿à¤­à¤¾à¤\97ानà¥\81सारà¤\82 à¤ªà¥\8dरदरà¥\8dशà¥\8dयनà¥\8dतामà¥\8d (à¤\9cावा-लिपिà¤\83 à¤\85पà¥\87à¤\95à¥\8dषà¥\8dयतà¥\87)",
+       "tog-numberheadings": "शà¥\80रà¥\8dषà¤\95ाणि à¤¸à¥\8dवयमà¥\87व à¤¯à¤¥à¤¾à¤\95à¥\8dरमà¤\82 à¤\95रà¥\8bतà¥\81",
        "tog-showtoolbar": "उपकरण-पट्टिका दर्श्यताम्",
-       "tog-editondblclick": "वारदà¥\8dवयà¤\82 à¤\95à¥\8dलिà¤\95-à¤\95रणà¥\87न पृष्ठानि सम्पाद्यन्ताम् (जावा-लिपिः अपेक्ष्यते)",
+       "tog-editondblclick": "वारदà¥\8dवयà¤\82 à¤\9fà¤\95à¥\8dà¤\9fà¤\95ायनà¥\87न (Click) पृष्ठानि सम्पाद्यन्ताम् (जावा-लिपिः अपेक्ष्यते)",
        "tog-editsectiononrightclick": "विभागशीर्षकाणामुपरि दक्षिणक्लिक्-करणेन विभागः सम्पाद्यताम् ।",
        "tog-watchcreations": "मया रचितानि पृष्ठानि मम अवेक्षणाऽऽवल्यां योज्यन्ताम् ।",
        "tog-watchdefault": "मया सम्पादितानि पृष्ठानि मम अवेक्षणाऽऽवल्यां योज्यन्ताम्।",
        "tog-enotifusertalkpages": "मम योजकसम्भाषणपृष्ठस्य परिवर्तने सति ई-पत्रद्वारा सूचयताम्",
        "tog-enotifminoredits": "पृष्ठस्य सञ्चिकायाः वा लघुपरिवर्तनेषु सत्सु अपि ई-पत्रद्वारा सूच्यताम्",
        "tog-enotifrevealaddr": "सूचना-ईपत्रेषु मम ई-पत्रसङ्केतः प्रदर्श्यताम्",
-       "tog-shownumberswatching": "निरीक्षमाणानां योजकानां सङ्ख्या दर्श्यताम्",
+       "tog-shownumberswatching": "निरà¥\80à¤\95à¥\8dषà¥\8dयमाणानाà¤\82 à¤¯à¥\8bà¤\9cà¤\95ानाà¤\82 à¤¸à¤\99à¥\8dà¤\96à¥\8dया à¤¦à¤°à¥\8dशà¥\8dयतामà¥\8d",
        "tog-oldsig": "वर्तमानहस्ताक्षरम्:",
        "tog-fancysig": "हस्ताक्षरं विकि-पाठवत् परिगण्यताम् (स्वचालित-परिसन्धिं विहाय)",
-       "tog-uselivepreview": "सम्पादनेन सहैव प्राग्दृश्यं दर्शयतु (प्रयोगात्मकम्)।",
-       "tog-forceeditsummary": "समà¥\8dपादनसाराà¤\82शà¤\83 à¤¨ à¤¦à¤¦à¤¾à¤®à¤¿ à¤\9aà¥\87तà¥\8d सूच्यताम्",
+       "tog-uselivepreview": "सम्पादनेन सहैव प्राग्दृश्यं दर्शयतु",
+       "tog-forceeditsummary": "समà¥\8dपादनसाराà¤\82शà¤\82 à¤¨ à¤¦à¤¦à¤¾à¤®à¤¿ à¤\9aà¥\87तà¥\8d, सूच्यताम्",
        "tog-watchlisthideown": "अवेक्षणाऽऽवल्याः मम सम्पादनानि गोप्यन्ताम ।",
        "tog-watchlisthidebots": "अवेक्षणाऽऽवल्याः बोट-द्वारा कृतानि सम्पादनानि गोप्यन्ताम्",
        "tog-watchlisthideminor": "मम अवेक्षणाऽऽवल्याः लघुसम्पादनानि गोप्यन्ताम्",
@@ -58,9 +59,9 @@
        "tog-watchlisthidepatrolled": "मम अवेक्षणाऽऽवल्याः पूर्वदृष्टानि सम्पादनानि गोप्यन्ताम्",
        "tog-ccmeonemails": "अन्येभ्यः प्रेषितानाम् ई-पत्राणां प्रतिकृतिः मत्कृते प्रेष्यताम्",
        "tog-diffonly": "संस्करणेषु भेदं दर्शयितुं लेखः गोप्यताम्",
-       "tog-showhiddencats": "निà¤\97à¥\82ढाः वर्गाः दर्श्यन्ताम्",
+       "tog-showhiddencats": "निà¤\97à¥\82हिताः वर्गाः दर्श्यन्ताम्",
        "tog-norollbackdiff": "\"प्रमुञ्चतु\" इत्यस्य उपयोगानन्तरस्य भेदः गोप्यताम्",
-       "tog-useeditwarning": "समà¥\8dपादनमà¥\8d à¤\85रà¤\95à¥\8dषà¥\8dय पृष्ठं त्यजामि चेत् सूच्यताम्",
+       "tog-useeditwarning": "समà¥\8dपादनमà¥\8d à¤\85रà¤\95à¥\8dषितà¥\8dवा पृष्ठं त्यजामि चेत् सूच्यताम्",
        "tog-prefershttps": "प्रेवेशानन्तरं सर्वदा संरक्षितसम्पर्कः एव उपयुज्याम्",
        "underline-always": "सर्वदा",
        "underline-never": "कदापि न",
        "subcategories": "उपवर्गाः",
        "category-media-header": "\"$1\" वर्गेऽस्मिन् विद्यमानं माध्यमम्",
        "category-empty": "<em>वर्गेऽस्मिन् न किमपि पृष्ठं माध्यमं वा विद्यते ।</em>",
-       "hidden-categories": "{{PLURAL:$1|निà¤\97à¥\82ढà¤\83 à¤µà¤°à¥\8dà¤\97à¤\83|निà¤\97à¥\82ढाः वर्गाः}}",
+       "hidden-categories": "{{PLURAL:$1|निहितà¤\83 à¤µà¤°à¥\8dà¤\97à¤\83|निहिताः वर्गाः}}",
        "hidden-category-category": "निगूढाः वर्गाः",
        "category-subcat-count": "$2 इत्येषु {{PLURAL:$2|वर्गेऽस्मिन् अधो लिखिताः उपवर्गाः विद्यन्ते |वर्गेऽस्मिन् {{PLURAL:$1|अधो लिखितः उपवर्गः अस्ति|अधो लिखिताः $1 उपवर्गाः सन्ति}}}}",
        "category-subcat-count-limited": "अस्मिन् वर्गे {{PLURAL:$1|अधो लिखितः $1 वर्गः अस्ति|अधो लिखिताः $1 वर्गाः सन्ति}}",
        "otherlanguages": "अन्यासु भाषासु",
        "redirectedfrom": "($1 इत्यस्मात् पुनर्निर्दिष्टम्)",
        "redirectpagesub": "पृष्ठम् अनुप्रेष्यताम्",
+       "redirectto": "इत्यत्र पुनर्निदिष्यताम्",
        "lastmodifiedat": "$1 (तमे) दिनाङ्के अन्तिमसम्पादनं $2 समये अभवत्",
        "viewcount": "एतत्पृष्ठं {{PLURAL:$1|एक वारं|$1 वारं}} दृष्टम् अस्ति",
        "protectedpage": "संरक्षितपृष्ठम्",
        "jumpto": "अत्र गम्यताम् :",
        "jumptonavigation": "सञ्चरणं",
        "jumptosearch": "अन्वेषणम्",
-       "view-pool-error": "à¤\95à¥\8dषमà¥\8dयतामà¥\8d ! à¤¸à¤¦à¥\8dयà¤\83 à¤µà¤¿à¤¤à¤°à¤\95सà¥\8dय (server) à¤\89परि à¤¬à¤¹à¥\81 à¤\95ारà¥\8dयभारà¤\83 à¤\85सà¥\8dति à¥¤ \nबहवà¤\83 à¤\9cनाà¤\83 à¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤ªà¤¶à¥\8dयनà¥\8dतà¤\83 à¤¸à¤¨à¥\8dति à¥¤ \nà¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤ªà¥\81नरà¥\8dदà¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤ªà¤¤à¤¿à¤\95à¥\8dषा à¤\95à¥\8dरियताम् । $1",
-       "generic-pool-error": "à¤\95à¥\8dषमà¥\8dयतामà¥\8d ! à¤¸à¤¦à¥\8dयà¤\83 à¤µà¤¿à¤¤à¤°à¤\95सà¥\8dय (server) à¤\89परि à¤¬à¤¹à¥\81 à¤\95ारà¥\8dयभारà¤\83 à¤\85सà¥\8dति à¥¤ \nबहवà¤\83 à¤\9cनाà¤\83 à¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤ªà¤¶à¥\8dयनà¥\8dतà¤\83 à¤¸à¤¨à¥\8dति à¥¤ \nà¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤ªà¥\81नरà¥\8dदà¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤ªà¤¤à¤¿à¤\95à¥\8dषा à¤\95à¥\8dरियताम् ।",
-       "pool-timeout": "सà¤\82रà¤\95à¥\8dषणारà¥\8dथà¤\82 à¤\95ालावधिà¤\83 à¤¸à¤®à¤¾à¤ªà¥\8dता",
-       "pool-queuefull": "Pool इति पङ्कतिः पूर्णा अस्ति ।",
+       "view-pool-error": "à¤\95à¥\8dषमà¥\8dयतामà¥\8d ! à¤¸à¤¦à¥\8dयà¤\83 à¤µà¤¿à¤¤à¤°à¤\95सà¥\8dय (server) à¤\89परि à¤¬à¤¹à¥\81 à¤\95ारà¥\8dयभारà¤\83 à¤\85सà¥\8dति à¥¤ \nबहवà¤\83 à¤\9cनाà¤\83 à¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤ªà¤¶à¥\8dयनà¥\8dतà¤\83 à¤¸à¤¨à¥\8dति à¥¤ \nà¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤ªà¥\81नरà¥\8dदà¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤ªà¥\8dरतà¥\80à¤\95à¥\8dषà¥\8dयताम् । $1",
+       "generic-pool-error": "à¤\95à¥\8dषमà¥\8dयतामà¥\8d ! à¤¸à¤¦à¥\8dयà¤\83 à¤µà¤¿à¤¤à¤°à¤\95सà¥\8dय (server) à¤\89परि à¤¬à¤¹à¥\81 à¤\95ारà¥\8dयभारà¤\83 à¤\85सà¥\8dति à¥¤ \nबहवà¤\83 à¤\9cनाà¤\83 à¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤ªà¤¶à¥\8dयनà¥\8dतà¤\83 à¤¸à¤¨à¥\8dति à¥¤ \nà¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤ªà¥\81नरà¥\8dदà¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤ªà¥\8dरतà¥\80à¤\95à¥\8dषà¥\8dयताम् ।",
+       "pool-timeout": "सà¤\82रà¤\95à¥\8dषणारà¥\8dथà¤\82 à¤\95ालावधिà¤\83 à¤¸à¤®à¤¾à¤ªà¥\8dतà¤\83",
+       "pool-queuefull": "Pool à¤\87ति à¤ªà¤\99à¥\8dà¤\95à¥\8dतिà¤\83 à¤ªà¥\82रà¥\8dणा à¤\85सà¥\8dति à¥¤",
        "pool-errorunknown": "अज्ञातदोषः",
        "pool-servererror": "Pool counter सेवा नोपलभ्यते ।",
+       "poolcounter-usage-error": "उपयोगत्रुटिः : $1",
        "aboutsite": "{{SITENAME}} विषयकं",
        "aboutpage": "Project:विषयकम्",
        "copyright": "भिन्नोल्लखः न भवति तावत् $1 अत्र उल्लेखो भवति ।",
        "disclaimers": "अस्वीकारः",
        "disclaimerpage": "Project:सामान्याऽस्वीकरणम्",
        "edithelp": "सम्पादनार्थं साहाय्यम्",
+       "helppage-top-gethelp": "साहाय्यम्",
        "mainpage": "मुख्यपृष्ठम्",
        "mainpage-description": "मुख्यपृष्ठम्",
        "policy-url": "Project:नीतिः",
        "privacy": "गोपनीयतानीतिः",
        "privacypage": "Project:गोपनीयतानीतिः",
        "badaccess": "अनुमतिदोषः",
-       "badaccess-group0": "यस्याः क्रियायाः कृते भवान्/भवती उद्युक्ता, तस्यै क्रियायै अनुमति नास्ति ।",
+       "badaccess-group0": "यस्याः क्रियायाः कृते भवान्/भवती उद्युक्ता, तस्यै क्रियायै अनुमति नास्ति ।",
        "badaccess-groups": "यस्याः क्रियायाः कृते भवान्/भवती उद्युक्ता, तस्यै क्रियायै $1 {{PLURAL:$2|अस्मिन् समूहे|एतेषु समूहेषु}} अनुमतिः नास्ति ।",
        "versionrequired": "मीडीयाविक इत्यस्य $1 संस्करणम् आवश्यकम् ।",
        "versionrequiredtext": "अस्य पृष्ठस्य उपयोगार्थं मीडीयाविकि इत्यस्य $1 संस्करणम् आवश्यकम् । पश्यतु [[Special:Version|version page]] ।",
        "hidetoc": "गोप्यताम्",
        "collapsible-collapse": "सङ्कुच्यताम्",
        "collapsible-expand": "विस्तीर्यताम्",
+       "confirmable-confirm": "{{GENDER:$1|भवान्/भवती}} निःसंशयम् अस्ति खलु ?",
+       "confirmable-yes": "आम्",
+       "confirmable-no": "न",
        "thisisdeleted": "$1 दृश्यतां पूर्वतनं क्रियतां वा ?",
        "viewdeleted": "$1 दृश्यताम् ?",
        "restorelink": "{{PLURAL:$1|एकम् अपाकृतं सम्पादनम्|$1 अपाकृतानि सम्पादनानि}}",
        "laggedslavemode": "<strong>पूर्वसूचना :</strong>\nसद्यः परिवर्तनानि अत्र न स्युः ।",
        "readonly": "दत्तांशनिधिः (database) कीलितः",
        "enterlockreason": "कीलनस्य कारणं ददातु, कीलनं कियान् कालः भविष्यति इति च लिखतु ।",
-       "readonlytext": "नवà¥\80नदतà¥\8dताà¤\82शनिवà¥\87शारà¥\8dथà¤\82 (database entry) à¤¸à¤¦à¥\8dयà¤\83 à¤¦à¤¤à¥\8dताà¤\82शà¤\83 à¤¸à¥\8dथिà¤\97ितà¤\83 à¥¤ à¤¨à¤¿à¤¯à¤®à¤¿à¤¤à¤µà¥\8dयवसà¥\8dथिà¤\95रणाननà¥\8dतरà¤\82 à¤ªà¥\81नà¤\83 à¤¨à¤¿à¤µà¥\87शाय à¤\85वà¤\95ाशà¤\83 à¤­à¤µà¤¤à¤¿ à¥¤ $1",
+       "readonlytext": "नवीनदत्तांशनिवेशार्थं (database entry) सद्यः दत्तांशः स्थगितः । नियमितव्यवस्थिकरणानन्तरं पुनः निवेशाय अवकाशः भवति । $1",
        "missing-article": "दत्तनिधौ (in database) $2 अन्तः कुत्रापि \"$1\" न प्राप्तम् ।\n\nप्रायः अपाकृतस्य पृष्ठस्य इतिहासदर्शनस्य चेष्टाकाले एवं भवति ।\n\nतादृशी स्थितिः यदि नास्ति, तर्हि तन्त्रांशे विद्यमाना त्रुटिः भवेत् । कृपया कमपि [[Special:ListUsers/sysop|प्रबन्धकम्]] अस्य पृष्ठस्य सार्वसङ्केतं (U.R.L.) सूच्यताम् ।",
        "missingarticle-rev": "(संस्करणं# :$1)",
        "missingarticle-diff": "(भेदः: $1, $2)",
        "readonly_lag": "सहायकतन्त्रांशः (slave database) यावत् मुख्यतन्त्रांशात् किमपि स्वीकुर्यात्, तावत् मुख्यतन्त्रांशः तन्त्रांशमाध्यमेन स्वयमेव कीलितः अभवत्",
        "internalerror": "आन्तरिकः दोषः",
        "internalerror_info": "आन्तरिकः दोषः: $1",
+       "internalerror-fatal-exception": "\"$1\" प्रकारस्य घातकदोषः",
        "filecopyerror": "Could not copy file \"$1\" to \"$2\".",
        "filerenameerror": "$1 सञ्चिकायाः $2 इति पुनर्नामकरणं निष्फलम् ।",
        "filedeleteerror": "$1 इति सञ्चिका अपाकर्तुं न शक्यते ।",
        "directorycreateerror": "'''$1''' इति विभागः रचितुं न शक्यते ।",
+       "directoryreadonlyerror": "\"$1\" एषः विभागः पठ्यमात्रः अस्ति ।",
+       "directorynotreadableerror": "\"$1\" एषः विभागः अपठ्यः अस्ति ।",
        "filenotfound": "'\"$1\"' सञ्चिका न लब्धा ।",
        "unexpected": "अनपेक्षितं मूल्यम् : \"$1\"=\"$2\"",
        "formerror": "दोषः : प्रपत्रं (form) न प्रेषितम्",
        "no-null-revision": "\"$1\" एतस्मै पृष्ठाय नवीनं रिक्तं संस्करणं रचितुं न शक्यते",
        "badtitle": "अशुद्धं शिरोनाम",
        "badtitletext": "ईप्सितं शीर्षकम् अमान्यं, रिक्तम्, अयोग्यम्, अन्यभाषीयं, भाषान्तरात् विकि-जालस्थलात् च अस्ति । पृष्ठशीर्षकाय अयोग्यानि अक्षराणि चिह्नानि वा तस्मिन् भवेयुः ।",
-       "perfcached": "à¤\85धà¥\8b à¤\89लà¥\8dलिà¤\96िताà¤\83 à¤¸à¥\82à¤\9aनाà¤\83 à¤ªà¥\81रातनायाà¤\83 à¤\89पसà¥\8dमà¥\83तà¥\8dयाà¤\83 (cached) à¤\97à¥\83हà¥\8dणिताः, अतः तत्र दोषाः भवेयुः ।  अधिकाधिक{{PLURAL:$1|परिणाम|$1परिणामाः}} अत्र सन्ति ।",
-       "perfcachedts": "à¤\85धà¥\8b à¤\89लà¥\8dलिà¤\96िताà¤\83 à¤¸à¥\82à¤\9aनाà¤\83 à¤ªà¥\81रातनायाः उपस्मृत्याः (cached) गृह्णिताः । तस्यां उपस्मृत्यां $1 समये परिर्वतनम् अभूत् ।\nअधिकाधिक{{PLURAL:$1|परिणाम|$1परिणामाः}} अत्र सन्ति ।",
-       "querypage-no-updates": "à¤\85सà¥\8dमिनà¥\8d à¤ªà¥\83षà¥\8dठà¥\87 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\82 à¤\85धà¥\81ना à¤ªà¥\8dरतिबनà¥\8dधितमसà¥\8dति à¥¤ à¤\85तà¥\8dरसà¥\8dथां पुरातनसूचनां नवीनसूचनया सह अधुना परिर्वतयितुं न शक्यते ।",
+       "perfcached": "à¤\85धà¥\8b à¤\89लà¥\8dलिà¤\96िताà¤\83 à¤¸à¥\82à¤\9aनाà¤\83 à¤ªà¥\81रातनायाà¤\83 à¤\89पसà¥\8dमà¥\83तà¥\8dयाà¤\83 (cached) à¤\97à¥\83हà¥\80ताः, अतः तत्र दोषाः भवेयुः ।  अधिकाधिक{{PLURAL:$1|परिणाम|$1परिणामाः}} अत्र सन्ति ।",
+       "perfcachedts": "à¤\85धà¥\8b à¤\89लà¥\8dलिà¤\96िताà¤\83 à¤¸à¥\82à¤\9aनाà¤\83 à¤ªà¥\81रातनà¥\8dयाः उपस्मृत्याः (cached) गृह्णिताः । तस्यां उपस्मृत्यां $1 समये परिर्वतनम् अभूत् ।\nअधिकाधिक{{PLURAL:$1|परिणाम|$1परिणामाः}} अत्र सन्ति ।",
+       "querypage-no-updates": "à¤\85सà¥\8dमिनà¥\8d à¤ªà¥\83षà¥\8dठà¥\87 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\82 à¤\85धà¥\81ना à¤ªà¥\8dरतिबनà¥\8dधितमसà¥\8dति à¥¤ à¤\85तà¥\8dरतà¥\8dयां पुरातनसूचनां नवीनसूचनया सह अधुना परिर्वतयितुं न शक्यते ।",
        "viewsource": "स्रोतः दृश्यताम्",
        "viewsource-title": "$1 इत्येतस्य स्रोतः दृश्यताम्",
        "actionthrottled": "अकाले कार्यमेतत् अवरुद्धम् अभवत्",
        "actionthrottledtext": "फल्गु(spam)-नियन्त्रणार्थम् एषा क्रिया मर्यादितवारं कर्तुं शक्यते । भवतः/भवत्याः सा मर्यादा समाप्ता । कृपया किञ्चित् कालानन्तरं प्रयत्नं करोतु ।",
-       "protectedpagetext": "समà¥\8dपादनà¤\82, à¤\85नà¥\8dयà¤\95à¥\8dरियाà¤\82 à¤\9a à¤\85वरà¥\8bधयितुम् इदं पृष्ठं संरक्षितमस्ति ।",
+       "protectedpagetext": "समà¥\8dपादनà¤\82, à¤\85नà¥\8dयà¤\95à¥\8dरियाà¤\82 à¤\9a à¤\85वरà¥\8bदà¥\8dधुम् इदं पृष्ठं संरक्षितमस्ति ।",
        "viewsourcetext": "भवान्/भवती एतस्य पृष्ठस्य स्रोतः द्रष्टुं, मुद्रणं (print) कर्तुं च अर्हति ।",
        "viewyourtext": "भवान्/भवती एतस्मिन् पृष्ठे '''स्वस्य सम्पादनानि'' द्रष्टुं  अर्हति, तेषां प्रतिलिपिम् (copy) अपि कर्तुं अर्हति ।",
        "protectedinterface": "एतत् पृष्ठं तन्त्रांशाय मध्यस्थपाठं (interface text) प्रयच्छति । इदञ्च पृष्ठम् अयोग्यसम्पादनात् संरक्षितमस्ति ।  \nविकि इत्यस्य सर्वेषु बन्धुप्रकल्पेषु अनुवादमिदं योजयितुं कृपया [//translatewiki.net/ translatewiki.net] इत्यस्य मिडीयाविकि-स्थानीयकरणस्य उपयोगं करोतु ।",
-       "editinginterface": "<strong>पूर्वसूचना :</strong> तन्त्रांशाय मध्यस्थपाठं (interface text) प्रयच्छति तादृशस्य पृष्ठस्य भवता/भवत्या सम्पादनं क्रियमाणमस्ति । अस्य विकि-प्रकल्पस्य अन्ययोजकेभ्यः अपि अत्र कृतानि परिवर्तनानि भविष्यन्ति । \n\nविकि इत्यस्य सर्वेषु बन्धुप्रकल्पेषु अनुवादमिदं योजयितुं कृपया [//translatewiki.net/ translatewiki.net] इत्यस्य मिडीयाविकि-स्थानीयकरणस्य उपयोगं करोतु ।",
+       "editinginterface": "<strong>पूर्वसूचना :</strong> तन्त्रांशाय मध्यस्थपाठं (interface text) प्रयच्छति तादृशस्य पृष्ठस्य भवता/भवत्या सम्पादनं क्रियमाणमस्ति । अस्य विकि-प्रकल्पस्य अन्ययोजकेभ्यः अपि अत्र कृतानि परिवर्तनानि भविष्यन्ति ।",
+       "translateinterface": "विकि इत्यस्य सर्वेषु बन्धुप्रकल्पेषु अनुवादमिदं योजयितुं कृपया [//translatewiki.net/ translatewiki.net] इत्यस्य मिडीयाविकि-स्थानीयकरणस्य उपयोगं करोतु ।",
        "cascadeprotected": "इदं पृष्ठं सम्पादनात् संरक्षितमस्ति । कारणम् एतत् पृष्ठं {{PLURAL:$1|तादृशे पृष्ठे|तादृशेषु पृष्ठेषु}} अन्तर्भवति, यादृशेषु पृष्ठेषु सोपानवत् सुरक्षा अस्ति : $2",
        "namespaceprotected": "भवान्/भवती '''$1''' नामाकाशे अन्तर्भूतेषु पृष्ठेषु परिवर्तनं कर्तुं न शक्नोति ।",
-       "customcssprotected": "भवानà¥\8d/भवतà¥\80 à¤\87दà¤\82 CSS à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणà¤\82 अन्यस्य योजकस्य वैयक्तिकव्यवस्थापनानि (settings) अत्र सन्ति ।",
-       "customjsprotected": "भवानà¥\8d/भवतà¥\80 à¤\87दà¤\82 JavaScript à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤\95ारणà¤\82 अन्यस्य योजकस्य वैयक्तिकव्यवस्थापनानि (settings) अत्र सन्ति ।",
+       "customcssprotected": "भवानà¥\8d/भवतà¥\80 à¤\87दà¤\82 CSS à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤¯à¤¤à¤\83 अन्यस्य योजकस्य वैयक्तिकव्यवस्थापनानि (settings) अत्र सन्ति ।",
+       "customjsprotected": "भवानà¥\8d/भवतà¥\80 à¤\87दà¤\82 JavaScript à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¥¤ à¤¯à¤¤à¤\83 अन्यस्य योजकस्य वैयक्तिकव्यवस्थापनानि (settings) अत्र सन्ति ।",
        "mycustomcssprotected": "भवान्/भवती इदं CSS पृष्ठं सम्पादयितुं न शक्नोति ।",
        "mycustomjsprotected": "भवान्/भवती इदं JavaScript पृष्ठं सम्पादयितुं न शक्नोति ।",
        "myprivateinfoprotected": "भवान्/भवती अत्र वैयक्तिकसूचनाः सम्पादयितुं न शक्नोति ।",
        "mypreferencesprotected": "भवान्/भवती स्वस्य इष्टतमानि सम्पादयितुं न शक्नोति ।",
        "ns-specialprotected": "विशिष्टानि पृष्ठानि सम्पादयितुं न शक्यन्ते ।",
-       "titleprotected": "\"''$2''\" à¤\87ति à¤\95ारणतà¥\8dवातà¥\8d à¤\8fततà¥\8d à¤¶à¥\80रà¥\8dषà¤\95à¤\82 (विषयà¤\83) [[User:$1|$1]] à¤\87तà¥\8dयसà¥\8dमà¥\88 संरक्षितमस्ति ।",
+       "titleprotected": "\"''$2''\" à¤\87ति à¤¹à¥\87तà¥\8bà¤\83 à¤\8fततà¥\8d à¤¶à¥\80रà¥\8dषà¤\95à¤\82 (विषयà¤\83) [[User:$1|$1]] à¤\87तà¥\8dयसà¥\8dमातà¥\8d संरक्षितमस्ति ।",
        "filereadonlyerror": "\"$1\" सञ्चिकापरिवर्तितुं न शक्यते । \"$2\" कोषः अधुना  केवलं पठनयोग्यः (read only) अस्ति । येन प्रबन्धकेन एवं कृतं, तेन निम्नकारणं प्रदत्तम् \"$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": "अयोग्यं व्यवस्थापनम् : अज्ञातं विषाणुं (VIRUS) निरीक्षकः: ''$1''",
        "virus-scanfailed": "निरीक्षणं विफलितम् (विध्यादेशः (code) $1)",
        "welcomecreation-msg": "भवता/भवत्या सदस्यता प्राप्ता ।\nस्वस्य [[Special:Preferences|{{SITENAME}} इष्टतमानि]] परिवर्तयितुं मा विस्मरतु ।",
        "yourname": "योजकनाम:",
        "userlogin-yourname": "प्रयोक्तृनाम",
-       "userlogin-yourname-ph": "सà¥\8dवसà¥\8dय à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤¦à¥\80यताम्",
-       "createacct-another-username-ph": "पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤¦à¥\80यताम्",
+       "userlogin-yourname-ph": "सà¥\8dवसà¥\8dय à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤²à¤¿à¤\96à¥\8dयताम्",
+       "createacct-another-username-ph": "पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤²à¤¿à¤\96à¥\8dयताम्",
        "yourpassword": "कूटशब्दः :",
        "userlogin-yourpassword": "कूटशब्दः",
-       "userlogin-yourpassword-ph": "सà¥\8dवसà¥\8dय à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤¦à¥\80यताम्",
-       "createacct-yourpassword-ph": "à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤¦à¥\80यताम्",
+       "userlogin-yourpassword-ph": "सà¥\8dवसà¥\8dय à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤²à¤¿à¤\96à¥\8dयताम्",
+       "createacct-yourpassword-ph": "à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤²à¤¿à¤\96à¥\8dयताम्",
        "yourpasswordagain": "कूटशब्दः पुनः लिख्यताम् :",
        "createacct-yourpasswordagain": "कूटशब्दस्य पुष्टिं करोतु ।",
-       "createacct-yourpasswordagain-ph": "à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤ªà¥\81नà¤\83 à¤¦à¥\80यताम्",
+       "createacct-yourpasswordagain-ph": "à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤ªà¥\81नà¤\83 à¤²à¤¿à¤\96à¥\8dयताम्",
        "remembermypassword": "अस्मिन् सङ्गणके मम प्रवेशः स्मर्यताम् (अधिकतमम् $1 {{PLURAL:$1|दिनम्|दिनानि}})",
-       "userlogin-remembermypassword": "अहं प्रविष्टमेव तिष्ठेयम्",
+       "userlogin-remembermypassword": "अहं प्रविष्ट एव स्याम्",
        "userlogin-signwithsecure": "संरक्षितः सम्पर्कः (https) उपयुज्यताम्",
        "yourdomainname": "भवतः प्रदेशः (domain) :",
        "password-change-forbidden": "अस्मिन् विकि-जालस्थाने भवान्/भवती कूटशब्दान् परिर्वतयितुं न शक्नोति ।",
        "nav-login-createaccount": "प्रविश्यताम् / सदस्यता प्राप्यताम्",
        "userlogin": "प्रविश्यताम् / सदस्यता प्राप्यताम्",
        "userloginnocreate": "प्रविश्यताम्",
-       "logout": "निरà¥\8dà¤\97मनम्",
-       "userlogout": "निरà¥\8dà¤\97मनम्",
+       "logout": "निरà¥\8dà¤\97मà¥\8dयताम्",
+       "userlogout": "निरà¥\8dà¤\97मà¥\8dयताम्",
        "notloggedin": "नैव प्रविष्टः",
        "userlogin-noaccount": "सदस्यता नास्ति किम् ?",
        "userlogin-joinproject": "{{SITENAME}} सह योजनम्",
        "createacct-reason": "कारणम्",
        "createacct-reason-ph": "भवतः/भवत्याः अन्यसदस्यतां प्राप्तुं किं प्रयोजनमस्ति ?",
        "createacct-captcha": "सुरक्षानिरीक्षणम्",
-       "createacct-imgcaptcha-ph": "à¤\89परि à¤²à¤¿à¤\96िताà¤\83 à¤µà¤°à¥\8dणाà¤\83 à¤²à¤¿à¤\96à¥\8dयताम्",
+       "createacct-imgcaptcha-ph": "à¤\89परि à¤²à¤¿à¤\96िताà¤\83 à¤µà¤°à¥\8dणाà¤\83 à¤²à¤¿à¤\96à¥\8dयनà¥\8dतादम्",
        "createacct-submit": "स्वसदस्यता प्राप्यताम्",
        "createacct-another-submit": "अन्यसदस्यता प्राप्यताम्",
        "createacct-benefit-heading": "{{SITENAME}} इति भवत्सदृशैः जनैः रचितमस्ति ।",
        "createaccounterror": "$1 सदस्यता न प्राप्ता :",
        "nocookiesnew": "भवता/भवत्या सदस्यता प्राप्ता, परन्तु प्रवेशः न कृतः । {{SITENAME}} इत्यस्य कृते योजकज्ञापकम् (uses cookies) अनिवार्यम् अस्ति । \nभवता/भवत्या ज्ञापकव्यवस्था असमर्थिता अस्ति ।\nकृपया सा समर्थ्यताम्, ततश्च नवीनसदस्यतायाः प्रयोक्तृनाम्ना प्रविश्यताम् ।",
        "nocookieslogin": "{{SITENAME}} इत्यत्र ज्ञापकेन (cookies) विना प्रवेशः न शक्यः । \nभवता/भवत्या ज्ञापकव्यवस्था असमर्थिता अस्ति ।\nकृपया सा समर्थ्यताम्, ततश्च पुनः प्रयासः क्रियताम् ।",
-       "nocookiesfornew": "यà¥\8bà¤\9cà¤\95सदसà¥\8dयता à¤¨ à¤¸à¤¿à¤¦à¥\8dधा à¤¯à¤¤à¤\83 à¤¸à¥\8dरà¥\8bतà¤\83 à¤ªà¥\8dरमाणà¥\80à¤\95à¥\83तà¤\82 à¤¨ à¤\9cातमà¥\8d à¥¤ \nभवता à¤\95à¥\81à¤\95à¥\8dà¤\95à¥\80सà¥\8d à¤\87तà¥\8dयà¥\87ततà¥\8d à¤¸à¤®à¤°à¥\8dथà¥\80à¤\95à¥\83तानि किम् इति परिशील्य इदं पृष्ठं पुनरारोप्य प्रयतताम् ।",
+       "nocookiesfornew": "यà¥\8bà¤\9cà¤\95सदसà¥\8dयता à¤¨ à¤¸à¤¿à¤¦à¥\8dधा à¤¯à¤¤à¤\83 à¤¸à¥\8dरà¥\8bतà¤\83 à¤ªà¥\8dरमाणà¥\80à¤\95à¥\83तà¤\82 à¤¨ à¤\9cातमà¥\8d à¥¤ \nभवता à¤\95à¥\81à¤\95à¥\8dà¤\95à¥\80सà¥\8d à¤\87तà¥\8dयà¥\87ततà¥\8d à¤¸à¤®à¤°à¥\8dथितानि किम् इति परिशील्य इदं पृष्ठं पुनरारोप्य प्रयतताम् ।",
        "noname": "भवता/भवत्या योग्यं प्रयोक्तृनाम न प्रदत्तम् ।",
        "loginsuccesstitle": "स्वागतं ! प्रवेशः सिद्धः ।",
        "loginsuccess": "भवता/भवत्या {{SITENAME}} इत्यत्र \"$1\"-योजकत्वेन प्रवेशः प्राप्तः ।",
        "nosuchuser": "'''$1''' नाम्नः न कोऽपि योजकः विद्यते ।\n\nप्रयोक्तृनामानि पक्षानुगुणं (case sensitive) भवन्ति ।\n\nयत् टङ्कितं, तत् पश्यतु अथवा [[Special:UserLogin/signup|नूतनसदस्यता प्राप्यताम्]] ।",
        "nosuchusershort": "'''$1''' नाम्नः न कोऽपि योजकः विद्यते ।\n\nयत् टङ्कितं, तत् पश्यतु ।",
        "nouserspecified": "भवता/भवत्या एकं योग्यं प्रयोक्तृनाम अवश्यमेव दातव्यम् ।",
-       "login-userblocked": "à¤\8fषà¤\83 à¤¯à¥\8bà¤\9cà¤\95à¤\83 à¤ªà¥\8dरतिबनà¥\8dधितà¤\83 à¥¤ à¤ªà¥\8dरविष्टुम् अनुमतिः नास्ति ।",
+       "login-userblocked": "à¤\8fषà¤\83 à¤¯à¥\8bà¤\9cà¤\95à¤\83 à¤ªà¥\8dरतिबनà¥\8dधितà¤\83 à¥¤ à¤ªà¥\8dरवà¥\87ष्टुम् अनुमतिः नास्ति ।",
        "wrongpassword": "भवता/भवत्या लिखितः कूटशब्दः त्रुटियुक्तः । \nकृपया पुनः लिख्यताम् ।",
        "wrongpasswordempty": "कूटशब्दपेटिकायां कूटशब्दः न लिखितः ।\n\nकृपया पुनः प्रयासः क्रियताम् ।",
        "passwordtooshort": "न्यूनातिन्यूनं {{PLURAL:$1| 1 अक्षरात्मकः|$1 अक्षरात्मकः}} कूटशब्दः भवेदेव ।",
        "passwordsent": "\"$1\" इत्यस्य पञ्जीकृताय ई-पत्रसङ्केताय नवीनः कूटशब्दः प्रेषितः अस्ति । \n\nकृपया तस्य कूटशब्दस्य उपयोगेन पुनः प्रविश्यताम् ।",
        "blocked-mailpassword": "भवतः/भवत्याः अन्तर्जालसंविद् (IP) प्रतिबन्धितः अस्ति । \nसम्पादनाय अनुमतिः नास्ति, अतः कूटशब्दस्य पुनःप्राप्तिः भवितुं नार्हति ।",
        "eauthentsent": "अधिकृतपुष्टै भवता/भवत्या पञ्जीकृताय ई-पत्रसङ्केताय ई-पत्रं प्रेषितमस्ति । तस्य ई-पत्रसङ्केतस्यैव इतः परम् उपयोगः भवतु इति इच्छति चेत् प्रेषिते ई-पत्रे यथा लिखितमस्ति, तथा करोतु । एवं तस्य ई-पत्रसङ्केतस्य अधिकृतपुष्टता भविष्यति ।",
-       "throttled-mailpassword": "à¤\95à¥\82à¤\9fशबà¥\8dदà¤\82 à¤ªà¤°à¤¿à¤°à¥\8dवतितà¥\81à¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤ªà¤\9eà¥\8dà¤\9cà¥\80à¤\95à¥\83ताय à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87ताय à¤\85नà¥\8dतिम{{PLURAL:$1|हà¥\8bरायाà¤\82|$1 à¤¹à¥\8bरासà¥\81}} à¤¨à¥\82तनà¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤ªà¥\8dरà¥\87षितà¤\83 à¤\85सà¥\8dति à¥¤\n\nदà¥\81रà¥\81पयà¥\8bà¤\97à¤\82 à¤µà¤¾à¤°à¤¯à¤¿à¤¤à¥\81मà¥\8d à¤ªà¥\8dरति {{PLURAL:$1|हà¥\8bरायाà¤\82|$1 à¤¹à¥\8bरासà¥\81}} केवलम् एकम् ई-पत्रं प्रेष्यते ।",
+       "throttled-mailpassword": "à¤\95à¥\82à¤\9fशबà¥\8dदà¤\82 à¤ªà¤°à¤¿à¤°à¥\8dवतितà¥\81à¤\82 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤ªà¤\9eà¥\8dà¤\9cà¥\80à¤\95à¥\83ताय à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87ताय à¤\85नà¥\8dतिम{{PLURAL:$1|हà¥\8bरायाà¤\82|$1 à¤¹à¥\8bरासà¥\81}} à¤¨à¥\82तनà¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤ªà¥\8dरà¥\87षितà¤\83 à¤\85सà¥\8dति à¥¤\n\nदà¥\81रà¥\81पयà¥\8bà¤\97à¤\82 à¤µà¤¾à¤°à¤¯à¤¿à¤¤à¥\81मà¥\8d à¤ªà¥\8dरति {{PLURAL:$1|हà¥\8bरà¤\82|$1 à¤¹à¥\8bरà¤\82}} केवलम् एकम् ई-पत्रं प्रेष्यते ।",
        "mailerror": "ई-पत्रसम्प्रेषणे दोषः : $1",
        "acct_creation_throttle_hit": "चतु्र्विंशतिघण्टासु अस्य सङ्गणकस्य आन्तर्जालसंविदा (IP) {{PLURAL:$1|1 योजकः|$1 योजकाः}} सदस्यतां प्राप्तवान्/वन्तः । अद्य इतोपि अधिकसदस्याः प्राप्तुं न शक्यन्ते ।",
        "emailauthenticated": "$2 दिनाङ्के $3 वादने भवतः/भवत्याः ई-पत्रसङ्केतः पुष्टितः ।",
        "accountcreated": "सदस्यता प्राप्ता",
        "accountcreatedtext": "[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) कृते \"योजसम्भाषणम्\" इति पृष्ठं रचितम् ।",
        "createaccount-title": "{{SITENAME}} कृते सदस्यता प्राप्यताम्",
-       "createaccount-text": "{{SITENAME}} ($4) à¤\87तà¥\8dयतà¥\8dर, \"$2\" à¤¨à¤¾à¤®à¥\8dना, \"$3\" à¤\95à¥\82à¤\9fशबà¥\8dदà¥\87न, à¤\9a à¤\95à¥\8bऽपि à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तसà¥\8dय à¤\89पयà¥\8bà¤\97à¤\82 à¤\95à¥\83तà¥\8dवा à¤¸à¤¦à¤¸à¥\8dयताà¤\82 à¤ªà¥\8dरापतà¥\8d à¥¤\nà¤\85धà¥\81ना à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤ªà¥\8dरवà¥\87शà¤\82 à¤\95à¥\83तà¥\8dवा à¤\97à¥\81पà¥\8dतसà¤\99à¥\8dà¤\96à¥\8dयाà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतयितà¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤\nà¤\8fषा à¤¸à¤¦à¤¸à¥\8dयतापà¥\8dरापà¥\8dतिà¤\83 à¤\95à¥\8dषतà¥\8dया à¤\85भवतà¥\8d à¤\9aà¥\87तà¥\8d, à¤\8fनà¤\82 à¤¸à¤¨à¥\8dदà¥\87शमà¥\8d à¤\85वà¤\97णà¥\8bतà¥\81 ।",
-       "login-throttled": "भवता/भवतà¥\8dया à¤\85तà¥\8dयधिà¤\95ाà¤\83 à¤ªà¥\8dरवà¥\87शपà¥\8dरयासाà¤\83 à¤\95à¥\83ताà¤\83 à¥¤ \nà¤\95à¥\83पया $1 à¤\95ालà¤\82 à¤¯à¤¾à¤µà¤¤à¥\8d à¤ªà¥\8dरतिà¤\95à¥\8dषाà¤\82 à¤\95रà¥\8bतà¥\81 ।",
+       "createaccount-text": "{{SITENAME}} ($4) à¤\87तà¥\8dयतà¥\8dर, \"$2\" à¤¨à¤¾à¤®à¥\8dना, \"$3\" à¤\95à¥\82à¤\9fशबà¥\8dदà¥\87न, à¤\9a à¤\95à¥\8bऽपि à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तसà¥\8dय à¤\89पयà¥\8bà¤\97à¤\82 à¤\95à¥\83तà¥\8dवा à¤¸à¤¦à¤¸à¥\8dयताà¤\82 à¤ªà¥\8dरापतà¥\8d à¥¤\nà¤\85धà¥\81ना à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤ªà¥\8dरवà¥\87शà¤\82 à¤\95à¥\83तà¥\8dवा à¤\97à¥\81पà¥\8dतसà¤\99à¥\8dà¤\96à¥\8dयाà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतयितà¤\82 à¤¶à¤\95à¥\8dनà¥\8bति à¥¤\nà¤\8fषा à¤¸à¤¦à¤¸à¥\8dयतापà¥\8dरापà¥\8dतिà¤\83 à¤\95à¥\8dषतà¥\8dया à¤\85भवतà¥\8d à¤\9aà¥\87तà¥\8d, à¤\8fनà¤\82 à¤¸à¤¨à¥\8dदà¥\87शमà¥\8d à¤\89पà¥\87à¤\95à¥\8dषतामà¥\8d ।",
+       "login-throttled": "भवता/भवतà¥\8dया à¤\85तà¥\8dयधिà¤\95ाà¤\83 à¤ªà¥\8dरवà¥\87शपà¥\8dरयासाà¤\83 à¤\95à¥\83ताà¤\83 à¥¤ \nà¤\95à¥\83पया $1 à¤\95ालà¤\82 à¤¯à¤¾à¤µà¤¤à¥\8d à¤ªà¥\8dरतà¥\80à¤\95à¥\8dषà¥\8dयतामà¥\8d ।",
        "login-abort-generic": "भवतः/भवत्याः प्रवेशप्रयासः विफलीभूतः - परित्यक्तः",
+       "login-migrated-generic": "भवतः/भवत्याः सदस्यत्वं स्थानान्तरितं, येन भवतः/भवत्याः प्रयोक्तृनाम एतस्मिन् विकि-प्रकल्पे न विद्यते ।",
        "loginlanguagelabel": "भाषा : $1",
-       "suspicious-userlogout": "भवतà¤\83/भवतà¥\8dयाà¤\83 \"निरà¥\8dà¤\97मनमà¥\8d\" à¤\87तà¥\8dयसà¥\8dय à¤µà¤¿à¤¨à¤¤à¤¿à¤\82 à¤¸à¥\8dवà¥\80à¤\95रà¥\8dतà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dयतà¥\87 à¥¤ à¤\95ारणà¤\82 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤\8fषा à¤µà¤¿à¤¨à¤¤à¤¿à¤\83 तृटियुक्तगवेक्षणात् प्रतिनिधि(proxy)-तः वा कृता ।",
-       "createacct-another-realname-tip": "वास्तविकनाम ऐच्छकम् अस्ति । भवान्/भवती एनं विकल्पं समर्थयति चेत्, भवतः/भवत्याः योगदानश्रेयस्य उल्लेखसमये अस्य उपयोगः भविष्यति ।",
+       "suspicious-userlogout": "भवतà¤\83/भवतà¥\8dयाà¤\83 \"निरà¥\8dà¤\97मà¥\8dयतामà¥\8d\" à¤\87तà¥\8dयसà¥\8dय à¤µà¤¿à¤\9cà¥\8dà¤\9eपà¥\8dतिà¤\82 à¤¸à¥\8dवà¥\80à¤\95रà¥\8dतà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dयतà¥\87 à¥¤ à¤¯à¤¤à¤\83 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤\8fषा à¤µà¤¿à¤\9cà¥\8dà¤\9eपà¥\8dतिà¤\82 तृटियुक्तगवेक्षणात् प्रतिनिधि(proxy)-तः वा कृता ।",
+       "createacct-another-realname-tip": "वासà¥\8dतविà¤\95नाम à¤\90à¤\9aà¥\8dà¤\9bिà¤\95मà¥\8d à¤\85सà¥\8dति à¥¤ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\8fनà¤\82 à¤µà¤¿à¤\95लà¥\8dपà¤\82 à¤¸à¤®à¤°à¥\8dथयति à¤\9aà¥\87तà¥\8d, à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¯à¥\8bà¤\97दानशà¥\8dरà¥\87यसà¥\8dय à¤\89लà¥\8dलà¥\87à¤\96समयà¥\87 à¤\85सà¥\8dय à¤\89पयà¥\8bà¤\97à¤\83 à¤­à¤µà¤¿à¤·à¥\8dयति à¥¤",
        "pt-login": "प्रविश्यताम्",
        "pt-login-button": "प्रविश्यताम्",
        "pt-createaccount": "सदस्यता प्राप्यताम्",
-       "pt-userlogout": "निरà¥\8dà¤\97मनम्",
+       "pt-userlogout": "निरà¥\8dà¤\97मà¥\8dयताम्",
        "php-mail-error-unknown": "PHP लिप्याः मुख्यनियोगे (in main()) अज्ञातत्रुटिः प्राप्ता ।",
        "user-mail-no-addy": "ई-पत्रसङ्केतं विना ई-पत्रप्रेषणस्य प्रयासः कृतः ।",
        "user-mail-no-body": "भवता/भवत्या रिक्तं लघुसन्देशयुक्तं वा ई-पत्रं प्रेषणस्य प्रयासः कृतः ।",
        "retypenew": "नूतनकूटशब्दः पुनः लिख्यताम् :",
        "resetpass_submit": "कूटशब्दः योज्यतां, प्रविश्यतां च",
        "changepassword-success": "भवतः/भवत्याः कूटशब्दः सफलतया परिवर्तितः ।",
-       "changepassword-throttled": "भवता/भवतà¥\8dया à¤\85तà¥\8dयधिà¤\95ाà¤\83 à¤ªà¥\8dरवà¥\87शपà¥\8dरयासाà¤\83 à¤\95à¥\83ताà¤\83 à¥¤ \nà¤\95à¥\83पया $1 à¤\95ालà¤\82 à¤¯à¤¾à¤µà¤¤à¥\8d à¤ªà¥\8dरतिà¤\95à¥\8dषाà¤\82 à¤\95रà¥\8bतà¥\81 ।",
+       "changepassword-throttled": "भवता/भवतà¥\8dया à¤\85तà¥\8dयधिà¤\95ाà¤\83 à¤ªà¥\8dरवà¥\87शपà¥\8dरयासाà¤\83 à¤\95à¥\83ताà¤\83 à¥¤ \nà¤\95à¥\83पया $1 à¤\95ालà¤\82 à¤¯à¤¾à¤µà¤¤à¥\8d à¤ªà¥\8dरतà¥\80à¤\95à¥\8dषà¥\8dयतामà¥\8d ।",
        "resetpass_forbidden": "कूटशब्दाः परिवर्तयितुं न शक्यन्ते",
        "resetpass-no-info": "एतत् पृष्ठं सम्पादयितुं प्रवेशः अनिवार्यः ।",
        "resetpass-submit-loggedin": "कूटशब्दः परिवर्त्यताम्",
        "passwordreset-email": "ई-पत्रसङ्केतः",
        "passwordreset-emailtitle": "{{SITENAME}} इत्यत्र योजकविषये",
        "passwordreset-emailtext-ip": "कोऽपि (कदाचित् भवान्/भवती, $1 अन्तर्जालसंविदः (from IP)) {{SITENAME}}($4) जालस्थानस्य  कृते कूटशब्दपरिवर्तनस्य विनतिम् अकरोत् । निम्न{{PLURAL:$3|योजकः|योजकाः}} अनेन ई-पत्रेण सह सल्लग्नः अस्ति/सल्लग्नाः सन्ति ।\n\n$2\n\n{{PLURAL:$3|एषः अल्पकालीनकूटशब्दः|एते अल्पकालीनकूटशब्दाः}} {{PLURAL:$5|चतुर्विंशतिघण्टासु|$5 दिनेषु}} निरस्तः भविष्यति/निरस्ताः भविष्यन्ति ।\nअधुना प्रवेशं सम्प्राप्य कूटशब्दः परिवर्तनीयः एव । \n\nनिम्नकारणानि यदि सन्ति, तर्हि एनं सन्देशम् अवगण्यताम् ।\n\n१ कोऽपि अन्यः अत्र विनतिम् अकरोत् । \n२ पूरातनः कूटशब्दः भवतः/भवत्याः स्मरणे अस्ति ।\n३ भवान्/भवती कूटशब्दं परिवर्तयितुं नेच्छिति ।",
-       "passwordreset-emailtext-user": "$1 à¤¯à¥\8bà¤\9cà¤\95à¤\83 {{SITENAME}}($4) à¤\9cालसà¥\8dथानसà¥\8dय  à¤\95à¥\83तà¥\87 à¤\95à¥\82à¤\9fशबà¥\8dदपरिवरà¥\8dतनसà¥\8dय à¤µà¤¿à¤¨à¤¤à¤¿à¤®à¥\8d à¤\85à¤\95रà¥\8bतà¥\8d à¥¤ à¤¨à¤¿à¤®à¥\8dन{{PLURAL:$3|यà¥\8bà¤\9cà¤\95à¤\83|यà¥\8bà¤\9cà¤\95ाà¤\83}} à¤\85नà¥\87न à¤\88-पतà¥\8dरà¥\87ण à¤¸à¤¹ à¤¸à¤²à¥\8dलà¤\97à¥\8dनà¤\83 à¤\85सà¥\8dति/सलà¥\8dलà¤\97à¥\8dनाà¤\83 à¤¸à¤¨à¥\8dति à¥¤\n\n$2\n\n{{PLURAL:$3|à¤\8fषà¤\83 à¤\85लà¥\8dपà¤\95ालà¥\80नà¤\95à¥\82à¤\9fशबà¥\8dदà¤\83|à¤\8fतà¥\87 à¤\85लà¥\8dपà¤\95ालà¥\80नà¤\95à¥\82à¤\9fशबà¥\8dदाà¤\83}} {{PLURAL:$5|à¤\9aतà¥\81रà¥\8dविà¤\82शतिà¤\98णà¥\8dà¤\9fासà¥\81|$5 à¤¦à¤¿à¤¨à¥\87षà¥\81}} à¤¨à¤¿à¤°à¤¸à¥\8dतà¤\83 à¤­à¤µà¤¿à¤·à¥\8dयति/निरसà¥\8dताà¤\83 à¤­à¤µà¤¿à¤·à¥\8dयनà¥\8dति à¥¤\nà¤\85धà¥\81ना à¤ªà¥\8dरवà¥\87शà¤\82 à¤¸à¤®à¥\8dपà¥\8dरापà¥\8dय à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¥\80यà¤\83 à¤\8fव à¥¤ \n\nनिमà¥\8dनà¤\95ारणानि à¤¯à¤¦à¤¿ à¤¸à¤¨à¥\8dति, à¤¤à¤°à¥\8dहि à¤\8fनà¤\82 à¤¸à¤¨à¥\8dदà¥\87शमà¥\8d à¤\85वà¤\97णà¥\8dयतामà¥\8d à¥¤\n\n१ à¤\95à¥\8bऽपि à¤\85नà¥\8dयà¤\83 à¤\85तà¥\8dर à¤µà¤¿à¤¨तिम् अकरोत् । \n२ पूरातनः कूटशब्दः भवतः/भवत्याः स्मरणे अस्ति ।\n३ भवान्/भवती कूटशब्दं परिवर्तयितुं नेच्छिति ।",
+       "passwordreset-emailtext-user": "$1 à¤¯à¥\8bà¤\9cà¤\95à¤\83 {{SITENAME}}($4) à¤\9cालसà¥\8dथानसà¥\8dय  à¤\95à¥\83तà¥\87 à¤\95à¥\82à¤\9fशबà¥\8dदपरिवरà¥\8dतनसà¥\8dय à¤µà¤¿à¤¨à¤¤à¤¿à¤®à¥\8d à¤\85à¤\95रà¥\8bतà¥\8d à¥¤ à¤¨à¤¿à¤®à¥\8dन{{PLURAL:$3|यà¥\8bà¤\9cà¤\95à¤\83|यà¥\8bà¤\9cà¤\95ाà¤\83}} à¤\85नà¥\87न à¤\88-पतà¥\8dरà¥\87ण à¤¸à¤¹ à¤¸à¤²à¥\8dलà¤\97à¥\8dनà¤\83 à¤\85सà¥\8dति/सलà¥\8dलà¤\97à¥\8dनाà¤\83 à¤¸à¤¨à¥\8dति à¥¤\n\n$2\n\n{{PLURAL:$3|à¤\8fषà¤\83 à¤\85लà¥\8dपà¤\95ालà¥\80नà¤\95à¥\82à¤\9fशबà¥\8dदà¤\83|à¤\8fतà¥\87 à¤\85लà¥\8dपà¤\95ालà¥\80नà¤\95à¥\82à¤\9fशबà¥\8dदाà¤\83}} {{PLURAL:$5|à¤\9aतà¥\81रà¥\8dविà¤\82शतिà¤\98णà¥\8dà¤\9fासà¥\81|$5 à¤¦à¤¿à¤¨à¥\87षà¥\81}} à¤¨à¤¿à¤°à¤¸à¥\8dतà¤\83 à¤­à¤µà¤¿à¤·à¥\8dयति/निरसà¥\8dताà¤\83 à¤­à¤µà¤¿à¤·à¥\8dयनà¥\8dति à¥¤\nà¤\85धà¥\81ना à¤ªà¥\8dरवà¥\87शà¤\82 à¤¸à¤®à¥\8dपà¥\8dरापà¥\8dय à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¥\80यà¤\83 à¤\8fव à¥¤ \n\nनिमà¥\8dनà¤\95ारणानि à¤¯à¤¦à¤¿ à¤¸à¤¨à¥\8dति, à¤¤à¤°à¥\8dहि à¤\8fनà¤\82 à¤¸à¤¨à¥\8dदà¥\87शमà¥\8d à¤\85वà¤\97णà¥\8dयतामà¥\8d à¥¤\n\n१ à¤\95à¥\8bऽपि à¤\85नà¥\8dयà¤\83 à¤\85तà¥\8dर à¤µà¤¿à¤\9cà¥\8dà¤\9eपà¥\8dतिम् अकरोत् । \n२ पूरातनः कूटशब्दः भवतः/भवत्याः स्मरणे अस्ति ।\n३ भवान्/भवती कूटशब्दं परिवर्तयितुं नेच्छिति ।",
        "passwordreset-emailelement": "प्रयोक्तृनाम : $1\nअल्पकालीनकूटशब्दः : $2",
        "passwordreset-emailsent": "परिवर्तितकूटशब्दस्य ई-पत्रं प्रेषितम् अस्ति ।",
        "passwordreset-emailsent-capture": "परिवर्तितकूटशब्दस्य ई-पत्रं प्रेषितम् अस्ति । तत् अधः द्रष्टुं शक्यते ।",
        "headline_sample": "शीर्षकम्",
        "headline_tip": "द्वितीयस्तरीयं शीर्षकम्",
        "nowiki_sample": "अप्रारूपितं पाठम् अत्र निवेश्यताम्",
-       "nowiki_tip": "विà¤\95ि-पà¥\8dरारà¥\82पसà¥\8dय à¤\85वà¤\97णनाà¤\82 à¤\95रà¥\8bतà¥\81",
+       "nowiki_tip": "विà¤\95ि-पà¥\8dरारà¥\82पमà¥\8d à¤\89पà¥\87à¤\95à¥\8dषà¥\8dयतामà¥\8d",
        "image_sample": "उदाहरणम्.jpg",
        "image_tip": "अन्तर्निहिता सञ्चिका",
        "media_sample": "उदाहरणम्.ogg",
        "loginreqlink": "प्रविश्यताम्",
        "loginreqpagetext": "अन्यानि पृष्ठानि द्रष्टुं $1 आवश्यकम् ।",
        "accmailtitle": "कूटशब्दः प्रेषितः",
-       "accmailtext": "[[User talk:$1|$1]] कृते अशृङ्खलितरीत्या (randomly) उत्पादितः कूटशब्दः $2 ई-पत्रसङ्केतं प्रति प्रषितः अस्ति । <em>[[Special:ChangePassword|कूटशब्दः परिवर्त्यताम्]]</em> अत्र तत् परिर्तयितुं शक्यते ।",
+       "accmailtext": "[[User talk:$1|$1]] à¤\95à¥\83तà¥\87 à¤\85शà¥\83à¤\99à¥\8dà¤\96लितरà¥\80तà¥\8dया (randomly) à¤\89तà¥\8dपादितà¤\83 à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 $2 à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\82 à¤ªà¥\8dरति à¤ªà¥\8dरà¥\87षितà¤\83 à¤\85सà¥\8dति à¥¤ <em>[[Special:ChangePassword|à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतà¥\8dयतामà¥\8d]]</em> à¤\85तà¥\8dर à¤¤à¤¤à¥\8d à¤ªà¤°à¤¿à¤°à¥\8dतयितà¥\81à¤\82 à¤¶à¤\95à¥\8dयतà¥\87 à¥¤",
        "newarticle": "(नूतनम्)",
-       "newarticletext": "भवानà¥\8d/भवतà¥\80 à¤\85निरà¥\8dमितà¥\87 à¤ªà¥\83षà¥\8dठà¥\87 à¤\85सà¥\8dति à¥¤ \nपà¥\83षà¥\8dठà¤\82 à¤¸à¥\8dरषà¥\8dà¤\9fà¥\81मà¥\8d à¤\85धà¤\83 à¤ªà¥\8dरदतà¥\8dतायाà¤\82 à¤ªà¥\87à¤\9fिà¤\95ायाà¤\82 à¤\9fà¤\99à¥\8dà¤\95नà¤\82 à¤ªà¥\8dरारभतà¥\81 (साहाय्यार्थं [$1 अत्र]) नुदतु ।\nभवान्/भवती यदि क्षतिकारणात् एतत् पृष्ठं प्रति आगच्छत्, तर्हि अस्य गवेषकस्य (browser) Back नुदतु ।",
-       "anontalkpagetext": "----\n<em>à¤\8fततà¥\8d à¤¸à¤®à¥\8dभाषणपà¥\83षà¥\8dठमà¥\8d à¤\85नामà¤\95यà¥\8bà¤\9cà¤\95à¥\87भà¥\8dयà¤\83 à¤\85सà¥\8dति à¥¤ à¤\8fततà¥\8d à¤¤à¥\87भà¥\8dयà¤\83 à¤\85नामà¤\95यà¥\8bà¤\9cà¤\95à¥\87भà¥\8dयà¤\83 à¤°à¤\9aितमसà¥\8dति, à¤¯à¥\88à¤\83 à¤¸à¤¦à¤¸à¥\8dयता à¤¨ à¤ªà¥\8dरापà¥\8dता à¤\85सà¥\8dति à¤¤à¤¥à¤¾ à¤\9a à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\89पयà¥\8bà¤\97à¤\82 à¤¨ à¤\95à¥\81रà¥\8dवनà¥\8dतà¤\83 à¤¸à¤¨à¥\8dति à¥¤</em>\nतà¥\87षाà¤\82 à¤µà¥\8dयà¤\95à¥\8dतिà¤\97तसà¥\82à¤\9aनाà¤\82 à¤ªà¥\8dरापà¥\8dतà¥\81मà¥\87व à¤µà¤¯à¤\82 à¤¤à¤¸à¥\8dय/तसà¥\8dयाà¤\83 à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¤\83 à¤\89पयà¥\8bà¤\97à¤\82 à¤\95à¥\81रà¥\8dमà¤\83 à¥¤ à¤\95à¥\87à¤\9aन à¤¯à¥\8bà¤\9cà¤\95ाà¤\83 à¤¸à¥\8dवसà¥\8dय à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदमà¥\8d à¤\85नà¥\8dयानà¥\8d à¤¯à¥\8bà¤\9cà¤\95ानà¥\8d à¤\95थयनà¥\8dति à¥¤ \nयदà¥\8dयपि à¤\85नामà¤\95यà¥\8bà¤\9cà¤\95à¤\83 à¤\85हà¤\82 à¤¨à¤¾à¤¸à¥\8dमि, à¤¤à¤¥à¤¾à¤ªà¤¿ à¤\85यà¥\8bà¤\97à¥\8dयसà¥\82à¤\9aनाà¤\83 à¤®à¤® à¤ªà¤¾à¤°à¥\8dशà¥\8dवà¥\87 à¤\86à¤\97à¤\9aà¥\8dà¤\9bनà¥\8dतà¥\8dयà¤\83 à¤¸à¤¨à¥\8dति à¤\87ति à¤¯à¤¦à¤¿ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\85नà¥\81वति, तर्हि एतत् [[Special:UserLogin/signup|create an account]] एतत् [[Special:UserLogin|log in]] वा कृत्वा भविष्यस्य अनामकयोजकनां सन्देशेभ्यः स्वस्य रक्षणं करोतु ।",
+       "newarticletext": "भवानà¥\8d/भवतà¥\80 à¤\85निरà¥\8dमितà¥\87 à¤ªà¥\83षà¥\8dठà¥\87 à¤\85सà¥\8dति à¥¤ \nपà¥\83षà¥\8dठà¤\82 à¤¸à¥\8dरषà¥\8dà¤\9fà¥\81मà¥\8d à¤\85धà¤\83 à¤ªà¥\8dरदतà¥\8dतायाà¤\82 à¤ªà¥\87à¤\9fिà¤\95ायाà¤\82 à¤\9fà¤\99à¥\8dà¤\95नà¤\82 à¤ªà¥\8dरारभतामà¥\8d (साहाय्यार्थं [$1 अत्र]) नुदतु ।\nभवान्/भवती यदि क्षतिकारणात् एतत् पृष्ठं प्रति आगच्छत्, तर्हि अस्य गवेषकस्य (browser) Back नुदतु ।",
+       "anontalkpagetext": "----\n<em>à¤\8fततà¥\8d à¤¸à¤®à¥\8dभाषणपà¥\83षà¥\8dठमà¥\8d à¤\85नामà¤\95यà¥\8bà¤\9cà¤\95à¥\87भà¥\8dयà¤\83 à¤\85सà¥\8dति à¥¤ à¤\8fततà¥\8d à¤¤à¥\87भà¥\8dयà¤\83 à¤\85नामà¤\95यà¥\8bà¤\9cà¤\95à¥\87भà¥\8dयà¤\83 à¤°à¤\9aितमसà¥\8dति, à¤¯à¥\88à¤\83 à¤¸à¤¦à¤¸à¥\8dयता à¤¨ à¤ªà¥\8dरापà¥\8dता à¤\85सà¥\8dति à¤¤à¤¥à¤¾ à¤\9a à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\89पयà¥\8bà¤\97à¤\82 à¤¨ à¤\95à¥\81रà¥\8dवनà¥\8dतà¤\83 à¤¸à¤¨à¥\8dति à¥¤</em>\nतà¥\87षाà¤\82 à¤µà¥\8dयà¤\95à¥\8dतिà¤\97तसà¥\82à¤\9aनाà¤\82 à¤ªà¥\8dरापà¥\8dतà¥\81मà¥\87व à¤µà¤¯à¤\82 à¤¤à¤¸à¥\8dय/तसà¥\8dयाà¤\83 à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¤\83 à¤\89पयà¥\8bà¤\97à¤\82 à¤\95à¥\81रà¥\8dमà¤\83 à¥¤ à¤\95à¥\87à¤\9aन à¤¯à¥\8bà¤\9cà¤\95ाà¤\83 à¤¸à¥\8dवसà¥\8dय à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदमà¥\8d à¤\85नà¥\8dयानà¥\8d à¤¯à¥\8bà¤\9cà¤\95ानà¥\8d à¤\95थयनà¥\8dति à¥¤ \nयदà¥\8dयपि à¤\85नामà¤\95यà¥\8bà¤\9cà¤\95à¤\83 à¤\85हà¤\82 à¤¨à¤¾à¤¸à¥\8dमि, à¤¤à¤¥à¤¾à¤ªà¤¿ à¤\85यà¥\8bà¤\97à¥\8dयसà¥\82à¤\9aनाà¤\83 à¤®à¤® à¤ªà¤¾à¤°à¥\8dशà¥\8dवà¥\87 à¤\86à¤\97à¤\9aà¥\8dà¤\9bनà¥\8dतà¥\8dयà¤\83 à¤¸à¤¨à¥\8dति à¤\87ति à¤¯à¤¦à¤¿ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤¶à¤\99à¥\8dà¤\95तà¥\87, तर्हि एतत् [[Special:UserLogin/signup|create an account]] एतत् [[Special:UserLogin|log in]] वा कृत्वा भविष्यस्य अनामकयोजकनां सन्देशेभ्यः स्वस्य रक्षणं करोतु ।",
        "noarticletext": "अस्मिन् पृष्ठे अधुना किमपि न विद्यते । [[Special:Search/{{PAGENAME}}|एषः शब्दः]] येषु पृष्ठेषु अन्तर्भवति, तानि पृष्ठानि अन्वेष्टुं शक्यन्ते । \n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}  सम्बद्धेषु पृष्ठेषु अन्वेषणं]\n[{{fullurl:{{FULLPAGENAME}}|action=edit}} अस्य पृष्ठस्य सम्पादनं] वा  शक्यम्</span>.",
        "noarticletext-nopermission": "अस्मिन् पृष्ठे अधुना किमपि न विद्यते । [[Special:Search/{{PAGENAME}}|एषः शब्दः]] येषु पृष्ठेषु अन्तर्भवति, तानि पृष्ठानि अन्वेष्टुं शक्यन्ते । \n<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}  सम्बद्धेषु पृष्ठेषु अन्वेषणं]\n[{{fullurl:{{FULLPAGENAME}}|action=edit}} अस्य पृष्ठस्य सम्पादनं] वा  शक्यम्</span>.",
-       "missing-revision": "\"{{FULLPAGENAME}}\" à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 #$1 à¤¨à¥\8bपलभà¥\8dयतà¥\8d à¥¤\nयसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\87तिहासà¥\87 à¤ªà¤°à¤¿à¤¸à¤¨à¥\8dधयà¤\83 à¤\95ालातà¥\80तानà¥\8dयà¤\83 à¤¸à¤¨à¥\8dति, à¤¤à¥\87षà¥\81 à¤ªà¥\83षà¥\8dठà¥\87षà¥\81 à¤\8fवà¤\82 à¤­à¤µà¤¤à¤¿ à¥¤\nà¤\85धिà¤\95सà¥\82à¤\9fनाः अत्र प्राप्तुं शक्यते [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} अपाकृतानाम् आवलिः].",
-       "userpage-userdoesnotexist": "\"$1\" à¤\87ति à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤ªà¤\9eà¥\8dà¤\9cिकृतं न विद्यते । अस्य\nनवरचनायै/सम्पादनाय तत् पश्यतु ।",
-       "userpage-userdoesnotexist-view": "\"$1\" à¤\87ति à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤ªà¤\9eà¥\8dà¤\9cिकृतं न विद्यते ।",
-       "blocked-notice-logextract": "अयं प्रयोक्ता सम्प्रति अवरुद्धः वर्तते।\nनूतनतमा अवरोधाभिलेख-प्रविष्टिः सन्दर्भार्थम् अधस्तात् प्रदत्ताऽस्ति:",
+       "missing-revision": "\"{{FULLPAGENAME}}\" à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 #$1 à¤¨à¥\8bपलभà¥\8dयमà¥\8d à¥¤\nयसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\87तिहासà¥\87 à¤ªà¤°à¤¿à¤¸à¤¨à¥\8dधयà¤\83 à¤\95ालातà¥\80ताà¤\83 à¤¸à¤¨à¥\8dति, à¤¤à¥\87षà¥\81 à¤ªà¥\83षà¥\8dठà¥\87षà¥\81 à¤\8fवà¤\82 à¤­à¤µà¤¤à¤¿ à¥¤\nà¤\85धिà¤\95सà¥\82à¤\9aनाः अत्र प्राप्तुं शक्यते [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} अपाकृतानाम् आवलिः].",
+       "userpage-userdoesnotexist": "\"$1\" à¤\87ति à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤ªà¤\9eà¥\8dà¤\9cà¥\80कृतं न विद्यते । अस्य\nनवरचनायै/सम्पादनाय तत् पश्यतु ।",
+       "userpage-userdoesnotexist-view": "\"$1\" à¤\87ति à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤ªà¤\9eà¥\8dà¤\9cà¥\80कृतं न विद्यते ।",
+       "blocked-notice-logextract": "अयं प्रयोक्ता सम्प्रति अवरुद्धः वर्तते ।\nनूतनतमा अवरोधाभिलेख-प्रविष्टिः सन्दर्भार्थम् अधस्तात् प्रदत्ताऽस्ति :",
        "clearyourcache": "<strong>सूचना :</strong> भवता/भवत्या कृतानि सम्पादनानि संरक्ष्य तानि परिवर्तनेषु द्रष्टुं गवेषकस्य पृष्ठस्य पुनरारोपणम् (reload) आवश्यकं भवति ।\n* <strong>Firefox / Safari:</strong> <em>Shift</em>कुड्मलेन सह <em>Reload</em>कुड्मलं नुदतु । \n* <strong>Google Chrome:</strong> <em>Ctrl-Shift-R</em> नोदनेन पुनरारोपणं भवति । (<em>⌘-R</em> इति Mac तन्त्रांशप्रयोक्तॄभ्यः)\n* <strong>Internet Explorer:</strong> <em>Ctrl</em>कुड्मलेन सह <em>Refresh</em>कुड्मलं नुदतु, <em>Ctrl-F5</em> नुदतु वा ।\n* <strong>Opera:</strong> <em>Tools → Preferences</em> इत्यत्र गत्वा कर्तुं शक्नोति ।",
        "usercssyoucanpreview": "'''सूचना :''' CSS नवीनलिप्याः संरक्षणं करणात् प्राक् एतत् \"{{int:showpreview}}\" नुद्य प्रयोगं करोतु ।",
        "userjsyoucanpreview": "'''सूचना :''' JavaScript नवीनलिप्याः संरक्षणं करणात् प्राक् एतत् \"{{int:showpreview}}\" नुद्य प्रयोगं करोतु ।",
        "userjspreview": "<strong>एतत् केवलं योजकस्य JabaScript इत्यस्य प्राग्दृश्यं वर्तते इति स्मरतु । भवता/भवत्या कृतानि परिवर्तनानि एतवता न रक्षितानि !</strong>",
        "sitecsspreview": "<strong>एतत् केवलं CSS इत्यस्य प्राग्दृश्यं वर्तते इति स्मरतु । भवता/भवत्या कृतानि परिवर्तनानि एतवता न रक्षितानि !</strong>",
        "sitejspreview": "<strong>एतत् केवलं JavaScript इत्यस्य प्राग्दृश्यं वर्तते इति स्मरतु । भवता/भवत्या कृतानि परिवर्तनानि एतवता न रक्षितानि !</strong>",
-       "userinvalidcssjstitle": "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना:'''  \"$1\" à¤\87ति à¤¤à¥\8dवà¤\95à¥\8d à¤¨ à¤µà¤¿à¤¦à¥\8dयतà¥\87।\nयà¥\8bà¤\9cà¤\95परिवरà¥\8dतितà¥\87 .css, .js à¤¸à¤\9eà¥\8dà¤\9aिà¤\95à¥\87 à¤²à¤\98à¥\81-à¤\86à¤\99à¥\8dà¤\97ावर्णमालायाः वर्णैः लिख्येते । उदा. {{ns:user}}:Foo/Vector.css एवं न लेखनीयम् । लघुवर्णैः {{ns:user}}:Foo/vector.css एवं लेखनीयम् ।",
+       "userinvalidcssjstitle": "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना:'''  \"$1\" à¤\87ति à¤¤à¥\8dवà¤\95à¥\8d à¤¨ à¤µà¤¿à¤¦à¥\8dयतà¥\87।\nयà¥\8bà¤\9cà¤\95परिवरà¥\8dतितà¥\87 .css, .js à¤¸à¤\9eà¥\8dà¤\9aिà¤\95à¥\87 à¤²à¤\98à¥\81-à¤\86à¤\99à¥\8dà¤\97à¥\8dलवर्णमालायाः वर्णैः लिख्येते । उदा. {{ns:user}}:Foo/Vector.css एवं न लेखनीयम् । लघुवर्णैः {{ns:user}}:Foo/vector.css एवं लेखनीयम् ।",
        "updated": "(नवीकृतम् (updated))",
        "note": "'''सूचना:'''",
        "previewnote": "<strong>एतत् केवलं प्राग्दृश्यं वर्तते इति स्मरतु । भवता/भवत्या कृतानि परिवर्तनानि एतवता न रक्षितानि !</strong>",
        "continue-editing": "सम्पादनविभागं गम्यताम्",
        "previewconflict": "एतत् पृष्ठं यदि भवान्/भवती रक्षिष्यति, तर्हि अत्र प्राग्दृश्ये यथा दृश्यते, तथैव रक्षितं भविष्यति ।",
        "session_fail_preview": "'''क्षम्यताम् ! प्रवेशसूचनायाः लोपत्वात् भवता/भवत्या कृतानि परिवर्तनानि रक्षितुं वयं न अशक्नुम ।\nअधुनापि यदि सा एव समस्या अस्ति, तर्हि [[Special:UserLogout|निर्गमनं कृत्वा]] पुनः प्रविश्यताम् ।",
-       "session_fail_preview_html": "'''à¤\95à¥\8dषमà¥\8dयतामà¥\8d ! à¤ªà¥\8dरवà¥\87शसà¥\82à¤\9aनायाà¤\83 à¤²à¥\8bपतà¥\8dवातà¥\8d à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤\95à¥\83तानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤°à¤\95à¥\8dषितà¥\81à¤\82 à¤µà¤¯à¤\82 à¤¨ à¤\85शà¤\95à¥\8dनà¥\81म à¥¤\n\n<em>à¤\95ारणà¤\82 {{SITENAME}} à¤\87तà¥\8dयतà¥\8dर à¤®à¥\82ल-HTML-समरà¥\8dथितà¤\82 à¤­à¤µà¤¤à¤¿ à¥¤ à¤\85तà¤\83 JavaScript à¤\87तà¥\8dयसà¥\8dमातà¥\8d à¤°à¤\95à¥\8dषितà¥\81à¤\82 à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयà¤\82 à¤¨à¤¿à¤\97à¥\82ढà¤\82 à¤­à¤µà¤¤à¤¿ à¥¤</em>\n\n<strong>भवता/भवतà¥\8dया à¤\95à¥\83तà¤\82 à¤¸à¤®à¥\8dपादनà¤\82 à¤¯à¤¦à¤¿ à¤\89à¤\9aितमसà¥\8dति, à¤¤à¤°à¥\8dहि à¤ªà¥\81नà¤\83 à¤ªà¥\8dरयासà¤\82 à¤\95रà¥\8bतà¥\81 ।</strong>\n\nअधुनापि यदि सा एव समस्या अस्ति, तर्हि [[Special:UserLogout|निर्गमनं कृत्वा]] पुनः प्रविश्यताम् ।",
-       "token_suffix_mismatch": "'''भवता/भवतà¥\8dया à¤\95à¥\83तानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¨à¤¿à¤°à¤¸à¥\8dतानि à¤\95à¥\83तानि à¥¤ à¤\95राणà¤\82 भवतः/भवत्याः गवेषकेन (browser) सम्पादने कानिचन विरामचिह्नानि अस्तव्यस्तकृतानि ।'''\nलेखस्य पाठः असंस्कृतः न स्यात्, अतः भवतः/भवत्याः परिवर्तनानि निरस्तीकृतानि ।\nअयोग्यप्रतिनिधेः (proxy server) उपयोगेनापि कुत्रचित् एतादृशं भवति ।",
+       "session_fail_preview_html": "'''à¤\95à¥\8dषमà¥\8dयतामà¥\8d ! à¤ªà¥\8dरवà¥\87शसà¥\82à¤\9aनायाà¤\83 à¤²à¥\8bपतà¥\8dवातà¥\8d à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤\95à¥\83तानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤°à¤\95à¥\8dषितà¥\81à¤\82 à¤µà¤¯à¤\82 à¤¨ à¤¶à¤\95à¥\8dतवनà¥\8dतà¤\83 à¥¤\n\n<em>à¤\95ारणà¤\82 {{SITENAME}} à¤\87तà¥\8dयतà¥\8dर à¤®à¥\82ल-HTML-समरà¥\8dथितà¤\82 à¤­à¤µà¤¤à¤¿ à¥¤ à¤\85तà¤\83 JavaScript à¤\87तà¥\8dयसà¥\8dमातà¥\8d à¤°à¤\95à¥\8dषितà¥\81à¤\82 à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयà¤\82 à¤¨à¤¿à¤\97à¥\82हितà¤\82 à¤­à¤µà¤¤à¤¿ à¥¤</em>\n\n<strong>भवता/भवतà¥\8dया à¤\95à¥\83तà¤\82 à¤¸à¤®à¥\8dपादनà¤\82 à¤¯à¤¦à¤¿ à¤\89à¤\9aितमसà¥\8dति, à¤¤à¤°à¥\8dहि à¤ªà¥\81नà¤\83 à¤ªà¥\8dरयतà¥\8dयतामà¥\8d ।</strong>\n\nअधुनापि यदि सा एव समस्या अस्ति, तर्हि [[Special:UserLogout|निर्गमनं कृत्वा]] पुनः प्रविश्यताम् ।",
+       "token_suffix_mismatch": "'''भवता/भवतà¥\8dया à¤\95à¥\83तानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¨à¤¿à¤°à¤¸à¥\8dतानि à¤\95à¥\83तानि à¥¤ à¤¯à¤¤à¤\83 भवतः/भवत्याः गवेषकेन (browser) सम्पादने कानिचन विरामचिह्नानि अस्तव्यस्तकृतानि ।'''\nलेखस्य पाठः असंस्कृतः न स्यात्, अतः भवतः/भवत्याः परिवर्तनानि निरस्तीकृतानि ।\nअयोग्यप्रतिनिधेः (proxy server) उपयोगेनापि कुत्रचित् एतादृशं भवति ।",
        "edit_form_incomplete": "'''सम्पादनस्य कतिचनांशाः वितरके (server) न रक्षिताः । भवता/भवत्या कृतानि सम्पादनानि योग्यानि चेत् पुनः प्रयतताम् ।'''",
        "editing": "$1 सम्पाद्यते",
        "creating": "$1 सृज्यते",
        "yourtext": "भवतः/भवत्याः पाठः",
        "storedversion": "रक्षितसंस्करणम्",
        "nonunicodebrowser": "<strong>पूर्वसूचना : भवतः/भवत्याः गवेषकं (browser) Unicode न समर्थयति ।</strong>\nअत्र भवान्/भवती योग्यरीत्या सम्पादनं कर्तुं शक्ष्यति :\nये वर्णाः ASCII कूटे न भविष्यन्ति, ते hexadecimal वर्णत्वेन प्रदर्शयन्ते ।",
-       "editingold": "<strong>पà¥\82रà¥\8dवसà¥\82à¤\9aना : à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\95ालातà¥\80त-à¤\86वà¥\83तà¥\8dतिà¤\82 à¤¸à¤®à¤¾à¤¦à¥\8dयतà¥\87 à¥¤ </strong>\nà¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤¯à¤¦à¤¿ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤°à¤\95à¥\8dषिषà¥\8dयति, à¤¤à¤°à¥\8dहि à¤¸à¤¦à¥\8dयà¤\83 à¤\86वà¥\83तà¥\8dति-तà¤\83 à¤ªà¥\81रा à¤¯à¤¾à¤¨à¤¿ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤\86सनà¥\8d, à¤¤à¤¾à¤¨à¤¿ à¤¨à¤¶à¤¿ष्यन्ति ।",
+       "editingold": "<strong>पà¥\82रà¥\8dवसà¥\82à¤\9aना : à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\95ालातà¥\80त-à¤\86वà¥\83तà¥\8dतिà¤\82 à¤¸à¤®à¤¾à¤¦à¥\8dयतà¥\87 à¥¤ </strong>\nà¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤¯à¤¦à¤¿ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤°à¤\95à¥\8dषिषà¥\8dयति, à¤¤à¤°à¥\8dहि à¤¸à¤¦à¥\8dयà¤\83 à¤\86वà¥\83तà¥\8dति-तà¤\83 à¤ªà¥\81रा à¤¯à¤¾à¤¨à¤¿ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤\86सनà¥\8d, à¤¤à¤¾à¤¨à¤¿ à¤¨à¤\99à¥\8dà¤\95à¥\8dष्यन्ति ।",
        "yourdiff": "भेदाः",
-       "copyrightwarning": "à¤\95à¥\83पया à¤§à¥\8dयानà¤\82 à¤¦à¤¦à¤¾à¤¤à¥\81 à¤¯à¤¤à¥\8d, {{SITENAME}} à¤\87तà¥\8dयतà¥\8dर à¤\95à¥\83तानि à¤¸à¤°à¥\8dवाणि à¤¯à¥\8bà¤\97दानानि $2 à¤\87तà¥\8dयसà¥\8dय à¤¨à¤¿à¤¯à¤¨à¤¾à¤¨à¥\81सारà¤\82 à¤­à¤µà¤¿à¤·à¥\8dयनà¥\8dति à¥¤ (विसà¥\8dतारà¥\87ण à¤\9cà¥\8dà¤\9eातà¥\81à¤\82 $1 à¤\85तà¥\8dर à¤¨à¥\81दतà¥\81)\nभवानà¥\8d/भवतà¥\80 à¤¸à¥\8dवसà¥\8dय à¤¯à¥\8bà¤\97दानà¥\87षà¥\81 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन-पà¥\81नरà¥\8dनिरà¥\8dदà¥\87शन-à¤\86दिनि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¤\9aà¥\87तà¥\8d, à¤\85तà¥\8dर à¤¯à¥\8bà¤\97दानà¤\82 à¤®à¤¾ à¤\95रà¥\8bतà¥\81 à¥¤ (à¤\85तà¥\8dर à¤¤à¥\81 à¤²à¤¿à¤\96ितà¥\87 à¤¨à¤¿à¤°à¤¨à¥\8dतरà¤\82 à¤ªà¤¿à¤°à¤µà¤°à¥\8dतनà¤\82 à¤­à¤µà¤¤à¥\8dयà¥\87व à¤\87ति à¤­à¤¾à¤µà¤\83)\n<br />\n\nà¤\85सà¥\8dमभà¥\8dयà¤\82 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤ªà¥\8dरतिà¤\9cà¥\8dà¤\9eा à¤\95रà¥\8dतवà¥\8dया à¤¯à¤¤à¥\8d, \"à¤\85तà¥\8dर à¤¯à¤¤à¥\8dà¤\95िमपि à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤²à¥\87à¤\96िषà¥\8dयति, à¤¤à¤¤à¥\8d à¤¸à¤°à¥\8dवà¤\82 à¤¸à¥\8dवरà¤\9aितà¤\82, à¤¸à¤¾à¤°à¥\8dवà¤\9cनà¥\80à¤\95à¤\82 à¤\9a à¤­à¤µà¤¿à¤·à¥\8dयति à¥¤ à¤\95à¥\81तसà¥\8dमातà¥\8d à¤¸à¥\8dथानातà¥\8d à¤ªà¥\8dरतिलिपिà¤\95à¥\83तमà¥\8d à¤\85पि à¤¸à¤¾à¤°à¥\8dवà¤\9cनà¥\80à¤\95मà¥\87व à¤¸à¥\8dयातà¥\8d\" à¤\87ति à¥¤ \n<strong>à¤\85नà¥\8dयसà¥\8dय à¤¸à¤°à¥\8dवाधिà¤\95ारानà¥\8dतरà¥\8dà¤\97तà¤\82 (copyright) à¤¯à¤¤à¥\8d à¤­à¤µà¤¤à¤¿, à¤¤à¤¤à¥\8d à¤µà¤¿à¤¨à¤¾ à¤\85नà¥\81मतà¥\8dया à¤\85तà¥\8dर à¤²à¤¿à¤\96तुं न शक्यते ।</strong>",
-       "copyrightwarning2": "à¤\95à¥\83पया à¤§à¥\8dयानà¤\82 à¤¦à¤¦à¤¾à¤¤à¥\81 à¤¯à¤¤à¥\8d, {{SITENAME}} à¤\87तà¥\8dयतà¥\8dर à¤\95à¥\83तानि à¤¸à¤°à¥\8dवाणि à¤¯à¥\8bà¤\97दानानि à¤\85नà¥\8dययà¥\8bà¤\9cà¤\95à¥\88à¤\83 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82, à¤ªà¤°à¤¿à¤°à¥\8dवतितà¥\81à¤\82, à¤¨à¤¿à¤·à¥\8dà¤\95ाशयितà¥\81à¤\82 à¤\9a à¤¶à¤\95à¥\8dयनà¥\8dतà¥\87 à¥¤ \nभवानà¥\8d/भवतà¥\80 à¤¸à¥\8dवसà¥\8dय à¤¯à¥\8bà¤\97दानà¥\87षà¥\81 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन-पà¥\81नरà¥\8dनिरà¥\8dदà¥\87शन-à¤\86दिनि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¤\9aà¥\87तà¥\8d, à¤\85तà¥\8dर à¤¯à¥\8bà¤\97दानà¤\82 à¤®à¤¾ à¤\95रà¥\8bतà¥\81 à¥¤ (à¤\85तà¥\8dर à¤¤à¥\81 à¤²à¤¿à¤\96ितà¥\87 à¤¨à¤¿à¤°à¤¨à¥\8dतरà¤\82 à¤ªà¤¿à¤°à¤µà¤°à¥\8dतनà¤\82 à¤­à¤µà¤¤à¥\8dयà¥\87व à¤\87ति à¤­à¤¾à¤µà¤\83)\n<br />\n\nà¤\85सà¥\8dमभà¥\8dयà¤\82 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤ªà¥\8dरतिà¤\9cà¥\8dà¤\9eा à¤\95रà¥\8dतवà¥\8dया à¤¯à¤¤à¥\8d, \"à¤\85तà¥\8dर à¤¯à¤¤à¥\8dà¤\95िमपि à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤²à¥\87à¤\96िषà¥\8dयति, à¤¤à¤¤à¥\8d à¤¸à¤°à¥\8dवà¤\82 à¤¸à¥\8dवरà¤\9aितà¤\82, à¤¸à¤¾à¤°à¥\8dवà¤\9cनà¥\80à¤\95à¤\82 à¤\9a à¤­à¤µà¤¿à¤·à¥\8dयति à¥¤ à¤\95à¥\81तसà¥\8dमातà¥\8d à¤¸à¥\8dथानातà¥\8d à¤ªà¥\8dरतिलिपिà¤\95à¥\83तमà¥\8d à¤\85पि à¤¸à¤¾à¤°à¥\8dवà¤\9cनà¥\80à¤\95मà¥\87व à¤¸à¥\8dयातà¥\8d\" à¤\87ति à¥¤ \n<strong>à¤\85नà¥\8dयसà¥\8dय à¤¸à¤°à¥\8dवाधिà¤\95ारानà¥\8dतरà¥\8dà¤\97तà¤\82 (copyright) à¤¯à¤¤à¥\8d à¤­à¤µà¤¤à¤¿, à¤¤à¤¤à¥\8d à¤µà¤¿à¤¨à¤¾ à¤\85नà¥\81मतà¥\8dया à¤\85तà¥\8dर à¤²à¤¿à¤\96तुं न शक्यते ।</strong>",
+       "copyrightwarning": "à¤\95à¥\83पया à¤§à¥\8dयानà¤\82 à¤¦à¤¦à¤¾à¤¤à¥\81 à¤¯à¤¤à¥\8d, {{SITENAME}} à¤\87तà¥\8dयतà¥\8dर à¤\95à¥\83तानि à¤¸à¤°à¥\8dवाणि à¤¯à¥\8bà¤\97दानानि $2 à¤\87तà¥\8dयसà¥\8dय à¤¨à¤¿à¤¯à¤¨à¤¾à¤¨à¥\81सारà¤\82 à¤­à¤µà¤¿à¤·à¥\8dयनà¥\8dति à¥¤ (विसà¥\8dतारà¥\87ण à¤\9cà¥\8dà¤\9eातà¥\81à¤\82 $1 à¤\85तà¥\8dर à¤¨à¥\81दतà¥\81)\nभवानà¥\8d/भवतà¥\80 à¤¸à¥\8dवसà¥\8dय à¤¯à¥\8bà¤\97दानà¥\87षà¥\81 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन-पà¥\81नरà¥\8dनिरà¥\8dदà¥\87शन-à¤\86दà¥\80नि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¤\9aà¥\87तà¥\8d, à¤\85तà¥\8dर à¤¯à¥\8bà¤\97दानà¤\82 à¤®à¤¾ à¤\95रà¥\8bतà¥\81 à¥¤ (à¤\85तà¥\8dर à¤¤à¥\81 à¤²à¤¿à¤\96ितà¥\87 à¤¨à¤¿à¤°à¤¨à¥\8dतरà¤\82 à¤ªà¤¿à¤°à¤µà¤°à¥\8dतनà¤\82 à¤­à¤µà¤¤à¥\8dयà¥\87व à¤\87ति à¤­à¤¾à¤µà¤\83)\n<br />\n\nà¤\85सà¥\8dमभà¥\8dयà¤\82 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤ªà¥\8dरतिà¤\9cà¥\8dà¤\9eा à¤\95रà¥\8dतवà¥\8dया à¤¯à¤¤à¥\8d, \"à¤\85तà¥\8dर à¤¯à¤¤à¥\8dà¤\95िमपि à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤²à¥\87à¤\96िषà¥\8dयति, à¤¤à¤¤à¥\8d à¤¸à¤°à¥\8dवà¤\82 à¤¸à¥\8dवरà¤\9aितà¤\82, à¤¸à¤¾à¤°à¥\8dवà¤\9cनिà¤\95à¤\82 à¤\9a à¤­à¤µà¤¿à¤·à¥\8dयति à¥¤ à¤\95à¥\81तशà¥\8dà¤\9aितà¥\8d à¤¸à¥\8dथानातà¥\8d à¤ªà¥\8dरतिलिपिà¤\95à¥\83तमà¥\8d à¤\85पि à¤¸à¤¾à¤°à¥\8dवà¤\9cनिà¤\95मà¥\87व à¤¸à¥\8dयातà¥\8d\" à¤\87ति à¥¤ \n<strong>à¤\85नà¥\8dयसà¥\8dय à¤¸à¤°à¥\8dवाधिà¤\95ारानà¥\8dतरà¥\8dà¤\97तà¤\82 (copyright) à¤¯à¤¤à¥\8d à¤­à¤µà¤¤à¤¿, à¤¤à¤¤à¥\8d à¤µà¤¿à¤¨à¤¾ à¤\85नà¥\81मतà¥\8dया à¤\85तà¥\8dर à¤²à¥\87à¤\96ितुं न शक्यते ।</strong>",
+       "copyrightwarning2": "à¤\95à¥\83पया à¤§à¥\8dयानà¤\82 à¤¦à¤¦à¤¾à¤¤à¥\81 à¤¯à¤¤à¥\8d, {{SITENAME}} à¤\87तà¥\8dयतà¥\8dर à¤\95à¥\83तानि à¤¸à¤°à¥\8dवाणि à¤¯à¥\8bà¤\97दानानि à¤\85नà¥\8dययà¥\8bà¤\9cà¤\95à¥\88à¤\83 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82, à¤ªà¤°à¤¿à¤°à¥\8dवतितà¥\81à¤\82, à¤¨à¤¿à¤·à¥\8dà¤\95ासयितà¥\81à¤\82 à¤\9a à¤¶à¤\95à¥\8dयनà¥\8dतà¥\87 à¥¤ \nभवानà¥\8d/भवतà¥\80 à¤¸à¥\8dवसà¥\8dय à¤¯à¥\8bà¤\97दानà¥\87षà¥\81 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतन-पà¥\81नरà¥\8dनिरà¥\8dदà¥\87शन-à¤\86दिनि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dनà¥\8bति à¤\9aà¥\87तà¥\8d, à¤\85तà¥\8dर à¤¯à¥\8bà¤\97दानà¤\82 à¤®à¤¾ à¤\95रà¥\8bतà¥\81 à¥¤ (à¤\85तà¥\8dर à¤¤à¥\81 à¤²à¤¿à¤\96ितà¥\87 à¤¨à¤¿à¤°à¤¨à¥\8dतरà¤\82 à¤ªà¤¿à¤°à¤µà¤°à¥\8dतनà¤\82 à¤­à¤µà¤¤à¥\8dयà¥\87व à¤\87ति à¤­à¤¾à¤µà¤\83)\n<br />\n\nà¤\85सà¥\8dमभà¥\8dयà¤\82 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤ªà¥\8dरतिà¤\9cà¥\8dà¤\9eा à¤\95रà¥\8dतवà¥\8dया à¤¯à¤¤à¥\8d, \"à¤\85तà¥\8dर à¤¯à¤¤à¥\8dà¤\95िमपि à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤²à¥\87à¤\96िषà¥\8dयति, à¤¤à¤¤à¥\8d à¤¸à¤°à¥\8dवà¤\82 à¤¸à¥\8dवरà¤\9aितà¤\82, à¤¸à¤¾à¤°à¥\8dवà¤\9cनिà¤\95à¤\82 à¤\9a à¤­à¤µà¤¿à¤·à¥\8dयति à¥¤ à¤\95à¥\81तशà¥\8dà¤\9aितà¥\8d à¤¸à¥\8dथानातà¥\8d à¤ªà¥\8dरतिलिपà¥\80à¤\95à¥\83तमà¥\8d à¤\85पि à¤¸à¤¾à¤°à¥\8dवà¤\9cनिà¤\95मà¥\87व à¤¸à¥\8dयातà¥\8d\" à¤\87ति à¥¤ \n<strong>à¤\85नà¥\8dयसà¥\8dय à¤¸à¤°à¥\8dवाधिà¤\95ारानà¥\8dतरà¥\8dà¤\97तà¤\82 (copyright) à¤¯à¤¤à¥\8d à¤­à¤µà¤¤à¤¿, à¤¤à¤¤à¥\8d à¤µà¤¿à¤¨à¤¾ à¤\85नà¥\81मतà¥\8dया à¤\85तà¥\8dर à¤²à¥\87à¤\96ितुं न शक्यते ।</strong>",
        "longpageerror": "<strong>दोषः : भवता/भवत्या लिखितः पाठः  {{PLURAL:$1|सहाष्टकं|$1 सहाष्टकानि}} दीर्घः अस्ति । एषः पाठः बृह्त्तमसीमया अपेक्षया {{PLURAL:$2|सहाष्टकं|$2 सहाष्टकानि}} दीर्घः अस्ति ।(सहस्राष्टकानि (kilobytes) इत्यस्य सङ्क्षेपः सहाष्टकम्)</strong>\nएतत् रक्षितुं न शक्यते ।",
        "readonlywarning": "<strong>पूर्वसूचना : दत्तांशः (database) किलितः अस्ति । अतः अधुना भवान्/भवती स्वस्य सम्पादनं रक्षितुं न शक्नोति ।</strong>\nस्वस्य परिवर्तितस्य लेखस्य .txt .doc वा सञ्चिकां निर्माय किञ्चित् कालानन्तरं रक्षतु । \nदत्तांश-किलनस्य कारणं प्रबन्धकेन दत्तं यत्, : $1",
        "protectedpagewarning": "'''पूर्वसूचना : पृष्ठमेतत् संरक्षितं वर्तते । अतः केवलं प्रबन्धकाः अत्र सम्पादनं कर्तुं शक्नुवन्ति ।'''\n\nसद्यःकालीना संरक्षितावलिः (log) अधः दत्ता अस्ति :",
-       "semiprotectedpagewarning": "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना : à¤ªà¥\83षà¥\8dठमà¥\87ततà¥\8d à¤¸à¤\82रà¤\95à¥\8dषितà¤\82 à¤µà¤°à¥\8dततà¥\87 à¥¤ à¤\85तà¤\83 à¤\95à¥\87वलà¤\82 à¤ªà¤\9eà¥\8dà¤\9cिकृतयोजकाः अत्र सम्पादनं कर्तुं शक्नुवन्ति ।'''\n\nसद्यःकालीना संरक्षितावलिः (log) अधः दत्ता अस्ति :",
+       "semiprotectedpagewarning": "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना : à¤ªà¥\83षà¥\8dठमà¥\87ततà¥\8d à¤¸à¤\82रà¤\95à¥\8dषितà¤\82 à¤µà¤°à¥\8dततà¥\87 à¥¤ à¤\85तà¤\83 à¤\95à¥\87वलà¤\82 à¤ªà¤\9eà¥\8dà¤\9cà¥\80कृतयोजकाः अत्र सम्पादनं कर्तुं शक्नुवन्ति ।'''\n\nसद्यःकालीना संरक्षितावलिः (log) अधः दत्ता अस्ति :",
        "cascadeprotectedwarning": "'''पूर्वसूचना :''' पृष्ठमेतत् संरक्षितं वर्तते । अतः केवलं प्रबन्धकाः अत्र सम्पादनं कर्तुं शक्नुवन्ति ।\nनिम्ननियमान्तर्गतम् एतत्{{PLURAL:$1|पृष्ठं रक्षितं|पृष्ठानि रक्षितानि}}:",
        "titleprotectedwarning": "'''पूर्वसूचना : एतत् पृष्ठं संरक्षितम् अस्ति । अतः अस्य सम्पादनं कर्तुं [[Special:ListGroupRights|विशेषाधिकारः]] अपेक्ष्यते ।'''\nसद्यःकालीना संरक्षितावलिः (log) अधः दत्ता अस्ति :",
        "templatesused": "अस्मिन् पृष्ठे प्रयुक्त{{PLURAL:$1|फलकम्|फलकानि}}:",
        "templatesusedsection": "अस्मिन् विभागे प्रयुक्त{{PLURAL:$1|फलकम्|फलकानि}}:",
        "template-protected": "(संरक्षितम्)",
        "template-semiprotected": "अर्धसंरक्षितम्",
-       "hiddencategories": "à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 {{PLURAL:$1|1 à¤¨à¤¿à¤\97à¥\82ढà¥\87 à¤µà¤°à¥\8dà¤\97à¥\87 |$1 à¤¨à¤¿à¤\97à¥\82ढेषु वर्गेषु}} अन्तर्भवति :",
-       "nocreatetext": "{{SITENAME}} जालस्थानेऽस्मिन् नवीनपृष्ठनिर्मातुम् अनुमतिः न विद्यते ।\nभवान्/भवती प्रतिगत्वा विद्यमानं पृष्ठं सम्पादयतु शक्नोति ।  सम्पादयितुं [[Special:UserLogin|प्रविश्यताम् सदस्यता प्राप्यताम् वा]].",
-       "nocreate-loggedin": "भवतः/भवत्याः पार्श्वे नवीनपृष्ठं रचितुम् अनुमतिः नास्ति ।",
+       "hiddencategories": "à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 {{PLURAL:$1|1 à¤¨à¤¿à¤\97à¥\82हितà¥\87 à¤µà¤°à¥\8dà¤\97à¥\87 |$1 à¤¨à¤¿à¤\97à¥\82हितेषु वर्गेषु}} अन्तर्भवति :",
+       "nocreatetext": "{{SITENAME}} जालस्थानेऽस्मिन् नवीनपृष्ठनिर्मातुम् अनुमतिः न विद्यते ।\nभवान्/भवती प्रति गत्वा विद्यमानं पृष्ठं सम्पादयतु शक्नोति ।  सम्पादयितुं [[Special:UserLogin|प्रविश्यताम् सदस्यता प्राप्यताम् वा]].",
+       "nocreate-loggedin": "भवतà¤\83/भवतà¥\8dयाà¤\83 à¤ªà¤¾à¤°à¥\8dशà¥\8dवà¥\87 à¤¨à¤µà¥\80नपà¥\83षà¥\8dठà¤\82 à¤°à¤\9aयितà¥\81मà¥\8d à¤\85नà¥\81मतिà¤\83 à¤¨à¤¾à¤¸à¥\8dति à¥¤",
        "sectioneditnotsupported-title": "विभागस्य सम्पादनं शक्यं नास्ति",
        "sectioneditnotsupported-text": "पृष्ठेऽस्मिन् विभागसम्पादनं शक्यं नास्ति ।",
        "permissionserrors": "अनुमतिदोषः",
        "permissionserrorstext-withaction": "$1 निम्नकारणत्वात्  $2 सम्पादनस्य अनुमतिः नास्ति ।\n{{PLURAL:$1|कारणम्|कारणानि}}:",
        "recreate-moveddeleted-warn": "'''पूर्वसूचना: पूर्वम् अपाकृतं पृष्टं भवता रच्यमानम् अस्ति ।'''\nअस्य पृष्ठस्य सम्पादनं करणात् प्राक् गभीरतया चिन्तनं करोतु ।\nअस्य पृष्ठस्य निर्माणं न्यायसङ्गतम् इति भवतः/भवत्याः मतमस्ति चेत्, अत्र परिवर्तनं करोतु । सौकर्यार्थं पृष्ठ-अपाकरणस्य प्राक्तनसम्पादनस्य आवलिः अत्र दीयते ।",
        "moveddeleted-notice": "इदं पृष्ठम् अपाकृतम् अस्ति।\nअस्य अपाकरणस्य, स्थानान्तरणस्य च विवरणम् अधः प्रदत्तम् ।",
-       "log-fulllog": "पà¥\82रà¥\8dणसà¤\82रà¤\95à¥\8dषितावलिà¤\82 दृश्यताम्",
+       "log-fulllog": "पà¥\82रà¥\8dणसà¤\82रà¤\95à¥\8dषितावलिà¤\83 दृश्यताम्",
        "edit-hook-aborted": "hook द्वारा सम्पादनक्रिया मध्ये एव स्थगिता । स्थगनस्य कारणं न दत्तम् ।",
        "edit-gone-missing": "अस्मिन् पृष्ठे परिवर्तनं नाभूत् ।\nएतत् पृष्ठं पुरा एव केनापि अपाकृतम् इति भाति ।",
        "edit-conflict": "सम्पादनयोः अन्तर्विरोधः ।",
        "edit-no-change": "भवता/भवत्या कृतं सम्पादम् अवगणितम् । कारणं लेखे न किमपि परिवर्तनं जातमस्ति ।",
        "postedit-confirmation-created": "नूतनपृष्ठस्य रचना अभवत् ।",
-       "postedit-confirmation-restored": "à¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤ªà¥\81नà¤\83 à¤¸à¤\99à¥\8dà¤\97à¥\8dरहितम् ।",
+       "postedit-confirmation-restored": "à¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤ªà¥\81नà¤\83 à¤¸à¤\99à¥\8dà¤\97à¥\83हà¥\80तम् ।",
        "postedit-confirmation-saved": "सम्पादनं रक्षितम् ।",
        "edit-already-exists": "नूतनपृष्ठस्य निर्माणं नाभूत् ।\nपूर्वस्मादेव एतत् पृष्ठं विद्यते ।",
        "defaultmessagetext": "मूलसन्देशः",
        "content-failed-to-parse": "$1 कृते $2 इत्यस्य विभाजनं विफलम् अभवत् । दोषः : $3",
        "invalid-content-data": "अयोग्यः लेखः",
        "content-not-allowed-here": "[[$2]] पृष्ठे \"$1\" सामग्री स्थापितुम् अनुमतिः नास्ति",
-       "editwarning-warning": "à¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤¤à¥\8dयà¤\95à¥\8dतवा à¤¯à¤¦à¤¿ à¤\97मिषà¥\8dयति, à¤¤à¤°à¥\8dहि à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤\95à¥\83तसà¥\8dय à¤¸à¤®à¥\8dपादनसà¥\8dय à¤°à¤\95à¥\8dषणà¤\82 à¤¨ à¤­à¤µà¤¿à¤·à¥\8dयति à¥¤\n\nभवता/भवतà¥\8dया à¤¯à¤¦à¤¿ à¤ªà¥\8dरवà¥\87शà¤\83 à¤ªà¥\8dरापà¥\8dतà¤\83 à¤\85सà¥\8dति, à¤¤à¤°à¥\8dहि à¤\8fषा à¤¸à¥\82à¤\9aना à¤\85तà¥\8dर \"{{int:prefs-editing}}\" à¤¨à¤¿à¤\97à¥\82ढितुं शक्यते ।",
+       "editwarning-warning": "à¤\8fततà¥\8d à¤ªà¥\83षà¥\8dठà¤\82 à¤¤à¥\8dयà¤\95à¥\8dतवा à¤¯à¤¦à¤¿ à¤\97मिषà¥\8dयति, à¤¤à¤°à¥\8dहि à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤\95à¥\83तसà¥\8dय à¤¸à¤®à¥\8dपादनसà¥\8dय à¤°à¤\95à¥\8dषणà¤\82 à¤¨ à¤­à¤µà¤¿à¤·à¥\8dयति à¥¤\n\nभवता/भवतà¥\8dया à¤¯à¤¦à¤¿ à¤ªà¥\8dरवà¥\87शà¤\83 à¤ªà¥\8dरापà¥\8dतà¤\83 à¤\85सà¥\8dति, à¤¤à¤°à¥\8dहि à¤\8fषा à¤¸à¥\82à¤\9aना à¤\85तà¥\8dर \"{{int:prefs-editing}}\" à¤¨à¤¿à¤\97à¥\82हितुं शक्यते ।",
        "editpage-notsupportedcontentformat-title": "लेखस्य प्रारूपम् अयोग्यम्",
        "editpage-notsupportedcontentformat-text": "लेखस्य सामग्र्याः $1 इति प्रारूपं $2 सामग्री-उदाहरणानुगुणं नास्ति ।",
        "content-model-wikitext": "विकिपाठः",
        "parser-unstrip-loop-warning": "Unstrap परिक्रमः (loop) प्राप्तः",
        "parser-unstrip-recursion-limit": "Unstrip इत्यस्य प्रत्यावर्तनस्य (recursion) सीमा समाप्ता ($1)",
        "converter-manual-rule-error": "मानवीये भाषापरिवर्तने दोषः दृष्टः ।",
-       "undo-success": "à¤\8fततà¥\8d à¤¸à¤®à¥\8dपादनà¤\82 à¤ªà¥\82रà¥\8dववतà¥\8d à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dयतà¥\87 à¥¤\nà¤\95à¥\83पया à¤\85धà¤\83 à¤¦à¤¤à¥\8dतयà¥\8bà¤\83 à¤¤à¥\81लनाà¤\82 à¤\95à¥\83तà¥\8dवा à¤¯à¤¤à¥\8d à¤\86वशà¥\8dयà¤\95à¤\82, à¤¤à¤¤à¥\8d à¤¸à¤\82रà¤\95à¥\8dषतà¥\81 à¥¤ à¤¤à¤¤à¤\83 à¤ªà¥\82रà¥\8dववतà¥\8d-à¤\95रणपà¥\8dरà¤\95à¥\8dरिया à¤¸à¤®à¤¾à¤ªà¥\8dतà¤\82 à¤­à¤µà¤¿à¤·à¥\8dयति ।",
-       "undo-failure": "समà¥\8dपादनà¤\82 à¤ªà¥\82रà¥\8dववतà¥\8d à¤\95रà¥\8dतà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dयतà¥\87 à¥¤ à¤\95ारणà¤\82 मध्ये परस्परविपरितानि सम्पादनानि अभवन् ।",
-       "undo-norev": "समà¥\8dपादनमिदà¤\82 à¤ªà¥\82रà¥\8dववतà¥\8d à¤\95रà¥\8dतà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dयतà¥\87 à¥¤ à¤\95ारणà¤\82 सम्पादनम् पूर्वमेव अपाकृतं अथवा न विद्यते ।",
+       "undo-success": "à¤\8fततà¥\8d à¤¸à¤®à¥\8dपादनà¤\82 à¤ªà¥\82रà¥\8dववतà¥\8d à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dयतà¥\87 à¥¤\nà¤\95à¥\83पया à¤\85धà¤\83 à¤¦à¤¤à¥\8dतयà¥\8bà¤\83 à¤¤à¥\81लनाà¤\82 à¤\95à¥\83तà¥\8dवा à¤¯à¤¤à¥\8d à¤\86वशà¥\8dयà¤\95à¤\82, à¤¤à¤¤à¥\8d à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\82 à¤¸à¤\82रà¤\95à¥\8dषतà¥\81 à¤\9a à¥¤ à¤¤à¤¤à¤\83 à¤ªà¥\82रà¥\8dववतà¥\8d-à¤\95रणपà¥\8dरà¤\95à¥\8dरिया à¤¸à¤®à¤¾à¤ªà¥\8dयतामà¥\8d ।",
+       "undo-failure": "समà¥\8dपादनà¤\82 à¤ªà¥\82रà¥\8dववतà¥\8d à¤\95रà¥\8dतà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dयतà¥\87 à¥¤ à¤¯à¤¤à¤\83 मध्ये परस्परविपरितानि सम्पादनानि अभवन् ।",
+       "undo-norev": "समà¥\8dपादनमिदà¤\82 à¤ªà¥\82रà¥\8dववतà¥\8d à¤\95रà¥\8dतà¥\81à¤\82 à¤¨ à¤¶à¤\95à¥\8dयतà¥\87 à¥¤ à¤¯à¤¤à¤\83 सम्पादनम् पूर्वमेव अपाकृतं अथवा न विद्यते ।",
        "undo-nochange": "पूर्वमेव एतत् सम्पादनं पूर्ववत् कृतं स्यात् ।",
        "undo-summary": "[[Special:Contributions/$2|$2]] ([[User talk:$2|talk]]) द्वारा कृता  $1 पूर्ववत्-प्रक्रिया निरस्तीक्रियताम् ।",
-       "undo-summary-username-hidden": "निà¤\97à¥\82ढितयोजकद्वारा कृता  $1 पूर्ववत्-प्रक्रिया निरस्तीक्रियताम् ।",
+       "undo-summary-username-hidden": "निà¤\97à¥\82हितयोजकद्वारा कृता  $1 पूर्ववत्-प्रक्रिया निरस्तीक्रियताम् ।",
        "cantcreateaccounttitle": "सदस्यता प्राप्तुं न शक्यते",
        "cantcreateaccount-text": "(<strong>$1</strong>) इत्यस्य संविदः (IP) कृते सदस्यता प्राप्तुं न शक्यते । कारणं [[User:$3|$3]] द्वारा सा संवित्सङ्ख्या प्रतिबन्धिता अस्ति । \n\n$3 इत्यनेन कारणं दत्तं यत्, <em>$2</em>",
        "cantcreateaccount-range-text": "सदस्यताप्राप्तेः सीमा-आक्रान्तासु '''$1''' अन्तर्जालसंवित्सु (IP) भवतः/भवत्याः अन्तर्जालसंवद् ('''$4''') अन्तर्भवति । अतः [[User:$3|$3]] द्वारा भवतः/भवत्याः अन्तर्जालसंविद् प्रतिबन्धिता ।\n\n$3 इत्यनेन कारणं दत्तं यत्, ''$2''",
        "rev-deleted-comment": "(सम्पादनस्य सारः अपाकृतः)",
        "rev-deleted-user": "(प्रयोक्तृनाम अपाकृतमस्ति)",
        "rev-deleted-event": "(संरक्षिताऽऽवल्यः(log) अपाकृताः)",
-       "rev-deleted-user-contribs": "[पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¥\8d à¤µà¤¾ à¤\85पाà¤\95à¥\83तमà¥\8d - à¤¯à¥\8bà¤\97दानाऽऽवलà¥\8dयामà¥\8d à¤\8fतानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¨à¤¿à¤\97à¥\82ढितानि सन्ति ।]",
+       "rev-deleted-user-contribs": "[पà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\83नाम à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¥\8d à¤µà¤¾ à¤\85पाà¤\95à¥\83तमà¥\8d - à¤¯à¥\8bà¤\97दानाऽऽवलà¥\8dयामà¥\8d à¤\8fतानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¨à¤¿à¤\97à¥\82हितानि सन्ति ।]",
        "rev-deleted-text-permission": "एतस्य पृष्ठस्य संस्करणम् <strong>अपाकृतमस्ति</strong> ।\nविस्तृतं ज्ञानम् अत्र प्राप्तुं शक्नोति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].",
        "rev-deleted-text-unhide": "एतस्य पृष्ठस्य संस्करणम् <strong>अपाकृतमस्ति</strong> ।\nविस्तृतं ज्ञानम् अत्र प्राप्तुं शक्नोति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
        "rev-suppressed-text-unhide": "एतस्य पृष्ठस्य संस्करणम् <strong>निषिद्धमस्ति</strong> ।\nविस्तृतं ज्ञानम् अत्र प्राप्तुं शक्नोति... [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log]. \n\nयदि इच्छति, तर्हि अत्रापि [$1 view this revision] द्रष्टुं शक्नोति ।",
        "rev-showdeleted": "दर्श्यताम्",
        "revisiondelete": "संस्करणानि निष्कासयतु/पुनस्स्थापयतु",
        "revdelete-nooldid-title": "अयोग्यलक्ष्यस्य संशोधनम्",
-       "revdelete-nooldid-text": "à¤\8fततà¥\8d à¤\95ारà¥\8dयà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤²à¤\95à¥\8dषà¥\8dय à¤¨ à¤¨à¤¿à¤°à¥\8dधारितमà¥\8d à¤\8fततà¥\8d à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 à¤¨ à¤­à¤µà¥\87तà¥\8d à¤µà¤¾ à¥¤ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\8fततà¥\8d à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 à¤¨à¤¿à¤\97à¥\82ढितुम् प्रयतति इत्यपि शक्यम् ।",
+       "revdelete-nooldid-text": "à¤\8fततà¥\8d à¤\95ारà¥\8dयà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤²à¤\95à¥\8dषà¥\8dय à¤¨ à¤¨à¤¿à¤°à¥\8dधारितमà¥\8d à¤\8fततà¥\8d à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 à¤¨ à¤­à¤µà¥\87तà¥\8d à¤µà¤¾ à¥¤ à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\8fततà¥\8d à¤¸à¤\82सà¥\8dà¤\95रणà¤\82 à¤¨à¤¿à¤\97à¥\82हितुम् प्रयतति इत्यपि शक्यम् ।",
        "revdelete-no-file": "निर्दिष्टा सञ्चिका न विद्यते ।",
        "revdelete-show-file-confirm": "$2 दिनाङ्कस्य  $3 समयपर्यन्तस्य  \"<nowiki>$1</nowiki>\" इत्यस्याः अपाकृतसञ्चिकायाः संस्करणाऽऽवलिं भवान्/भवती निश्चयेन द्रष्टुम् ईप्सति ?",
        "revdelete-show-file-submit": "आम्",
        "revdelete-text-text": "पृष्ठस्य इतिहासे अधुनापि अपाकृतानि संस्करणानि द्रष्टुं शक्यन्ते । परन्तु सामान्ययोजकेभ्यः तत्र परिवर्तनम् अशक्यम् ।",
        "revdelete-text-file": "सञ्चिकायाः इतिहासे अधुनापि अपाकृतानां सञ्चिकानां संस्करणानि द्रष्टुं शक्यन्ते । परन्तु सामान्ययोजकेभ्यः तत्र परिवर्तनम् अशक्यम् ।",
        "logdelete-text": "संरक्षिताऽऽवलीनां(log) संस्करणानि संरक्षिताऽऽवल्यां द्रष्टुं शक्यन्ते । परन्तु सामान्ययोजकेभ्यः तत्र परिवर्तनम् अशक्यम् ।",
-       "revdelete-confirm": "à¤\8fतसà¥\8dयाà¤\83 [[{{MediaWiki:Policy-url}}|नà¥\80तà¥\87à¤\83]] à¤\85नà¥\8dतरà¥\8dà¤\97तà¤\82 भवता/भवत्या एतत् कार्यं गभीरतया क्रियमाणम् अस्ति इत्यस्य पुष्टतां करोतु ।",
-       "revdelete-suppress-text": "<strong>à¤\95à¥\87वलà¤\82</strong> à¤¨à¤¿à¤®à¥\8dनà¤\95ारणà¥\87भà¥\8dयà¤\83 à¤¨à¤¿à¤·à¥\87धà¤\83 à¤¯à¥\8bà¤\97à¥\8dयà¤\83....\n१ à¤­à¤¯à¥\8bतà¥\8dपादà¤\95माहितà¥\80 à¤¸à¥\8dयातà¥\8d\n२ à¤µà¥\88यà¤\95à¥\8dतिà¤\95माहितà¥\80 à¤¸à¥\8dयातà¥\8d\n३ <em>à¤\97à¥\83हसà¤\99à¥\8dà¤\95à¥\87तà¤\83, à¤¦à¥\82रभाषसà¤\99à¥\8dà¤\95à¥\87तà¤\83, à¤°à¤¾à¤·à¥\8dà¤\9fà¥\8dरियपरिà¤\9aयपतà¥\8dरसà¥\8dय à¤\85à¤\99à¥\8dà¤\95à¤\83 à¤\87तà¥\8dयादà¥\80नि à¤®à¤¾à¤¹à¤¿à¤¤à¤¯ः स्युः ।</em>",
-       "revdelete-legend": "दà¥\83शà¥\8dयपà¥\8dरतिबनà¥\8dधà¤\82 à¤¨à¤¿à¤¶à¥\8dà¤\9aितà¤\82 à¤\95रà¥\8bतà¥\81",
-       "revdelete-hide-text": "सà¤\82सà¥\8dà¤\95रणसà¥\8dथà¤\82 à¤²à¥\87à¤\96नà¤\82 (text)",
+       "revdelete-confirm": "à¤\8fतसà¥\8dयाà¤\83 [[{{MediaWiki:Policy-url}}|नà¥\80तà¥\87à¤\83]] à¤\85नà¥\8dतरà¥\8dà¤\97ततया भवता/भवत्या एतत् कार्यं गभीरतया क्रियमाणम् अस्ति इत्यस्य पुष्टतां करोतु ।",
+       "revdelete-suppress-text": "<strong>à¤\95à¥\87वलà¤\82</strong> à¤¨à¤¿à¤®à¥\8dनà¤\95ारणà¥\87भà¥\8dयà¤\83 à¤¨à¤¿à¤·à¥\87धà¤\83 à¤¯à¥\8bà¤\97à¥\8dयà¤\83....\n१ à¤­à¤¯à¥\8bतà¥\8dपादà¤\95सà¥\82à¤\9aनाधारà¤\83 à¤¸à¥\8dयातà¥\8d\n२ à¤µà¥\88यà¤\95à¥\8dतिà¤\95सà¥\82à¤\9aनाधारà¤\83 à¤¸à¥\8dयातà¥\8d\n३ <em>à¤\97à¥\83हसà¤\99à¥\8dà¤\95à¥\87तà¤\83, à¤¦à¥\82रभाषसà¤\99à¥\8dà¤\95à¥\87तà¤\83, à¤°à¤¾à¤·à¥\8dà¤\9fà¥\8dरियपरिà¤\9aयपतà¥\8dरसà¥\8dय à¤\85à¤\99à¥\8dà¤\95à¤\83 à¤\87तà¥\8dयादयà¤\83 à¤¸à¥\82à¤\9aनाधाराः स्युः ।</em>",
+       "revdelete-legend": "दà¥\83शà¥\8dयपà¥\8dरतिबनà¥\8dधà¤\83 à¤¨à¤¿à¤¶à¥\8dà¤\9aà¥\80यतामà¥\8d",
+       "revdelete-hide-text": "सà¤\82सà¥\8dà¤\95रणसà¥\8dथà¤\83 à¤ªà¤¾à¤ à¤\83 (text)",
        "revdelete-hide-image": "सञ्चिकाधेयं गोप्यताम्",
        "revdelete-hide-name": "प्रक्रियां, लक्ष्यं च गोप्यताम्",
-       "revdelete-hide-comment": "समà¥\8dपादनसारà¤\82 गोप्यताम्",
+       "revdelete-hide-comment": "समà¥\8dपादनसारà¤\83 गोप्यताम्",
        "revdelete-hide-user": "योजकस्य प्रयोकतृनाम/अन्तर्जालसंविद् (IP)",
-       "revdelete-hide-restricted": "पà¥\8dरबनà¥\8dधà¤\95à¥\87भà¥\8dयà¤\83, à¤\85नà¥\8dयà¥\87भà¥\8dयशà¥\8dà¤\9a à¤®à¤¾à¤¹à¤¿à¤¤à¥\80 गोप्यताम्",
+       "revdelete-hide-restricted": "पà¥\8dरबनà¥\8dधà¤\95à¥\87भà¥\8dयà¤\83, à¤\85नà¥\8dयà¥\87भà¥\8dयशà¥\8dà¤\9a à¤¸à¥\82à¤\9aनाधारà¤\83 गोप्यताम्",
        "revdelete-radio-same": "(मा परिवर्त्यताम्)",
-       "revdelete-radio-set": "निà¤\97à¥\82ढितम्",
+       "revdelete-radio-set": "निà¤\97à¥\82हितम्",
        "revdelete-radio-unset": "प्रत्यक्षम्",
-       "revdelete-suppress": "पà¥\8dरबनà¥\8dधà¤\95à¥\87भà¥\8dयà¤\83, à¤\85नà¥\8dयà¥\87भà¥\8dयशà¥\8dà¤\9a à¤®à¤¾à¤¹à¤¿à¤¤à¥\80 गोप्यताम्",
+       "revdelete-suppress": "पà¥\8dरबनà¥\8dधà¤\95à¥\87भà¥\8dयà¤\83, à¤\85नà¥\8dयà¥\87भà¥\8dयशà¥\8dà¤\9a à¤¸à¥\82à¤\9aनाधारà¤\83 गोप्यताम्",
        "revdelete-unsuppress": "पुनस्स्थापितसंस्करणानां प्रतिबन्धः अपाक्रियताम्",
        "revdelete-log": "कारणम् :",
        "revdelete-submit": "{{PLURAL:$1|चित-संस्करणे|चित-संस्करणेषु}} प्रयोगं क्रियताम्",
        "revdel-restore": "दृश्यताम्/गोप्यताम्",
        "pagehist": "पृष्ठस्य इतिहासः",
        "deletedhist": "अपाकृतः इतिहासः",
-       "revdelete-hide-current": "$2 à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95सà¥\8dय $1 à¤¸à¤®à¤¯à¥\87 à¤\95सà¥\8dयापि à¤µà¤¸à¥\8dतà¥\8bà¤\83 à¤¨à¤¿à¤\97à¥\82ढनà¤\95ारà¥\8dयà¤\82 à¤¨ à¤¸à¤«à¤²à¥\80भà¥\80तमà¥\8d à¥¤ à¤\8fततà¥\8d à¤¸à¤¦à¥\8dयà¤\83à¤\95ालà¥\80नà¤\82 à¤¸à¤\82सà¥\8dà¤\95रणमसà¥\8dति à¥¤ à¤\8fततà¥\8d à¤¨à¤¿à¤\97à¥\82ढितुं शक्यते ।",
+       "revdelete-hide-current": "$2 à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95सà¥\8dय $1 à¤¸à¤®à¤¯à¥\87 à¤\95सà¥\8dयापि à¤µà¤¸à¥\8dतà¥\8bà¤\83 à¤¨à¤¿à¤\97à¥\82हितà¤\82 à¤\95ारà¥\8dयà¤\82 à¤¨ à¤¸à¤«à¤²à¤¿à¤¤à¤®à¥\8d à¥¤ à¤\8fततà¥\8d à¤¸à¤¦à¥\8dयà¤\83à¤\95ालà¥\80नà¤\82 à¤¸à¤\82सà¥\8dà¤\95रणमसà¥\8dति à¥¤ à¤\8fततà¥\8d à¤¨à¤¿à¤\97à¥\82हितुं शक्यते ।",
        "revdelete-show-no-access": "$2 दिनाङ्कस्य $1 समयस्य वस्तुनि दोषः दृष्टः । तत् वस्तुः निषिद्धावल्याम् अस्ति । भवान्/भवती तस्य परिवर्तनं कर्तुं न शक्नोति ।",
        "revdelete-modify-no-access": "$2 दिनाङ्कस्य $1 समयस्य परिवर्तितवस्तुनि दोषः दृष्टः । तत् वस्तुः निषिद्धावल्याम् अस्ति । भवान्/भवती तस्य परिवर्तनं कर्तुं न शक्नोति ।",
        "revdelete-modify-missing": "ID $1 इत्यस्य परिवर्तने दोषः : एतत् दत्तांशे न प्राप्तम् !",
        "revdelete-no-change": "'''पूर्वसूचना :''' $2, $1 इत्यस्मिन् याचितवस्तूनि पूर्वस्मादेव विद्यन्ते ।",
        "revdelete-concurrent-change": "$2 दिनाङ्कस्य $1 समयस्य परिवर्तनेषु दोषः दृष्टः । अस्य पृष्ठस्य यदा भवान्/भवती सम्पादनं करोति स्म, तदा अन्य कोऽपि अत्र परिवर्तनम् अकरोत् । अतः परिवर्तनस्य इतिहासे अन्यस्य नाम दृश्यते । \nकृपया स्वस्य संरक्षिताऽवलिं पश्यतु ।",
-       "revdelete-only-restricted": "$2 à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95सà¥\8dय $1 à¤¸à¤®à¤¯à¤¸à¥\8dय à¤¨à¤¿à¤\97à¥\82ढनà¤\95ारà¥\8dयà¥\87 à¤¦à¥\8bषà¤\83 à¤¦à¥\83षà¥\8dà¤\9fà¤\83 à¥¤ à¤­à¤¾à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤¦à¥\83शà¥\8dयता-विà¤\95लà¥\8dपà¥\87 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\82 à¤\85à¤\95à¥\83तà¥\8dवा à¤ªà¥\8dरबनà¥\8dधà¤\95à¥\87भà¥\8dयà¤\83 à¤\8fततà¥\8d à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\82 à¤¨à¤¿à¤\97à¥\82ढितुं न शक्नोति ।",
-       "revdelete-reason-dropdown": "* à¤\85पाà¤\95रणसà¥\8dय à¤¸à¤¾à¤®à¤¾à¤¨à¥\8dयà¤\95ारणानि\n** à¤ªà¥\8dरतिà¤\95à¥\83तà¥\8dयधिà¤\95ारसà¥\8dय à¤\89लà¥\8dलà¤\99à¥\8dà¤\98नमà¥\8d\n** à¤\85यà¥\8bà¤\97à¥\8dया à¤\9fिपà¥\8dपणà¥\80 à¤µà¥\88यà¤\95à¥\8dतिà¤\95माहितà¥\80 à¤µà¤¾\n** à¤\85यà¥\8bà¤\97à¥\8dयà¤\82 à¤¸à¤­à¥\8dयनाम\n** à¤¹à¤¾à¤¨à¤¿à¤\95ारà¤\95माहितà¥\80",
+       "revdelete-only-restricted": "$2 à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dà¤\95सà¥\8dय $1 à¤¸à¤®à¤¯à¤¸à¥\8dय à¤¨à¤¿à¤\97à¥\82ढनà¤\95ारà¥\8dयà¥\87 à¤¦à¥\8bषà¤\83 à¤¦à¥\83षà¥\8dà¤\9fà¤\83 à¥¤ à¤­à¤¾à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤¦à¥\83शà¥\8dयता-विà¤\95लà¥\8dपà¥\87 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\82 à¤\85à¤\95à¥\83तà¥\8dवा à¤ªà¥\8dरबनà¥\8dधà¤\95à¥\87भà¥\8dयà¤\83 à¤\8fततà¥\8d à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\82 à¤¨à¤¿à¤\97à¥\82हितुं न शक्नोति ।",
+       "revdelete-reason-dropdown": "* à¤\85पाà¤\95रणसà¥\8dय à¤¸à¤¾à¤®à¤¾à¤¨à¥\8dयà¤\95ारणानि\n** à¤ªà¥\8dरतिà¤\95à¥\83तà¥\8dयधिà¤\95ारसà¥\8dय à¤\89लà¥\8dलà¤\99à¥\8dà¤\98नमà¥\8d\n** à¤\85यà¥\8bà¤\97à¥\8dया à¤\9fिपà¥\8dपणà¥\80 à¤µà¥\88यà¤\95à¥\8dतिà¤\95सà¥\82à¤\9aनाधारà¤\83 à¤µà¤¾\n** à¤\85यà¥\8bà¤\97à¥\8dयà¤\82 à¤¸à¤­à¥\8dयनाम\n** à¤¹à¤¾à¤¨à¤¿à¤\95ारà¤\95सà¥\82à¤\9aनाधारà¤\83",
        "revdelete-otherreason": "अपरं/अतिरिक्तं कारणम् :",
        "revdelete-reasonotherlist": "अन्यानि कारणानि",
        "revdelete-edit-reasonlist": "सम्पादनस्य अपाकरणाय कारणानि",
        "revdelete-offender": "संस्करणकर्ता",
        "suppressionlog": "निग्रहणानां संरक्षणाऽऽवलिः",
-       "suppressionlogtext": "à¤\85धà¤\83 à¤\85वरà¥\8bधितपà¥\83षà¥\8dठानामà¥\8d, à¤\85पाà¤\95रणà¥\80यपà¥\83षà¥\8dठानाà¤\82 à¤\9a à¤\86वलिà¤\83 à¤\85सà¥\8dति à¥¤ à¤\8fषा à¤\86वलिà¤\83 à¤ªà¥\8dरबनà¥\8dधà¤\95à¥\87भà¥\8dयà¤\83 à¤¨à¤¿à¤\97à¥\82ढिता अस्ति ।\nनूतनानाम् अवरोधितपृष्ठानाम्, अपाकरणीयपृष्ठानां च आवलिं द्रष्टुम् [[Special:BlockList|अवरोधितावलिः]] पश्यतु ।",
-       "mergehistory": "पà¥\83षà¥\8dठयà¥\8bà¤\83 à¤\87तिहाससà¥\8dय à¤µà¤¿à¤²à¥\80निà¤\95रणà¤\82 à¤\95रà¥\8bतà¥\81",
-       "mergehistory-header": "à¤\8fà¤\95सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\87तिहासà¥\87न à¤¸à¤¹ à¤¨à¤µà¥\80नपà¥\83षà¥\8dठसà¥\8dय à¤\87तिहासमà¥\8d à¤\8fà¤\95तà¥\8dरीकर्तुम् एतत् पृष्ठं साहाय्यं करोति । अत्र इतिहासः क्रमशः भवेत् इति अवधेयम् ।",
-       "mergehistory-box": "दà¥\8dवयà¥\8bà¤\83 à¤ªà¥\83षà¥\8dठयà¥\8bà¤\83 à¤\87तिहासà¤\83 à¤\8fà¤\95तà¥\8dरीक्रियताम् :",
+       "suppressionlogtext": "à¤\85धà¤\83 à¤\85वरà¥\8bधितपà¥\83षà¥\8dठानामà¥\8d, à¤\85पाà¤\95रणà¥\80यपà¥\83षà¥\8dठानाà¤\82 à¤\9a à¤\86वलिà¤\83 à¤\85सà¥\8dति à¥¤ à¤\8fषा à¤\86वलिà¤\83 à¤ªà¥\8dरबनà¥\8dधà¤\95à¥\87भà¥\8dयà¤\83 à¤¨à¤¿à¤\97à¥\82हिता अस्ति ।\nनूतनानाम् अवरोधितपृष्ठानाम्, अपाकरणीयपृष्ठानां च आवलिं द्रष्टुम् [[Special:BlockList|अवरोधितावलिः]] पश्यतु ।",
+       "mergehistory": "पà¥\83षà¥\8dठयà¥\8bà¤\83 à¤\87तिहासाà¤\83 à¤¸à¤\82यà¥\8bà¤\9cà¥\8dयनà¥\8dतामà¥\8d",
+       "mergehistory-header": "à¤\8fà¤\95सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\87तिहासà¥\87न à¤¸à¤¹ à¤¨à¤µà¥\80नपà¥\83षà¥\8dठसà¥\8dय à¤\87तिहासमà¥\8d à¤\95à¥\8dरà¥\8bडीकर्तुम् एतत् पृष्ठं साहाय्यं करोति । अत्र इतिहासः क्रमशः भवेत् इति अवधेयम् ।",
+       "mergehistory-box": "दà¥\8dवयà¥\8bà¤\83 à¤ªà¥\83षà¥\8dठयà¥\8bà¤\83 à¤\87तिहासà¤\83 à¤\95à¥\8dरà¥\8bडीक्रियताम् :",
        "mergehistory-from": "स्रोतपृष्ठम् :",
        "mergehistory-into": "लक्षितपृष्ठम् :",
        "mergehistory-list": "विलीनयोग्यसम्पादनस्य इतिहासः",
-       "mergehistory-merge": "[[:$1]] à¤\87तà¥\8dयसà¥\8dय à¤¨à¤¿à¤®à¥\8dनसà¤\82सà¥\8dà¤\95रणानि [[:$2]] à¤\87तà¥\8dयनà¥\87न à¤¸à¤¹ à¤¸à¤\82यà¥\8bà¤\9cयितà¥\81à¤\82 à¤¶à¤\95à¥\8dयनà¥\8dतà¥\87 à¥¤ à¤¨à¤¿à¤°à¥\8dदिषà¥\8dà¤\9fà¤\95ालसà¥\8dय, à¤¤à¤¸à¥\8dमातà¥\8d à¤ªà¥\82रà¥\8dवतनसà¥\8dय à¤\9a à¤¸à¤\82सà¥\8dà¤\95रणानि à¤\8fà¤\95तà¥\8dरीकर्तुं रेडियो-कुड्मलस्य उपयोगं करोतु । \nसूचनायाः, सञ्चरणस्य (navigation) च उपयोगकर्तारः एते स्तम्भाः पुनः पूर्ववत् भविष्यन्ति ।",
+       "mergehistory-merge": "[[:$1]] à¤\87तà¥\8dयसà¥\8dय à¤¨à¤¿à¤®à¥\8dनसà¤\82सà¥\8dà¤\95रणानि [[:$2]] à¤\87तà¥\8dयनà¥\87न à¤¸à¤¹ à¤¸à¤\82यà¥\8bà¤\9cयितà¥\81à¤\82 à¤¶à¤\95à¥\8dयनà¥\8dतà¥\87 à¥¤ à¤¨à¤¿à¤°à¥\8dदिषà¥\8dà¤\9fà¤\95ालसà¥\8dय, à¤¤à¤¸à¥\8dमातà¥\8d à¤ªà¥\82रà¥\8dवतनसà¥\8dय à¤\9a à¤¸à¤\82सà¥\8dà¤\95रणानि à¤\95à¥\8dरà¥\8bडीकर्तुं रेडियो-कुड्मलस्य उपयोगं करोतु । \nसूचनायाः, सञ्चरणस्य (navigation) च उपयोगकर्तारः एते स्तम्भाः पुनः पूर्ववत् भविष्यन्ति ।",
        "mergehistory-go": "विलीनयोग्यसम्पादनानि दर्शयतु",
-       "mergehistory-submit": "सà¤\82सà¥\8dà¤\95रणानि à¤¸à¤\82यà¥\8bà¤\9cयतु ।",
+       "mergehistory-submit": "सà¤\82सà¥\8dà¤\95रणानि à¤µà¤¿à¤²à¥\80नà¥\80à¤\95रà¥\8bतु ।",
        "mergehistory-empty": "अवतरणानि संयोजयितुं न शक्यते ।",
        "mergehistory-success": "[[:$1]] इत्यस्य $3 {{PLURAL:$3|संस्करणं|संस्करणानि}} [[:$2]] इत्यत्र स्वस्ति (successfully) विलिनीकृतानि ।",
        "mergehistory-fail": "इतिहासविलीनता नैव शक्यते । पृष्ठसम्बद्धानि, कालसम्बद्धानि विकल्पानि पुनः पश्यतु ।",
        "mergehistory-no-destination": "$1 इति लक्षितपृष्ठं न विद्यते ।",
        "mergehistory-invalid-source": "मूलपृष्ठस्य योग्यं शीर्षकम् आवश्यकमेव ।",
        "mergehistory-invalid-destination": "लक्षितपृष्ठस्य योग्यं शीर्षकम् आवश्यकमेव ।",
-       "mergehistory-autocomment": "[[:$1]] à¤\87तà¥\8dयà¥\87नà¤\82 [[:$2]] à¤\87तà¥\8dयसà¥\8dमिनà¥\8d à¤µà¤¿à¤²à¥\80नà¤\82 कृतम्",
-       "mergehistory-comment": "[[:$1]] à¤\87तà¥\8dयà¥\87नà¤\82 [[:$2]] à¤\87तà¥\8dयसà¥\8dमिनà¥\8d à¤µà¤¿à¤²à¥\80नà¤\82 कृतम् : $3",
+       "mergehistory-autocomment": "[[:$1]] à¤\87तà¥\8dयà¥\87नà¤\82 [[:$2]] à¤\87तà¥\8dयसà¥\8dमिनà¥\8d à¤µà¤¿à¤²à¥\80नà¥\80कृतम्",
+       "mergehistory-comment": "[[:$1]] à¤\87तà¥\8dयà¥\87नà¤\82 [[:$2]] à¤\87तà¥\8dयसà¥\8dमिनà¥\8d à¤µà¤¿à¤²à¥\80नà¥\80कृतम् : $3",
        "mergehistory-same-destination": "मूलपृष्ठ-लक्षितपृष्ठे समाने न भवेताम् ।",
        "mergehistory-reason": "कारणम् :",
        "mergelog": "संस्करणं विलीयताम्",
        "import-rootpage-nosubpage": "मूलपुटस्य \"$1\" इति नामस्थाने उपपुटानि नानुमतानि ।",
        "importlogpage": "आयातसूचिका ।",
        "importlogpagetext": "अन्यविकितः सम्पादितेतिहाससहितानि प्रशासकानाम् आयातपुटानि ।",
-       "import-logentry-upload": "सञ्चिकाम् उत्तारयित्वा [[$1]] इत्यस्य आयातः कृतः ।",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|पुनरावृत्तिः}}",
-       "import-logentry-interwiki": "ट्रान्स्विकिकृतम् ।$1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|पुनरावृत्तिः}} $2 इत्येतस्मात् ।",
        "javascripttest": "जावालिपिपरीक्षणम् ।",
        "javascripttest-pagetext-noframework": "जावलिपिचालनपरीक्षार्थम् एतत्पुटम् आरक्षितम् ।",
        "version-parser-function-hooks": "विन्यासकलापस्य आलम्बाः ।",
        "version-hook-name": "आलम्बस्य नाम ।",
        "version-hook-subscribedby": "सदस्यत्वम् अनेन प्राप्तम् ।",
-       "version-version": "(आवृत्तिः$1)",
+       "version-version": "($1)",
        "version-license": "अनुज्ञापत्रम्",
        "version-poweredby-credits": "इयं विकिः अनेन सञ्चालिता '''[https://www.mediawiki.org/ MediaWiki]''', स्वामित्वम् © 2001 - $1  $2 ।",
        "version-poweredby-others": "अन्य",
        "logentry-rights-autopromote": "$1 इत्ययं स्वचालितरूपेण $4 इत्यतः $5 इति यावत् पदोन्नतः",
        "rightsnone": "(कतम)",
        "revdelete-summary": "सम्पादनसांक्षेपिक",
+       "feedback-adding": "पृष्ठे प्रतिस्पन्दः योजनीयः ...",
+       "feedback-bugcheck": "उत्तमम् परिशीलयतु यत्  [ $1 known bugs] पूर्वमेव नासीत् इति ।",
+       "feedback-bugnew": "अहं परीक्षितवान् ।  नूतनदोषं सूचयतु ।",
        "feedback-bugornote": "यदि भवान् कस्याश्चित् तान्त्रिकसमस्यायाः विषये विशदीकर्तुम् इच्छति तर्हि [$1 मत्कुणसञ्चिकां करोतु ।]\nअन्यथा चेत् भवान् सरलप्रपत्रम् उपयोक्तुं शक्नोति । भवतः टीका योजकनाम्ना सह भवतः जालगवाक्षेन सह  \"[$3 $2]\" इत्यस्मिन् पुटे योज्यते ।",
-       "feedback-subject": "विषय:",
-       "feedback-message": "संदेश:",
        "feedback-cancel": "निवर्तयते",
-       "feedback-submit": "प्रतिस्पन्दः प्रेष्यताम्",
-       "feedback-adding": "पृष्ठे प्रतिस्पन्दः योजनीयः ...",
+       "feedback-close": "समापित",
        "feedback-error1": "API इत्यस्मात् दोषः : अज्ञातः परिणामः ।",
        "feedback-error2": "दोषः : सम्पादनं निष्फलं जातम्",
        "feedback-error3": "दोषः : ए पि ऐ तः प्रतिस्पन्दः न प्राप्तः",
+       "feedback-message": "संदेश:",
+       "feedback-subject": "विषय:",
+       "feedback-submit": "उपस्थाप्यताम्",
        "feedback-thanks": "धन्यवादः ! भवतः प्रतिस्पन्दः \"[ $2  $1 ]\" पृष्ठाय प्रेषितः अस्ति ।",
-       "feedback-close": "समापित",
-       "feedback-bugcheck": "उत्तमम् परिशीलयतु यत्  [ $1 known bugs] पूर्वमेव नासीत् इति ।",
-       "feedback-bugnew": "अहं परीक्षितवान् ।  नूतनदोषं सूचयतु ।",
        "searchsuggest-search": "अन्वेषणम्",
        "searchsuggest-containing": "विद्यन्ते......",
        "api-error-badaccess-groups": "भवान् अस्यां वीक्यां सञ्चिकाः उत्तारयितुम् नानुमतः ।",
index d43ca7d..8884db7 100644 (file)
@@ -11,7 +11,8 @@
                        "Urhixidur",
                        "아라",
                        "Purodha",
-                       "Krivoshapkina"
+                       "Krivoshapkina",
+                       "Macofe"
                ]
        },
        "tog-underline": "Сигэлэри аннынан тардыы:",
        "disclaimers": "Бүк охсунуу",
        "disclaimerpage": "Project:Бүк охсунуу",
        "edithelp": "Уларытааччыларга көмө",
+       "helppage-top-gethelp": "Көмө",
        "mainpage": "Сүрүн сирэй",
        "mainpage-description": "Сүрүн сирэй",
        "policy-url": "Project:Сиэрэ",
        "prefs-personal": "Кыттааччы туруоруулара",
        "prefs-rc": "Кэлиҥҥи уларытыылар",
        "prefs-watchlist": "Кэтээһин",
+       "prefs-editwatchlist": "Кэтэбил тиһилигин уларытыы",
        "prefs-watchlist-days": "Хас хонуктааҕы уларыйыылар кэтээһин испииһэгэр көстөллөрө:",
        "prefs-watchlist-days-max": "Уһаабыта {{PLURAL:$1|биир күн|$1 күн}}",
        "prefs-watchlist-edits": "Хас уларытыыны тупсарыллыбыт кэтээһиҥҥэ көрдөрөрө:",
        "import-rootpage-nosubpage": "\"$1\" тирэх сирэй аатын далыгар сирэй үөдүҥнэрэ (подстраницалар) көҥүллэммэттэр",
        "importlogpage": "Импорт сурунаала",
        "importlogpagetext": "Сирэйдэри историяларын кытта холбуу атын биикилэртэн импортааһын.",
-       "import-logentry-upload": "[[$1]] - билэттэн импортааһын",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|барыл|барыл баар}}",
-       "import-logentry-interwiki": "биикилэр ыккардыларынааҕы $1",
        "import-logentry-interwiki-detail": "барыта $2 барылтан $1 барыл",
        "javascripttest": "JavaScript тургутуу",
        "javascripttest-pagetext-noframework": "Бу сирэй JavaScript тургутууларга анаммыт.",
        "version-parser-function-hooks": "Синтаксииһы анаалыстыыр тэрил функциятын перехватчиктара",
        "version-hook-name": "Перехватчик аата",
        "version-hook-subscribedby": "Суруттарыыта:",
-       "version-version": "(Торум $1)",
+       "version-version": "($1)",
        "version-license": "MediaWiki лиссиэнсийэтэ",
        "version-ext-license": "Лиссиэнсийэ",
        "version-ext-colheader-name": "Кэтирэтии",
        "logentry-rights-rights": "$3 бөлөхтөргө киириитин $1 уларыппыт: манныктан $4 манныкка $5",
        "logentry-rights-rights-legacy": "$3 бөлөхтөргө киириитин $1 уларыппыт",
        "logentry-rights-autopromote": "$1 мантан $4 манна $5 көһөрүллүбүт",
+       "logentry-upload-upload": "$1 {{GENDER:$2|укпут}} $3",
        "rightsnone": "(суох)",
        "revdelete-summary": "уларытыылар туһунан",
+       "feedback-adding": "Сирэй туһунан санаа этии...",
+       "feedback-bugcheck": "Бэрт! Ол гынан баран [$1 биллэр алҕастарын] тиһилигэр майгынныыр сурук суоҕун тургут.",
+       "feedback-bugnew": "Мин тургуттум. Атын алҕас туһунан",
        "feedback-bugornote": "Туох кыһалҕаны көрсүбүккүн сиһилии суруйар кыахтаах буоллаххына, бука диэн [$1 алҕас туһунан биллэр].\nОл сатаммат буоллаҕына бу судургу форманы толор. Эн этииҥ ааккын уонна туһанар браузерыҥ аатын кытта манна «[$3 $2]» бэчээттэниэ.",
-       "feedback-subject": "Тиэмэ:",
-       "feedback-message": "Сурук:",
        "feedback-cancel": "Салҕаама",
-       "feedback-submit": "Санаа этиитэ",
-       "feedback-adding": "Сирэй туһунан санаа этии...",
+       "feedback-close": "Сатанна",
        "feedback-error1": "Алҕас: API биллибэт түмүгэ",
        "feedback-error2": "Алҕас: Көннөрүү сатаммата",
        "feedback-error3": "Алҕас: API хоруйдаабата",
+       "feedback-message": "Сурук:",
+       "feedback-subject": "Тиэмэ:",
+       "feedback-submit": "Ыыт",
        "feedback-thanks": "Махтал! Эн санааҥ бу сирэйгэ \"[$2 $1]\" сурулунна.",
-       "feedback-close": "Сатанна",
-       "feedback-bugcheck": "Бэрт! Ол гынан баран [$1 биллэр алҕастарын] тиһилигэр майгынныыр сурук суоҕун тургут.",
-       "feedback-bugnew": "Мин тургуттум. Атын алҕас туһунан",
        "searchsuggest-search": "Көрдөөһүн",
        "searchsuggest-containing": "тыл баар ыстатыйалара...",
        "api-error-badaccess-groups": "Эн бу биикигэ билэ киллэрэриҥ хааччахтаммыт.",
index 3c5c6fe..4eb5167 100644 (file)
        "version": "Versione",
        "version-specialpages": "Pàginas ispetziales",
        "version-other": "Àteru",
-       "version-version": "(Versione $1)",
+       "version-version": "($1)",
        "version-license": "Licèntzia MediaWiki",
        "version-ext-license": "Licèntzia",
        "version-ext-colheader-version": "Versione",
        "logentry-upload-revert": "$1 {{GENDER:$2|carrigadu}} $3",
        "rightsnone": "(nisciunu)",
        "revdelete-summary": "ogetu de sa modìfica",
-       "feedback-subject": "Ogetu:",
-       "feedback-message": "Messàgiu:",
        "feedback-cancel": "Annudda",
        "feedback-close": "Fatu",
+       "feedback-message": "Messàgiu:",
+       "feedback-subject": "Ogetu:",
        "searchsuggest-search": "Chirca",
        "expand_templates_ok": "OK",
        "expand_templates_preview": "Antiprima",
index 8401963..2c1445d 100644 (file)
                        "Urhixidur",
                        "לערי ריינהארט",
                        "아라",
-                       "Pippinu"
+                       "Pippinu",
+                       "Macofe"
                ]
        },
        "tog-underline": "Suttalinia li culligamenti:",
        "tog-hideminor": "Ammuccia li canciamenti nichi nta l'ùrtimi canciamenti",
        "tog-hidepatrolled": "Ammuccia li mudìfichi battugghiati nta l'ùrtimi canciamenti",
        "tog-newpageshidepatrolled": "Ammuccia li pàggini battugghiati di l'alencu dî pàggini cchiu' novi",
-       "tog-extendwatchlist": "Ammustra tutti i canciamenti ntâ lista talïata, nun sulu u cchiu' ricenti",
-       "tog-usenewrc": "Raggruppa li canciamenti pi' pàggina ntâ lista dî canciamenti ricenti e ntâ lista talïata",
+       "tog-extendwatchlist": "Ammustra tutti i canciamenti ntâ lista taliata, nun sulu u cchiu' ricenti",
+       "tog-usenewrc": "Raggruppa li canciamenti pi' pàggina ntâ lista dî canciamenti ricenti e ntâ lista taliata",
        "tog-numberheadings": "Nummirazzioni autumàtica dî tìtuli di paràgrafu",
        "tog-showtoolbar": "Ammustra la barra dî strumenta pû canciamentu",
        "tog-editondblclick": "Duppiu click pi canciari l'artìculu",
        "tog-editsectiononrightclick": "Attiva lu canciamentu di na sizzioni quannu si clicca cu' buttuni drittu supra a lu so tìtulu",
-       "tog-watchcreations": "Agghiunci li pàggini chi' creu e li file chi' càrricu â me lista talïata",
-       "tog-watchdefault": "Agghiunci li pàggini e li file chi' canciu â me lista talïata",
-       "tog-watchmoves": "Agghiunci li pàggini e li file chi' spostu â me lista talïata",
-       "tog-watchdeletion": "Agghiunci li pàggini e li file chi' cancellu â me lista talïata",
-       "tog-watchrollback": "Agghiunci li pàggini unni fici nu canciu n'arreri â me lista talïata",
+       "tog-watchcreations": "Agghiunci li pàggini chi' creu e li file chi' càrricu â me lista taliata",
+       "tog-watchdefault": "Agghiunci li pàggini e li file chi' canciu â me lista taliata",
+       "tog-watchmoves": "Agghiunci li pàggini e li file chi' spostu â me lista taliata",
+       "tog-watchdeletion": "Agghiunci li pàggini e li file chi' cancellu â me lista taliata",
+       "tog-watchrollback": "Agghiunci li pàggini unni fici nu canciu n'arreri â me lista taliata",
        "tog-minordefault": "Marca ogni' canciamentu comu nicu pi' mpustazzioni pridifinuta",
        "tog-previewontop": "Ammustra l'antiprima avanti dâ casedda di canciamentu",
        "tog-previewonfirst": "Ammustra l'antiprima ô primu canciamentu",
-       "tog-enotifwatchlistpages": "Mànnami nu missàggiu di posta elittrònica quannu na pàggina o nu file dâ me lista talïata subbìsciunu canciamenti",
+       "tog-enotifwatchlistpages": "Mànnami nu missàggiu di posta elittrònica quannu na pàggina o nu file dâ me lista taliata subbìsciunu canciamenti",
        "tog-enotifusertalkpages": "Mànnami nu missaggiu di posta elettrònica quannu la me pàggina di discussioni veni canciata",
        "tog-enotifminoredits": "Mànnami nu missaggiu di posta elittrònica macari pi li canciamenti nichi di pàggini e file",
        "tog-enotifrevealaddr": "Ammustra lu me nnirizzu di posta elittrònica ntê missaggi di nutifica",
        "tog-fancysig": "Intèrpitra la firma comu wikitestu (senza liami automaticu)",
        "tog-uselivepreview": "Attiva l'antiprima in diretta",
        "tog-forceeditsummary": "Dumanna cunfirma siddu lu riassuntu dûn canciamentu è vacanti",
-       "tog-watchlisthideown": "Ammuccia li me canciamenti ntâ lista talïata",
-       "tog-watchlisthidebots": "Ammuccia li canciamenti dî bot ntâ lista talïata",
-       "tog-watchlisthideminor": "Ammuccia li canciamenti nichi ntâ lista talïata",
-       "tog-watchlisthideliu": "Ammuccia li canciamenti di l'utilizzatura riggistrati ntâ lista talïata",
-       "tog-watchlisthideanons": "Ammuccia li canciamenti di l'utilizzatura anònimi ntâ lista talïata",
-       "tog-watchlisthidepatrolled": "Ammuccia li mudìfichi battugghiati ntâ lista talïata",
+       "tog-watchlisthideown": "Ammuccia li me canciamenti ntâ lista taliata",
+       "tog-watchlisthidebots": "Ammuccia li canciamenti dî bot ntâ lista taliata",
+       "tog-watchlisthideminor": "Ammuccia li canciamenti nichi ntâ lista taliata",
+       "tog-watchlisthideliu": "Ammuccia li canciamenti di l'utilizzatura riggistrati ntâ lista taliata",
+       "tog-watchlisthideanons": "Ammuccia li canciamenti di l'utilizzatura anònimi ntâ lista taliata",
+       "tog-watchlisthidepatrolled": "Ammuccia li mudìfichi battugghiati ntâ lista taliata",
        "tog-ccmeonemails": "Mànnami na copia dî missaggi spiduti a l'àutri utenti",
        "tog-diffonly": "Nun ammustrari lu cuntinutu dî pàggini sutta dî cunfrunti tra virsioni",
        "tog-showhiddencats": "Ammustra li catigurìi ammucciati",
        "jumpto": "Vai a':",
        "jumptonavigation": "navigazzioni",
        "jumptosearch": "cerca",
-       "view-pool-error": "Nni dispiaci, ma li server nta stu mumentu sunnu troppu carrichi.\nTroppi utenti stannu circannu di talïari sta pàggina.\nPi' favuri spetta n'anticchia prima di pruvari n'autra vota a talïari sta pàggina.\n\n$1",
-       "generic-pool-error": "Nni dispiaci, ma li server nta stu mumentu sunnu troppu càrrichi.\nTroppi utenti stannu circannu di talïari sta risorsa.\nPi' favuri spetta n'anticchia prima di pruvari n'autra vota a talïari sta risorsa.",
+       "view-pool-error": "Nni dispiaci, ma li server nta stu mumentu sunnu troppu carrichi.\nTroppi utenti stannu circannu di taliari sta pàggina.\nPi' favuri spetta n'anticchia prima di pruvari n'autra vota a taliari sta pàggina.\n\n$1",
+       "generic-pool-error": "Nni dispiaci, ma li server nta stu mumentu sunnu troppu càrrichi.\nTroppi utenti stannu circannu di taliari sta risorsa.\nPi' favuri spetta n'anticchia prima di pruvari n'autra vota a taliari sta risorsa.",
        "pool-timeout": "Tempu scadutu aspittannu lu sbloccu",
        "pool-queuefull": "La cuda dû pool è china",
        "pool-errorunknown": "Erruri scanusciutu",
        "internalerror_info": "Erruri nternu: $1",
        "filecopyerror": "Nun fu' pussìbbili cupiari lu file \"$1\" nta \"$2\".",
        "filerenameerror": "Nun fu' pussìbbili canciari lu nomu dû file di \"$1\" a' \"$2\".",
-       "filedeleteerror": "Nun fu' pussìbbili cancillari lu file \"$1\".",
-       "directorycreateerror": "Nun fu' pussìbbili crïari la cartella \"$1\".",
+       "filedeleteerror": "Nun fu pussìbbili cancillari lu file \"$1\".",
+       "directorycreateerror": "Nun fu pussìbbili criari la cartella \"$1\".",
        "directoryreadonlyerror": "La cartella \"$1\" è a' sula littura.",
        "directorynotreadableerror": "La cartella \"$1\" nun è liggìbbili.",
-       "filenotfound": "Nun fu' pussìbbili truvari lu file \"$1\".",
+       "filenotfound": "Nun fu pussìbbili truvari lu file \"$1\".",
        "unexpected": "Valuri nun privistu: \"$1\"=\"$2\".",
-       "formerror": "Erruri: Nun fu' pussìbbili mannari lu mòdulu.",
+       "formerror": "Erruri: Nun fu pussìbbili mannari lu mòdulu.",
        "badarticleerror": "St'opirazzioni nun è cunsintuta nta sta pàggina.",
        "cannotdelete": "Nun fu' pussìbbili cancillari la pàggina o lu file \"$1\".\nPutissi aviri statu già cancillatu di quarchidun'autru.",
        "cannotdelete-title": "Nun è pussìbbili cancillari la pàggina \"$1\"",
        "delete-hook-aborted": "Cancillazzioni annullata di n'hook.\nNun desi nudda spiegazzioni.",
-       "no-null-revision": "Non fu' pussibbili crïari na virsioni nulla pâ paggina \"$1\"",
+       "no-null-revision": "Non fu' pussibbili criari na virsioni nulla pâ paggina \"$1\"",
        "badtitle": "Tìtulu nun bonu",
        "badtitletext": "Lu tìtulu di pàggina addumannatu nun era vàlidu, era vacanti, o vinìa dûn culligamentu intir-linguìsticu o intir-wiki malu fattu.\nPutissi cuntèniri unu o cchiu' ssai caràttiri chi' nun su' cunsintuti ntê tìtula.",
        "perfcached": "Li dati ca sèquinu sunnu stratti di na ''cache'' e putissiru nun èssiri aggiurnati. Ntâ ''cache'' {{PLURAL:$1|capi un risultatu|càpunu $1 risultati}} massimu.",
        "userlogin-joinproject": "Scrìviti a' {{SITENAME}}",
        "nologin": "Nun hai nu cuntu? $1.",
        "nologinlink": "Crea nu cuntu",
-       "createaccount": "Crïazzioni dûn cuntu",
+       "createaccount": "Criazzioni dûn cuntu",
        "gotaccount": "Già hai nu cuntu? $1.",
        "gotaccountlink": "Trasi",
        "userlogin-resetlink": "Ti scurdasti li dittagghî pâ trasuta?",
        "createacct-realname": "Nomu veru (facurtativu)",
        "createaccountreason": "Mutivu:",
        "createacct-reason": "Mutivu",
-       "createacct-reason-ph": "Pirchì stai crïannu n'àutru cuntu",
+       "createacct-reason-ph": "Pirchì stai criannu n'àutru cuntu",
        "createacct-captcha": "Cuntrollu di sicurizza",
        "createacct-imgcaptcha-ph": "Nzirìsci lu testu ca vidi ccassupra",
        "createacct-submit": "Crea lu to cuntu",
        "badretype": "Li password chi' mittisti nun currispùnnunu tra d'iddi.",
        "userexists": "Lu nomu utenti nziritu è già usatu.\nTi prijamu pirciò di vuliri scègghîri nu nomu utenti diffirenti.",
        "loginerror": "Erruri ntâ trasuta",
-       "createacct-error": "Erruri ntâ crïazzioni dû cuntu",
-       "createaccounterror": "Nun fu' pussìbbili crïari u cuntu: $1",
-       "nocookiesnew": "Lu cuntu utenti fu' crïatu, ma nun si' trasutu.\n{{SITENAME}} adòpira li cookie pi' gistiri li trasuti.\nTu hai i cookie disattivati.\nPi' favuri attìvili, e appoi trasi chî to nomu utenti e password novi.",
+       "createacct-error": "Erruri ntâ criazzioni dû cuntu",
+       "createaccounterror": "Nun fu pussìbbili criari u cuntu: $1",
+       "nocookiesnew": "Lu cuntu utenti fu' criatu, ma nun si' trasutu.\n{{SITENAME}} adòpira li cookie pi' gistiri li trasuti.\nTu hai i cookie disattivati.\nPi' favuri attìvili, e appoi trasi chî to nomu utenti e password novi.",
        "nocookieslogin": "{{SITENAME}} adòpira li cookie pi' gistiri li trasuti.\nTu hai i cookie disattivati.\nPi' favuri attìvili e prova n'autra vota.",
-       "nocookiesfornew": "Lu cuntu utenti nun fu' crïatu, picchì nun pòttimu cunfirmari la so orìggini.\nAssicuriti chi' hai i ''cookie'' attivati, ricarrica sta pàggina e prova n'autra vota.",
+       "nocookiesfornew": "Lu cuntu utenti nun fu' criatu, picchì nun pòttimu cunfirmari la so orìggini.\nAssicuriti chi' hai i ''cookie'' attivati, ricarrica sta pàggina e prova n'autra vota.",
        "noname": "Nun spicificasti nu nomu utenti vàlidu.",
        "loginsuccesstitle": "Trasuta rinisciuta",
        "loginsuccess": "<strong>Ora si' trasutu nta {{SITENAME}} comu \"$1\".</strong>",
        "eauthentsent": "Nu missaggiu e-mail di cunfirma fu' spidutu a lu nnirizzu nnicatu.\nPrima chi' ponnu èssiri mannati autri missaggi e-mail a' stu cuntu, è nicissariu sèquiri li struzzioni ca vi sunnu scritti, 'n modu di cunfirmari di èssiri li liggìttimi prupietarî di lu cuntu.",
        "throttled-mailpassword": "Nu missaggiu e-mail di azziramentu dâ password già havi statu mannatu nta {{PLURAL:$1|l'ultima ura|l'ultimi $1 uri}}. Pi' privèniri abbusi, si po' mannari nu missaggiu e-mail di azziramentu dâ password na vota sula ogni {{PLURAL:$1|ura|$1 uri}}.",
        "mailerror": "Erruri nta lu mannu dû missaggiu: $1",
-       "acct_creation_throttle_hit": "Visitaturi di sta wiki cû to stissu nnirizzu IP già hannu crïatu {{PLURAL:$1|un cuntu|$1 cunti}} nta sta jurnata, chi' è lu massimu pirmissu pi' stu pirìudu di tempu.\nPi' ciò, com'ad ora li visitaturi ca usunu stu nnirizzu IP nun ponnu crïari autri cunti.",
+       "acct_creation_throttle_hit": "Visitaturi di sta wiki cû to stissu nnirizzu IP già hannu criatu {{PLURAL:$1|un cuntu|$1 cunti}} nta sta jurnata, chi' è lu massimu pirmissu pi' stu pirìudu di tempu.\nPi' ciò, com'ad ora li visitaturi ca usunu stu nnirizzu IP nun ponnu criari autri cunti.",
        "emailauthenticated": "Lu to nnirizzu di posta elittrònica fu' cunfirmatu lu $2 ê $3.",
        "emailnotauthenticated": "Lu to nnirizzu di posta elittrònica ancora nun havi statu cunfirmatu.\nNun ti sarrannu mannati missaggi di posta elittrònica pi' sti funzioni.",
        "noemailprefs": "Innicari nu nnirizzu di posta elittrònica p'attivari sti funzioni.",
        "invalidemailaddress": "Lu nnirizzu di posta elittrònica nun pò èssiri accittatu picchì pari chi havi un furmatu nun vàlidu.\nPi favuri nzirisci nu nnirizzu vàlidu o puru svacanta la casedda.",
        "cannotchangeemail": "Li nnirizzi di posta elittrònica nun ponnu èssiri canciati nta sta wiki.",
        "emaildisabled": "Stu situ nun po' mannari missaggi di posta elittrònica.",
-       "accountcreated": "Cuntu crïatu",
-       "accountcreatedtext": "Fu' crïatu un cuntu novu pi' l'utenti [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|msg]]).",
-       "createaccount-title": "Crïazzioni di nu cuntu pi' {{SITENAME}}",
+       "accountcreated": "Cuntu criatu",
+       "accountcreatedtext": "Fu' criatu un cuntu novu pi' l'utenti [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|msg]]).",
+       "createaccount-title": "Criazzioni di nu cuntu pi' {{SITENAME}}",
        "createaccount-text": "Qualcuno criau n'accessu a {{SITENAME}} ($4) a nomu di $2, associatu cu stu ndirizzu di posta elettronica. La password pi l'utenti \"$2\" è mpustata a \"$3\". È opportunu trasiri quantu prima e canciari la password subbutu.\n\nSi l'accessu fu criatu pi sbagghiu, si può gnurari stu missaggiu.",
        "login-throttled": "Hai fattu troppi tintativi di trasuta.\nPi' favuri spetta $1 prima di pruvari n'autra vota.",
        "login-abort-generic": "La trasuta nun arriniscìu - Annullata",
        "newpassword": "Password nova:",
        "retypenew": "Scrivi n'àutra vota la password:",
        "resetpass_submit": "Mposta la password e trasi",
-       "changepassword-success": "La to password fu' canciata!",
+       "changepassword-success": "La to password fu canciata!",
        "changepassword-throttled": "Hai fattu troppi tintativi di trasuta.\nPi' favuri spetta $1 prima di pruvari n'autra vota.",
        "resetpass_forbidden": "Li password nun si ponnu canciari",
        "resetpass-no-info": "Pi tràsiri nta sta pàggina hà' èssiri riggistratu.",
        "passwordreset-emailtext-user": "L'utenti $1 supra a' {{SITENAME}} fici dumanna pi' l'azziramentu dâ to password pi' {{SITENAME}} ($4). {{PLURAL:$3|U siguenti cuntu utenti è assuciatu|I siguenti cunti utenti su' assuciati}} cu' stu nnirizzu di posta elittrònica:\n\n$2\n\n{{PLURAL:$3|Sta password timpurania|Sti password timpuranii}} scàdunu tra {{PLURAL:$5|un jornu|$5 jorna}}.\nOra tu avissi a' tràsiri e scègghîri na password nova. Si' fu' quarchidun'autru a' fari sta richiesta e nun tu, o si' ti ricurdasti a to password origginali e nâ voi canciari cchiu', poi gnurari stu missaggiu e cuntinuari a' adupirari a to password vecchia.",
        "passwordreset-emailelement": "Nomu utenti: $1\nPassword timpurania: $2",
        "passwordreset-emailsent": "Nu missaggiu di posta elittrònica d'azziramentu dâ password fu' mannatu.",
-       "passwordreset-emailsent-capture": "Nu missaggiu di posta elittrònica d'azziramentu dâ password fu' mannatu, cû cuntinutu chi' si po' talïari ccassutta.",
-       "passwordreset-emailerror-capture": "Nu missaggiu di posta elittrònica d'azziramentu dâ password fu' cumpilatu, cû cuntinutu chi' si po' talïari ccassutta, però a so spidizzioni a' l'utenti {{GENDER:$2|user}} nun riniscìu: $1",
+       "passwordreset-emailsent-capture": "Nu missaggiu di posta elittrònica d'azziramentu dâ password fu' mannatu, cû cuntinutu chi' si po' taliari ccassutta.",
+       "passwordreset-emailerror-capture": "Nu missaggiu di posta elittrònica d'azziramentu dâ password fu' cumpilatu, cû cuntinutu chi' si po' taliari ccassutta, però a so spidizzioni a' l'utenti {{GENDER:$2|user}} nun riniscìu: $1",
        "changeemail": "Canciu dû nnirizzu di posta elittrònica",
        "changeemail-text": "Jinchi stu mòdulu pi' canciari u to nnirizzu di posta elittrònica. Hâ' nziriri a to password pi' cunfirmari stu canciamentu.",
        "changeemail-no-info": "Hâ' jèssiri trasutu p'aviri accessu direttu a' sta pàggina.",
        "resettokens-legend": "Azziramentu dî token",
        "resettokens-tokens": "Token:",
        "resettokens-token-label": "$1 (valuri attuali: $2)",
-       "resettokens-watchlist-token": "Token pû feed web (Atom/RSS) dî [[Special:Watchlist|canciamenti ê pàggini ntâ to lista talïata]]",
+       "resettokens-watchlist-token": "Token pû feed web (Atom/RSS) dî [[Special:Watchlist|canciamenti ê pàggini ntâ to lista taliata]]",
        "resettokens-done": "I token furu azzirati.",
        "resettokens-resetbutton": "Azzera i token scigghiuti",
        "bold_sample": "Grassettu",
        "preview": "Antiprima",
        "showpreview": "Ammustra l'antiprima",
        "showdiff": "Ammustra li canciamenti",
-       "blankarticle": "<strong>Accura:</strong> La pàggina chi' stai criannu è vacanti.\nSi' clicchi \"{{int:savearticle}}\" n'autra vota, la pàggina veni crïata senza nuddu cuntinutu.",
+       "blankarticle": "<strong>Accura:</strong> La pàggina chi' stai criannu è vacanti.\nSi' clicchi \"{{int:savearticle}}\" n'autra vota, la pàggina veni criata senza nuddu cuntinutu.",
        "anoneditwarning": "<strong>Accura:</strong> Nun si' trasutu. Lu to nnirizzu IP diventa visìbbili pubblicamenti quannu fai nu canciamentu. Si' <strong>[$1 trasi]</strong> o puru <strong>[$2 crei nu cuntu]</strong>, li canciamenti chi' fai vènunu attribbuiti ô to nomu utenti, sparti di autri vantaggi.",
        "anonpreviewwarning": "''Nun trasisti comu utiliggaturi loggatu. Sarbannu, lu tò nnirizzu IP veni arriggistratu ntâ storia dî canciamenti.''",
        "missingsummary": "'''Accura:''' Nun hà statu spicificatu l'uggettu di stu canciamentu. Primennu di novu '''Sarva''' lu canciamentu veni sarvatu cu l'uggettu vacanti.",
        "blockednoreason": "nuddu mutivu datu",
        "whitelistedittext": "Pi' favuri $1 pi' canciari li pàggini.",
        "confirmedittext": "Hâ' cunvalidari lu to nnirizzu di posta elittrònica avanti di putiri canciari li pàggini.\nPi' favuri mposta e cunvàlida lu nnirizzu passannu dî [[Special:Preferences|to prifirenzi]].",
-       "nosuchsectiontitle": "La sizzioni nun fu' truvata",
-       "nosuchsectiontext": "Pruvasti a canciari na sizzioni chi' nun esisti.\nForsi ca fu' spustata o cancillata na mentri ca stàvutu talïannu la pàggina.",
+       "nosuchsectiontitle": "La sizzioni nun fu truvata",
+       "nosuchsectiontext": "Pruvasti a canciari na sizzioni chi' nun esisti.\nForsi ca fu' spustata o cancillata na mentri ca stàvutu taliannu la pàggina.",
        "loginreqtitle": "S'havi a' tràsiri",
        "loginreqlink": "trasi",
-       "loginreqpagetext": "Pi' favuri $1 pi' talïari autri pàggini.",
+       "loginreqpagetext": "Pi' favuri $1 pi' taliari autri pàggini.",
        "accmailtitle": "Password mannata",
        "accmailtext": "Na password ginirata casualmenti pi' [[User talk:$1|$1]] fu' spiduta a $2. Si po' canciari di la pàggina di <em>[[Special:ChangePassword|canciamentu dâ password]]</em> comu unu trasi.",
        "newarticle": "(Novu)",
-       "newarticletext": "Siguisti nu culligamentu a' na pàggina ch'ancora nun esisti.\nPi' crïari sta pàggina, accumenza a' scrìviri ccassutta (talìa la [$1 pàggina d'ajutu] p'aviri majuri nfurmazzioni).\nSi' agghicasti cca pi' sbagghiu, calca lu buttuni <strong>n' arreri</strong> dû to browser.",
+       "newarticletext": "Siguisti nu culligamentu a' na pàggina ch'ancora nun esisti.\nPi' criari sta pàggina, accumenza a' scrìviri ccassutta (talìa la [$1 pàggina d'ajutu] p'aviri majuri nfurmazzioni).\nSi' agghicasti cca pi' sbagghiu, calca lu buttuni <strong>n' arreri</strong> dû to browser.",
        "anontalkpagetext": "----''Chista è la pàggina di discussioni di n’utenti anònimu, ca nun criau ancora n’accessu o ca nun l’usa.\nP’idintificàrilu è pirciò nicissariu usari lu nùmmiru di lu sò nnirizzu IP.\nLi nnirizzi IP ponnu pirò èssiri spartuti di cchiù utenti.\nSiddu sî n’utenti anònimu e riteni ca li cummenti prisenti nta sta pàggina nun si rifirìscinu a tia, [[Special:UserLogin/signup|crea n’accessu novu]] o [[Special:UserLogin|trasi]] cu chiddu ca già hai p’evitari d’èssiri cunfusu cu àutri utenti anònimi ‘n futuru.''",
        "noarticletext": "Nta stu mumentu la pàggina addumannata è vacanti. È pussìbbili [[Special:Search/{{PAGENAME}}|circari stu tìtulu]] nta l'àutri pàggini dû situ oppuru <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|action=edit}} circari ntê riggistra culligati] oppuru [{{fullurl:{{FULLPAGENAME}}|action=edit}} canciari la pàggina ora]</span>.",
        "noarticletext-nopermission": "Nta stu mumentu la pàggina addumannata è vacanti. È pussibbili [[Special:Search/{{PAGENAME}}|circari stu titulu]] nti àutri pàggini dû situ o <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} circari ntê riggistra culligati]</span>, ma nun hai li pirmissa pi criari sta pàggina.",
        "token_suffix_mismatch": "'''Lu canciamentu nun fu sarvatu pirchì lu client ammustrau di gèstiri 'n modu sbagghiatu li caràttiri di puntiggiatura nta lu token assuciatu a iddu. P'evitari na curruzzioni pussìbbili dô testu dâ pàggina, fu rifiutatu tuttu lu canciamentu. Sta situazzioni pò virificàrisi, certi voti, quannu s'adòpiranu arcuni sirvizza di proxy anònimi via web chi prisèntanu bug.'''",
        "edit_form_incomplete": "<strong>Quarchi' parti dû mòdulu pâ mudìfica nun arrivau ô ''server''; cuntrolla bonu chi' tutti i to canciamenti su' ntatti e prova n'autra vota.</strong>",
        "editing": "Canciamentu di $1",
-       "creating": "Crïazzioni di $1",
+       "creating": "Criazzioni di $1",
        "editingsection": "Canciamentu di $1 (sizzioni)",
        "editingcomment": "Canciamentu di $1 (nova sizzioni)",
        "editconflict": "Cunflittu d'edizzioni: $1",
        "protectedpagewarning": "<strong>Accura: Sta pàggina fu' prutetta a' manera chi' sulu l'utenti cu' privileggi d'amministraturi a ponnu canciari.</strong>\nPi' rifirimentu, ccassutta è ripurtata l'ultima vuci dû riggistru:",
        "semiprotectedpagewarning": "<strong>Nota:</strong> Sta pàggina fu' prutetta a' manera chi' sulu l'utenti riggistrati la ponnu canciari.\nPi' rifirimentu, ccassutta è ripurtata l'ultima vuci dû riggistru:",
        "cascadeprotectedwarning": "<strong>Accura:</strong> Sta pàggina havi statu bluccata di manera ca sulu l'utenti cu' privileggi di amministraturi la ponnu canciari, pirchì veni nclusa {{PLURAL:$1|nta siquente pàggina ca havi statu prutiggiuta|ntê siquenti pàggini ca hannu statu prutiggiuti}} a' cascata:",
-       "titleprotectedwarning": "<strong>Accura: Sta pàggina fu' prutetta a' manera chi' giuvunu [[Special:ListGroupRights|privileggi spicìfici]] pi' crïàrila.</strong>\nPi' rifirimentu, ccassutta è ripurtata l'ultima vuci dû riggistru:",
+       "titleprotectedwarning": "<strong>Accura: Sta pàggina fu' prutetta a' manera chi' giuvunu [[Special:ListGroupRights|privileggi spicìfici]] pi' criàrila.</strong>\nPi' rifirimentu, ccassutta è ripurtata l'ultima vuci dû riggistru:",
        "templatesused": "{{PLURAL:$1|Template adupiratu|Template adupirati}} nta sta pàggina:",
        "templatesusedpreview": "{{PLURAL:$1|Template adupiratu|Template adupirati}} nta st'antiprima:",
        "templatesusedsection": "{{PLURAL:$1|Template adupiratu|Template adupirati}} nta sta sizzioni:",
        "template-semiprotected": "(semiprutettu)",
        "hiddencategories": "Sta pàggina apparteni a' {{PLURAL:$1|na catigurìa ammucciata|$1 catigurìi ammucciati}}:",
        "edittools": "<!-- Chistu testu cumpari sutta li moduli di canciu e carricamentu. -->",
-       "nocreatetext": "{{SITENAME}} limitau la pussibbilitati di crïari pàggini novi.\nPoi turnari 'n arreri e canciari na pàggina già esistenti, o puru [[Special:UserLogin|tràsiri o crïari nu cuntu novu]].",
-       "nocreate-loggedin": "Nun hai lu pirmissu pi' crïari pàggini novi.",
+       "nocreatetext": "{{SITENAME}} limitau la pussibbilitati di criari pàggini novi.\nPoi turnari 'n arreri e canciari na pàggina già esistenti, o puru [[Special:UserLogin|tràsiri o criari nu cuntu novu]].",
+       "nocreate-loggedin": "Nun hai lu pirmissu pi' criari pàggini novi.",
        "sectioneditnotsupported-title": "Nun è suppurtatu lu canciamentu pi' sizzioni",
        "sectioneditnotsupported-text": "Nta sta pàggina nun è suppurtatu lu canciamentu pi' sizzioni.",
        "permissionserrors": "Erruri di pirmissu",
        "moveddeleted-notice": "Sta pàggina fu scancillata. La lista di li scancillazzioni e spustamenti veni ammustrata di sècutu pi nfurmazzioni.",
        "log-fulllog": "Talìa lu riggìstru cumpletu",
        "edit-hook-aborted": "Canciamentu annullatu di n'hook.\nNun desi nudda spiegazzioni.",
-       "edit-gone-missing": "Nun si po' aggiurnari la pàggina.\nPari ca fu' cancillata.",
+       "edit-gone-missing": "Nun si po' aggiurnari la pàggina.\nPari ca fu cancillata.",
        "edit-conflict": "Cunflittu d'edizzioni.",
        "edit-no-change": "La to mudìfica fu' gnurata pirchì nun foru appurtati canciamenti ntô testu.",
-       "postedit-confirmation-created": "La pàggina fu' crïata.",
-       "postedit-confirmation-restored": "La pàggina fu' ripristinata.",
-       "postedit-confirmation-saved": "Lu to canciamentu fu' sarvatu.",
-       "edit-already-exists": "Nun fu' pussìbbili crïari na pàggina nova.\nGià esisti.",
+       "postedit-confirmation-created": "La pàggina fu criata.",
+       "postedit-confirmation-restored": "La pàggina fu ripristinata.",
+       "postedit-confirmation-saved": "Lu to canciamentu fu sarvatu.",
+       "edit-already-exists": "Nun fu' pussìbbili criari na pàggina nova.\nGià esisti.",
        "defaultmessagetext": "Testu dû missaggiu pridifinutu",
        "content-failed-to-parse": "Anàlisi sintàttica dû cuntinutu $2 pû mudellu $1 nun rinisciuta: $3",
        "invalid-content-data": "Dati nun vàlidi ntô cuntinutu",
        "undo-success": "Lu canciamentu pò essiri annullatu.\nVirificati lu paraguni ccà sutta p'accuràrivi ca lu cuntinutu è chiddu addisiatu e doppu sarvati la pàggina pi cumplitari l'annullamentu.",
        "undo-failure": "Lu canciamentu nun pò èssiri annullatu a càusa d'un cunflittu cu li canciamenti ntirmedi.",
        "undo-norev": "Lu canciamentu nun pò essiri annullatu pirchì nun esisti o fù cancillato.",
-       "undo-nochange": "Pari chi' u canciamentu già fu' annullatu.",
+       "undo-nochange": "Pari chi' lu canciamentu già fu annullatu.",
        "undo-summary": "Annullatu lu canciamentu $1 di [[Special:Contributions/$2|$2]] ([[User talk:$2|discussioni]])",
        "undo-summary-username-hidden": "Annullata a virsioni $1 fatta di n'utenti ammucciatu",
-       "cantcreateaccounttitle": "Mpussìbbili crïari un cuntu",
-       "cantcreateaccount-text": "La crïazzioni di cunti a' pàrtiri di stu nnirizzu IP (<strong>$1</strong>), fu' bluccata di [[User:$3|$3]].\n\nLa spiegazzioni data di $3 è <em>$2</em>",
-       "cantcreateaccount-range-text": "La crïazzioni di cunti a' pàrtiri dî nnirizzi IP nta l'intirvallu '''$1''', chi' cumprenni u to nnirizzu IP ('''$4'''), fu' bluccata di [[User:$3|$3]].\n\nLa spiegazzioni data di $3 è ''$2''",
+       "cantcreateaccounttitle": "Mpussìbbili criari un cuntu",
+       "cantcreateaccount-text": "La criazzioni di cunti a' pàrtiri di stu nnirizzu IP (<strong>$1</strong>), fu' bluccata di [[User:$3|$3]].\n\nLa spiegazzioni data di $3 è <em>$2</em>",
+       "cantcreateaccount-range-text": "La criazzioni di cunti a' pàrtiri dî nnirizzi IP nta l'intirvallu '''$1''', chi' cumprenni u to nnirizzu IP ('''$4'''), fu' bluccata di [[User:$3|$3]].\n\nLa spiegazzioni data di $3 è ''$2''",
        "viewpagelogs": "Talìa li riggìstra di sta pàggina",
        "nohistory": "Nun cc'è crunuluggìa dî canciamenti pi' sta pàggina.",
        "currentrev": "Virsioni currenti",
        "rev-deleted-user-contribs": "[nomu utenti o nnirizzu IP rimossi - canciamentu ammucciatu ntê cuntribbuti]",
        "rev-deleted-text-permission": "Sta virsioni dâ pàggina hà statu '''cancillata'''.\nCunzurtari lu [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} log di cancillazzioni] pi ultiriuri dittagghi.",
        "rev-suppressed-text-permission": "Sta virsioni dâ pàggina fu' <strong>supprimuta</strong>.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].",
-       "rev-deleted-text-unhide": "Sta virsioni dâ pàggina fu' <strong>cancillata</strong>.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].\nAncora poi [$1 talïari sta virsioni] si' voi prucèdiri.",
-       "rev-suppressed-text-unhide": "Sta virsioni dâ pàggina fu' <strong>supprimuta</strong>.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].\nAncora poi [$1 talïari sta virsioni] si' voi prucèdiri.",
-       "rev-deleted-text-view": "Sta virsioni dâ pàggina fu' <strong>cancillata</strong>.\nTu ancora a poi talïari; si ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
-       "rev-suppressed-text-view": "Sta virsioni dâ pàggina fu' <strong>supprimuta</strong>.\nTu ancora a poi talïari; si ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].",
-       "rev-deleted-no-diff": "Nun si po' talïari stu cunfruntu tra virsioni pirchì na revisioni fu <strong>cancillata</strong>.\nSi ponnu a' vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
-       "rev-suppressed-no-diff": "Non poi talïari sta diffirenza picchì una dî virsioni fu' <strong>cancillata</strong>.",
-       "rev-deleted-unhide-diff": "Una dî virsioni di sta diffirenza fu' <strong>cancillata</strong>.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].\nAncora poi [$1 talïari sta diffirenza] si' voi prucèdiri.",
-       "rev-suppressed-unhide-diff": "Una dî virsioni di sta diffirenza fu' <strong>supprimuta</strong>.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].\nAncora poi [$1 talïari sta diffirenza] si' voi prucèdiri.",
-       "rev-deleted-diff-view": "Una dî virsioni di sta diffirenza fu' <strong>cancillata</strong>.\nTu sta diffirenza ancora a poi talïari; si ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
-       "rev-suppressed-diff-view": "Una dî virsioni di sta diffirenza fu' <strong>supprimuta</strong>.\nTu sta diffirenza ancora a poi talïari; si ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].",
+       "rev-deleted-text-unhide": "Sta virsioni dâ pàggina fu' <strong>cancillata</strong>.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].\nAncora poi [$1 taliari sta virsioni] si' voi prucèdiri.",
+       "rev-suppressed-text-unhide": "Sta virsioni dâ pàggina fu' <strong>supprimuta</strong>.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].\nAncora poi [$1 taliari sta virsioni] si' voi prucèdiri.",
+       "rev-deleted-text-view": "Sta virsioni dâ pàggina fu' <strong>cancillata</strong>.\nTu ancora a poi taliari; si ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
+       "rev-suppressed-text-view": "Sta virsioni dâ pàggina fu' <strong>supprimuta</strong>.\nTu ancora a poi taliari; si ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].",
+       "rev-deleted-no-diff": "Nun si po' taliari stu cunfruntu tra virsioni pirchì na revisioni fu <strong>cancillata</strong>.\nSi ponnu a' vìdiri li dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
+       "rev-suppressed-no-diff": "Non poi taliari sta diffirenza picchì una dî virsioni fu' <strong>cancillata</strong>.",
+       "rev-deleted-unhide-diff": "Una dî virsioni di sta diffirenza fu' <strong>cancillata</strong>.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].\nAncora poi [$1 taliari sta diffirenza] si' voi prucèdiri.",
+       "rev-suppressed-unhide-diff": "Una dî virsioni di sta diffirenza fu' <strong>supprimuta</strong>.\nSi ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].\nAncora poi [$1 taliari sta diffirenza] si' voi prucèdiri.",
+       "rev-deleted-diff-view": "Una dî virsioni di sta diffirenza fu' <strong>cancillata</strong>.\nTu sta diffirenza ancora a poi taliari; si ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} riggistru dî cancillazzioni].",
+       "rev-suppressed-diff-view": "Una dî virsioni di sta diffirenza fu' <strong>supprimuta</strong>.\nTu sta diffirenza ancora la poi taliari; si ponnu a' vìdiri i dittagghî ntô [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} riggistru dî supprissioni].",
        "rev-delundel": "cancia la visibbilità",
        "rev-showdeleted": "ammustra",
        "revisiondelete": "Cancella o annulla la cancillazzioni di virsioni",
        "prefs-user-pages": "Pàggini di l'utenti",
        "prefs-personal": "Prufilu di l'utenti",
        "prefs-rc": "Ùrtimi canciamenti",
-       "prefs-watchlist": "Lista talïata",
-       "prefs-watchlist-days": "Nùmmiru di jorna a' ammustrari ntâ lista talïata:",
+       "prefs-watchlist": "Lista taliata",
+       "prefs-watchlist-days": "Nùmmiru di jorna a' ammustrari ntâ lista taliata:",
        "prefs-watchlist-days-max": "Màssimu $1 {{PLURAL:$1|jornu|jorna}}",
-       "prefs-watchlist-edits": "Nùmmiru di canciamenti a' ammustrari ntâ lista talïata estinnuta:",
+       "prefs-watchlist-edits": "Nùmmiru di canciamenti a' ammustrari ntâ lista taliata estinnuta:",
        "prefs-watchlist-edits-max": "Nùmmiru màssimu: 1000",
-       "prefs-watchlist-token": "Token dâ me lista talïata:",
+       "prefs-watchlist-token": "Token dâ me lista taliata:",
        "prefs-misc": "Varî",
        "prefs-resetpass": "Cancia password",
        "prefs-changeemail": "Cancia nnirizzu di posta elittrònica",
        "recentchangesdays-max": "(màssimu $1 {{PLURAL:$1|jornu|jorna}})",
        "recentchangescount": "Nùmmiru di canciamenti a' ammustrari comu mpustazzioni pridifinuta:",
        "prefs-help-recentchangescount": "Si rifirisci a' l'ùrtimi canciamenti, li crunuluggìi e li riggistra.",
-       "prefs-help-watchlist-token2": "Chista è la chiavi sigreta pû feed web dâ to lista talïata.\nCu è jè ch'a canusci po' lèggiri la to lista talïata, dunca nâ diffunniri.\nSi' ti giuva, [[Special:ResetTokens|la poi azzirari]].",
+       "prefs-help-watchlist-token2": "Chista è la chiavi sigreta pû feed web dâ to lista taliata.\nCu è jè ch'a canusci po' lèggiri la to lista taliata, dunca nâ diffunniri.\nSi' ti giuva, [[Special:ResetTokens|la poi azzirari]].",
        "savedprefs": "Li to prifirenzi foru sarvati.",
        "timezonelegend": "Fusu urariu:",
        "localtime": "Ura lucali:",
        "grouppage-suppress": "{{ns:project}}:Supravisura",
        "right-read": "Lèggiri pàggini",
        "right-edit": "Canciari pàggini",
-       "right-createpage": "Crïari pàggini (chi' nun sunnu di discussioni)",
-       "right-createtalk": "Crïari pàggini di discussioni",
-       "right-createaccount": "Crïari cunti novi di l'utenti",
+       "right-createpage": "Criari pàggini (chi' nun sunnu di discussioni)",
+       "right-createtalk": "Criari pàggini di discussioni",
+       "right-createaccount": "Criari cunti novi di l'utenti",
        "right-minoredit": "Marcari canciamenti comu nichi",
        "right-move": "Spustari pàggini",
        "right-move-subpages": "Spustari pàggini chî so suttapàggini",
        "right-move-rootuserpages": "Spustari pàggini ràdica di l'utenti",
        "right-move-categorypages": "Spustari pàggini di catigurìa",
        "right-movefile": "Spustari file",
-       "right-suppressredirect": "Nun crïari rimanni ô postu dâ pàggina origginali quannu si spostunu pàggini",
+       "right-suppressredirect": "Nun criari rimanni ô postu dâ pàggina origginali quannu si spostunu pàggini",
        "right-upload": "Carricari file",
        "right-reupload": "Suprascrìviri file esistenti",
        "right-reupload-own": "Suprascrìviri file esistenti carricati dû stissu utenti",
        "right-undelete": "Annullari la cancillazzioni di pàggini",
        "right-suppressrevision": "Vìdiri, ammucciari e ammustrari virsioni spicìfichi di pàggini di quali utenti è jè",
        "right-viewsuppressed": "Vìdiri virsioni ammucciati a' quali utenti è jè",
-       "right-suppressionlog": "Talïari li riggistra privati",
+       "right-suppressionlog": "Taliari li riggistra privati",
        "right-block": "Bluccari autri utenti pi' nun fàricci fari canciamenti",
        "right-blockemail": "Bluccari n'utenti pi' nun fàricci mannari posta elittrònica",
        "right-hideuser": "Bluccari nu nomu utenti, ammucciannulu ô pùbblicu",
        "right-edituserjs": "Canciari li file JavaScript di l'àutri utenti",
        "right-editmyusercss": "Canciari li file CSS dû propiu utenti",
        "right-editmyuserjs": "Canciari li file JavaScript dû propiu utenti",
-       "right-viewmywatchlist": "Talïari la propia lista talïata",
-       "right-editmywatchlist": "Canciari la propia lista talïata. Nota chi' certi azzioni cci ponnu agghiùnciri pàggini macari senza di stu drittu.",
-       "right-viewmyprivateinfo": "Talïari li propî dati risirvati (ad esempiu lu nnirizzu di posta elittrònica e lu nomu veru)",
+       "right-viewmywatchlist": "Taliari la propia lista taliata",
+       "right-editmywatchlist": "Canciari la propia lista taliata. Nota chi' certi azzioni cci ponnu agghiùnciri pàggini macari senza di stu drittu.",
+       "right-viewmyprivateinfo": "Taliari li propî dati risirvati (ad esempiu lu nnirizzu di posta elittrònica e lu nomu veru)",
        "right-editmyprivateinfo": "Canciari li propî dati risirvati (ad esempiu lu nnirizzu di posta elittrònica e lu nomu veru)",
        "right-editmyoptions": "Canciari li propî prifirenzi",
        "right-rollback": "Canciari lestu n'arreri li mudìfichi di l'ùltimu utenti chi' canciau na certa pàggina",
        "right-siteadmin": "Bluccari e sbluccari la basi di dati",
        "right-override-export-depth": "Espurtari pàggini cu li pàggini culligati nfina ô quintu liveddu",
        "right-sendemail": "Mannari missaggi di posta elittrònica a' l'autri utenti",
-       "right-passwordreset": "Talïari li missaggi di posta elittrònica d'azziramentu dî password",
+       "right-passwordreset": "Taliari li missaggi di posta elittrònica d'azziramentu dî password",
        "newuserlogpage": "Riggistru di l'utenti novi",
-       "newuserlogpagetext": "Chistu è nu riggistru di li crïazzioni di utenti novi.",
+       "newuserlogpagetext": "Chistu è nu riggistru di li criazzioni di utenti novi.",
        "rightslog": "Riggistru dî dritti di l'utenti",
        "rightslogtext": "Chistu è nu riggistru dî canciamenti ê dritti di l'utenti.",
        "action-read": "lèggiri sta pàggina",
        "action-edit": "canciari sta pàggina",
-       "action-createpage": "crïari pàggini",
-       "action-createtalk": "crïari pàggini di discussioni",
-       "action-createaccount": "crïari stu cuntu di l'utenti",
-       "action-history": "talïari la crunuluggìa di sta pàggina",
+       "action-createpage": "criari pàggini",
+       "action-createtalk": "criari pàggini di discussioni",
+       "action-createaccount": "criari stu cuntu di l'utenti",
+       "action-history": "taliari la crunuluggìa di sta pàggina",
        "action-minoredit": "marcari stu canciamentu comu nicu",
        "action-move": "spustari sta pàggina",
        "action-move-subpages": "spustari sta pàggina e li so suttapàggini",
        "action-writeapi": "adupirari l'API pi' scrìviri",
        "action-delete": "cancillari sta pàggina",
        "action-deleterevision": "cancillari sta virsioni",
-       "action-deletedhistory": "talïari la crunuluggìa cancillata di sta pàggina",
+       "action-deletedhistory": "taliari la crunuluggìa cancillata di sta pàggina",
        "action-browsearchive": "circari pàggini cancillati",
        "action-undelete": "annullari la cancillazzioni di sta pàggina",
        "action-suppressrevision": "rivìdiri e ripristinari sta virsioni ammucciata",
        "action-userrights-interwiki": "canciari li dritti di l'utenti supra a autri wiki",
        "action-siteadmin": "bluccari e sbluccari la basi di dati",
        "action-sendemail": "mannari missaggi di posta elittrònica",
-       "action-editmywatchlist": "canciari la to lista talïata",
-       "action-viewmywatchlist": "talïari la to lista talïata",
-       "action-viewmyprivateinfo": "talïari li to nfurmazzioni risirvati",
+       "action-editmywatchlist": "canciari la to lista taliata",
+       "action-viewmywatchlist": "taliari la to lista taliata",
+       "action-viewmyprivateinfo": "taliari li to nfurmazzioni risirvati",
        "action-editmyprivateinfo": "canciari li to nfurmazzioni risirvati",
        "action-editcontentmodel": "canciari lu mudellu di cuntinutu di na pàggina",
        "nchanges": "$1 {{PLURAL:$1|canciamentu|canciamenti}}",
        "recentchanges-summary": "Sta pàggina prisenta li canciamenti cchiu' ricenti ê cuntinuti dâ wiki.",
        "recentchanges-noresult": "Nuddu canciamentu ntô pirìudu spicificatu currispunni a' sti criteria.",
        "recentchanges-feed-description": "Stu feed prisenta li canciamenti cchiu' ricenti ê cuntinuti dâ wiki.",
-       "recentchanges-label-newpage": "Stu canciamentu crïau na pàggina nova",
+       "recentchanges-label-newpage": "Stu canciamentu criau na pàggina nova",
        "recentchanges-label-minor": "Chistu è nu canciamentu nicu",
-       "recentchanges-label-bot": "Stu canciamentu fu' fattu di nu bot",
+       "recentchanges-label-bot": "Stu canciamentu fu fattu di nu bot",
        "recentchanges-label-unpatrolled": "Stu canciamentu ancora nun havi statu battugghiatu",
        "recentchanges-label-plusminus": "La grannizza dâ pàggina canciau di stu nùmmiru di byte",
        "recentchanges-legend-heading": "'''Legenda:'''",
        "minoreditletter": "n",
        "newpageletter": "N",
        "boteditletter": "b",
-       "number_of_watching_users_pageview": "[talïata di {{PLURAL:$1|nu utenti|$1 utenti}}]",
+       "number_of_watching_users_pageview": "[taliata di {{PLURAL:$1|nu utenti|$1 utenti}}]",
        "rc_categories": "Lìmita a li catigurìi (siparati di \"|\")",
        "rc_categories_any": "Quali è jè",
        "rc-change-size-new": "$1 {{PLURAL:$1|byte|byte}} appressu dû canciamentu",
        "newsectionsummary": "/* $1 */ sizzioni nova",
        "rc-enhanced-expand": "Ammustra li dittagghî",
        "rc-enhanced-hide": "Ammuccia li dittagghî",
-       "rc-old-title": "crïata ô principiu comu \"$1\"",
+       "rc-old-title": "criata ô principiu comu \"$1\"",
        "recentchangeslinked": "Canciamenti culligati",
        "recentchangeslinked-feed": "Canciamenti culligati",
        "recentchangeslinked-toolbox": "Canciamenti culligati",
        "upload-tryagain": "Manna la discrizzioni canciata dû file",
        "uploadnologin": "Nun trasutu",
        "uploadnologintext": "Hâ' $1 pi' putiri carricari file.",
-       "upload_directory_missing": "La cartella dî carricamenti ($1) nun esisti lu server web nun riniscìu a' crïàrila.",
+       "upload_directory_missing": "La cartella dî carricamenti ($1) nun esisti lu server web nun riniscìu a' criàrila.",
        "upload_directory_read_only": "La cartella dî carricamenti ($1) nun è scrivìbbili dû server web.",
        "uploaderror": "Erruri ntô carricamentu",
        "upload-recreate-warning": "<strong>Accura: Nu file cu' ddu nomu fu' cancillatu o spustatu.</strong>\n\nPi' cummudità ccassutta cci su' li riggistra dî cancillazzioni e dî spustamenti di sta pàggina:",
        "uploadtext": "Usa lu mòdulu ccà sutta pi carricari file novi. Pi vìdiri o circari li file già carricati, talìa lu [[Special:FileList|log dî file carricati]]. Carricamenti di file e di virsioni novi di file sunnu riggistrati ntô [[Special:Log/upload|log di l'upload]], li cancillazzioni di file sunnu\nriggistrati [[Special:Log/delete|ccà]].\n\nPi nziriri nu file nta na pàggina, fai nu lijami accussì:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>''' p'usari la virsioni ntera dû file\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|testu altirnativu]]</nowiki></code>''' p'usari na virsioni làrica 200 pixel nziruta nta nu box, alliniata a manu manca e cu 'testu altirnativu' comu didascalìa\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>''' pi culligari direttamenti a lu file senza vidìrilu.",
-       "upload-permitted": "Tipi di file cunsintuti: $1.",
-       "upload-preferred": "Tipi di file cunsigghiati: $1.",
-       "upload-prohibited": "Tipi di file prüibbiti: $1.",
+       "upload-permitted": "{{PLURAL:$2|Tipu|tipi}} di file {{PLURAL:$2|cunsintutu|cunsintuti}}: $1.",
+       "upload-preferred": "{{PLURAL:$2|Tipu|tipi}} di file {{PLURAL:$2|cunsigghiatu|cunsigghiati}}: $1.",
+       "upload-prohibited": "{{PLURAL:$2|Tipu|tipi}} di file {{PLURAL:$2|pruibbutu|pruibbuti}}: $1.",
        "uploadlogpage": "Riggistru dî file carricati",
        "uploadlogpagetext": "Ccà sutta cc'è la lista di l'ùrtimi file carricati.\nTalìa la [[Special:NewFiles|gallarìa dî file novi]] pûn risucuntu cchiu' visuali.",
        "filename": "Nomu dû file",
        "illegal-filename": "Stu nomu dû file nun è cunsintutu.",
        "overwrite": "Suprascrìviri nu file chi' già esisti nun è cunsintutu.",
        "unknown-error": "Mmattìu n'erruri scanusciutu.",
-       "tmp-create-error": "Nun fu' pussìbbili crïari u file timpuraniu.",
+       "tmp-create-error": "Nun fu pussìbbili criari u file timpuraniu.",
        "tmp-write-error": "Erruri ntâ scrittura dû file timpuraniu.",
        "large-file": "Si raccumanna di nun passari la grannizza di $1 p'ognin file; stu file è granni $2.",
        "largefileserver": "Stu file è cchiu' grossu di quantu lu server è cunfiguratu a' accittari.",
        "emptyfile": "Lu file chi' carricasti pari vacanti.\nChistu putissi èssiri pruvucatu di nu sbagghiu ntô nomu dû file.\nCuntrolla ca pi' davera voi carricari stu file.",
        "windows-nonascii-filename": "Sta wiki nun supporta i nomi di file cu' caràttiri spiciali.",
        "fileexists": "Nu file cu' stu nomu già esisti, pi' favuri cuntrolla <strong>[[:$1]]</strong> si' nun si' {{GENDER:|sicuru|sicura}} ch'u voi canciari.\n[[$1|thumb]]",
-       "filepageexists": "La pàggina dâ discrizzioni di stu file fu' ggià crïata ô nnirizzu <strong>[[:$1]]</strong>, ma pi' com'ora nun c'è nuddu file cu' stu nomu.\nU riassuntu chi' immetti nun cumpariravi ntâ pàggina dâ discrizzioni.\nPi' fàrilu cumpàriri, avirrai a' mudificari a' manu dda pàggina.\n[[$1|thumb]]",
+       "filepageexists": "La pàggina dâ discrizzioni di stu file fu' ggià criata ô nnirizzu <strong>[[:$1]]</strong>, ma pi' com'ora nun c'è nuddu file cu' stu nomu.\nLu riassuntu chi' immetti nun cumpariravi ntâ pàggina dâ discrizzioni.\nPi' fàrilu cumpàriri, avirrai a' mudificari a' manu dda pàggina.\n[[$1|thumb]]",
        "fileexists-extension": "Nu file cûn nomu simili già esisti: [[$2|thumb]]\n* Nomu dû file carricannu: <strong>[[:$1]]</strong>\n* Nomu dû file esistenti: <strong>[[:$2]]</strong>\nForsi voi scègghîri un nomu cchiù' distintivu?",
        "fileexists-thumbnail-yes": "Lu file carricato sembra èssiri lu risurtatu di n'antiprima ''(thumbnail)''. [[$1|thumb]]\nVirificari, pi cunfruntu, lu file <strong>[[:$1]]</strong>.\nSiduu si tratta dâ stissa mmagini, nte dimenzioni urigginali, nun è nicissariu carricara àutri antiprimi.",
        "file-thumbnail-no": "Lu nomu dô file accumenza cu <strong>$1</strong>.\nPari quinni èssiri lu risurtatu di n'antiprima ''(thumbnail)''.\nSiddu si disponi dâ mmàggini ntâ risuluzzioni urigginali, si prega di carricàrila. 'N casu cuntrariu, si prega di canciari lu nomu dô file.",
        "upload-proto-error": "Protucollu erratu",
        "upload-proto-error-text": "Pi l'upload rimotu è nicissariu spicificari URL ca nìzzianu cu <code>http://</code> oppuru <code>ftp://</code>.",
        "upload-file-error": "Erruri nternu",
-       "upload-file-error-text": "S'hâ' virificatu n'erruri nternu duranti la crïazzioni dûn file timpuraniu supra ô server.\nPi' favuri cuntatta n'[[Special:ListUsers/sysop|amministraturi di sistema]].",
+       "upload-file-error-text": "S'hâ' virificatu n'erruri nternu duranti la criazzioni dûn file timpuraniu supra ô server.\nPi' favuri cuntatta n'[[Special:ListUsers/sysop|amministraturi di sistema]].",
        "upload-misc-error": "Erruri nun idintificatu pi l'upload",
        "upload-misc-error-text": "S'hà virificatu un erruri nun idintificatu duranti lu carricamentu dû file. Virificari ca la URL è curretta e accissìbbili e pruvari di novu. Siddu lu prubbrema pirsisti, cuntattari un amministraturi di sistema.",
        "upload-too-many-redirects": "L'URL cuntineva troppi redirect",
        "upload-http-error": "Mmattìu n'erruri HTTP: $1",
        "upload-copy-upload-invalid-domain": "Lu carricamentu di copî nun è cunsintutu di stu duminiu.",
-       "backend-fail-stream": "Nun fu' pussìbbili trasmèttiri lu file \"$1\".",
+       "backend-fail-stream": "Nun fu pussìbbili trasmèttiri lu file \"$1\".",
        "backend-fail-backup": "Nun fu' pussìbbili fari na copia di riserva dû file \"$1\".",
        "backend-fail-notexists": "Lu file $1 nun esisti.",
        "backend-fail-hashes": "Nun fu' pussìbbili ottèniri l'hash dî file pi' fari lu cunfruntu.",
        "backend-fail-notsame": "Già esisti un file nun idènticu a' \"$1\".",
        "backend-fail-invalidpath": "\"$1\" nun è un caminu d'archiviazzioni vàlidu.",
-       "backend-fail-delete": "Nun fu' pussìbbili cancillari lu file \"$1\".",
+       "backend-fail-delete": "Nun fu pussìbbili cancillari lu file \"$1\".",
        "backend-fail-describe": "Nun fu' pussìbbili canciari li metadati dû file \"$1\".",
        "backend-fail-alreadyexists": "Lu file \"$1\" già esisti.",
        "backend-fail-store": "Nun fu' pussìbbili mimurizzari lu file \"$1\" nta \"$2\".",
        "backend-fail-copy": "Nun fu' pussìbbili cupiari lu file \"$1\" nta \"$2\".",
        "backend-fail-move": "Nun fu' pussìbbili spustari lu file \"$1\" nta \"$2\".",
-       "backend-fail-opentemp": "Nun fu' pussìbbili àpriri lu file timpuraniu.",
+       "backend-fail-opentemp": "Nun fu pussìbbili àpriri lu file timpuraniu.",
        "backend-fail-writetemp": "Nun fu' pussìbbili scrìviri ntô file timpuraniu.",
-       "backend-fail-closetemp": "Nun fu' pussìbbili chiùdiri lu file timpuraniu.",
+       "backend-fail-closetemp": "Nun fu pussìbbili chiùdiri lu file timpuraniu.",
        "backend-fail-read": "Nun fu' pussìbbili lèggiri lu file \"$1\".",
-       "backend-fail-create": "Nun fu' pussìbbili scrìviri lu file \"$1\".",
+       "backend-fail-create": "Nun fu pussìbbili scrìviri lu file \"$1\".",
        "backend-fail-maxsize": "Nun fu' pussìbbili scrìviri lu file \"$1\" picchì è cchiu' grossu di {{PLURAL:$2|un byte|$2 byte}}.",
        "backend-fail-readonly": "U backend di mimurizzazzioni \"$1\" pi' com'ora è a' sula littura. La spiegazzioni data è: \"<em>$2</em>\"",
        "backend-fail-synced": "Lu file \"$1\" si trova nta nu statu incoerenti tra dî backend di mimurizzazzioni interni.",
        "lockmanager-fail-svr-release": "Nun fu' pussìbbili arrènniri li blocchi dû server $1.",
        "zip-file-open-error": "Mmattìu n'erruri nta l'apirtura dû file pî cuntrolli di ZIP.",
        "zip-wrong-format": "Lu file spicificatu nun era nu file ZIP.",
-       "zip-bad": "Lu file è nu file ZIP chi' è ruïnatu o è illiggìbbili pi' quarchi' n'autru mutivu.\nNun si po' cuntrullari bona la so sicurizza.",
+       "zip-bad": "Lu file è nu file ZIP chi' è ruinatu o è illiggìbbili pi' quarchi' n'autru mutivu.\nNun si po' cuntrullari bona la so sicurizza.",
        "zip-unsupported": "Lu file è nu file ZIP chi' cunteni carattirìstichi ZIP chi' nun su' suppurtati dâ MediaWiki.\nNun si po' cuntrullari bona la so sicurizza.",
        "uploadstash": "Ammucciàgghia dî carricamenti",
        "uploadstash-summary": "Sta pàggina duna accessu ê file chi' furu carricati, o si stannu carricannu, però ancora nun hannu statu pubblicati ntâ wiki. Sti file nun su' visìbbili a' nuddu sparti di cu li carricau.",
        "img-auth-accessdenied": "Accessu nigatu",
        "img-auth-nopathinfo": "Variàbbili PATH_INFO mancanti.\nLu to server nun è mpustatu pi' passari sta nfurmazzioni.\nPurrìa èssiri basatu supra a' CGI e nun po' suppurtari img_auth.\nTalìa https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorization.",
        "img-auth-notindir": "Lu caminu dumannatu nun è ntâ cartella cunfigurata pî carricamenti.",
-       "img-auth-badtitle": "Nun fu' pussìbbili custrüiri nu tìtulu vàlidu a' pàrtiri di \"$1\".",
+       "img-auth-badtitle": "Nun fu' pussìbbili custruiri nu tìtulu vàlidu a' pàrtiri di \"$1\".",
        "img-auth-nologinnWL": "Nun si' trasutu e \"$1\" nun è ntâ lista janca.",
        "img-auth-nofile": "Lu file \"$1\" nun esisti.",
        "img-auth-isdir": "Stai pruvannu a' accèdiri a' na cartella, \"$1\".\nE' cunsintutu l'accessu sulu ê file.",
        "http-timed-out": "La richiesta HTTP scadìu.",
        "http-curl-error": "Erruri ntô scarricamentu di l'URL: $1",
        "http-bad-status": "Mmattìu nu prubblema duranti la richiesta HTTP: $1 $2",
-       "upload-curl-error6": "Nun fu' pussìbbili ragghiùnciri l'URL",
+       "upload-curl-error6": "Nun fu pussìbbili ragghiùnciri l'URL",
        "upload-curl-error6-text": "Nun fu' pussìbbili ragghiùnciri l'URL ca spicificasti.\nCuntrolla megghiu ca l'URL è scritta bona e ca lu situ chi' la servi funziona.",
        "upload-curl-error28": "Tempu scadutu pû carricamentu",
        "upload-curl-error28-text": "Lu situ rimotu cci stesi troppu tempu a' rispùnniri.\nPi' favuri cuntrolla ca lu situ funziona, aspetta un pocu e ppoi prova n'autra vota.\nPoi cunsiddirari di pruvari ntôn mumentu quannu c'è cchiu' picca tràficu.",
        "filedelete-intro-old": "Stai cancillannu la virsioni di <strong>[[Media:$1|$1]]</strong> dû [$4 $2 ê $2].",
        "filedelete-comment": "Mutivu:",
        "filedelete-submit": "Cancella",
-       "filedelete-success": "Lu file <strong>$1</strong> fu' cancillatu.",
+       "filedelete-success": "Lu file <strong>$1</strong> fu cancillatu.",
        "filedelete-success-old": "La virsioni dû file <strong>[[Media:$1|$1]]</strong> dû $2 ê $3 fu' cancillata.",
        "filedelete-nofile": "<strong>$1</strong> nun esisti.",
        "filedelete-nofile-old": "Nun cc'è archiviata nudda virsioni di <strong>$1</strong> chi' havi l'attribbuta spicificati.",
        "mimesearch-summary": "Sta pàggina cunzenti di filtrari li file 'n basi a lu tipu MIME. Nziriri la stringa di ricerca ntâ forma tipu/suttatipu o tipu/*, p'asempiu <code>image/jpeg</code>.",
        "mimetype": "Tipu MIME:",
        "download": "scàrrica",
-       "unwatchedpages": "Pàggini nun talïati",
+       "unwatchedpages": "Pàggini nun taliati",
        "listredirects": "Alencu di tutti li rimanni",
        "listduplicatedfiles": "Lista dî file cu' duppiuni",
        "listduplicatedfiles-summary": "Chista è na lista dî file unni la virsioni cchiu' nova è nu duppiuni dâ virsioni cchiu' nova di quarchi' autru file. Sulu li file lucali su' pigghiati a' cunsiddirazzioni.",
        "statistics-pages": "Pàggini",
        "statistics-pages-desc": "Tutti li pàggini dâ wiki, cu' puru chiddi di discussioni, li rimanni, etc.",
        "statistics-files": "File carricati",
-       "statistics-edits": "Pàggini canciati di quannu {{SITENAME}} fu' armatu",
+       "statistics-edits": "Pàggini canciati di quannu {{SITENAME}} fu armatu",
        "statistics-edits-average": "Media dî canciamenti pi' pàggina",
        "statistics-users": "[[Special:ListUsers|Utenti]] riggistrati",
        "statistics-users-active": "Utenti attivi",
        "pageswithprop-prophidden-binary": "valuri binariu dâ prupietà ammucciatu ($1)",
        "doubleredirects": "Rimanni duppî",
        "doubleredirectstext": "Sta pàggina alenca li pàggini chi rimànnunu ad autri pàggini di rimannu.\nOgnin riga cunteni culligamenti a lu primu e a lu secunnu rimannu, sparti dâ distinazzioni dû secunnu rimannu, ca di sòlitu è la pàggina \"giusta\" unni avissi a' puntari macari lu primu rimannu.\nLi rimanni <del>sbarrati</del> hannu statu cunsati.",
-       "double-redirect-fixed-move": "[[$1]] fu' spustata.\nFu' aggiurnata autumaticamenti e ora rimanna a' [[$2]].",
+       "double-redirect-fixed-move": "[[$1]] fu spustata.\nFu aggiurnata autumaticamenti e ora rimanna a [[$2]].",
        "double-redirect-fixed-maintenance": "Cunsatu autumaticamenti nu rimannu duppiu di [[$1]] a' [[$2]] ntôn sirvizzu di manutinzioni.",
        "double-redirect-fixer": "Cunsaturi dî rimanni",
        "brokenredirects": "Rimanni rutti",
        "deadendpagestext": "Li pàggini siguenti sunnu privi di culligamenti versu autri pàggini di {{SITENAME}}.",
        "protectedpages": "Pàggini prutetti",
        "protectedpages-indef": "Sulu prutizzioni a' tempu innitirminatu",
-       "protectedpages-summary": "Sta pàggina elenca li pàggini già esistenti chi' comu ad ora su' prutetti. Pi' na lista dî tìtuli prutetti, chî quali vèni prüibbutu crïari pàggini novi, talìa [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
+       "protectedpages-summary": "Sta pàggina elenca li pàggini già esistenti chi' comu ad ora su' prutetti. Pi' na lista dî tìtuli prutetti, chî quali vèni pruibbutu criari pàggini novi, talìa [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
        "protectedpages-cascade": "Sulu prutizzioni a' cascata",
        "protectedpages-noredirect": "Ammuccia li rimanni",
        "protectedpagesempty": "Pi' com'ora nun cc'è nudda pàggina prutetta cu' sti paràmitri.",
        "protectedpages-unknown-timestamp": "Scanusciuti",
        "protectedpages-unknown-performer": "Utenti scanusciutu",
        "protectedtitles": "Tìtuli prutetti",
-       "protectedtitles-summary": "Sta pàggina elenca li tìtuli prutetti, chî quali vèni prüibbutu crïari pàggini novi. Pi' na lista dî pàggini già esistenti chi' su' prutetti, talìa [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
+       "protectedtitles-summary": "Sta pàggina elenca li tìtuli prutetti, chî quali vèni pruibbutu criari pàggini novi. Pi' na lista dî pàggini già esistenti chi' su' prutetti, talìa [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
        "protectedtitlesempty": "Pi' com'ora nun cc'è nuddu tìtulu prutettu cu' sti paràmitri.",
        "listusers": "Lista di l'utenti",
        "listusers-editsonly": "Ammustra sulu l'utenti ca hannu cuntribbuti",
-       "listusers-creationsort": "Òrdina pi' data di crïazzioni",
+       "listusers-creationsort": "Òrdina pi' data di criazzioni",
        "listusers-desc": "Òrdina a' scìnniri",
        "usereditcount": "$1 {{PLURAL:$1|cuntribbutu|cuntribbuta}}",
-       "usercreated": "{{GENDER:$3|Crïatu}} lu $1 ê $2",
+       "usercreated": "{{GENDER:$3|Criatu}} lu $1 ê $2",
        "newpages": "Pàggini novi",
        "newpages-username": "Utenti:",
        "ancientpages": "Pàggini cchiu' vecchî",
        "allpagesbadtitle": "Lu tìtulu di pàggina spicificatu nun era vàlidu o avìa nu prifissu intir-linguìsticu o intir-wiki.\nPutissi cuntèniri unu o cchiu' ssai caràttiri chi' nun su' cunsintuti ntê tìtula.",
        "allpages-bad-ns": "Lu namespace \"$1\" nun asisti supra a' {{SITENAME}}.",
        "allpages-hide-redirects": "Ammuccia li rimanni",
-       "cachedspecial-viewing-cached-ttl": "Stai talïannu na virsioni ntâ ''cache'' di sta pàggina, chi' po' èssiri vecchia nfinu a' $1.",
-       "cachedspecial-viewing-cached-ts": "Stai talïannu na virsioni ntâ ''cache'' di sta pàggina, chi' purrìa nun èssiri pirfittamenti aggiurnata.",
+       "cachedspecial-viewing-cached-ttl": "Stai taliannu na virsioni ntâ ''cache'' di sta pàggina, chi' po' èssiri vecchia nfinu a' $1.",
+       "cachedspecial-viewing-cached-ts": "Stai taliannu na virsioni ntâ ''cache'' di sta pàggina, chi' purrìa nun èssiri pirfittamenti aggiurnata.",
        "cachedspecial-refresh-now": "Va talìa la cchiu' nova.",
        "categories": "Catigurìi",
        "categoriespagetext": "{{PLURAL:$1|La catigurìa ccassutta cunteni|Li catigurìi ccassutta cuntèninu}} pàggini o file multimidiali.\nLi [[Special:UnusedCategories|catigurìi vacanti]] nun sunnu ammustrati ccà.\nTalìa macari li [[Special:WantedCategories|catigurìi addumannati]].",
        "emailuserfooter": "Stu missaggiu fu' mannatu di $1 a' $2 attraversu dâ funzioni \"Manna nu missàggiu di posta elittrònica a' l'utenti\" supra a' {{SITENAME}}.",
        "usermessage-summary": "Lassatu nu missaggiu di sistema.",
        "usermessage-editor": "Missaggeri di sistema",
-       "watchlist": "Lista talïata",
-       "mywatchlist": "La me lista talïata",
+       "watchlist": "Lista taliata",
+       "mywatchlist": "La me lista taliata",
        "watchlistfor2": "Di $1, $2",
-       "nowatchlist": "Nun hai nudda vuci ntâ to lista talïata.",
-       "watchlistanontext": "Pi' vìdiri e canciari li vuci dâ to lista talïata hâ' tràsiri.",
+       "nowatchlist": "Nun hai nudda vuci ntâ to lista taliata.",
+       "watchlistanontext": "Pi' vìdiri e canciari li vuci dâ to lista taliata hâ' tràsiri.",
        "watchnologin": "Nun hai trasutu",
-       "addwatch": "Agghiunci â lista talïata",
-       "addedwatchtext": "La pàggina \"[[:$1]]\" fu' agghiunciuta â to [[Special:Watchlist|lista talïata]].\nI canciamenti futuri a' sta pàggina e â so pàggina di discussioni venirannu elincati cca.",
-       "addedwatchtext-short": "La pàggina \"$1\" fu' agghiunciuta â to lista talïata.",
-       "removewatch": "Leva dâ lista talïata",
-       "removedwatchtext": "La pàggina \"[[:$1]]\" fu' livata dâ [[Special:Watchlist|to lista talïata]].",
-       "removedwatchtext-short": "La pàggina \"$1\" fu' livata dâ to lista talïata.",
+       "addwatch": "Agghiunci â lista taliata",
+       "addedwatchtext": "La pàggina \"[[:$1]]\" fu' agghiunciuta â to [[Special:Watchlist|lista taliata]].\nI canciamenti futuri a' sta pàggina e â so pàggina di discussioni venirannu elincati cca.",
+       "addedwatchtext-short": "La pàggina \"$1\" fu' agghiunciuta â to lista taliata.",
+       "removewatch": "Leva dâ lista taliata",
+       "removedwatchtext": "La pàggina \"[[:$1]]\" fu' livata dâ [[Special:Watchlist|to lista taliata]].",
+       "removedwatchtext-short": "La pàggina \"$1\" fu' livata dâ to lista taliata.",
        "watch": "Talìa",
        "watchthispage": "Talìa sta pàggina",
-       "unwatch": "Nun talïari cchiu'",
-       "unwatchthispage": "Finisci di talïari",
+       "unwatch": "Nun taliari cchiu'",
+       "unwatchthispage": "Finisci di taliari",
        "notanarticle": "Nun è na pàggina di cuntinutu",
        "notvisiblerev": "L'ùltima virsioni fatta di n'utenti diffirenti fu' cancillata",
-       "watchlist-details": "{{PLURAL:$1|Cc'è na pàggina|Cci su' $1 pàggini}} ntâ to lista talïata, senza cuntari sparti li pàggini di discussioni.",
+       "watchlist-details": "{{PLURAL:$1|Cc'è na pàggina|Cci su' $1 pàggini}} ntâ to lista taliata, senza cuntari sparti li pàggini di discussioni.",
        "wlheader-enotif": "La nutìfica via posta elittrònica è attivata.",
        "wlheader-showupdated": "Li pàggini ca hannu statu canciati dâ tò ùrtima vìsita sunnu evidinziati 'n <strong>grassettu</strong>.",
        "wlnote": "Sutta attrovi l'ùrtim{{PLURAL:$1|u canciamentu|i <strong>$1</strong> canciamenti}} fatti nta l'ùrtim{{PLURAL:$1|a ura|i <strong>$2</strong> uri}}, aggiurnati ê $4 dû $3.",
        "wlshowlast": "Ammustra l'ùrtimi $1 uri $2 jorna",
-       "watchlist-options": "Opzioni dâ lista talïata",
-       "watching": "Agghiunciuta â lista talïata...",
-       "unwatching": "Cancillata dâ lista talïata...",
-       "watcherrortext": "Mmattìu n'erruri ntô canciari i to mpustazzioni dâ lista talïata di \"$1\".",
+       "watchlist-options": "Opzioni dâ lista taliata",
+       "watching": "Agghiunciuta â lista taliata...",
+       "unwatching": "Cancillata dâ lista taliata...",
+       "watcherrortext": "Mmattìu n'erruri ntô canciari i to mpustazzioni dâ lista taliata di \"$1\".",
        "enotif_reset": "Segna tutti li pàggini comu già visitati",
        "enotif_impersonal_salutation": "Utenti di {{SITENAME}}",
-       "enotif_subject_deleted": "La pàggina $1 supra a' {{SITENAME}} fu' cancillata di $2",
-       "enotif_subject_created": "La pàggina $1 supra a' {{SITENAME}} fu' crïata di $2",
+       "enotif_subject_deleted": "La pàggina $1 supra a {{SITENAME}} fu cancillata di $2",
+       "enotif_subject_created": "La pàggina $1 supra a' {{SITENAME}} fu' criata di $2",
        "enotif_subject_moved": "La pàggina $1 supra a' {{SITENAME}} fu' spustata di $2",
        "enotif_subject_restored": "La pàggina $1 supra a' {{SITENAME}} fu' ripristinata di $2",
        "enotif_subject_changed": "La pàggina $1 supra a' {{SITENAME}} fu' canciata di $2",
        "enotif_body_intro_deleted": "La pàggina $1 supra a' {{SITENAME}} fu' cancillata lu $PAGEEDITDATE di $2, talìa $3.",
-       "enotif_body_intro_created": "La pàggina $1 supra a' {{SITENAME}} fu' crïata lu $PAGEEDITDATE di $2, talìa la virsioni attuali nta $3.",
+       "enotif_body_intro_created": "La pàggina $1 supra a' {{SITENAME}} fu' criata lu $PAGEEDITDATE di $2, talìa la virsioni attuali nta $3.",
        "enotif_body_intro_moved": "La pàggina $1 supra a' {{SITENAME}} fu' spustata lu $PAGEEDITDATE di $2, talìa la virsioni attuali nta $3.",
        "enotif_body_intro_restored": "La pàggina $1 supra a' {{SITENAME}} fu' ripristinata lu $PAGEEDITDATE di $2, talìa la virsioni attuali nta $3.",
        "enotif_body_intro_changed": "La pàggina $1 supra a' {{SITENAME}} fu' canciata lu $PAGEEDITDATE di $2, talìa la virsioni attuali nta $3.",
        "enotif_lastvisited": "Cunzurta $1 pi vìdiri tutti li canciamenti dâ tò ùrtima vìsita.",
-       "enotif_lastdiff": "Vidi $1 pi' talïari lu canciamentu.",
+       "enotif_lastdiff": "Vidi $1 pi' taliari lu canciamentu.",
        "enotif_anon_editor": "utenti anonimu $1",
-       "enotif_body": "Gintili $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nRiassuntu fattu di l'auturi: $PAGESUMMARY $PAGEMINOREDIT\n\nPi' cuntattari l'auturi:\nmail: $PAGEEDITOR_EMAIL\nwiki: $PAGEEDITOR_WIKI\n\nNun ti mannamu autri nutìfichi 'n casu di ultiriuri attività a' menu ca nun vìsiti dda pàggina mentri chi' si' trasutu. Poi puru mpustari dâ to lista talïata l'avvisu di nutìfica pi' tutti li pàggini chi' cunteni.\n\nLu sistema di nutìfica di {{SITENAME}}, ô to sirvizziu\n\n--\nPi' canciari li to mpustazzioni di nutìfica via e-mail, vìsita\n{{canonicalurl:{{#special:Preferences}}}}\n\nPi' canciari li mpustazzioni dâ to lista talïata, vìsita\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nPi' livari sta pàggina dâ to lista talïata, vìsita\n$UNWATCHURL\n\nPi' lassari cummenti e arricèviri ultiriuri assistenza:\n$HELPPAGE",
+       "enotif_body": "Gintili $WATCHINGUSERNAME,\n\n$PAGEINTRO $NEWPAGE\n\nRiassuntu fattu di l'auturi: $PAGESUMMARY $PAGEMINOREDIT\n\nPi' cuntattari l'auturi:\nmail: $PAGEEDITOR_EMAIL\nwiki: $PAGEEDITOR_WIKI\n\nNun ti mannamu autri nutìfichi 'n casu di ultiriuri attività a' menu ca nun vìsiti dda pàggina mentri chi' si' trasutu. Poi puru mpustari dâ to lista taliata l'avvisu di nutìfica pi' tutti li pàggini chi' cunteni.\n\nLu sistema di nutìfica di {{SITENAME}}, ô to sirvizziu\n\n--\nPi' canciari li to mpustazzioni di nutìfica via posta elittrònica, vìsita\n{{canonicalurl:{{#special:Preferences}}}}\n\nPi' canciari li mpustazzioni dâ to lista taliata, vìsita\n{{canonicalurl:{{#special:EditWatchlist}}}}\n\nPi' livari sta pàggina dâ to lista taliata, vìsita\n$UNWATCHURL\n\nPi' lassari cummenti e arricèviri ultiriuri assistenza:\n$HELPPAGE",
        "created": "criatu",
        "changed": "canciatu",
        "deletepage": "Cancella la pàggina",
        "delete-edit-reasonlist": "Cancia li mutivi dâ cancillazzioni",
        "delete-toobig": "Sta pàggina havi na crunuluggìa dî canciamenti assai longa, cchiu' ssai di $1 {{PLURAL:$1|virsioni|virsioni}}).\nLa cancillazzioni dî pàggini comu a' chista è risirvata, pi' scansari la pussibbilitati di pruvucari senza vulìrilu prubblemi a' {{SITENAME}}.",
        "delete-warning-toobig": "Sta pàggina havi na crunuluggìa dî canciamenti assai longa, cchiu' ssai di $1 {{PLURAL:$1|virsioni|virsioni}}).\nLa so cancillazzioni po' disturbari lu funziunamentu di  {{SITENAME}}; prucedi cu' cautela.",
-       "deleteprotected": "Nun poi cancillari sta pàggina picchi' fu' prutiggiuta.",
+       "deleteprotected": "Nun poi cancillari sta pàggina pirchì fu prutiggiuta.",
        "deleting-backlinks-warning": "'''Accura:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Autri pàggini]] su' culligati o trascludunu la pàggina chi' stai cancillannu.",
        "rollback": "Annullamentu di canciamenti",
        "rollbacklink": "canciu n'arreri",
        "pagesize": "(byte)",
        "restriction-edit": "Canciamentu",
        "restriction-move": "Spustamentu",
-       "restriction-create": "Crïazzioni",
+       "restriction-create": "Criazzioni",
        "restriction-upload": "Carricamentu",
        "restriction-level-sysop": "prutetta",
        "restriction-level-autoconfirmed": "semi-prutetta",
        "undelete-fieldset-title": "Ricùpira virsioni",
        "undeleteextrahelp": "Pi' ricupirari la storia sana dâ pàggina, cliccari <strong><em>{{int:undeletebtn}}</em></strong> senza scegghîri nudda casedda.\nPi' fari nu ricùpiru silittivu, scegghîri li caseddi currispunnenti ê virsioni di ripigghiari, e cliccari <strong><em>{{int:undeletebtn}}</em></strong>.",
        "undeleterevisions": "$1 {{PLURAL:$1|virsioni|virsioni}} nta l'archiviu",
-       "undeletehistory": "Siddu ricùpiri sta pàggina, tutti li so virsioni vèninu ricupirati ntâ crunuluggìa.\nSiddu na pàggina nova havi statu crïata cû stissu tìtulu di chidda di ricupirari doppu dâ so cancillazzioni, li virsioni ricupirati vannu a' finiri ntâ crunuluggìa passata.",
+       "undeletehistory": "Siddu ricùpiri sta pàggina, tutti li so virsioni vèninu ricupirati ntâ crunuluggìa.\nSiddu na pàggina nova havi statu criata cû stissu tìtulu di chidda di ricupirari doppu dâ so cancillazzioni, li virsioni ricupirati vannu a' finiri ntâ crunuluggìa passata.",
        "undeleterevdel": "Lu ricùpiru nun veni fattu siddu pròvuca la cancillazzioni parziali dâ virsioni currenti dâ pàggina o dû file.\nNta stu casu, hai a' livari lu signu di spunta o l'ammucciamentu dâ virsioni cancillata cchiu' ricenti.",
        "undeletehistorynoadmin": "Sta pàggina fu' cancillata.\nLu mutivu dâ cancillazzioni è ammustratu ccà sutta, nzèmmula ê dittagghî di l'utenti ca canciaru sta pàggina prima dâ so cancillazzioni.\nLu testu cuntinutu ntê virsioni cancillati è dispunìbbili sulu a' l'amministratura.",
        "undelete-revision": "Virsioni cancillata di $1 (dû $4 ê $5) di $3:",
        "undeleterevision-missing": "Virsioni nun vàlida o mancanti.\nPo' èssiri chi' hai un culligamentu sbagghiatu, o puru la virsioni hâ statu già ricupirata o livata di l'archiviu.",
-       "undelete-nodiff": "Nun fu' attruvata nudda virsioni passata.",
+       "undelete-nodiff": "Nun fu attruvata nudda virsioni passata.",
        "undeletebtn": "Ricùpira",
        "undeletelink": "talìa/ricùpira",
        "undeleteviewlink": "talìa",
        "sp-contributions-search": "Ricerca cuntribbuti",
        "sp-contributions-username": "Nnirizzu IP o nomu utenti:",
        "sp-contributions-toponly": "Ammustra sulu li canciamenti ca sunnu l'ùrtimi virsioni pâ pàggina",
-       "sp-contributions-newonly": "Ammustra sulu li canciamenti ca sunnu crïazzioni di pàggini novi",
+       "sp-contributions-newonly": "Ammustra sulu li canciamenti ca sunnu criazzioni di pàggini novi",
        "sp-contributions-submit": "Risciduta",
        "whatlinkshere": "Chi' punta cca",
        "whatlinkshere-title": "Pàggini ca pùntanu a \"$1\"",
        "ipbreason": "Mutivu:",
        "ipbreason-dropdown": "*Mutivi cchiù cumuni pî blocchi\n** Nzerimentu di nformazziuni falsi\n** Cancillazzioni di cuntinuti dê pàggini\n** Liami prumozziunalu a siti sterni\n** Nzserimentu di cuntinuti privi di sensu\n** Cumportamenti ntimidatori o molestie\n** Usu ndebitu di cchiù cunti\n** Nomu utenti nun accittabbili",
        "ipb-hardblock": "Mpidisci a' l'utenti trasuti di fari canciamenti di stu nnirizzu IP",
-       "ipbcreateaccount": "Mpidisci la crïazzioni di cunti",
+       "ipbcreateaccount": "Mpidisci la criazzioni di cunti",
        "ipbemailban": "Mpidisci a' l'utenti di mannari posta elittrònica",
        "ipbenableautoblock": "Blocca autumaticamenti l'ùltimu nnirizzu IP adupiratu di st'utenti, e li succissivi d'unni prova a' fari canciamenti",
        "ipbsubmit": "Blocca a' st'utenti",
        "ipb-blocklist": "Talìa li blocchi in viguri",
        "ipb-blocklist-contribs": "Cuntribbuta di {{GENDER:$1|$1}}",
        "unblockip": "Sblocca a' l'utenti",
-       "unblockiptext": "Adupirari lu mòdulu suttastanti pi' ristitüiri l'accessu in scrittura a' nu nnirizzu IP o nomu utenti ca hâ statu bluccatu.",
+       "unblockiptext": "Adupirari lu mòdulu suttastanti pi' ristituiri l'accessu in scrittura a' nu nnirizzu IP o nomu utenti ca hâ statu bluccatu.",
        "ipusubmit": "Leva stu bloccu",
-       "unblocked": "L'utenti [[User:$1|$1]] fu' sbluccatu.",
-       "unblocked-range": "$1 fu' sbluccatu.",
-       "unblocked-id": "Lu bloccu $1 fu' livatu.",
-       "unblocked-ip": "[[Special:Contributions/$1|$1]] fu' sbluccatu.",
+       "unblocked": "L'utenti [[User:$1|$1]] fu sbluccatu.",
+       "unblocked-range": "$1 fu sbluccatu.",
+       "unblocked-id": "Lu bloccu $1 fu livatu.",
+       "unblocked-ip": "[[Special:Contributions/$1|$1]] fu sbluccatu.",
        "blocklist": "Utenti bluccati",
        "ipblocklist": "Utenti bluccati",
        "ipblocklist-legend": "Trova n'utenti bluccatu",
        "expiringblock": "scadi lu $1 ê $2",
        "anononlyblock": "sulu anònimi",
        "noautoblockblock": "bloccu autumàticu disattivatu",
-       "createaccountblock": "crïazzioni di cunti bluccata",
+       "createaccountblock": "criazzioni di cunti bluccata",
        "emailblock": "posta elittrònica bluccata",
        "blocklist-nousertalk": "nun po' canciari la so stissa pàggina di discussioni",
        "ipblocklist-empty": "L'alencu dî blocchi è vacanti.",
        "ipbnounblockself": "Nun hai u pirmissu di sbluccari a' tia stissu.",
        "lockdb": "Blocca lu database",
        "unlockdb": "Sblocca lu database",
-       "lockdbtext": "Lu bloccu dû database cumporta la suspinsioni pi' tutti l'utenti dâ pussibbilitati di canciari li pàggini, mpustari li so prifirenzi, mudificari li so listi talïati, e 'n ginirali di cùmpiri tutti l'upirazzioni ca richièdinu canciamenti a lu database.\nPi' favuri cunfirma ca chistu è chiddu chi' hai ntinzioni di fari, e ca a lu tèrmini dâ manutinzzioni pruvidi a lu sbloccu dû database.",
-       "unlockdbtext": "Lu sbloccu dû database cunzenti di novu a tutti l'utenti di canciari li pàggini, mpustari li so prifirenzi, mudificari li so listi talïati, e 'n ginirali di cùmpiri tutti l'upirazzioni ca richièdinu canciamenti a lu database.\nPi' favuri cunfirma ca chistu è chiddu chi' hai ntinzioni di fari.",
+       "lockdbtext": "Lu bloccu dû database cumporta la suspinsioni pi' tutti l'utenti dâ pussibbilitati di canciari li pàggini, mpustari li so prifirenzi, mudificari li so listi taliati, e 'n ginirali di cùmpiri tutti l'upirazzioni ca richièdinu canciamenti a lu database.\nPi' favuri cunfirma ca chistu è chiddu chi' hai ntinzioni di fari, e ca a lu tèrmini dâ manutinzzioni pruvidi a lu sbloccu dû database.",
+       "unlockdbtext": "Lu sbloccu dû database cunzenti di novu a tutti l'utenti di canciari li pàggini, mpustari li so prifirenzi, mudificari li so listi taliati, e 'n ginirali di cùmpiri tutti l'upirazzioni ca richièdinu canciamenti a lu database.\nPi' favuri cunfirma ca chistu è chiddu chi' hai ntinzioni di fari.",
        "lockconfirm": "Sì, ntennu effittivamenti bluccari lu database.",
        "unlockconfirm": "Sì, effittivamenti ntennu, sutta la mè rispunzabbilitati, sbluccari lu database.",
        "lockbtn": "Blocca lu database",
        "lockedbyandtime": "(di {{GENDER:$1|$1}} u $2 ê $3)",
        "move-page": "Spustamentu di $1",
        "move-page-legend": "Sposta la pàggina",
-       "movepagetext": "Adupirannu lu mòdulu ccassutta si cancia lu nomu dâ pàggina, spustannu tutta la sò crunuluggìa nta la pàggina nova.\nLu tìtulu vecchiu addiventa nu rimannu versu lu tìtulu novu.\nSi pònnu aggiurnari autumaticamenti i rimanni chi' puntàvunu ô tìtulu origginali.\nMa si' scegghî di nun fàrilu, t'hai a' assicurari ca lu spustamentu nun crea [[Special:DoubleRedirects|rimanni duppî]] o puru [[Special:BrokenRedirects|rimanni rutti]].\nE' to rispunsabbilità ch'i lïami cuntinuunu a' puntari â pàggina bona.\n\nVidi chi' la pàggina <strong>nun veni spustata</strong> siddu cc'è già na pàggina chi havi lu tìtulu novu, tranni siddu la pàggina 'n quistioni è nu rimannu e nun havi crunuluggìa di canciamenti passati.\nChistu voli diri chi' si po' canciari n'autra vota u nomu di la pàggina a' chiddu ch'avìa prima siddu si fa' nu sbagghiu, e chi nun si po' suprascrìviri na pàggina chi già esisti.\n\n<strong>Accura!</strong>\nChistu po' èssiri nu canciamentu dràsticu pi na pàggina friquintata; aviti a' èssiri sicuri di capiri li cunziquenzi prima di cuntinuari.",
+       "movepagetext": "Adupirannu lu mòdulu ccassutta si cancia lu nomu dâ pàggina, spustannu tutta la sò crunuluggìa nta la pàggina nova.\nLu tìtulu vecchiu addiventa nu rimannu versu lu tìtulu novu.\nSi pònnu aggiurnari autumaticamenti i rimanni chi' puntàvunu ô tìtulu origginali.\nMa si' scegghî di nun fàrilu, t'hai a' assicurari ca lu spustamentu nun crea [[Special:DoubleRedirects|rimanni duppî]] o puru [[Special:BrokenRedirects|rimanni rutti]].\nE' to rispunsabbilità ch'i liami cuntìnuunu a' puntari â pàggina bona.\n\nVidi chi' la pàggina <strong>nun veni spustata</strong> siddu cc'è già na pàggina chi havi lu tìtulu novu, tranni siddu la pàggina 'n quistioni è nu rimannu e nun havi crunuluggìa di canciamenti passati.\nChistu voli diri chi' si po' canciari n'autra vota u nomu di la pàggina a' chiddu ch'avìa prima siddu si fa' nu sbagghiu, e chi nun si po' suprascrìviri na pàggina chi già esisti.\n\n<strong>Accura!</strong>\nChistu po' èssiri nu canciamentu dràsticu pi na pàggina friquintata; aviti a' èssiri sicuri di capiri li cunziquenzi prima di cuntinuari.",
        "movepagetext-noredirectfixer": "Usannu lu mòdulu ccà sutta vui canciati lu nomu dâ pàggina, e spustati tutta la sò storia versu la pàggina nova. Lu tìtulu vecchiu addiventa na pàggina di rinnirizzamentu versu lu tìtulu novu. \nAssicuràtivi ca lu spustamentu nun criau [[Special:DoubleRedirects|redirect duppi]] o [[Special:BrokenRedirects|redirect rumputi]]. Vui siti rispunzàbbili dî liami chi avìssiru a puntari â pàggina giusta.\n\nLa pàggina '''nun''' è spustata siddu cc'è già na pàggina cu lu tìtulu novu, tranni chi la pàggina 'n chistioni è vacanti o è na pàggina di ''redirect'' e nun havi n'archiviu di canciamenti.\nChistu signìfica chi vui putiti rinuminari la pàggina cu lu nomu vecchiu si aviti sbagghiatu, e chi nun putiti suprascrìviri nta na pàggina chi esisti già.\n\n'''Accura!'''\nChistu pò èssiri nu canciamentu dràsticu pi na pàggina pupulari; aviti a èssiri sicuri di capiri li cunziquenzi prima di cuntinuari.",
        "movepagetalktext": "La pàggina di discussioni sarravi autumaticamenti spustata cud idda <strong>a' menu chi':</strong>\n*Na pàggina di discussioni nun vacanti già esisti cu lu nomu novu, o puru\n*Nun scegghî la casedda ccassutta.\n\nNta sti casi, si' voi, hâ' spustari o jùnciri la pàggina di discussioni a' manu.",
        "movearticle": "Sposta la pàggina",
        "thumbnail_error_remote": "Messaggiu d'erruri di $1:\n$2",
        "djvu_page_error": "Nùmmuru di pàggina DjVu erratu",
        "djvu_no_xml": "Mpussibbili òtteniri lu XML pô file DjVu",
-       "thumbnail-temp-create": "Nun fu' pussìbbili crïari nu file timpuraniu pâ miniatura",
+       "thumbnail-temp-create": "Nun fu' pussìbbili criari nu file timpuraniu pâ miniatura",
        "thumbnail-dest-create": "Nun fu' pussìbbili sarvari a miniatura ntâ distinazzioni",
        "thumbnail_invalid_params": "Parametri antiprima nun validi",
        "thumbnail_toobigimagearea": "U file è cchiu' granni di $1",
        "thumbnail_image-missing": "Pari èssiri mancanti lu file: $1",
        "thumbnail_image-failure-limit": "Cc'hannu statu troppu tintativi ($1 o cchiu' ssai) di ginirari sta miniatura. Pi' favuri prova n'autra vota cchiu' tardu.",
        "import": "Mporta pàggini",
-       "importinterwiki": "Mpurtazzioni transwiki",
-       "import-interwiki-text": "Silizziunari un pruggettu wiki e lu tìtulu dâ pàggina a mpurtari. Li dati di pubbricazzioni e li noma di l'autura dî vari virsioni sunnu sarvati. Tutti l'opirazzioni di mpurtazzioni trans-wiki sunnu riggistrati ntô [[Special:Log/import|log di mpurtazzioni]].",
+       "importinterwiki": "Mpurtazzioni di n'autra wiki",
+       "import-interwiki-text": "Silizziunari na wiki e lu tìtulu di na pàggina a' mpurtari.\nLi dati dî virsioni e li nomi di l'autura sarannu mantinuti.\nTutti li mpurtazzioni di autri wiki vènunu riggistrati ntô [[Special:Log/import|riggistru dî mpurtazzioni]].",
        "import-interwiki-sourcewiki": "Wiki surgenti:",
        "import-interwiki-sourcepage": "Pàggina surgenti:",
        "import-interwiki-history": "Copia la ntera cronoluggìa di sta pàggina",
        "importcantopen": "Mpussìbbili grapiri lu file di mpurtazzioni",
        "importbadinterwiki": "Culligamentu inter-wiki erratu",
        "importsuccess": "Mpurtazzioni arrinisciuta.",
-       "importnosources": "Nun hà statu difinita na fonti pi la mpurtazzioni transwiki; la mpurtazzioni diretta dâ cronoluggìa nun Ã¨ attiva.",
+       "importnosources": "Nun hâ statu difinuta nudda wiki d'unni mpurtari e li carricamenti diretti dâ cronuluggìa sunnu disattivati.",
        "importnofile": "Nun hà statu carrcatu nuddu file pi la mpurtazzioni.",
        "importuploaderrorsize": "Caricamentu dû file pi la mpurtazzioni non arrinisciutu. Lu file è cchiù granni di li diminzioni màssimi cunzentiti pi l'upload.",
        "importuploaderrorpartial": "Caricamentu dû file pi la mpurtazzioni non arrinisciutu. Sulamenti na parti dû file vinni caricatu.",
        "import-token-mismatch": "Si pèrsiru li dati rilativi a la sissioni. Pi piaciri, prova n'àutra vota.",
        "import-invalid-interwiki": "E' mpussìbbili mpurtari dû pruggettu wiki nnicatu.",
        "import-error-edit": "A pàggina \"$1\" nun fu' mpurtata picchì nun hai u pirmissu di canciàrila.",
-       "import-error-create": "A pàggina \"$1\" nun fu' mpurtata picchì nun hai u pirmissu di crïàrila.",
+       "import-error-create": "La pàggina \"$1\" nun fu' mpurtata picchì nun hai u pirmissu di criàrila.",
        "import-error-interwiki": "A pàggina \"$1\" nun fu' mpurtata picchì u so nomu è risirvatu pû culligamentu esternu (interwiki).",
        "import-error-special": "A pàggina \"$1\" nun fu' mpurtata picchì apparteni a' nu namespace spiciali chi' nun cunsenti pàggini.",
        "import-error-invalid": "A pàggina \"$1\" nun fu' mpurtata picchì u nomu unni sarrìa mpurtata nun è vàlidu supra a' sta wiki.",
        "import-rootpage-nosubpage": "U namespace \"$1\" dâ pàggina ràdica nun cunsenti suttapàggini.",
        "importlogpage": "Riggistru dî mpurtazzioni",
        "importlogpagetext": "Riggistru dî mpurtazzioni d'ufficiu di pàggini pruvinenti d'àutri wiki, cumpleti di cronoluggìa.",
-       "import-logentry-upload": "hà mpurtatu $1 tràmiti upload",
        "import-logentry-upload-detail": "{{PLURAL:$1|na virsioni mpurtata|$1 virsioni mpurtati}}",
-       "import-logentry-interwiki": "hà trasfiritu di àutra wiki la pàggina $1",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|na virsioni mpurtata|$1 virsioni mpurtati}} di $2",
        "javascripttest": "Virìfichi JavaScript",
        "javascripttest-pagetext-noframework": "Sta pàggina è risirvata pi' l'esicuzzioni dî virìfichi JavaScript.",
        "tooltip-pt-mycontris": "La lista dî to cuntribbuti",
        "tooltip-pt-login": "La riggistrazzioni è cunzigghiata, puru siddu nun obbrigatoria.",
        "tooltip-pt-logout": "Nisciuta",
-       "tooltip-pt-createaccount": "Si' nvitatu a crïari nu cuntu e tràsiri; però nun è obbligatoriu",
+       "tooltip-pt-createaccount": "Si' nvitatu a criari nu cuntu e tràsiri; però nun è obbligatoriu",
        "tooltip-ca-talk": "Vidi li discussioni rilativi a sta pàggina",
        "tooltip-ca-edit": "Poi canciari sta pàggina. Pi favuri usa lu pulsanti d'antiprima prima di sarvari.",
        "tooltip-ca-addsection": "Agghiunci un cummentu a sta discussioni.",
        "tooltip-ca-delete": "Cancella sta pàggina",
        "tooltip-ca-undelete": "Riprìstina la pàggina com'era prima dâ cancillazzioni",
        "tooltip-ca-move": "Sposta sta pàggina (cancia tìtulu)",
-       "tooltip-ca-watch": "Agghiunci sta pàggina â to lista talïata",
-       "tooltip-ca-unwatch": "Leva sta pàggina dâ to lista talïata",
+       "tooltip-ca-watch": "Agghiunci sta pàggina â to lista taliata",
+       "tooltip-ca-unwatch": "Leva sta pàggina dâ to lista taliata",
        "tooltip-search": "Cerca 'n {{SITENAME}}",
        "tooltip-search-go": "Vai a na pàggina cu chistu nomu esattu siddu asisti",
        "tooltip-search-fulltext": "Arriscedi pàggini pi chistu testu",
        "tooltip-preview": "Antiprima dî canciamenti, ùsala prima di sarvari!",
        "tooltip-diff": "Talìa (mudalitati diff) li canciamenti c'hai fattu.",
        "tooltip-compareselectedversions": "Talìa li diffirenzi tra li dui virsioni silizziunati di sta pàggina.",
-       "tooltip-watch": "Agghiunci sta pàggina â to lista talïata",
+       "tooltip-watch": "Agghiunci sta pàggina â to lista taliata",
        "tooltip-watchlistedit-normal-submit": "Leva i tìtuli",
-       "tooltip-watchlistedit-raw-submit": "Aggiorna a lista talïata",
+       "tooltip-watchlistedit-raw-submit": "Aggiorna la lista taliata",
        "tooltip-recreate": "Ricrea la pàggina puru siddu hà statu cancillata",
        "tooltip-upload": "Ncigna carricamentu",
        "tooltip-rollback": "\"Rollback\" annulla li canci di l'ùrtinu cuntribbuturi â sta pâggina cu nu sulu clic.",
        "pageinfo-content-model": "Mudellu dû cuntinutu dâ pàggina",
        "pageinfo-robot-policy": "Innicizzazzioni pi' menzu di robot",
        "pageinfo-robot-index": "Cunsintuta",
-       "pageinfo-robot-noindex": "Prüibbuta",
+       "pageinfo-robot-noindex": "Pruibbuta",
        "pageinfo-watchers": "Quanti talìunu sta pàggina",
-       "pageinfo-few-watchers": "Cchiu' picca di $1 talïaturi",
+       "pageinfo-few-watchers": "Cchiu' picca di $1 {{PLURAL:$1|taliaturi|taliatura}}",
        "pageinfo-redirects-name": "Nùmmiru di rimanni a' sta pàggina",
        "pageinfo-subpages-name": "Nùmmiru di suttapàggini di sta pàggina",
        "pageinfo-subpages-value": "$1 ($2 {{PLURAL:$2|chi' è un rimannu|chi' su' rimanni}}; $3 {{PLURAL:$3|chi' nun è un rimannu|chi' nun su' rimanni}})",
-       "pageinfo-firstuser": "Crïaturi dâ pàggina",
-       "pageinfo-firsttime": "Data dâ crïazzioni dâ pàggina",
+       "pageinfo-firstuser": "Criaturi dâ pàggina",
+       "pageinfo-firsttime": "Data dâ criazzioni dâ pàggina",
        "pageinfo-lastuser": "Ùltimu cuntribbuturi",
        "pageinfo-lasttime": "Data di l'ùltimu canciamentu",
        "pageinfo-edits": "Nùmmiru tutali di canciamenti",
        "yesterday-at": "Ajeri ê $1",
        "bad_image_list": "Lu furmatu è lu siguenti:\n\nSu' pigghiati a' cunsiddirazzioni sulu li vuci d'elenchi puntati (li righi ca accumènzanu cû sìmmulu *).\nLu primu culligamentu nta ogni' riga havi a' puntari ôn file nun addisiatu.\nSi' cci su' autri culligamenti nta stissa riga, su' cunsiddirati comu eccizzioni, vali a' diri pàggini unni lu file po' èssiri ncurpuratu.",
        "metadata": "Metadati",
-       "metadata-help": "Stu file cunteni autri nfurmazzioni, prubbabbirmenti agghiunti dâ màchina futugràfica o dû scanner adupirati pi' crïàrilu o diggitalizzàrilu.\nSiddu lu file hâ statu canciatu dâ so cunnizzioni origginali, certi dittagghî putìssiru nun currispùnniri ô statu novu dû file.",
+       "metadata-help": "Stu file cunteni autri nfurmazzioni, prubbabbirmenti agghiunciuti dâ màchina futugràfica o dû scanner adupirati pi' criàrilu o diggitalizzàrilu.\nSiddu lu file hâ statu canciatu dâ so cunnizzioni origginali, certi dittagghî putìssiru nun currispùnniri ô statu novu dû file.",
        "metadata-expand": "Ammustra li nfurmazzioni dittagghiati",
        "metadata-collapse": "Ammuccia li nfurmazzioni dittagghiati",
        "metadata-fields": "Li campi dî metadati dâ mmàggini elincati nta stu missaggiu sarrannu ammustrati ntâ pàggina dâ mmàggini quannu la tavula dî metadati è strinciuta.\nL'àutri campi comu mpustazzioni pridifinuta sarrannu ammucciati.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-gpsdirection-t": "Direzzioni riali",
        "exif-gpsdirection-m": "Direzzioni magnètica",
        "exif-ycbcrpositioning-1": "Cintrati",
-       "exif-ycbcrpositioning-2": "Co-sitüati",
+       "exif-ycbcrpositioning-2": "Co-situati",
        "exif-dc-contributor": "Cuntribbuturi",
        "exif-dc-coverage": "Àmmitu spazziali o timpurali",
        "exif-dc-date": "Data/i",
        "confirmemail": "Cunfirma dû nnirizzu di posta elittrònica",
        "confirmemail_noemail": "Nun hà statu ndicatu un ndirizzu e-mail vàlidu ntê propi [[Special:Preferences|prifirenzi]].",
        "confirmemail_text": "{{SITENAME}} dumanna la cunvàlida dû to nnirizzu di posta elittrònica pi' putìri adupirari li funziunalità assuciati.\nCalca lu buttuni ccassutta pi' mannari nu missaggiu e-mail di cunfirma a lu to nnirizzu.\nNtô missaggiu cci sarravi nu culligamentu cuntinenti un còdici;\ncàrrica ddu culligamentu cu lu to browser pi' cunfirmari ca lu to nnirizzu di posta elittrònica è vàlidu.",
-       "confirmemail_pending": "Già nu còdici di cunfirma t'havi statu mannatu via e-mail;\nsiddu hai crïatu u to cuntu di picca tempu, è mègghiu ch'aspètti l'arrivu dû còdici pi' quarchi minutu prima di pruvari a' addumannàrinni unu novu.",
+       "confirmemail_pending": "Già nu còdici di cunfirma t'havi statu mannatu via posta elittrònica;\nsiddu hai criatu lu to cuntu di picca tempu, è mègghiu ch'aspètti l'arrivu dû còdici pi' quarchi minutu prima di pruvari a' addumannàrinni unu novu.",
        "confirmemail_send": "Manna un còdici di cunfirma via e-mail",
        "confirmemail_sent": "Missaggiu e-mail di cunfirma mannatu.",
        "confirmemail_oncreate": "Un còdici di cunfirma fu' spidutu a lu to nnirizzu di posta elittrònica.\nLu còdici nun servi pi' tràsiri nta lu situ, ma ll'hâ' prisintari pi' putiri attivari tutti li funzioni dâ wiki ca fannu usu dâ posta elittrònica.",
        "scarytranscludefailed-httpstatus": "[Carricamentu dû template nun rinisciutu di $1: HTTP $2]",
        "scarytranscludetoolong": "[URL troppu longu]",
        "deletedwhileediting": "'''Accura''': Sta pàggina vinni scancillata doppu c'hai accuminzatu a scanciàrila!",
-       "confirmrecreate": "L'utenti [[User:$1|$1]] ([[User talk:$1|discussioni]]) cancillau sta pàggina appressu chi' tu avìi accuminciatu a' canciàrila, dannu sta spiegazzioni:\n: <em>$2</em>\nPi' favuri cunfirma chi' voi crïari n'autra vota sta pàggina pi' davera.",
-       "confirmrecreate-noreason": "L'utenti [[User:$1|$1]] ([[User talk:$1|discussioni]]) cancillau sta pàggina appressu chi' tu avìi accuminciatu a' canciàrila. Pi' favuri cunfirma chi' voi crïari n'autra vota sta pàggina pi' davera.",
+       "confirmrecreate": "L'utenti [[User:$1|$1]] ([[User talk:$1|discussioni]]) cancillau sta pàggina appressu chi' tu avìi accuminciatu a' canciàrila, dannu sta spiegazzioni:\n: <em>$2</em>\nPi' favuri cunfirma chi' voi criari n'autra vota sta pàggina pi' davera.",
+       "confirmrecreate-noreason": "L'utenti [[User:$1|$1]] ([[User talk:$1|discussioni]]) cancillau sta pàggina appressu chi' tu avìi accuminciatu a' canciàrila. Pi' favuri cunfirma chi' voi criari n'autra vota sta pàggina pi' davera.",
        "recreate": "Ricrìa",
        "unit-pixel": "px",
        "confirm_purge_button": "Cunfirma",
        "confirm-purge-top": "S'addisìa puliri la cache di sta pàggina?",
        "confirm-purge-bottom": "Pulizziari la cache di na pàggina pirmetti d'ammustrari la sô virsioni cchiù nova.",
        "confirm-watch-button": "Cunfirma",
-       "confirm-watch-top": "Agghiùnciri sta pàggina â to lista talïata?",
+       "confirm-watch-top": "Agghiùnciri sta pàggina â to lista taliata?",
        "confirm-unwatch-button": "Cunfirma",
-       "confirm-unwatch-top": "Livari sta pàggina dâ to lista talïata?",
+       "confirm-unwatch-top": "Livari sta pàggina dâ to lista taliata?",
        "quotation-marks": "«$1»",
        "imgmultipageprev": "← pàggina pricidenti",
        "imgmultipagenext": "pàggina siquenti →",
        "autosumm-replace": "Pàggina sustituita cu '$1'",
        "autoredircomment": "Rinnirizzamentu â pàggina [[$1]]",
        "autosumm-new": "Criata pàggina cu '$1'",
-       "autosumm-newblank": "Crïata na pàggina vacanti",
+       "autosumm-newblank": "Criata na pàggina vacanti",
        "lag-warn-normal": "Li canciamenti appurtati {{PLURAL:$1|nta l'ùrtimu secundu|nta l'ùrtimi $1 secundi}} ponnu nun èssiri nta sta lista.",
        "lag-warn-high": "A càusa di nu ritardu eccissivu nta l'aggiurnamentu dô server di databbasi, li canciamenti appurtati {{PLURAL:$1|nta l'ùrtimu secundu|nta l'ùrtimi $1 secundi}} ponnu nun èssiri nta sta lista.",
        "watchlistedit-normal-title": "Cancia pàggini taliati",
        "watchlistedit-normal-legend": "Eliminazzioni di pàggini dâ lista dê pàggini taliati",
-       "watchlistedit-normal-explain": "Ccassutta cci su' li tìtuli ntâ to lista talïata.\nPi' livàrinni unu, scegghî la casedda a' latu d'iddu, e clicca \"{{int:Watchlistedit-normal-submit}}\".\nPoi puru [[Special:EditWatchlist/raw|canciari la lista 'n forma testuali]].",
+       "watchlistedit-normal-explain": "Ccassutta cci su' li tìtuli ntâ to lista taliata.\nPi' livàrinni unu, scegghî la casedda a' latu d'iddu, e clicca \"{{int:Watchlistedit-normal-submit}}\".\nPoi puru [[Special:EditWatchlist/raw|canciari la lista 'n forma testuali]].",
        "watchlistedit-normal-submit": "Elìmina pàggini",
        "watchlistedit-normal-done": "Dâ lista dê pàggini taliati hà{{PLURAL:$1|&nbsp;stata eliminata na pàggina|nnu stati eliminati $1 pàggini}}:",
        "watchlistedit-raw-title": "Cancia li pàggini taliati 'n forma testuali",
        "watchlistedit-raw-legend": "Canciamentu testuali pàggini taliati",
-       "watchlistedit-raw-explain": "Ccassutta cci su' li tìtuli ntâ to lista talïata, chi' si po' canciari agghiuncennu e livannu tituli, unu pi' riga.\nQuannu hai finutu, clicca \"{{int:Watchlistedit-raw-submit}}\".\nPoi puru [[Special:EditWatchlist|canciari a lista dâ pàggina tradizziunali]].",
+       "watchlistedit-raw-explain": "Ccassutta cci su' li tìtuli ntâ to lista taliata, chi' si po' canciari agghiuncennu e livannu tituli, unu pi' riga.\nQuannu hai finutu, clicca \"{{int:Watchlistedit-raw-submit}}\".\nPoi puru [[Special:EditWatchlist|canciari a lista dâ pàggina tradizziunali]].",
        "watchlistedit-raw-titles": "Pàggini:",
        "watchlistedit-raw-submit": "Aggiorna la lista",
        "watchlistedit-raw-done": "La tò lista dê pàggini taliati vinni aggiurnata.",
        "watchlistedit-raw-added": "{{PLURAL:$1|Fu junciuta na pàggina|Foru junciuti $1 pàggini}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|&nbsp;Vinni scancillata na pàggina|Foru scancillati $1 pàggini}}:",
-       "watchlistedit-clear-title": "Lista talïata svacantata",
-       "watchlistedit-clear-legend": "Svacanta a lista talïata",
-       "watchlistedit-clear-explain": "Tutti i tìtuli sarannu livati da to lista talïata",
+       "watchlistedit-clear-title": "Lista taliata svacantata",
+       "watchlistedit-clear-legend": "Svacanta la lista taliata",
+       "watchlistedit-clear-explain": "Tutti li tìtuli sarrannu livati da to lista taliata",
        "watchlistedit-clear-titles": "Tìtuli:",
-       "watchlistedit-clear-submit": "Svacanta a lista talïata (Sta cosa è difinitiva!)",
-       "watchlistedit-clear-done": "A to lista talïata fu svacantata.",
+       "watchlistedit-clear-submit": "Svacanta la lista taliata (Sta cosa è difinitiva!)",
+       "watchlistedit-clear-done": "La tò lista taliata fu svacantata.",
        "watchlistedit-clear-removed": "{{PLURAL:$1|Un tìtulu fu'|$1 tìtuli furu}} livati:",
        "watchlistedit-too-many": "Cci su' troppu pàggini p'ammustràrili cca.",
-       "watchlisttools-clear": "Svacanta a lista talïata",
+       "watchlisttools-clear": "Svacanta la lista taliata",
        "watchlisttools-view": "Talìa li canciamenti rilivanti",
        "watchlisttools-edit": "Talìa e cancia la lista",
        "watchlisttools-raw": "Cancia la lista 'n forma testuali",
        "version-parser-function-hooks": "Hook pi funzioni dû parser",
        "version-hook-name": "Nomu di l'hook",
        "version-hook-subscribedby": "Suttascrizzioni",
-       "version-version": "(Virsioni $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[nuddu nomu]",
        "version-license": "Licenza di MediaWiki",
        "version-ext-license": "Licenza",
        "version-poweredby-others": "autri",
        "version-poweredby-translators": "i tradutturi di translatewiki.net",
        "version-credits-summary": "Vulemu ricanusciri u cuntribbutu di sti pirsuni a' [[Special:Version|MediaWiki]].",
-       "version-license-info": "MediaWiki è software lìbbiru; si po' ri-distribbüiri e/o mudificari sutta ê tèrmini dâ GNU General Public License comu pubblicata dâ Free Software Foundation; o la virsioni 2 dâ Licenza, o (a' propia scelta) na virsioni succissiva quali è jè.\n\nMediaWiki veni distribuùtu ntâ spiranza chi' sia ùtili, però SENZA NUDDA GARANZÌA; mancu chidda implìcita di NIGUZZIABBILITÀ o di APPLICABBILITÀ PI' NU SCOPU PARTICULARI. Si talïassi la GNU General Public License pi' maggiuri dittagghî.\n\nS'avissi a' avìri ricivutu [{{SERVER}}{{SCRIPTPATH}}/COPYING na copia dâ GNU General Public License] nsèmmula a' stu prugramma; si' no, si po' scrìviri â Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA o [//www.gnu.org/licenses/old-licenses/gpl-2.0.html la si po' lèggiri in linia].",
+       "version-license-info": "MediaWiki è software lìbbiru; si po' ri-distribbuiri e/o mudificari sutta ê tèrmini dâ GNU General Public License comu pubblicata dâ Free Software Foundation; o la virsioni 2 dâ Licenza, o (a' propia scelta) na virsioni succissiva quali è jè.\n\nMediaWiki veni distribuùtu ntâ spiranza chi' sia ùtili, però SENZA NUDDA GARANZÌA; mancu chidda implìcita di NIGUZZIABBILITÀ o di APPLICABBILITÀ PI' NU SCOPU PARTICULARI. Si taliassi la GNU General Public License pi' maggiuri dittagghî.\n\nS'avissi a' avìri ricivutu [{{SERVER}}{{SCRIPTPATH}}/COPYING na copia dâ GNU General Public License] nsèmmula a' stu prugramma; si' no, si po' scrìviri â Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA o [//www.gnu.org/licenses/old-licenses/gpl-2.0.html la si po' lèggiri in linia].",
        "version-software": "Software nstallatu",
        "version-software-product": "Prodottu",
        "version-software-version": "Virsioni",
        "fileduplicatesearch-info": "$1 × $2 pixel<br />Diminzioni: $3<br />Tipu MIME: $4",
        "fileduplicatesearch-result-1": "Non ci sunnu duppiuni li stissi dû file \"$1\".",
        "fileduplicatesearch-result-n": "{{PLURAL:$2|C'è ggià nu duppiuni lu stissu|Ci sunnu ggià $2 duppiuni li stissi}} dû file \"$1\".",
-       "fileduplicatesearch-noresults": "Nuddu file chiamatu \"$1\" fu' truvatu.",
+       "fileduplicatesearch-noresults": "Nuddu file chiamatu \"$1\" fu truvatu.",
        "specialpages": "Pàggini spiciali",
        "specialpages-note-top": "Legenda",
        "specialpages-note": "* Pàggini spiciali nurmali.\n* <span class=\"mw-specialpagerestricted\">Pàggini spiciali risirvati.</strong>",
        "specialpages-group-maintenance": "Resocunti di manutinzioni",
        "specialpages-group-other": "Autri pàggini spiciali",
-       "specialpages-group-login": "Trasuta / crïazzioni di cunti",
+       "specialpages-group-login": "Trasuta / criazzioni di cunti",
        "specialpages-group-changes": "Ùrtimi canciamenti e riggistra",
        "specialpages-group-media": "File multimidiali - caricamentu e rennicunti",
        "specialpages-group-users": "Utenti e diritti",
        "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|spustau}} a pàggina $3 nta $4 ô postu dûn rimannu senza lassari nu rimannu",
        "logentry-patrol-patrol": "$1 {{GENDER:$2|marcau}} a virsioni $4 dâ pàggina $3 comu battugghiata",
        "logentry-patrol-patrol-auto": "$1 {{GENDER:$2|marcau}} di manera autumàtica a virsioni $4 dâ pàggina $3 comu battugghiata",
-       "logentry-newusers-newusers": "U cuntu di l'utenti $1 fu' {{GENDER:$2|crïatu}}",
-       "logentry-newusers-create": "U cuntu di l'utenti $1 fu' {{GENDER:$2|crïatu}}",
-       "logentry-newusers-create2": "U cuntu di l'utenti $3 fu' {{GENDER:$2|crïatu}} di $1",
-       "logentry-newusers-byemail": "U cuntu di l'utenti $3 fu' {{GENDER:$2|crïatu}} di $1 e a password fu' mannata via posta elittrònica",
-       "logentry-newusers-autocreate": "U cuntu di l'utenti $1 fu' {{GENDER:$2|crïatu}} di manera autumàtica",
+       "logentry-newusers-newusers": "U cuntu di l'utenti $1 fu {{GENDER:$2|criatu}}",
+       "logentry-newusers-create": "U cuntu di l'utenti $1 fu' {{GENDER:$2|criatu}}",
+       "logentry-newusers-create2": "U cuntu di l'utenti $3 fu' {{GENDER:$2|criatu}} di $1",
+       "logentry-newusers-byemail": "U cuntu di l'utenti $3 fu' {{GENDER:$2|criatu}} di $1 e a password fu' mannata via posta elittrònica",
+       "logentry-newusers-autocreate": "U cuntu di l'utenti $1 fu' {{GENDER:$2|criatu}} di manera autumàtica",
        "logentry-rights-rights": "$1 {{GENDER:$2|canciau}} l'appartinenza di $3 dû gruppu $4 ô gruppu $5",
        "logentry-rights-rights-legacy": "$1 {{GENDER:$2|canciau}} l'appartinenza a' gruppi di $3",
        "logentry-rights-autopromote": "$1 fu' {{GENDER:$2|prumuvutu|prumuvuta}} di manera autumatica di $4 a' $5",
        "logentry-upload-revert": "$1 {{GENDER:$2|carricau}} $3",
        "rightsnone": "(nuddu)",
        "revdelete-summary": "riassuntu dô canciamentu",
+       "feedback-adding": "Agghiuncimentu dû cummentu â pàggina...",
+       "feedback-bugcheck": "Bonu! Sulu cuntrolla chi' nun è unu dî [$1 bug già canusciuti].",
+       "feedback-bugnew": "Cuntrullai. Signala nu bug novu",
        "feedback-bugornote": "Si' si' bonu a' discrìviri un prubblema tècnicu di manera dittagghiata, pi' favuri [$1 signala nu bug].\nSi' no, poi adupirari u mòdulu facilitatu ccassutta. U to cummentu sarravi agghiunciutu â pàggina \"[$3 $2]\", nsemmula ô to nomu utenti.",
-       "feedback-subject": "Oggettu:",
-       "feedback-message": "Missaggiu:",
        "feedback-cancel": "Annulla",
-       "feedback-submit": "Manna u cummentu",
-       "feedback-adding": "Agghiuncimentu dû cummentu â pàggina...",
+       "feedback-close": "Finutu",
        "feedback-error1": "Erruri: Risultatu di l'API nun ricanusciutu",
        "feedback-error2": "Erruri: A mudìfica nun riniscìu",
        "feedback-error3": "Erruri: Nudda risposta di l'API",
+       "feedback-message": "Missaggiu:",
+       "feedback-subject": "Oggettu:",
+       "feedback-submit": "Manna",
        "feedback-thanks": "Grazzî! U to cummentu fu' affissu ntâ pàggina \"[$2 $1]\".",
-       "feedback-close": "Finutu",
-       "feedback-bugcheck": "Bonu! Sulu cuntrolla chi' nun è unu dî [$1 bug già canusciuti].",
-       "feedback-bugnew": "Cuntrullai. Signala nu bug novu",
        "searchsuggest-search": "Risciduta",
        "searchsuggest-containing": "chi' cunteni...",
        "api-error-badaccess-groups": "Nun hai u pirmissu di carricari file nta sta wiki.",
        "api-error-duplicate-archive-popup-title": "{{PLURAL:$1|File duppiuni|File duppiuni}} chi' già {{PLURAL:$1|havi statu cancillatu|hannu statu cancillati}}.",
        "api-error-duplicate-popup-title": "File {{PLURAL:$1|duppiuni}}.",
        "api-error-empty-file": "U file chi' mannasti era vacanti.",
-       "api-error-emptypage": "Crïari pàggini novi e vacanti nun è cunsintutu.",
+       "api-error-emptypage": "Criari pàggini novi e vacanti nun è cunsintutu.",
        "api-error-fetchfileerror": "Erruri nternu: Quarchi' cosa nun funziunau mentri chi' si carricava u file.",
        "api-error-fileexists-forbidden": "Nu file chi' si chiama \"$1\" già esisti, e nun si po' suprascrìviri.",
        "api-error-fileexists-shared-forbidden": "Nu file chi' si chiama \"$1\" già esisti ntô dipòsitu cunnivisu, e nun si po' suprascrìviri.",
        "api-error-unknown-warning": "Avvirtimentu scanusciutu: \"$1\".",
        "api-error-unknownerror": "Erruri scanusciutu: \"$1\".",
        "api-error-uploaddisabled": "U carricamentu è disattivatu nta sta wiki.",
-       "api-error-verification-error": "U file purrìa èssiri rüinatu, o puru aviri l'estinsioni sbagghiata.",
+       "api-error-verification-error": "Lu file purrìa èssiri ruinatu, o puru aviri l'estinsioni sbagghiata.",
        "duration-seconds": "$1 {{PLURAL:$1|sicunnu|sicunni}}",
        "duration-minutes": "$1 {{PLURAL:$1|minutu|minuti}}",
        "duration-hours": "$1 {{PLURAL:$1|ura|uri}}",
        "limitreport-title": "Dati di prufilazzioni di l'analizzaturi sintatticu:",
        "limitreport-cputime": "Usu di tempu dâ CPU",
        "limitreport-cputime-value": "$1 {{PLURAL:$1|sicunnu|sicunni}}",
-       "limitreport-walltime": "Usu di tempu rïàli",
+       "limitreport-walltime": "Usu di tempu riàli",
        "limitreport-walltime-value": "$1 {{PLURAL:$1|sicunnu|sicunni}}",
        "limitreport-ppvisitednodes": "Cuntiggiu dî gruppi visitati dû priprucissuri",
        "limitreport-ppgeneratednodes": "Cuntiggiu dî gruppi ginirati dû priprucissuri",
        "log-name-pagelang": "Riggistru dî canci di lingua",
        "log-description-pagelang": "Chistu è nu riggistru dî canciamenti â lingua dî pàggini.",
        "logentry-pagelang-pagelang": "$1 {{GENDER:$2|canciau}} a lingua dâ pàggina $3 di $4 a' $5.",
-       "default-skin-not-found": "Whoops! A peddi pridifinuta dâ to wiki, mpustata nta <code dir=\"ltr\">$wgDefaultSkin</code> comu <code>$1</code>, nun è dispunìbbili.\n\nA' quantu pari la to installazzioni ncludi i peddi ccasutta. Talìa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manüali: Cunfigurazzioni dî peddi] p'istruzzioni supra a' comu s'attìvunu e comu si scegghî chidda pridifinuta.\n\n$2\n\n; Si' hai installatu MediaWiki ora ora:\n: E' prubbàbbili chi' l'installasti dû git, o direttamenti dû còdici surgenti nta quarchi' autra manera. Allura sta cosa è privista. Prova e installa quarchi' peddi di [https://www.mediawiki.org/wiki/Category:All_skins l'archìviu dî peddi di mediawiki.org], a na manera di chisti:\n:* Scàrrica [https://www.mediawiki.org/wiki/Download u prugramma d'installazzioni in furmatu tar], chi' cunteni tanti peddi ed estinsioni. Poi cupiari e ncuddari a cartella <code>skins/</code> di ddadintra.\n:* Scàrrica a' una a' una quarchi' peddi in furmatu tar di [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clona via git unu dî dipòsiti <code>mediawiki/skins/*</code> ntâ cartella <code dir=\"ltr\">skins/</code> dâ to installazzioni di MediaWiki.\n: Fari accussì' nun avissi a' ntirfirìri cû to dipòsitu git si' si' nu sviluppaturi di MediaWiki.\n\n; Si' hai aggiurnatu MediaWiki ora ora:\n: MediaWiki virsioni 1.24 e succissivi nun attìvunu cchiu' di manera autumàtica i peddi installati (talìa [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manüali: Scuperta autumatica dî peddi]). Poi cupiari e ncuddari sti righi nta <code>LocalSettings.php</code> p'attivari tutti i peddi chi' sunnu pi' com'ora installati:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si' hai mudificatu <code>LocalSettings.php</code> ora ora:\n: Cuntrolla chi' nun sbagghiasti a' scriviri i nomi dî peddi.",
+       "default-skin-not-found": "Whoops! La peddi pridifinuta dâ to wiki, mpustata nta <code dir=\"ltr\">$wgDefaultSkin</code> comu <code>$1</code>, nun è dispunìbbili.\n\nA' quantu pari la to installazzioni ncludi li peddi ccasutta. Talìa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manuali: Cunfigurazzioni dî peddi] p'istruzzioni supra a' comu s'attìvunu e comu si scegghî chidda pridifinuta.\n\n$2\n\n; Si' hai installatu MediaWiki ora ora:\n: E' prubbàbbili chi' l'installasti dû git, o direttamenti dû còdici surgenti nta quarchi' autra manera. Allura sta cosa è privista. Prova e installa quarchi' peddi di [https://www.mediawiki.org/wiki/Category:All_skins l'archìviu dî peddi di mediawiki.org], a na manera di chisti:\n:* Scàrrica [https://www.mediawiki.org/wiki/Download lu prugramma d'installazzioni in furmatu tar], chi' cunteni tanti peddi ed estinsioni. Poi cupiari e ncuddari la cartella <code>skins/</code> di ddadintra.\n:* Scàrrica a' una a' una quarchi' peddi in furmatu tar di [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clona via git unu dî dipòsiti <code>mediawiki/skins/*</code> ntâ cartella <code dir=\"ltr\">skins/</code> dâ to installazzioni di MediaWiki.\n: Fari accussì' nun avissi a' ntirfirìri cû to dipòsitu git si' si' nu sviluppaturi di MediaWiki.\n\n; Si' hai aggiurnatu MediaWiki ora ora:\n: MediaWiki virsioni 1.24 e succissivi nun attìvunu cchiu' di manera autumàtica i peddi installati (talìa [https://www.mediawiki.org/wiki/Manual:Skin_autodiscovery Manüali: Scuperta autumatica dî peddi]). Poi cupiari e ncuddari sti righi nta <code>LocalSettings.php</code> p'attivari tutti li peddi chi' sunnu pi' com'ora installati:\n\n<pre dir=\"ltr\">$3</pre>\n\n; Si' hai mudificatu <code>LocalSettings.php</code> ora ora:\n: Cuntrolla chi' nun sbagghiasti a' scriviri li nomi dî peddi.",
        "default-skin-not-found-no-skins": "Whoops! La peddi pridifinuta dâ to wiki, mpustata nta <code dir=\"ltr\">$wgDefaultSkin</code> comu <code>$1</code>, nun è dispunìbbili.\n\nNun hai nudda peddi installata.\n\n; Si' hai installatu o puru aggiurnatu MediaWiki ora ora:\n: E' prubbàbbili chi' l'installasti dû git, o direttamenti dû còdici surgenti nta quarchi' autra manera. Allura sta cosa è privista. MediaWiki virsioni 1.24 e succissivi nun cuntènunu nudda peddi ntô dipòsitu principali. Prova e installa quarchi' peddi di [https://www.mediawiki.org/wiki/Category:All_skins l'archìviu dî peddi di mediawiki.org], a na manera di chisti:\n:* Scàrrica [https://www.mediawiki.org/wiki/Download u prugramma d'installazzioni in furmatu tar], chi' cunteni tanti peddi ed estinsioni. Poi cupiari e ncuddari a cartella <code>skins/</code> di ddadintra.\n:* Scàrrica a' una a' una quarchi' peddi in furmatu tar di [https://www.mediawiki.org/wiki/Special:SkinDistributor mediawiki.org].\n:* Clona via git unu dî dipòsiti <code>mediawiki/skins/*</code> ntâ cartella <code dir=\"ltr\">skins/</code> dâ to installazzioni di MediaWiki.\n: Fari accussì' nun avissi a' ntirfirìri cû to dipòsitu git si' si' nu sviluppaturi di MediaWiki. Talìa [https://www.mediawiki.org/wiki/Manual:Skin_configuration Manüali: Cunfigurazzioni dî peddi] p'istruzzioni supra a' comu s'attìvunu i peddi e comu si scegghî chidda pridifinuta.",
        "default-skin-not-found-row-enabled": "* <code>$1</code> / $2 (attivata)",
        "default-skin-not-found-row-disabled": "* <code>$1</code> / $2 ('''disattivata''')",
        "mediastatistics-header-archive": "Furmati cumpressi",
        "json-warn-trailing-comma": "$1 {{PLURAL:$1|vìrgula finali fu' livata|vìrguli finali furu livati}} dû JSON",
        "json-error-unknown": "Mmattìu un prubblema cû JSON. Erruri: $1",
-       "json-error-depth": "Fu' passatu u massimu funnu dû stack",
+       "json-error-depth": "Fu passatu lu massimu funnu dû stack",
        "json-error-state-mismatch": "JSON nun vàlidu o malfurmatu",
        "json-error-ctrl-char": "Caràttiri di cuntrollu nun privistu, forsi cudificatu mali",
        "json-error-syntax": "Erruri di sintassi",
index 8a4d124..7fde9ab 100644 (file)
@@ -17,7 +17,9 @@
                        "sco.wikipedia.org editors",
                        "לערי ריינהארט",
                        "아라",
-                       "PiRSquared17"
+                       "PiRSquared17",
+                       "Macofe",
+                       "Caliburn"
                ]
        },
        "tog-underline": "Unnerline airtins:",
        "disclaimers": "Disclamation",
        "disclaimerpage": "Project:General_disclamation",
        "edithelp": "Eeditin help",
+       "helppage-top-gethelp": "Help",
        "mainpage": "Main Page",
        "mainpage-description": "Main Page",
        "policy-url": "Project:Policie",
        "deleteprotected": "Ye canna delyte this page cause it's been fended.",
        "deleting-backlinks-warning": "'''Warnishment:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Ither pages]] airt til or transcluide the page ye'r aboot tae delyte.",
        "rollback": "Row back eedits",
-       "rollback_short": "Rowback",
        "rollbacklink": "rowback",
        "rollbacklinkcount": "rowback $1 {{PLURAL:$1|eedit|eedits}}",
        "rollbacklinkcount-morethan": "rowback mair than $1 {{PLURAL:$1|eedit|eedits}}",
        "import-logentry-interwiki": "transwikied $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|reveesion|reveesions}} importit fae $2",
        "javascripttest": "JavaScript testin",
-       "javascripttest-title": "Rinnin $1 tests",
        "javascripttest-pagetext-noframework": "This page is reserved fer rinnin JavaScript tests.",
        "javascripttest-pagetext-unknownframework": "Onkent testin framewairk \"$1\".",
        "javascripttest-pagetext-frameworks": "Please chuise yin o the follaein testin framewairks: $1",
        "javascripttest-pagetext-skins": "Chuise ae skin tae rin the tests wi:",
        "javascripttest-qunit-intro": "See [$1 testin documentation] oan mediawiki.org.",
-       "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit test suite",
        "tooltip-pt-userpage": "Yer uiser page",
        "tooltip-pt-anonuserpage": "The uiser page fer the IP address that ye'r eeditin aes",
        "tooltip-pt-mytalk": "Yer tauk page",
        "logentry-upload-revert": "$1 {{GENDER:$2|uplaidit}} $3",
        "rightsnone": "(nane)",
        "revdelete-summary": "eedit the ootline",
+       "feedback-adding": "Eikin feedback til page...",
+       "feedback-bugcheck": "Wunnerfu! Just check that it's na awreadie yin o the [$1 knawn bugs].",
+       "feedback-bugnew": "Ah checkt. Report ae new bug",
        "feedback-bugornote": "Gif yer readie tae describe ae techneecal proablem in detail please [$1 report ae bug].\nItherwise, ye can uiss the easie form ablo. Yer comment will be eikit til the page \"[$3 $2]\", alang wi yer uisername.",
-       "feedback-subject": "Aneat:",
-       "feedback-message": "Message:",
        "feedback-cancel": "Cancel",
-       "feedback-submit": "Haund Feedback In",
-       "feedback-adding": "Eikin feedback til page...",
+       "feedback-close": "Dun",
        "feedback-error1": "Mistak: Onrecognised ootcome fae API",
        "feedback-error2": "Mistak: Eedit failed",
        "feedback-error3": "Mistak: Naw response fae API",
+       "feedback-message": "Message:",
+       "feedback-subject": "Aneat:",
+       "feedback-submit": "Haun-in",
        "feedback-thanks": "Thanks! Yer feedback haes been posted til the page \"[$2 $1]\".",
-       "feedback-close": "Dun",
-       "feedback-bugcheck": "Wunnerfu! Just check that it's na awreadie yin o the [$1 knawn bugs].",
-       "feedback-bugnew": "Ah checkt. Report ae new bug",
        "searchsuggest-search": "Rake",
        "searchsuggest-containing": "containin...",
        "api-error-badaccess-groups": "Ye'r na permittit tae uplaid files til this wiki.",
index c517d95..8ec5156 100644 (file)
@@ -1,7 +1,8 @@
 {
        "@metadata": {
                "authors": [
-                       "Songhay"
+                       "Songhay",
+                       "Macofe"
                ]
        },
        "tog-underline": "Dobu ganda-žeeriyan:",
        "deleteprotected": "War ši hin ka moɲoo woo tuusu zam'a ma jejebandi.",
        "deleting-backlinks-warning": "'''Warning:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Moo taney]] ga dobu wal'i huru moɲoo kaŋ war ga baa k'a barmay dogoo ra.",
        "rollback": "Yee banda fasalyaney \\",
-       "rollback_short": "Yee banda",
        "rollbacklink": "yee banda",
        "rollbacklinkcount": "{{PLURAL:$1|Fasalyan}} $1 yee banda",
        "rollbacklinkcount-morethan": "Kaŋ ga bisa {{PLURAL:$1|fasalyan}} $1 yee banda",
        "import-rootpage-nosubpage": "$1 maafarroo kaŋ goo linji moo se ši moo-izeyaŋ duɲe. \\",
        "importlogpage": "Taariki dam",
        "importlogpagetext": "Juwalkaw ga moɲey dam nda fasalyan taariki ka hun wiki waaniyaŋ ga.",
-       "import-logentry-upload": "na [[$1]] dam nda tuku zijandiyan",
        "import-logentry-upload-detail": "{{PLURAL:$1|Filla}} $1 ka huru",
-       "import-logentry-interwiki": "$1 huru transwiki bande \\",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|Filla}} $1 huru ka hun $2 ga",
        "javascripttest": "JavaScript šiiyan",
-       "javascripttest-title": "Goo ma $1 šii",
        "javascripttest-pagetext-noframework": "Moɲoo woo n' ka lanbandi ka JavaScript šiiyaney tee.",
        "javascripttest-pagetext-unknownframework": "Kungagoy \"$1\" šiiyan ši bayandi.",
        "javascripttest-pagetext-frameworks": "Šiiyan kungagoy šiiyaney wey affoo suuba: $1",
        "javascripttest-pagetext-skins": "Kuuru foo suuba ka šiiyaney tee nd'a:",
        "javascripttest-qunit-intro": "Guna [$1 šiiyan fahamandi tiira] mediawiki.org ga.",
-       "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit šiiyan margari",
        "tooltip-pt-userpage": "War goykaw moɲoo",
        "tooltip-pt-anonuserpage": "Goykaw moo IP aderesoo kaŋ war goo m'a fasal sanda",
        "tooltip-pt-mytalk": "War deede moɲoo",
        "logentry-upload-revert": "$1 na $3 {{GENDER:$2|zijandi}}",
        "rightsnone": "(baffoo)",
        "revdelete-summary": "duurandi fasal",
+       "feedback-adding": "Goo ma willandi tonton moɲoo ga…",
+       "feedback-bugcheck": "A boori! Koroši de wala woo manti [hasaraw bayrandi $1] affaa. \\",
+       "feedback-bugnew": "Ay n'a koroši. Hasaraw bayrandi sanba",
        "feedback-bugornote": "Nda war soolu ka dabari šenday šilbay ka tonton, [$1 hasaraw bayrandi hantum].\nNd'a manti woo, war ga hin ka goy nda takkada faalaa ne ganda. War laasaaboo ka tonton \"[$3 $2]\" moɲoo ga, war goykawmaaɲoo bande.",
-       "feedback-subject": "Teekaw",
-       "feedback-message": "Alhabar:",
        "feedback-cancel": "Naŋ",
-       "feedback-submit": "Willandi sanba",
-       "feedback-adding": "Goo ma willandi tonton moɲoo ga…",
+       "feedback-close": "A ben",
        "feedback-error1": "Firka: hunyan šibayante porogaram hantumyan gunaridoo (API) ga",
        "feedback-error2": "Firka: fasalyan kaŋ",
        "feedback-error3": "Firka: Zaabi kul ši hun API do",
+       "feedback-message": "Alhabar:",
+       "feedback-subject": "Teekaw",
+       "feedback-submit": "Sanba",
        "feedback-thanks": "Foo nda goy! War willandoo n' ka wallafandi \"[$2 $1]\" moɲoo ga.",
-       "feedback-close": "A ben",
-       "feedback-bugcheck": "A boori! Koroši de wala woo manti [hasaraw bayrandi $1] affaa. \\",
-       "feedback-bugnew": "Ay n'a koroši. Hasaraw bayrandi sanba",
        "searchsuggest-search": "Ceeci",
        "searchsuggest-containing": "goo nda…",
        "api-error-badaccess-groups": "War ši nda fondo ka tukey zijandi wikiyoo woo ga.",
index 50073d8..23a59ac 100644 (file)
@@ -7,7 +7,8 @@
                        "OC Ripper",
                        "לערי ריינהארט",
                        "아라",
-                       "Milicevic01"
+                       "Milicevic01",
+                       "Macofe"
                ]
        },
        "tog-underline": "Podvuci linkove:",
        "delete-toobig": "Ova stranica ima veliku historiju promjena, preko $1 {{PLURAL:$1|revizije|revizija}}.\nBrisanje takvih stranica nije dopušteno da bi se spriječilo slučajno preopterećenje servera na kojem je {{SITENAME}}.",
        "delete-warning-toobig": "Ova stranica ima veliku historiju izmjena, preko $1 {{PLURAL:$1|izmjene|izmjena}}.\nNjeno brisanje može dovesti do opterećenja operacione baze na {{SITENAME}};\nnastavite s oprezom.",
        "rollback": "Vrati izmjene",
-       "rollback_short": "Vrati",
        "rollbacklink": "vrati",
        "rollbacklinkcount": "vrati $1 {{PLURAL:$1|izmjenu|izmjene|izmjena}}",
        "rollbacklinkcount-morethan": "vrati više od $1 {{PLURAL:$1|izmjene|izmjene|izmjena}}",
        "import-rootpage-nosubpage": "Imenski prostor „$1“ osnovne stranice ne dozvoljava podstranice.",
        "importlogpage": "Evidencija uvoza stranica",
        "importlogpagetext": "Administrativni uvozi stranica s historijom izmjena sa drugih wikija.",
-       "import-logentry-upload": "uvezen/a [[$1]] postavljanjem datoteke",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|revizija|revizije|revizija}}",
-       "import-logentry-interwiki": "uveženo (\"transwikied\") $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|revizija|revizije|revizija}} sa $2",
        "javascripttest": "Javaskript test",
        "javascripttest-pagetext-noframework": "Ova stranica je rezervisana za izvršavanje javaskript testova.",
        "version-parser-function-hooks": "Kuke parserske funkcije",
        "version-hook-name": "Naziv kuke",
        "version-hook-subscribedby": "Pretplaćeno od",
-       "version-version": "(Verzija $1)",
+       "version-version": "($1)",
        "version-license": "Licenca",
        "version-poweredby-credits": "Ova wiki je zasnovana na '''[https://www.mediawiki.org/ MediaWiki]''', autorska prava zadržana © 2001-$1 $2.",
        "version-poweredby-others": "ostali",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|je automatski unaprijeđen|je automatski unaprijeđena}} iz $4 u $5",
        "rightsnone": "(nema)",
        "revdelete-summary": "sažetak izmjene",
+       "feedback-adding": "Dodajem povratne informacije na stranicu...",
+       "feedback-bugcheck": "Izvrsno! Molimo provjerite da se ne radi o nekom [$1 poznatom \"bugu\"].",
+       "feedback-bugnew": "Provereno. Prijavi novu grešku",
        "feedback-bugornote": "Ako ste spremni da detaljno opišete tehnički problem, onda [$1 prijavite grešku].\nU suprotnom, poslužite se jednostavnim obrascem ispod. Vaš komentar će stajati na stranici „[$3 $2]“, zajedno s korisničkim imenom i pregledačem koji koristite.",
-       "feedback-subject": "Tema:",
-       "feedback-message": "Poruka:",
        "feedback-cancel": "Odustani",
-       "feedback-submit": "Pošalji povratnu informaciju",
-       "feedback-adding": "Dodajem povratne informacije na stranicu...",
+       "feedback-close": "Gotovo",
        "feedback-error1": "Greška: neprepoznat rezultat od API-ja",
        "feedback-error2": "Greška: Uređivanje nije uspjelo",
        "feedback-error3": "Greška: nema odgovora od API-ja",
+       "feedback-message": "Poruka:",
+       "feedback-subject": "Tema:",
+       "feedback-submit": "Unesi",
        "feedback-thanks": "Hvala! Vaša povratna informacija je postavljena na stranicu „[$2 $1]“.",
-       "feedback-close": "Gotovo",
-       "feedback-bugcheck": "Izvrsno! Molimo provjerite da se ne radi o nekom [$1 poznatom \"bugu\"].",
-       "feedback-bugnew": "Provereno. Prijavi novu grešku",
        "searchsuggest-search": "Traži",
        "searchsuggest-containing": "sadrži...",
        "api-error-badaccess-groups": "Nemate ovlasti da postavljate datoteke na ovoj wiki.",
index fb15742..ba0c2d1 100644 (file)
@@ -27,7 +27,8 @@
                        "Indunil Chamara",
                        "Susith Chandira Gts",
                        "Thanushka",
-                       "Thirsty"
+                       "Thirsty",
+                       "Macofe"
                ]
        },
        "tog-underline": "සබැඳි යටීර කිරීම:",
        "import-rootpage-invalid": "ලබා දුන් මූල පිටුව වැරදි ශීර්ෂයක් වේ.",
        "importlogpage": "ලඝු-සටහන් ආයාත කරන්න",
        "importlogpagetext": "අනෙකුත් විකියන්ගෙන් සංස්කරණ ඉතිහාසයන් ඇති පිටු වල පරිපාලනමය ආයාත කිරීම්.",
-       "import-logentry-upload": "ගොනු උඩුගත කිරීමක් මගින් [[$1]] ආයාත කෙරිණි",
        "import-logentry-upload-detail": " {{PLURAL:$1|සංශෝධනය|සංශෝධන $1 ක්}}",
-       "import-logentry-interwiki": "$1 අන්තර්විකීකරණය කරන ලදි",
        "import-logentry-interwiki-detail": "$2 වෙතින් {{PLURAL:$1|එක් සංශෝධනයක්|සංශෝධන $1 ක්}}",
        "javascripttest": "ජාවාස්ක්‍රිප්ට් පරික්ෂාකරමින්",
        "javascripttest-pagetext-noframework": "මෙම පිටුව ජාවාස්ක්‍රිප්ට් පරික්ෂණ සිදුකිරීම සඳහා වෙන්කර ඇත.",
        "version-parser-function-hooks": "වයාකරණ විග්‍රහක ශ්‍රිත හසුරු",
        "version-hook-name": "හසුරු නම",
        "version-hook-subscribedby": "දායකවී ඇත්තේ",
-       "version-version": "(අනුවාදය $1)",
+       "version-version": "($1)",
        "version-license": "වරපත",
        "version-poweredby-credits": "මෙම විකිය '''[https://www.mediawiki.org/ MediaWiki]''' මගින් බලගන්වා ඇත, copyright © 2001-$1 $2.",
        "version-poweredby-others": "අනෙකුත්",
        "logentry-newusers-autocreate": "$1 ගිණුම ස්වංක්‍රීයව නිර්මිතය",
        "rightsnone": "(කිසිවක් නොමැත)",
        "revdelete-summary": "සංස්කරණ සාරාංශය",
-       "feedback-subject": "විෂයය:",
-       "feedback-message": "පණිවුඩය:",
-       "feedback-cancel": "අවලංගු කරන්න",
-       "feedback-submit": "ප්‍රතිචාරය යවන්න",
        "feedback-adding": "ප්‍රතිචාරය පිටුවට එක් කරමින් ...",
+       "feedback-bugcheck": "කදිමයි! දැන් එය දැනටමත් [$1 හඳුනාගත් දෝෂ]වල තිබේ දැයි පිරික්සන්න.",
+       "feedback-bugnew": "මම පරික්ෂා කළා. නව දෝෂය වාර්තා කරන්න",
+       "feedback-cancel": "අවලංගු කරන්න",
+       "feedback-close": "හරි",
        "feedback-error1": "දෝෂය: API ගෙන් හදුනානොගත් ප්‍රතිපල",
        "feedback-error2": "දෝෂය: සංස්කරණය අසාර්ථකයි",
        "feedback-error3": "දෝෂය: API ගෙන් ප්‍රතිචාරයක් නොමැත",
+       "feedback-message": "පණිවුඩය:",
+       "feedback-subject": "විෂයය:",
+       "feedback-submit": "යොමන්න",
        "feedback-thanks": "ස්තුතියි! ඔබේ ප්‍රතිචාරය \"[$2 $1]\" පිටුවට එක් කරන ලදී.",
-       "feedback-close": "හරි",
-       "feedback-bugcheck": "කදිමයි! දැන් එය දැනටමත් [$1 හඳුනාගත් දෝෂ]වල තිබේ දැයි පිරික්සන්න.",
-       "feedback-bugnew": "මම පරික්ෂා කළා. නව දෝෂය වාර්තා කරන්න",
        "searchsuggest-search": "ගවේශණය කරන්න",
        "searchsuggest-containing": "ඇතුළත් වෙමින් පවතී...",
        "api-error-badaccess-groups": "මෙම විකියට ගොනු උඩුගතකිරීම සඳහා ඔබට අවසර නැත.",
index 13e3d1b..a838173 100644 (file)
@@ -28,7 +28,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Matthew Greg",
-                       "Ата"
+                       "Ата",
+                       "Macofe"
                ]
        },
        "tog-underline": "Podčiarkovať odkazy:",
        "delete-toobig": "Táto stránka má veľkú históriu úprav, viac ako $1 {{PLURAL:$1|revíziu|revízie|revízií}}. Mazanie takýchto stránok bolo obmedzené, aby sa zabránilo náhodnému poškodeniu {{GRAMMAR:genitív|{{SITENAME}}}}.",
        "delete-warning-toobig": "Táto stránka má veľkú históriu úprav, viac ako $1 {{PLURAL:$1|revíziu|revízie|revízií}}. Jej zmazanie by mohlo narušiť databázové operácie {{GRAMMAR:genitív|{{SITENAME}}}}; postupujte opatrne.",
        "rollback": "Vrátiť späť úpravy",
-       "rollback_short": "Vrátiť",
        "rollbacklink": "vrátiť",
        "rollbacklinkcount": "vrátenie $1 {{PLURAL:$1|úpravy|úprav}}",
        "rollbacklinkcount-morethan": "vrátiť viac ako $1 {{PLURAL:$1|úpravu|úprav}}",
        "import-rootpage-nosubpage": "Menný priestor „$1“ koreňovej stránky nepodporuje podstránky.",
        "importlogpage": "Záznam importov",
        "importlogpagetext": "Administratívny import stránok vrátane histórie úprav z iných wiki.",
-       "import-logentry-upload": "importoval [[$1]] nahraním súboru",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|revízia|revízie|revízií}}",
-       "import-logentry-interwiki": "Transwiki import $1 úspešný",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|revízia|revízie|revízií}} z $2",
        "javascripttest": "Testovanie JavaScriptu",
-       "javascripttest-title": "Beží $1 testov",
        "javascripttest-pagetext-noframework": "Táto stránka je vyhradená pre testy JavaScriptu.",
        "javascripttest-pagetext-unknownframework": "Neznáma testovacia platfoma „$1“.",
        "javascripttest-pagetext-frameworks": "Prosím vyberte jednu z nasledovných testovacích platforiem: $1",
        "javascripttest-pagetext-skins": "Vyberte tému vzhľadu, na ktorej chcete spustiť testy:",
        "javascripttest-qunit-intro": "Pozri [$1 dokumentácia testovania] na mediawiki.org.",
-       "javascripttest-qunit-heading": "Testovacia sada QUnit JavaScriptu MediaWiki",
        "tooltip-pt-userpage": "Vaša používateľská stránka",
        "tooltip-pt-anonuserpage": "Používateľská stránka pre ip adresu, ktorú upravujete ako",
        "tooltip-pt-mytalk": "Vaša diskusná stránka",
        "version-parser-function-hooks": "Prípojné body funkcií syntaktického analyzátora",
        "version-hook-name": "Názov prípojného bodu",
        "version-hook-subscribedby": "Pripojené",
-       "version-version": "(Verzia $1)",
+       "version-version": "($1)",
        "version-license": "Licencia",
        "version-ext-license": "Licencia",
        "version-ext-colheader-name": "Rozšírenie",
        "logentry-rights-autopromote": "$1 bol automaticky povýšený z $4 na $5",
        "rightsnone": "(žiadne)",
        "revdelete-summary": "zhrnutie úprav",
+       "feedback-adding": "Pridáva sa komentár na stránku...",
+       "feedback-bugcheck": "Skvelé! Teraz len skontrolujte, či to nie je jedna z už [$1 známych chýb].",
+       "feedback-bugnew": "Skontroloval som. Poslať nové hlásenie o chybe.",
        "feedback-bugornote": "Ak ste pripravený podrobne popísať technický problém, prosím pošlite [$1 hlásenie o chybe]. \nV opačnom prípade môžete použiť zjednodušený formulár nižšie. Váš komentár sa pridá na stránku „[$3 $2]“ spolu s vašim používateľským meno a prehliadačom, ktorý používate.",
-       "feedback-subject": "Predmet:",
-       "feedback-message": "Správa:",
        "feedback-cancel": "Zrušiť",
-       "feedback-submit": "Odoslať komentár",
-       "feedback-adding": "Pridáva sa komentár na stránku...",
+       "feedback-close": "Hotovo",
        "feedback-error1": "Chyba: Nerozpoznaný výsledok z API",
        "feedback-error2": "Chyba: Úprava sa nepodarila",
        "feedback-error3": "Chyba: Žiadna odpoveď z API",
+       "feedback-message": "Správa:",
+       "feedback-subject": "Predmet:",
+       "feedback-submit": "Odoslať",
        "feedback-thanks": "Ďakujeme. Váš komentár bol odoslaný na stránku „[$2 $1]“.",
-       "feedback-close": "Hotovo",
-       "feedback-bugcheck": "Skvelé! Teraz len skontrolujte, či to nie je jedna z už [$1 známych chýb].",
-       "feedback-bugnew": "Skontroloval som. Poslať nové hlásenie o chybe.",
        "searchsuggest-search": "Hľadať",
        "searchsuggest-containing": "obsahuje...",
        "api-error-badaccess-groups": "Nemáte oprávnenie nahrávať súbory na tejto wiki.",
        "mediastatistics-header-office": "Kancelárske súbory",
        "mediastatistics-header-text": "Text",
        "mediastatistics-header-executable": "Spustiteľné súbory",
-       "mediastatistics-header-archive": "Komprimované formáty"
+       "mediastatistics-header-archive": "Komprimované formáty",
+       "headline-anchor-title": "Odkaz na túto sekciu"
 }
index 4116096..82d1756 100644 (file)
        "disclaimers": "Zanikanja odgovornosti",
        "disclaimerpage": "Project:Splošno zanikanje odgovornosti",
        "edithelp": "Pomoč pri urejanju",
+       "helppage-top-gethelp": "Pomoč",
        "mainpage": "Glavna stran",
        "mainpage-description": "Glavna stran",
        "policy-url": "Project:Pravila",
        "missingcommentheader": "'''Opozorilo:''' Niste vnesli zadeve/naslova za ta komentar.\nČe boste ponovno kliknili »{{int:savearticle}}«, bo vaše urejanje shranjeno brez le-tega.",
        "summary-preview": "Predogled povzetka",
        "subject-preview": "Predogled zadeve/naslova:",
+       "previewerrortext": "Med poskusom prikaza predogleda vaših sprememb je prišlo do napake.",
        "blockedtitle": "Uporabnik je blokiran",
        "blockedtext": "'''Urejanje z vašim uporabniškim imenom oziroma IP-naslovom je onemogočeno.'''\n\nBlokiral vas je $1.\nPodani razlog je ''$2''.\n\n* začetek blokade: $8\n* potek blokade: $6\n* blokirani uporabnik: $7\n\nO blokiranju se lahko pogovorite z uporabnikom/-co $1 ali katerim drugim [[{{MediaWiki:Grouppage-sysop}}|administratorjem]].\nVedite, da lahko ukaz »Pošlji uporabniku e-pismo« uporabite le, če ste v [[Special:Preferences|nastavitvah]] vpisali in potrdili svoj elektronski naslov in ta ni blokiran.\nVaš IP-naslov je $3, številka blokade pa #$5.\nProsimo, vključite ju v vse morebitne poizvedbe.",
        "autoblockedtext": "Vaš IP-naslov je bil samodejno blokiran, saj je bil uporabljen s strani drugega uporabnika, ki ga je blokiral $1.\nRazlog za to je bil naslednji:\n\n:''$2''\n\n* Začetek blokade: $8\n* Konec blokade: $6\n* Blokirani uporabnik: $7\n\nKontaktirate lahko $1 ali katerega od drugih [[{{MediaWiki:Grouppage-sysop}}|administratorjev]], da razpravljate o blokadi.\n\nVedite, da lahko funkcijo »{{:MediaWiki:Emailuser/sl}}« uporabljate le, če ste v svoje [[Special:Preferences|uporabniške nastavitve]] vnesli veljaven e-poštni naslov, in vam njena uporaba ni bila preprečena.\n\nVaš trenutni IP-naslov je $3, ID blokiranja pa #$5. Prosimo, vključite ta ID v vsako zastavljeno vprašanje.",
        "import-rootpage-nosubpage": "Imenski prostor »$1« korenske strani ne dovoli podstrani.",
        "importlogpage": "Dnevnik uvozov",
        "importlogpagetext": "Administrativni uvozi strani z zgodovino urejanja iz drugih wikijev.",
-       "import-logentry-upload": "uvozil [[$1]] z nalaganjem datoteke",
        "import-logentry-upload-detail": "{{PLURAL:$1|Uvožena $1 redakcija|Uvoženi $1 redakciji|Uvožene $1 redakcije|Uvoženih $1 redakcij}}",
-       "import-logentry-interwiki": "prenesel $1 med wikiji",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|Uvožena $1 redakcija|Uvoženi $1 redakciji|Uvožene $1 redakcije|Uvoženih $1 redakcij}} z $2",
        "javascripttest": "Preizkušanje JavaScripta",
        "javascripttest-pagetext-noframework": "Stran je rezervirana za poganjanje preizkusov JavaScript.",
        "version-parser-function-hooks": "Funkcije razširitev razčlenjevalnika",
        "version-hook-name": "Ime razširitve",
        "version-hook-subscribedby": "Naročen s strani",
-       "version-version": "(Različica $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[brez imena]",
        "version-license": "Dovoljenje MediaWiki",
        "version-ext-license": "Dovoljenje",
        "logentry-block-reblock": "$1 je {{GENDER:$2|spremenil|spremenila|spremenil(-a)}} nastavitve blokade za {{GENDER:$4|$3}} s časomspremenil poteka $5 $6",
        "logentry-suppress-block": "$1 je {{GENDER:$2|blokiral|blokirala|blokiral(-a)}} {{GENDER:$4|$3}} s časom poteka $5 $6",
        "logentry-suppress-reblock": "$1 je {{GENDER:$2|spremenil|spremenila|spremenil(-a)}} nastavitve blokade za {{GENDER:$4|$3}} s časom poteka $5 $6",
+       "logentry-import-upload": "$1 je {{GENDER:$2|uvozil|uvozila|uvozil(-a)}} $3 z nalaganjem datoteke",
+       "logentry-import-interwiki": "$1 je {{GENDER:$2|uvozil|uvozila|uvozil(-a)}} $3 z drugega wikija",
        "logentry-merge-merge": "$1 je {{GENDER:$2|združil|združila|združil(-a)}} $3 z $4 (redakcije do $5)",
        "logentry-move-move": "$1 je {{GENDER:$2|premaknil|premaknila|premaknil(-a)}} stran $3 na $4",
        "logentry-move-move-noredirect": "$1 je {{GENDER:$2|prestavil|prestavila|prestavil(-a)}} stran $3 na $4 brez preusmeritve",
        "logentry-managetags-deactivate": "$1 je {{GENDER:$2|dezaktiviral|dezaktivirala|dezaktiviral(-a)}} oznako »$4« za uporabnike in bote",
        "rightsnone": "(nobeno)",
        "revdelete-summary": "povzetek urejanja",
+       "feedback-adding": "Dodajanje povratne informacije na stran ...",
+       "feedback-back": "Nazaj",
+       "feedback-bugcheck": "Izvrstno! Samo preverite, da ne gre za enega od [$1 že znanih hroščev].",
+       "feedback-bugnew": "Sem preveril. Prijavi nov hrošč",
        "feedback-bugornote": "Če ste pripravljeni podrobno opisati tehnično težavo, vložite [$1 poročilo o hrošču].\nV nasprotnem primeru lahko uporabite preprost obrazec spodaj. Vašo pripombo bomo dodali na stran »[$3 $2]«, skupaj z vašim uporabniškim imenom in podatkom o brskalniku, ki ga uporabljate.",
-       "feedback-subject": "Zadeva:",
-       "feedback-message": "Sporočilo:",
        "feedback-cancel": "Prekliči",
-       "feedback-submit": "Pošlji povratno informacijo",
-       "feedback-adding": "Dodajanje povratne informacije na stran ...",
+       "feedback-close": "Urejeno",
+       "feedback-external-bug-report-button": "Vloži tehnično opravilo",
+       "feedback-dialog-title": "Pošljite povratne informacije",
+       "feedback-dialog-intro": "Spodnji enostavni obrazec lahko uporabite za pošiljanje povratnih informacij. Vašo pripombo bomo dodali na stran »$1« skupaj z vašim uporabniškim imenom.",
+       "feedback-error-title": "Napaka",
        "feedback-error1": "Napaka: Neznan rezultat iz API",
        "feedback-error2": "Napaka: Urejanje je spodletelo",
        "feedback-error3": "Napaka: Ni odgovora od API",
+       "feedback-message": "Sporočilo:",
+       "feedback-subject": "Zadeva:",
+       "feedback-submit": "Pošlji",
+       "feedback-terms": "Razumem, da podatek o uporabniškem agentu vsebuje točne informacije o mojem brskalniku in različici operacijskega sistema ter da bo javno prikazan skupaj z mojimi povratnimi informacijami.",
+       "feedback-termsofuse": "Strinjam se, da posredujem povratne informacije v skladu s Pogoji uporabe.",
        "feedback-thanks": "Havala! Vaše povratne informacije smo objavili na strani »[$2 $1]«.",
-       "feedback-close": "Urejeno",
-       "feedback-bugcheck": "Izvrstno! Samo preverite, da ne gre za enega od [$1 že znanih hroščev].",
-       "feedback-bugnew": "Sem preveril. Prijavi nov hrošč",
+       "feedback-thanks-title": "Hvala!",
+       "feedback-useragent": "Uporabniški agent:",
        "searchsuggest-search": "Iskanje",
        "searchsuggest-containing": "vsebujoč ...",
        "api-error-badaccess-groups": "Nalaganje datotek na ta wiki vam ni dovoljeno.",
index b63503f..abc0720 100644 (file)
@@ -26,7 +26,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Gertakapllani",
-                       "OrvenBregu"
+                       "OrvenBregu",
+                       "Macofe"
                ]
        },
        "tog-underline": "Nënvizo lidhjet:",
        "import-error-invalid": "Faqja \"$1\" nuk është importuar sepse emri i saj është i palejueshëm.",
        "importlogpage": "Regjistri i importeve",
        "importlogpagetext": "Importimet administrative të faqeve me historik redaktimi nga wiki-t e tjera.",
-       "import-logentry-upload": "importoi [[$1]] nëpërmjet ngarkimit të skedave",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|version|versione}}",
-       "import-logentry-interwiki": "transwikoji $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$!1|version|versione}} nga $2",
        "javascripttest": "Duke testuar JavaScript",
        "javascripttest-pagetext-noframework": "Kjo faqe është rezervuar për kryerjen e testimeve JavaScript.",
        "version-parser-function-hooks": "Parser goditjet e funksionit",
        "version-hook-name": "Emri i goditjes",
        "version-hook-subscribedby": "Abonuar nga",
-       "version-version": "(Versioni $1)",
+       "version-version": "($1)",
        "version-license": "Licensa",
        "version-poweredby-credits": "Ky wiki është mundësuar nga '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
        "version-poweredby-others": "të tjerë",
        "logentry-newusers-autocreate": "Llogaria $1 u krijua automatikisht",
        "rightsnone": "(asgjë)",
        "revdelete-summary": "përmbledhja redaktimit",
+       "feedback-adding": "Duke shtuar përshtypjen te faqja...",
+       "feedback-bugcheck": "Shumë mirë! Thjesht kontrolloni që nuk është një nga [$1 problemet e njohura].",
+       "feedback-bugnew": "E kontrollova. Raporto një problem të ri",
        "feedback-bugornote": "Nëse jeni gati për të përshkruar një problem teknik me detaje ju lutemi [$1 raportoni një problem].\nPërndryshe, ju mund të formularin e thjeshtë më poshtë. Komenti juaj do të shtohet te faqja \"[$3 $2]\"\", së bashku me emrin tuaj të përdoruesit dhe shfletuesin të cilin jeni duke përdorur.",
-       "feedback-subject": "Subjekti:",
-       "feedback-message": "Mesazhi:",
        "feedback-cancel": "Anulo",
-       "feedback-submit": "Paraqit përshtypjet",
-       "feedback-adding": "Duke shtuar përshtypjen te faqja...",
+       "feedback-close": "Përfunduar",
        "feedback-error1": "Gabim: Rezultat i panjohur nga API",
        "feedback-error2": "Gabim: Redaktimi dështoi",
        "feedback-error3": "Gabim: Nuk ka përgjigje nga API",
+       "feedback-message": "Mesazhi:",
+       "feedback-subject": "Subjekti:",
+       "feedback-submit": "Dërgo",
        "feedback-thanks": "Faleminderit! Përshtypja juaj është postuar në faqen \"[$2 $1]\".",
-       "feedback-close": "Përfunduar",
-       "feedback-bugcheck": "Shumë mirë! Thjesht kontrolloni që nuk është një nga [$1 problemet e njohura].",
-       "feedback-bugnew": "E kontrollova. Raporto një problem të ri",
        "searchsuggest-search": "Kërko",
        "searchsuggest-containing": "përmban ...",
        "api-error-badaccess-groups": "Ju nuk lejoheni të ngarkoni skeda në këtë wiki.",
index 9d2c85e..22f6a80 100644 (file)
        "disclaimers": "Одрицање одговорности",
        "disclaimerpage": "Project:Одрицање одговорности",
        "edithelp": "Помоћ при уређивању",
+       "helppage-top-gethelp": "Помоћ",
        "mainpage": "Главна страна",
        "mainpage-description": "Главна страна",
        "policy-url": "Project:Правила",
        "editold": "уреди",
        "viewsourceold": "изворни код",
        "editlink": "уреди",
-       "viewsourcelink": "Ð\98звоÑ\80",
-       "editsectionhint": "Уредите одељак „$1“",
+       "viewsourcelink": "извоÑ\80ни ÐºÐ¾Ð´",
+       "editsectionhint": "Уреди одељак „$1“",
        "toc": "Садржај",
        "showtoc": "прикажи",
        "hidetoc": "сакриј",
        "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)",
        "createaccount-text": "Неко је отворио налог с вашом е-адресом на {{SITENAME}} ($4) под именом $2 и лозинком $3.\nПријавите се и промените своју лозинку.\n\nАко је ово грешка, занемарите ову поруку.",
        "login-throttled": "Превише пута сте покушали да се пријавите.\nМолимо вас да сачекате $1 пре него што покушате поново.",
        "login-abort-generic": "Неуспешна пријава – прекинуто",
+       "login-migrated-generic": "Ваш налог је мигриран и ваше корисничко више не постоји на овом викију.",
        "loginlanguagelabel": "Језик: $1",
        "suspicious-userlogout": "Ваш захтев за одјаву је одбијен јер је послат од стране неисправног прегледача или посредника.",
        "createacct-another-realname-tip": "Право име није обавезно.\nАко изаберете да га унесете, оно ће бити коришћено за приписивање вашег рада.",
        "templatesused": "{{PLURAL:$1|Шаблон|Шаблони}} на овој страници:",
        "templatesusedpreview": "{{PLURAL:$1|Шаблон|Шаблони}} у овом прегледу:",
        "templatesusedsection": "{{PLURAL:$1|Шаблон|Шаблони}} у овом одељку:",
-       "template-protected": "(заштићен)",
-       "template-semiprotected": "(полузаштићен)",
+       "template-protected": "(заштићено)",
+       "template-semiprotected": "(полузаштићено)",
        "hiddencategories": "Ова страница је члан {{PLURAL:$1|једне скривене категорије|$1 скривене категорије|$1 скривених категорија}}:",
        "edittools": "<!-- Овај текст ће бити приказан испод обрасца за уређивање и отпремање. -->",
        "edittools-upload": "-",
        "content-failed-to-parse": "Не могу да рашчланим садржај типа $2 за модел $1: $3",
        "invalid-content-data": "Неисправни подаци садржаја",
        "content-not-allowed-here": "Садржај модела „$1“ није дозвољен на страници [[$2]]",
-       "editwarning-warning": "Ако напустите ову страницу, изгубићете све измене које сте направили.\nАко сте пријављени, можете онемогућити ово упозорење у својим подешавањима, у одељку „{{int:prefs-editing}}“.",
+       "editwarning-warning": "Ако напустите ову страницу, изгубићете све измене које сте направили. Ако сте пријављени, можете онемогућити ово упозорење у својим подешавањима, у одељку „{{int:prefs-editing}}“.",
        "editpage-notsupportedcontentformat-title": "Формат садржаја није подржан",
        "content-model-wikitext": "викитекст",
        "content-model-text": "чист текст",
        "history-feed-item-nocomment": "$1 у $2",
        "history-feed-empty": "Тражена страница не постоји.\nМогуће да је обрисана с викија или је преименована.\nПокушајте да [[Special:Search|претражите вики]] за сличне странице.",
        "rev-deleted-comment": "(опис измене уклоњен)",
-       "rev-deleted-user": "(коÑ\80иÑ\81ниÑ\87ко Ð¸Ð¼Ðµ Ñ\98е Ñ\83клоÑ\9aено)",
-       "rev-deleted-event": "(иÑ\81Ñ\82оÑ\80иÑ\98а Ñ\98е Ñ\83клоÑ\9aена)",
+       "rev-deleted-user": "(корисничко име уклоњено)",
+       "rev-deleted-event": "(деÑ\82аÑ\99и Ð´Ð½ÐµÐ²Ð½Ð¸ÐºÐ° Ñ\83клоÑ\9aени)",
        "rev-deleted-user-contribs": "[корисничко име или ИП адреса је уклоњена – измена је сакривена са списка доприноса]",
        "rev-deleted-text-permission": "Измена ове странице је '''обрисана'''.\nДетаље можете видети у [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} историји брисања].",
        "rev-deleted-text-unhide": "Измена ове странице је '''обрисана'''.\nДетаље можете видети у [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} историји брисања].\nИпак можете да [$1 видите ову измену] ако желите да наставите.",
        "rev-suppressed-unhide-diff": "Једна од измена ове разлике је '''сакривена'''.\nДетаљи се налазе у [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} историји сакривања].\nИпак можете да [$1 видите ову разлику] ако желите да наставите.",
        "rev-deleted-diff-view": "Једна од измена ове разлике је '''обрисана'''.\nИпак можете да видите ову разлику; више детаља можете наћи у [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} историји брисања].",
        "rev-suppressed-diff-view": "Једна од измена ове разлике је '''сакривена'''.\nИпак можете да видите ову разлику; више детаља можете наћи у [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} историји сакривања].",
-       "rev-delundel": "пÑ\80икажи/Ñ\81акÑ\80иÑ\98",
+       "rev-delundel": "пÑ\80омени Ð²Ð¸Ð´Ñ\99ивоÑ\81Ñ\82",
        "rev-showdeleted": "прикажи",
        "revisiondelete": "Обриши/врати измене",
        "revdelete-nooldid-title": "Нема тражене измене",
        "revdelete-text-text": "Избрисане измене ће и даље бити видљиве у историји странице, али делови њиховог садржаја неће бити јавно доступну.",
        "revdelete-text-file": "Избрисане верзије датотеке ће и даље бити видљиве у историји датотеке, али делови њиховог садржаја неће бити јавно доступну.",
        "logdelete-text": "Избрисани уноси у дневницима ће и даље бити видљиви у дневницима, али делови њиховог садржаја неће бити јавно доступну.",
+       "revdelete-text-others": "Остали администратори ће и даље моћи да приступе скривеном садржају и врате га, осим ако се поставе додатна ограничења.",
        "revdelete-confirm": "Потврдите да намеравате ово урадити, да разумете последице и да то чините у складу с [[{{MediaWiki:Policy-url}}|правилима]].",
-       "revdelete-suppress-text": "Сакривање измена би требало користити '''само''' у следећим случајевима:\n* Злонамерни или погрдни подаци\n* Неприкладни лични подаци\n*: ''кућна адреса и број телефона, број банковне картице итд.''",
+       "revdelete-suppress-text": "Сакривање измена би требало користити <strong>само</strong> у следећим случајевима:\n* злонамерни или погрдни подаци\n* неприкладни лични подаци\n*: <em>кућна адреса и број телефона, број кредитне картице, ЈМБГ итд.</em>",
        "revdelete-legend": "Ограничења видљивости",
        "revdelete-hide-text": "Сакриј текст измене",
        "revdelete-hide-image": "Сакриј садржај датотеке",
        "prefs-diffs": "Разлике",
        "prefs-help-prefershttps": "Ова подешавања ће ступити на снагу при следећој пријави.",
        "prefswarning-warning": "Променили сте ваша подешавања али нисте их још сачували.\nАко не притиснете „$1“ ваша подешавања ће бити изгубљена.",
+       "prefs-tabs-navigation-hint": "Савет: можете користити типке са левом и десном стрелицом за кретање кроз картице.",
        "email-address-validity-valid": "Е-адреса је исправна",
        "email-address-validity-invalid": "Унесите исправну е-адресу",
        "userrights": "Управљање корисничким правима",
        "userrights-changeable-col": "Групе које можете да промените",
        "userrights-unchangeable-col": "Групе које не можете да промените",
        "userrights-irreversible-marker": "$1*",
+       "userrights-conflict": "Сукоб промена корисничких права! Молимо проверите ваше измене.",
        "userrights-removed-self": "Успешно сте себи скинули права. Због тога није вам дозвољен приступ овој страници.",
        "group": "Група:",
        "group-user": "Корисници",
        "right-override-export-depth": "извоз страница укључујући и повазене странице до дубине од пет веза",
        "right-sendemail": "слање е-порука другим корисницима",
        "right-passwordreset": "прегледање порука за обнављање лозинке",
+       "right-managechangetags": "прављење и/или брисање [[Special:Tags|ознака]] из базе података",
        "newuserlogpage": "Дневник нових корисника",
        "newuserlogpagetext": "Ово је историја нових корисника.",
        "rightslog": "Дневник корисничких права",
        "uploaderror": "Грешка при отпремању",
        "upload-recreate-warning": "'''Упозорење: датотека с тим називом је обрисана или премештена.'''\n\nИсторија брисања и премештања се налази испод:",
        "uploadtext": "Користите образац испод да бисте отпремили датотеке.\nЗа преглед или претрагу постојећих датотека, погледајте [[Special:FileList|списак отпремљених датотека]], поновна отпремања су наведена у [[Special:Log/upload|дневнику отпремања]], а брисања у [[Special:Log/delete|дневнику брисања]].\n\nДатотеку додајете на жељену страницу користећи следеће обрасце:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Слика.jpg]]</nowiki></code>''' за верзију слике у пуној величини\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Слика.png|200п|мини|лево|опис]]</nowiki></code>''' за верзију слике с величином од 200 пиксела која је приказана у засебном оквиру, заједно с описом.\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Датотека.ogg]]</nowiki></code>''' за директно повезивање с датотеком без њеног приказивања",
-       "upload-permitted": "Дозвољени типови датотека: $1.",
-       "upload-preferred": "Препоручени типови датотека: $1.",
-       "upload-prohibited": "Забрањени типови датотека: $1.",
+       "upload-permitted": "Дозвољени {{PLURAL:$2|тип|типови}} датотека: $1.",
+       "upload-preferred": "Препоручени {{PLURAL:$2|тип|типови}} датотека: $1.",
+       "upload-prohibited": "Забрањени {{PLURAL:$2|тип|типови}} датотека: $1.",
        "uploadlogpage": "Дневник отпремања",
        "uploadlogpagetext": "Испод је списак скорашњих слања.\nПогледајте [[Special:NewFiles|галерију нових датотека]] за лепши преглед.",
        "filename": "Назив датотеке",
        "license": "Лиценца:",
        "license-header": "Лиценца:",
        "nolicense": "није изабрано",
+       "licenses-edit": "Уреди избор лиценци",
        "license-nopreview": "(преглед није доступан)",
        "upload_source_url": "(ваша изабрана датотека од исправних и јавно доступних адреса)",
        "upload_source_file": "(ваша одабрана датотека са вашег рачунара)",
        "unusedimages": "Некоришћене датотеке",
        "wantedcategories": "Тражене категорије",
        "wantedpages": "Тражене странице",
+       "wantedpages-summary": "Списак непостојећих страница са највише веза до њих, на овом списку се не налазе странице до којих воде преусмерења. За списак покварених преусмерења погледајте [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Неисправан наслов у низу резултата: $1",
        "wantedfiles": "Тражене датотеке",
        "wantedfiletext-cat": "Следеће датотеке се користе, али не постоје. Датотеке из других ризница могу бити наведене иако не постоје. Такве датотеке ће бити <del>поништене</del> са списка. Поред тога, странице које садрже непостојеће датотеке се налазе [[:$1|овде]].",
        "wantedtemplates": "Тражени шаблони",
        "mostlinked": "Странице с највише веза",
        "mostlinkedcategories": "Категорије с највише веза",
-       "mostlinkedtemplates": "Шаблони с највише веза",
+       "mostlinkedtemplates": "СÑ\82Ñ\80аниÑ\86е с највише веза",
        "mostcategories": "Странице с највише категорија",
        "mostimages": "Датотеке с највише веза",
        "mostinterwikis": "Странице са највише међувикија",
        "listgrouprights-namespaceprotection-namespace": "Именски простор",
        "listgrouprights-namespaceprotection-restrictedto": "Права потребна за уређивање",
        "trackingcategories-name": "Име поруке",
+       "trackingcategories-desc": "Које странице се налазе у категорији",
+       "noindex-category-desc": "Странице које у себи имају магичну реч <code><nowiki>__NOINDEX__</nowiki></code>.",
+       "index-category-desc": "Странице које у себи имају магичну реч <code><nowiki>__INDEX__</nowiki></code> и самим тим су индексиране од стране робота.",
+       "broken-file-category-desc": "Странице које имају везе до непостојећих датотека.",
+       "hidden-category-category-desc": "Категорије које у себи имају магичну реч <code><nowiki>__HIDDENCAT__</nowiki></code> и самим тим се не приказују у одељку за категорије на страницама.",
        "trackingcategories-nodesc": "Опис није доступан.",
        "trackingcategories-disabled": "Категорија је онемогућена",
        "mailnologin": "Нема адресе за слање",
        "import-rootpage-nosubpage": "Именски простор „$1“ основне странице не дозвољава подстранице.",
        "importlogpage": "Дневник увоза",
        "importlogpagetext": "Административни увози страница с историјама измена с других викија.",
-       "import-logentry-upload": "је увезао [[$1]] отпремањем датотеке",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|измена увезена|измене увезене|измена увезено}}",
-       "import-logentry-interwiki": "је увезао $1 с другог викија",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|измена увезена|измене увезене|измена увезено}} из $2",
        "javascripttest": "Јаваскрипт тест",
        "javascripttest-pagetext-noframework": "Ова страница је резервисана за извршавање јаваскрипт тестова.",
        "tooltip-pt-mycontris": "Списак ваших доприноса",
        "tooltip-pt-login": "Препоручујемо вам да се пријавите, иако то није обавезно.",
        "tooltip-pt-logout": "Одјавите се",
+       "tooltip-pt-createaccount": "Охрабрујемо вас да отворите налог и пријавите се али то није обавезно",
        "tooltip-ca-talk": "Разговор о страници са садржајем",
        "tooltip-ca-edit": "Можете да уређујете ову страницу. Користите претпреглед пре снимања",
        "tooltip-ca-addsection": "Започните нови одељак",
        "creditspage": "Аутори странице",
        "nocredits": "Не постоје подаци о аутору ове странице.",
        "spamprotectiontitle": "Филтер за заштиту од непожељних порука",
-       "spamprotectiontext": "СÑ\82Ñ\80аниÑ\86а ÐºÐ¾Ñ\98Ñ\83 Ð¶ÐµÐ»Ð¸Ñ\82е Ð´Ð° Ñ\81аÑ\87Ñ\83ваÑ\82е Ñ\98е Ð±Ð»Ð¾ÐºÐ¸Ñ\80ана Ð¾Ð´ Ñ\84илÑ\82еÑ\80а Ð¿Ñ\80оÑ\82ив Ð½ÐµÐ¿Ð¾Ð¶ÐµÑ\99ниÑ\85 Ð¿Ð¾Ñ\80Ñ\83ка.\nОво је вероватно изазвано везом до спољашњег сајта који се налази на црној листи.",
-       "spamprotectionmatch": "СледеÑ\9bи Ñ\82екÑ\81Ñ\82 Ñ\98е Ð¸Ð·Ð°Ð·Ð²ао наш филтер за нежељене поруке: $1",
+       "spamprotectiontext": "ФилÑ\82еÑ\80а Ð¿Ñ\80оÑ\82ив Ð½ÐµÐ¶ÐµÑ\99ениÑ\85 Ð¿Ð¾Ñ\80Ñ\83ка Ñ\98е Ð±Ð»Ð¾ÐºÐ¸Ñ\80ао Ñ\87Ñ\83ваÑ\9aе Ð¾Ð²Ðµ Ñ\81Ñ\82Ñ\80аниÑ\86е.\nОво је вероватно изазвано везом до спољашњег сајта који се налази на црној листи.",
+       "spamprotectionmatch": "СледеÑ\9bи Ñ\82екÑ\81Ñ\82 Ñ\98е Ð°ÐºÑ\82ивиÑ\80ао наш филтер за нежељене поруке: $1",
        "spambot_username": "Чишћење непожељних порука у Медијавикији",
        "spam_reverting": "Враћам на последњу измену која не садржи везе до $1",
        "spam_blanking": "Све измене садрже везе до $1. Чистим",
        "hours-ago": "Пре $1 {{PLURAL:$1|сат|сата|сати}}",
        "minutes-ago": "Пре $1 {{PLURAL:$1|минут|минута}}",
        "seconds-ago": "Пре $1 {{PLURAL:$1|секунда|секунди}}",
-       "monday-at": "Понедељак у $1",
-       "tuesday-at": "Уторак у $1",
-       "wednesday-at": "Среда у $1",
-       "thursday-at": "Четвртак у $1",
-       "friday-at": "Петак у $1",
-       "saturday-at": "Субота у $1",
-       "sunday-at": "Недеља у $1",
+       "monday-at": "у понедељак у $1",
+       "tuesday-at": "у уторак у $1",
+       "wednesday-at": "у среду у $1",
+       "thursday-at": "у четвртак у $1",
+       "friday-at": "у петак у $1",
+       "saturday-at": "у суботу у $1",
+       "sunday-at": "у недељу у $1",
        "yesterday-at": "Јуче у $1",
        "bad_image_list": "Формат је следећи:\n\nРазматрају се само набрајања (редови који почињу са звездицом).\nПрва веза у реду мора да буде веза до неисправне датотеке.\nСве даљње везе у истом реду сматрају се изузецима.",
        "variantname-zh-hans": "hans",
        "lag-warn-high": "Због преоптерећења базе података, измене новије од $1 {{PLURAL:$1|секунда|секунде}} неће бити приказане.",
        "watchlistedit-normal-title": "Уређивање списка надгледања",
        "watchlistedit-normal-legend": "Уклањање наслова са списка надгледања",
-       "watchlistedit-normal-explain": "Наслови на вашем списку надгледања су приказани испод.\nДа бисте уклонили наслов, означите кућицу до њега и кликните на „{{int:Watchlistedit-normal-submit}}“.\nМожете и да [[Special:EditWatchlist/raw|уредите сиров списак]].",
+       "watchlistedit-normal-explain": "Наслови на вашем списку надгледања су приказани испод.\nДа бисте уклонили наслов, означите квадратић до њега и кликните на „{{int:Watchlistedit-normal-submit}}“.\nМожете и да [[Special:EditWatchlist/raw|уредите сиров списак]].",
        "watchlistedit-normal-submit": "Уклони наслове",
        "watchlistedit-normal-done": "{{PLURAL:$1|1=Једна страница је уклоњена|$1 странице су уклоњене|$1 страница је уклоњено}} с вашег списка надгледања:",
        "watchlistedit-raw-title": "Измени сиров списак надгледања",
        "watchlistedit-raw-done": "Ваш списак надгледања је ажуриран.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1=Додат је један наслов|Додата су $1 наслова|Додато је $1 наслова}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 наслов је уклоњен|Уклоњена су $1 наслова|Уклоњено је $1 наслова}}:",
-       "watchlistedit-clear-title": "Ð\98Ñ\81пÑ\80азни Ñ\81пиÑ\81ак Ð½Ð°Ð´Ð³Ð»ÐµÐ´Ð°Ñ\9aа",
+       "watchlistedit-clear-title": "СпиÑ\81ак Ð½Ð°Ð´Ð³Ð»ÐµÐ´Ð°Ñ\9aа Ð¸Ñ\81пÑ\80ажÑ\9aен",
        "watchlistedit-clear-legend": "Испразни списак надгледања",
        "watchlistedit-clear-explain": "Сви наслови ће бити уклоњени из вашег списка надгледања.",
        "watchlistedit-clear-titles": "Наслови:",
        "version-parser-function-hooks": "Куке",
        "version-hook-name": "Назив куке",
        "version-hook-subscribedby": "Пријављено од",
-       "version-version": "(издање $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[нема имена]",
        "version-svn-revision": "(изм. $2)",
        "version-license": "Медијавики лиценца",
        "tags-tag": "Назив ознаке",
        "tags-display-header": "Изглед на списковима измена",
        "tags-description-header": "Опис значења",
+       "tags-source-header": "Извор",
        "tags-active-header": "Активна?",
        "tags-hitcount-header": "Означене измене",
+       "tags-actions-header": "Радње",
        "tags-active-yes": "Да",
        "tags-active-no": "Не",
+       "tags-source-none": "Ван употребе",
        "tags-edit": "уреди",
+       "tags-delete": "обриши",
+       "tags-activate": "активирај",
+       "tags-deactivate": "деактивирај",
        "tags-hitcount": "$1 {{PLURAL:$1|измена|измене|измена}}",
+       "tags-manage-no-permission": "Немате дозволу да мењате ознаке.",
        "tags-create-heading": "Нова ознака",
+       "tags-create-tag-name": "Назив ознаке:",
+       "tags-create-reason": "Разлог:",
+       "tags-create-submit": "Направи",
+       "tags-create-no-name": "Морате навести назив ознаке.",
        "tags-create-already-exists": "Ознака „$1“ већ постоји.",
        "tags-create-warnings-below": "Правите нову ознаку, желите ли да наставите?",
        "tags-delete-title": "Брисање ознака",
        "tags-delete-explanation-initial": "Бришете ознаку „$1“ из базе података.",
+       "tags-delete-reason": "Разлог:",
+       "tags-delete-submit": "Неповратно обриши ову ознаку",
+       "tags-delete-not-found": "Ознака „$1“ не постоји.",
        "tags-activate-title": "Активирање ознака",
        "tags-activate-question": "Активирате ознаку „$1“.",
+       "tags-activate-reason": "Разлог:",
        "tags-activate-not-allowed": "Није могуће активирати ознаку „$1“.",
        "tags-activate-not-found": "Ознака „$1“ не постоји.",
+       "tags-activate-submit": "Активирај",
        "tags-deactivate-title": "Деактивирање ознака",
+       "tags-deactivate-question": "Деактивирате ознаку „$1“.",
+       "tags-deactivate-reason": "Разлог:",
+       "tags-deactivate-not-allowed": "Није могуће деактивирати ознаку „$1“.",
+       "tags-deactivate-submit": "Декативирај",
        "comparepages": "Упоређивање страница",
        "compare-page1": "Страница 1",
        "compare-page2": "Страница 2",
        "compare-revision-not-exists": "Наведена измена не постоји.",
        "dberr-problems": "Дошло је до техничких проблема.",
        "dberr-again": "Сачекајте неколико минута и поново учитајте страницу.",
-       "dberr-info": "(не Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ñ\81е Ð¿Ð¾Ð²ÐµÐ¶ÐµÐ¼ Ñ\81а Ñ\81еÑ\80веÑ\80ом Ð±Ð°Ð·Ðµ података: $1)",
-       "dberr-info-hidden": "(не Ð¼Ð¾Ð³Ñ\83 Ð´Ð° Ñ\81е Ð¿Ð¾Ð²ÐµÐ¶ÐµÐ¼ Ñ\81а Ñ\81еÑ\80веÑ\80ом Ð±Ð°Ð·Ðµ података)",
+       "dberr-info": "(Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð¿Ñ\80иÑ\81Ñ\82Ñ\83пиÑ\82и Ð±Ð°Ð·Ð¸ података: $1)",
+       "dberr-info-hidden": "(Ð\9dе Ð¼Ð¾Ð³Ñ\83 Ð¿Ñ\80иÑ\81Ñ\82Ñ\83пиÑ\82и Ð±Ð°Ð·Ð¸ података)",
        "dberr-usegoogle": "У међувремену, покушајте да претражите помоћу Гугла.",
        "dberr-outofdate": "Имајте на уму да њихови примерци нашег садржаја могу бити застарели.",
        "dberr-cachederror": "Ово је привремено меморисан примерак стране који можда није ажуран.",
        "revdelete-uname-unhid": "корисничко име је откривено",
        "revdelete-restricted": "примењена ограничења за администраторе",
        "revdelete-unrestricted": "уклоњена ограничења за администраторе",
+       "logentry-block-block": "$1 је {{GENDER:$2|блокирао|блокирала}} {{GENDER:$4|$3}} у трајању од $5 $6",
+       "logentry-block-unblock": "$1 је {{GENDER:$2|деблокирао|деблокирала}} {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 је {{GENDER:$2|променио|променила}} подешавања за блокирање {{GENDER:$4|корисника|кориснице}} {{GENDER:$4|$3}} у трајању од $5 $6",
+       "logentry-suppress-block": "$1 је {{GENDER:$2|блокирао|блокирала}} {{GENDER:$4|$3}} у трајању од $5 $6",
+       "logentry-suppress-reblock": "$1 је {{GENDER:$2|променио|променила}} подешавања за блокирање {{GENDER:$4|корисника|кориснице}} {{GENDER:$4|$3}} у трајању од $5 $6",
+       "logentry-import-upload": "$1 је {{GENDER:$2|увезао|увезла}} $3 отпремањем датотеке",
+       "logentry-import-interwiki": "$1 је {{GENDER:$2|увезао|увезла}} $3 с другог викија",
        "logentry-merge-merge": "$1 је {{GENDER:$2|спојио|спојила}} $3 у $4 (све до измене $5)",
        "logentry-move-move": "$1 је {{GENDER:$2|преместио|преместила}} страницу $3 на $4",
        "logentry-move-move-noredirect": "$1 је {{GENDER:$2|преместио|преместила}} страницу $3 на $4 без остављања преусмерења",
        "logentry-newusers-newusers": "$1 је {{GENDER:$2|отворио|отворила}} кориснички налог",
        "logentry-newusers-create": "$1 је {{GENDER:$2|отворио|отворила}} кориснички налог",
        "logentry-newusers-create2": "$1 је {{GENDER:$2|отворио|отворила}} кориснички налог $3",
-       "logentry-newusers-byemail": "$1 Ñ\98е {{GENDER:$2|напÑ\80авио|напÑ\80авила}} кориснички налог $3 и лозинка је послата на е-пошту",
+       "logentry-newusers-byemail": "$1 Ñ\98е {{GENDER:$2|оÑ\82воÑ\80ио|оÑ\82воÑ\80ила}} кориснички налог $3 и лозинка је послата на е-пошту",
        "logentry-newusers-autocreate": "Кориснички налог $1 је аутоматски {{GENDER:$2|отворен}}",
        "logentry-rights-rights": "$1 је {{GENDER:$2|променио|променила}} чланство групе за $3 из $4 у $5",
        "logentry-rights-rights-legacy": "$1 је {{GENDER:$2|променио|променила}} чланство групе за $3",
        "logentry-upload-upload": "$1 је {{GENDER:$2|послао|послала}} $3",
        "logentry-upload-overwrite": "$1 је {{GENDER:$2|послао|послала}} нову верзију $3",
        "logentry-upload-revert": "$1 је {{GENDER:$2|послао|послала}} $3",
+       "log-name-managetags": "Дневник ознака",
+       "log-description-managetags": "Овај дневник садржи списак измена у вези [[Special:Tags|ознака]]. Дневник садржи само радње извршене од стране администратора; уноси за ознаке направљене или обрисане од стране вики софтвера се не налазе у овом дневнику.",
        "logentry-managetags-create": "$1 је {{GENDER:$2|направио|направила}} ознаку „$4“",
        "logentry-managetags-delete": "$1 је {{GENDER:$2|обрисао|обрисала}} ознаку „$4“ (уклоњена је из $5 {{PLURAL:$5|измене или дневника|измена и/или дневника}})",
        "logentry-managetags-activate": "$1 је {{GENDER:$2|активирао|активирала}} ознаку „$4“ за употребу од стране корисника и ботова",
        "logentry-managetags-deactivate": "$1 је {{GENDER:$2|деактивирао|деактивирала}} ознаку „$4“ за употребу од стране корисника и ботова",
        "rightsnone": "(нема)",
        "revdelete-summary": "опис измене",
+       "feedback-adding": "Додајем повратну информацију на страницу…",
+       "feedback-back": "Назад",
+       "feedback-bugcheck": "Одлично! Проверите да ли је грешка [$1 позната од пре].",
+       "feedback-bugnew": "Проверено. Пријави нову грешку",
        "feedback-bugornote": "Ако сте спремни да детаљно опишете технички проблем, онда [$1 пријавите грешку].\nУ супротном, послужите се једноставним обрасцем испод. Ваш коментар ће стајати на страници „[$3 $2]“, заједно с корисничким именом и прегледачем који користите.",
-       "feedback-subject": "Наслов:",
-       "feedback-message": "Порука:",
        "feedback-cancel": "Откажи",
-       "feedback-submit": "Пошаљи повратну информацију",
-       "feedback-adding": "Додајем повратну информацију на страницу…",
+       "feedback-close": "Урађено",
+       "feedback-error-title": "Грешка",
        "feedback-error1": "Грешка: непрепознат резултат од АПИ-ја",
        "feedback-error2": "Грешка: уређивање није успело",
        "feedback-error3": "Грешка: нема одговора од АПИ-ја",
+       "feedback-message": "Порука:",
+       "feedback-subject": "Наслов:",
+       "feedback-submit": "Пошаљи",
        "feedback-thanks": "Хвала! Ваша повратна информација је постављена на страницу „[$2 $1]“.",
-       "feedback-close": "Урађено",
-       "feedback-bugcheck": "Одлично! Проверите да ли је грешка [$1 позната од пре].",
-       "feedback-bugnew": "Проверено. Пријави нову грешку",
+       "feedback-thanks-title": "Хвала вам!",
        "searchsuggest-search": "Претрага",
        "searchsuggest-containing": "садржи...",
        "api-error-badaccess-groups": "Није вам дозвољено да отпремате датотеке на овај вики.",
        "pagelang-select-lang": "Изабери језик",
        "right-pagelang": "мењање језика странице",
        "action-pagelang": "промену језика странице",
+       "logentry-pagelang-pagelang": "$1 је {{GENDER:$2|променио|променила}} језик странице $3 из $4 у $5.",
        "mediastatistics": "Статистика датотека",
        "mediastatistics-summary": "Статистике о типовима послатих датотека. Овде су урачунате само најновије верзије датотека. Старе или обрисане верзије нису урачунате.",
        "mediastatistics-table-mimetype": "MIME тип",
        "mediastatistics-header-text": "Текстуалне",
        "mediastatistics-header-executable": "Извршне",
        "mediastatistics-header-archive": "Компресоване",
-       "json-error-syntax": "Грешка у синтакси"
+       "json-error-syntax": "Грешка у синтакси",
+       "headline-anchor-title": "Веза до овог одељка"
 }
index d0342f1..5195467 100644 (file)
        "editold": "uredi",
        "viewsourceold": "izvorni kod",
        "editlink": "uredi",
-       "viewsourcelink": "Izvor",
-       "editsectionhint": "Uredite odeljak „$1“",
+       "viewsourcelink": "izvorni kod",
+       "editsectionhint": "Uredi odeljak „$1“",
        "toc": "Sadržaj",
        "showtoc": "prikaži",
        "hidetoc": "sakrij",
        "invalidtitle-knownnamespace": "Neispravan naslov s imenskim prostorom „$2“ i tekstom „$3“",
        "invalidtitle-unknownnamespace": "Neispravan naslov s imenskim prostorom br. $1 i tekstom „$2“",
        "exception-nologin": "Niste prijavljeni",
-       "exception-nologin-text": "[[Special:Userlogin|Prijavite se]] da biste pristupili ovoj stranici ili radnji.",
+       "exception-nologin-text": "Prijavite se da biste pristupili ovoj stranici ili radnji.",
        "exception-nologin-text-manual": "Morate biti $1 da biste pristupili ovoj stranici ili radnji.",
        "virus-badscanner": "Neispravna postavka: nepoznati skener za viruse: ''$1''",
        "virus-scanfailed": "neuspešno skeniranje (kod $1)",
        "templatesused": "{{PLURAL:$1|Šablon|Šabloni}} na ovoj stranici:",
        "templatesusedpreview": "{{PLURAL:$1|Šablon|Šabloni}} u ovom pregledu:",
        "templatesusedsection": "{{PLURAL:$1|Šablon|Šabloni}} u ovom odeljku:",
-       "template-protected": "(zaštićen)",
-       "template-semiprotected": "(poluzaštićen)",
+       "template-protected": "(zaštićeno)",
+       "template-semiprotected": "(poluzaštićeno)",
        "hiddencategories": "Ova stranica je član {{PLURAL:$1|jedne skrivene kategorije|$1 skrivene kategorije|$1 skrivenih kategorija}}:",
        "edittools": "<!-- Ovaj tekst će biti prikazan ispod obrasca za uređivanje i otpremanje. -->",
        "edittools-upload": "-",
        "content-failed-to-parse": "Ne mogu da raščlanim sadržaj tipa $2 za model $1: $3",
        "invalid-content-data": "Neispravni podaci sadržaja",
        "content-not-allowed-here": "Sadržaj modela „$1“ nije dozvoljen na stranici [[$2]]",
-       "editwarning-warning": "Ako napustite ovu stranicu, izgubićete sve izmene koje ste napravili.\nAko ste prijavljeni, možete onemogućiti ovo upozorenje u svojim podešavanjima, u odeljku „{{int:prefs-editing}}“.",
+       "editwarning-warning": "Ako napustite ovu stranicu, izgubićete sve izmene koje ste napravili. Ako ste prijavljeni, možete onemogućiti ovo upozorenje u svojim podešavanjima, u odeljku „{{int:prefs-editing}}“.",
        "editpage-notsupportedcontentformat-title": "Format sadržaja nije podržan",
        "content-model-wikitext": "vikitekst",
        "content-model-text": "čist tekst",
        "history-feed-item-nocomment": "$1 u $2",
        "history-feed-empty": "Tražena stranica ne postoji.\nMoguće da je obrisana s vikija ili je preimenovana.\nPokušajte da [[Special:Search|pretražite viki]] za slične stranice.",
        "rev-deleted-comment": "(opis izmene uklonjen)",
-       "rev-deleted-user": "(korisničko ime je uklonjeno)",
-       "rev-deleted-event": "(istorija je uklonjena)",
+       "rev-deleted-user": "(korisničko ime uklonjeno)",
+       "rev-deleted-event": "(detalji dnevnika uklonjeni)",
        "rev-deleted-user-contribs": "[korisničko ime ili IP adresa je uklonjena – izmena je sakrivena sa spiska doprinosa]",
        "rev-deleted-text-permission": "Izmena ove stranice je '''obrisana'''.\nDetalje možete videti u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} istoriji brisanja].",
        "rev-deleted-text-unhide": "Izmena ove stranice je '''obrisana'''.\nDetalje možete videti u [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} istoriji brisanja].\nIpak možete da [$1 vidite ovu izmenu] ako želite da nastavite.",
        "revdelete-text-file": "Izbrisane verzije datoteke će i dalje biti vidljive u istoriji datoteke, ali delovi njihovog sadržaja neće biti javno dostupnu.",
        "logdelete-text": "Izbrisani unosi u dnevnicima će i dalje biti vidljivi u dnevnicima, ali delovi njihovog sadržaja neće biti javno dostupnu.",
        "revdelete-confirm": "Potvrdite da nameravate ovo uraditi, da razumete posledice i da to činite u skladu s [[{{MediaWiki:Policy-url}}|pravilima]].",
-       "revdelete-suppress-text": "Sakrivanje izmena bi trebalo koristiti '''samo''' u sledećim slučajevima:\n* Zlonamerni ili pogrdni podaci\n* Neprikladni lični podaci\n*: ''kućna adresa i broj telefona, broj bankovne kartice itd.''",
+       "revdelete-suppress-text": "Sakrivanje izmena bi trebalo koristiti <strong>samo</strong> u sledećim slučajevima:\n* zlonamerni ili pogrdni podaci\n* neprikladni lični podaci\n*: <em>kućna adresa i broj telefona, broj kreditne kartice, JMBG itd.</em>",
        "revdelete-legend": "Ograničenja vidljivosti",
        "revdelete-hide-text": "Sakrij tekst izmene",
        "revdelete-hide-image": "Sakrij sadržaj datoteke",
        "preferences": "Podešavanja",
        "mypreferences": "Podešavanja",
        "prefs-edits": "Broj izmena:",
-       "prefsnologintext2": "Morate biti $1 da biste menjali svoja podešavanja.",
+       "prefsnologintext2": "Morate biti prijavljeni da biste menjali svoja podešavanja.",
        "prefs-skin": "Tema",
        "skin-preview": "Pregledaj",
        "datedefault": "Svejedno",
        "uploaderror": "Greška pri otpremanju",
        "upload-recreate-warning": "'''Upozorenje: datoteka s tim nazivom je obrisana ili premeštena.'''\n\nIstorija brisanja i premeštanja se nalazi ispod:",
        "uploadtext": "Koristite obrazac ispod da biste otpremili datoteke.\nZa pregled ili pretragu postojećih datoteka, pogledajte [[Special:FileList|spisak otpremljenih datoteka]], ponovna otpremanja su navedena u [[Special:Log/upload|dnevniku otpremanja]], a brisanja u [[Special:Log/delete|dnevniku brisanja]].\n\nDatoteku dodajete na željenu stranicu koristeći sledeće obrasce:\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Slika.jpg]]</nowiki></code>''' za verziju slike u punoj veličini\n* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:Slika.png|200p|mini|levo|opis]]</nowiki></code>''' za verziju slike s veličinom od 200 piksela koja je prikazana u zasebnom okviru, zajedno s opisom.\n* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:Datoteka.ogg]]</nowiki></code>''' za direktno povezivanje s datotekom bez njenog prikazivanja",
-       "upload-permitted": "Dozvoljeni tipovi datoteka: $1.",
-       "upload-preferred": "Preporučeni tipovi datoteka: $1.",
-       "upload-prohibited": "Zabranjeni tipovi datoteka: $1.",
+       "upload-permitted": "Dozvoljeni {{PLURAL:$2|tip|tipovi}} datoteka: $1.",
+       "upload-preferred": "Preporučeni {{PLURAL:$2|tip|tipovi}} datoteka: $1.",
+       "upload-prohibited": "Zabranjeni {{PLURAL:$2|tip|tipovi}} datoteka: $1.",
        "uploadlogpage": "Dnevnik otpremanja",
        "uploadlogpagetext": "Ispod je spisak skorašnjih slanja.\nPogledajte [[Special:NewFiles|galeriju novih datoteka]] za lepši pregled.",
        "filename": "Naziv datoteke",
        "wantedtemplates": "Traženi šabloni",
        "mostlinked": "Stranice s najviše veza",
        "mostlinkedcategories": "Kategorije s najviše veza",
-       "mostlinkedtemplates": "Šabloni s najviše veza",
+       "mostlinkedtemplates": "Stranice s najviše veza",
        "mostcategories": "Stranice s najviše kategorija",
        "mostimages": "Datoteke s najviše veza",
        "mostinterwikis": "Stranice sa najviše međuvikija",
        "import-rootpage-nosubpage": "Imenski prostor „$1“ osnovne stranice ne dozvoljava podstranice.",
        "importlogpage": "Dnevnik uvoza",
        "importlogpagetext": "Administrativni uvozi stranica s istorijama izmena s drugih vikija.",
-       "import-logentry-upload": "je uvezao [[$1]] otpremanjem datoteke",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|izmena uvezena|izmene uvezene|izmena uvezeno}}",
-       "import-logentry-interwiki": "je uvezao $1 s drugog vikija",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|izmena uvezena|izmene uvezene|izmena uvezeno}} iz $2",
        "javascripttest": "Javaskript test",
        "javascripttest-pagetext-noframework": "Ova stranica je rezervisana za izvršavanje javaskript testova.",
        "tooltip-pt-mycontris": "Spisak vaših doprinosa",
        "tooltip-pt-login": "Preporučujemo vam da se prijavite, iako to nije obavezno.",
        "tooltip-pt-logout": "Odjavite se",
+       "tooltip-pt-createaccount": "Ohrabrujemo vas da otvorite nalog i prijavite se ali to nije obavezno",
        "tooltip-ca-talk": "Razgovor o stranici sa sadržajem",
        "tooltip-ca-edit": "Možete da uređujete ovu stranicu. Koristite pretpregled pre snimanja",
        "tooltip-ca-addsection": "Započnite novi odeljak",
        "creditspage": "Autori stranice",
        "nocredits": "Ne postoje podaci o autoru ove stranice.",
        "spamprotectiontitle": "Filter za zaštitu od nepoželjnih poruka",
-       "spamprotectiontext": "Stranica koju želite da sačuvate je blokirana od filtera protiv nepoželjnih poruka.\nOvo je verovatno izazvano vezom do spoljašnjeg sajta koji se nalazi na crnoj listi.",
-       "spamprotectionmatch": "Sledeći tekst je izazvao naš filter za neželjene poruke: $1",
+       "spamprotectiontext": "Filtera protiv neželjenih poruka je blokirao čuvanje ove stranice.\nOvo je verovatno izazvano vezom do spoljašnjeg sajta koji se nalazi na crnoj listi.",
+       "spamprotectionmatch": "Sledeći tekst je aktivirao naš filter za neželjene poruke: $1",
        "spambot_username": "Čišćenje nepoželjnih poruka u Medijavikiji",
        "spam_reverting": "Vraćam na poslednju izmenu koja ne sadrži veze do $1",
        "spam_blanking": "Sve izmene sadrže veze do $1. Čistim",
        "hours-ago": "Pre $1 {{PLURAL:$1|sat|sata|sati}}",
        "minutes-ago": "Pre $1 {{PLURAL:$1|minut|minuta}}",
        "seconds-ago": "Pre $1 {{PLURAL:$1|sekunda|sekundi}}",
-       "monday-at": "Ponedeljak u $1",
-       "tuesday-at": "Utorak u $1",
-       "wednesday-at": "Sreda u $1",
-       "thursday-at": "Četvrtak u $1",
-       "friday-at": "Petak u $1",
-       "saturday-at": "Subota u $1",
-       "sunday-at": "Nedelja u $1",
+       "monday-at": "u ponedeljak u $1",
+       "tuesday-at": "u utorak u $1",
+       "wednesday-at": "u sredu u $1",
+       "thursday-at": "u četvrtak u $1",
+       "friday-at": "u petak u $1",
+       "saturday-at": "u subotu u $1",
+       "sunday-at": "u nedelju u $1",
        "yesterday-at": "Juče u $1",
        "bad_image_list": "Format je sledeći:\n\nRazmatraju se samo nabrajanja (redovi koji počinju sa zvezdicom).\nPrva veza u redu mora da bude veza do neispravne datoteke.\nSve daljnje veze u istom redu smatraju se izuzecima.",
        "variantname-zh-hans": "hans",
        "lag-warn-high": "Zbog preopterećenja baze podataka, izmene novije od $1 {{PLURAL:$1|sekunde|sekundi}} neće biti prikazane.",
        "watchlistedit-normal-title": "Uređivanje spiska nadgledanja",
        "watchlistedit-normal-legend": "Uklanjanje naslova sa spiska nadgledanja",
-       "watchlistedit-normal-explain": "Naslovi na vašem spisku nadgledanja su prikazani ispod.\nDa biste uklonili naslov, označite kućicu do njega i kliknite na „{{int:Watchlistedit-normal-submit}}“.\nMožete i da [[Special:EditWatchlist/raw|uredite sirov spisak]].",
+       "watchlistedit-normal-explain": "Naslovi na vašem spisku nadgledanja su prikazani ispod.\nDa biste uklonili naslov, označite kvadratić do njega i kliknite na „{{int:Watchlistedit-normal-submit}}“.\nMožete i da [[Special:EditWatchlist/raw|uredite sirov spisak]].",
        "watchlistedit-normal-submit": "Ukloni naslove",
        "watchlistedit-normal-done": "{{PLURAL:$1|1=Jedna stranica je uklonjena|$1 stranice su uklonjene|$1 stranica je uklonjeno}} s vašeg spiska nadgledanja:",
        "watchlistedit-raw-title": "Izmeni sirov spisak nadgledanja",
        "watchlistedit-raw-done": "Vaš spisak nadgledanja je ažuriran.",
        "watchlistedit-raw-added": "{{PLURAL:$1|1=Dodat je jedan naslov|Dodata su $1 naslova|Dodato je $1 naslova}}:",
        "watchlistedit-raw-removed": "{{PLURAL:$1|1 naslov je uklonjen|Uklonjena su $1 naslova|Uklonjeno je $1 naslova}}:",
-       "watchlistedit-clear-title": "Isprazni spisak nadgledanja",
+       "watchlistedit-clear-title": "Spisak nadgledanja ispražnjen",
        "watchlistedit-clear-legend": "Isprazni spisak nadgledanja",
        "watchlistedit-clear-explain": "Svi naslovi će biti uklonjeni iz vašeg spiska nadgledanja.",
        "watchlistedit-clear-titles": "Naslovi:",
        "version-parser-function-hooks": "Kuke",
        "version-hook-name": "Naziv kuke",
        "version-hook-subscribedby": "Prijavljeno od",
-       "version-version": "(izdanje $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[nema imena]",
        "version-svn-revision": "(izm. $2)",
        "version-license": "Medijaviki licenca",
        "compare-revision-not-exists": "Navedena izmena ne postoji.",
        "dberr-problems": "Došlo je do tehničkih problema.",
        "dberr-again": "Sačekajte nekoliko minuta i ponovo učitajte stranicu.",
-       "dberr-info": "(ne mogu da se povežem sa serverom baze podataka: $1)",
-       "dberr-info-hidden": "(ne mogu da se povežem sa serverom baze podataka)",
+       "dberr-info": "(Ne mogu pristupiti bazi podataka: $1)",
+       "dberr-info-hidden": "(Ne mogu pristupiti bazi podataka)",
        "dberr-usegoogle": "U međuvremenu, pokušajte da pretražite pomoću Gugla.",
        "dberr-outofdate": "Imajte na umu da njihovi primerci našeg sadržaja mogu biti zastareli.",
        "dberr-cachederror": "Ovo je privremeno memorisan primerak strane koji možda nije ažuran.",
        "logentry-newusers-newusers": "$1 je {{GENDER:$2|otvorio|otvorila}} korisnički nalog",
        "logentry-newusers-create": "$1 je {{GENDER:$2|otvorio|otvorila}} korisnički nalog",
        "logentry-newusers-create2": "$1 je {{GENDER:$2|otvorio|otvorila}} korisnički nalog $3",
-       "logentry-newusers-byemail": "$1 je {{GENDER:$2|napravio|napravila}} korisnički nalog $3 i lozinka je poslata na e-poštu",
+       "logentry-newusers-byemail": "$1 je {{GENDER:$2|otvorio|otvorila}} korisnički nalog $3 i lozinka je poslata na e-poštu",
        "logentry-newusers-autocreate": "Korisnički nalog $1 je automatski {{GENDER:$2|otvoren}}",
        "logentry-rights-rights": "$1 je {{GENDER:$2|promenio|promenila}} članstvo grupe za $3 iz $4 u $5",
        "logentry-rights-rights-legacy": "$1 je {{GENDER:$2|promenio|promenila}} čalnstvo grupe za $3",
        "logentry-upload-revert": "$1 je {{GENDER:$2|poslao|poslala}} $3",
        "rightsnone": "(nema)",
        "revdelete-summary": "opis izmene",
+       "feedback-adding": "Dodajem povratnu informaciju na stranicu…",
+       "feedback-bugcheck": "Odlično! Proverite da li je greška [$1 poznata od pre].",
+       "feedback-bugnew": "Provereno. Prijavi novu grešku",
        "feedback-bugornote": "Ako ste spremni da detaljno opišete tehnički problem, onda [$1 prijavite grešku].\nU suprotnom, poslužite se jednostavnim obrascem ispod. Vaš komentar će stajati na stranici „[$3 $2]“, zajedno s korisničkim imenom i pregledačem koji koristite.",
-       "feedback-subject": "Naslov:",
-       "feedback-message": "Poruka:",
        "feedback-cancel": "Otkaži",
-       "feedback-submit": "Pošalji povratnu informaciju",
-       "feedback-adding": "Dodajem povratnu informaciju na stranicu…",
+       "feedback-close": "Urađeno",
        "feedback-error1": "Greška: neprepoznat rezultat od API-ja",
        "feedback-error2": "Greška: uređivanje nije uspelo",
        "feedback-error3": "Greška: nema odgovora od API-ja",
+       "feedback-message": "Poruka:",
+       "feedback-subject": "Naslov:",
+       "feedback-submit": "Pošalji",
        "feedback-thanks": "Hvala! Vaša povratna informacija je postavljena na stranicu „[$2 $1]“.",
-       "feedback-close": "Urađeno",
-       "feedback-bugcheck": "Odlično! Proverite da li je greška [$1 poznata od pre].",
-       "feedback-bugnew": "Provereno. Prijavi novu grešku",
        "searchsuggest-search": "Pretraga",
        "searchsuggest-containing": "sadrži...",
        "api-error-badaccess-groups": "Nije vam dozvoljeno da otpremate datoteke na ovaj viki.",
index 5563bfd..2e483ca 100644 (file)
        "delete-toobig": "Disse Siede häd mäd moor as $1 {{PLURAL:$1|Version|Versionen}} ne gjucht loange Versionsgeskichte. Dät Läskjen fon sukke Sieden wuud ienskränkt, uum ne toufällige Uurlastenge fon {{SITENAME}} tou ferhinnerjen.",
        "delete-warning-toobig": "Disse Siede häd mäd moor as $1 {{PLURAL:$1|Version|Versione}} ne gjucht loange Versionsgeskichte. Dät Läskjen kon tou Stöörengen in {{SITENAME}} fiere.",
        "rollback": "Touräächsätten fon do Annerengen",
-       "rollback_short": "Touräächsätte",
        "rollbacklink": "touräächsätte",
        "rollbackfailed": "Touräächsätten misglukked",
        "cantrollback": "Disse Annerenge kon nit touräächstoald wäide; deer et naan fröieren Autor rakt.",
        "watchlisttools-view": "Beooboachtengslieste: Annerengen",
        "watchlisttools-edit": "normoal beoarbaidje",
        "watchlisttools-raw": "Liestenformoat beoarbaidje (Import/Export)",
-       "unknown_extension_tag": "Uunbekoanden Extension-Tag „$1“",
        "duplicate-defaultsort": "Paas ap: Die Sortierengskoai „$2“ uurskrift dän toufoarne ferwoanden Koai „$1“.",
        "version": "Version",
        "version-extensions": "Installierde Ärwiederengen",
        "version-parser-function-hooks": "Parser-Funktione",
        "version-hook-name": "Snitsteedennoome",
        "version-hook-subscribedby": "Aproup fon",
-       "version-version": "(Version $1)",
+       "version-version": "($1)",
        "version-license": "Lizenz",
        "version-poweredby-credits": "Disse Website nutset '''[https://www.mediawiki.org/wiki/MediaWiki/de MediaWiki]''', Copyright © 2001–$1 $2.",
        "version-poweredby-others": "uur",
        "specialpages-group-wiki": "Systemdoaten un Reewen",
        "specialpages-group-redirects": "Fäärelaitjende Spezioalsieden",
        "specialpages-group-spam": "Spam-Reewen",
+       "specialpages-group-developer": "Äntwiklerreewen",
        "blankpage": "Loose Siede",
        "intentionallyblankpage": "Disse Siede is apsichtelk sunner Inhoold. Ju wäd foar Benchmarks ferwoand.",
        "external_image_whitelist": "#Disse Riege nit ferannerje<pre>\n#Unnerstoundend konnen Fragmente fon reguläre Uutdrukke (die Deel twiske do //) ienroat wäide.\n#Disse wäide mäd do URLs fon Bielden uut externe Wällen ferglieked\n#N positiven Fergliek fiert tou Anwiesenge fon ju Bielde, uurs wäd ju Bielde bloot as Link anwiesd\n#Riegen, do der mäd n # ounfange, wäide as Kommentoar behonneld\n#Der wäd nit twiske Groot- un Littikskrieuwenge unnerskat\n\n#Fragmente fon reguläre Uutdrukke ätter disse Riege iendreege. Disse Riege nit ferannerje</pre>",
index 6253392..01819be 100644 (file)
        "svg-long-desc": "Koropak SVG, nominalna $1 × $2 piksel, ukuranana $3",
        "show-big-image": "Berkas asli",
        "show-big-image-preview": "Ukuran ieu pramidang: $1.",
-       "show-big-image-other": "Résolusi lianna: $1.",
+       "show-big-image-other": "{{PLURAL:$2|Resolusi}} lianna: $1.",
        "show-big-image-size": "$1 × $2 pixel",
        "newimages": "Galeri gambar anyar",
        "imagelisttext": "Di handap ieu daptar '''$1''' {{PLURAL:$1|gambar|gambar}} nu disusun $2.",
        "version-parser-extensiontags": "Tag éksténsi parser",
        "version-hook-name": "Ngaran kait",
        "version-hook-subscribedby": "Didaptarkeun ku",
-       "version-version": "(Vérsi $1)",
+       "version-version": "($1)",
        "version-license": "Lisénsi MediaWiki",
        "version-poweredby-translators": "darmamurcaya translatewiki.net",
        "version-software": "Sopwér nu geus diinstal",
        "revdelete-unrestricted": "Watesan akses kuncén dihapuskeun",
        "rightsnone": "(euweuh)",
        "revdelete-summary": "ringkesan ngédit",
-       "feedback-subject": "Ngeunaan:",
-       "feedback-message": "Surat:",
        "feedback-cancel": "Bolay",
+       "feedback-message": "Surat:",
+       "feedback-subject": "Ngeunaan:",
        "searchsuggest-search": "Sungsi",
        "searchsuggest-containing": "ngandung...",
        "api-error-file-too-large": "Berkas nu dikirim gedé teuing.",
index eace403..21d3dbd 100644 (file)
@@ -63,7 +63,9 @@
                        "Albinomamba",
                        "Stens51",
                        "Boom",
-                       "Marfuas"
+                       "Marfuas",
+                       "Macofe",
+                       "Aaoo"
                ]
        },
        "tog-underline": "Stryk under länkar:",
        "disclaimers": "Förbehåll",
        "disclaimerpage": "Project:Allmänt förbehåll",
        "edithelp": "Redigeringshjälp",
+       "helppage-top-gethelp": "Hjälp",
        "mainpage": "Huvudsida",
        "mainpage-description": "Huvudsida",
        "policy-url": "Project:Riktlinjer",
        "diff-multi-sameuser": "({{PLURAL:$1|En mellanliggande version|$1 mellanliggande versioner}} av samma användare visas inte)",
        "diff-multi-otherusers": "({{PLURAL:$1|En mellanliggande version|$1 mellanliggande versioner}} av {{PLURAL:$2|en annan användare|$2 användare}} visas inte)",
        "diff-multi-manyusers": "({{PLURAL:$1|En mellanliggande version|$1 mellanliggande versioner}} av mer än $2 användare visas inte)",
-       "difference-missing-revision": "{{PLURAL:$2|En version|$2 versioner}} av denna skillnad ($1) kunde inte hittas.\n\nDetta orsakas vanligtvis av att följa en utgången difflänk till en sida som har raderats.\nDetaljer kan hittas i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} raderingsloggen].",
+       "difference-missing-revision": "Det gick inte att hitta {{PLURAL:$2|en version|$2 versioner}} av den här differensen ($1).\n\nDetta beror oftast på att du har försökt följa en utgången difflänk till en sida som har raderats.\nMer detaljerad information finns i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} raderingsloggen].",
        "searchresults": "Sökresultat",
        "searchresults-title": "Sökresultat för \"$1\"",
        "titlematches": "Träffar i sidtitlar",
        "importcantopen": "Misslyckades med att öppna importfilen.",
        "importbadinterwiki": "Felaktig interwiki-länk",
        "importsuccess": "Importen är genomförd!",
-       "importnosources": "Inga källor för transwiki-import har angivits, och direkt uppladdning av historik har stängts av.",
+       "importnosources": "Inga källor från vilka import ska göras har angivits och direkt uppladdning av historik har stängts av.",
        "importnofile": "Ingen fil att importera har laddats upp.",
        "importuploaderrorsize": "Uppladdningen av importfilen misslyckades. Filen är större än vad som är tillåtet att ladda upp.",
        "importuploaderrorpartial": "Uppladdningen av importfilen misslyckades. Bara en del av filen laddades upp.",
        "import-rootpage-nosubpage": "Namnrymden \"$1\" till grundsidan tillåter inte undersidor.",
        "importlogpage": "Importlogg",
        "importlogpagetext": "Administrativa sidimporter med versionshistorik från andra wikier.",
-       "import-logentry-upload": "importerade [[$1]] genom filuppladdning",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|version|versioner}} importerades",
-       "import-logentry-interwiki": "överförde $1 mellan wikier",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|version|versioner}} importerades från $2",
        "javascripttest": "JavaScript-testning",
        "javascripttest-pagetext-noframework": "Denna sida är reserverat för att köra JavaScript-tester.",
        "version-parser-function-hooks": "Parserfunktioner",
        "version-hook-name": "Namn på hook",
        "version-hook-subscribedby": "Används av",
-       "version-version": "(Version $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[inget namn]",
        "version-license": "MediaWiki-licens",
        "version-ext-license": "Licens",
        "logentry-block-reblock": "$1 {{GENDER:$2|ändrade}} blockeringsinställningar för {{GENDER:$4|$3}} med en varaktighet på $5 $6",
        "logentry-suppress-block": "$1 {{GENDER:$2|blockerade}} {{GENDER:$4|$3}} med en varaktighet på $5 $6",
        "logentry-suppress-reblock": "$1 {{GENDER:$2|ändrade}} blockeringsinställningar för {{GENDER:$4|$3}} med en varaktighet på $5 $6",
+       "logentry-import-upload": "$1 {{GENDER:$2|importerade}} $3 genom filuppladdning",
+       "logentry-import-interwiki": "$1 {{GENDER:$2|importerade}} $3 från en annan wiki",
        "logentry-merge-merge": "$1 {{GENDER:$2|slog ihop}} $3 i $4 (versioner t.o.m. $5)",
        "logentry-move-move": "$1 {{GENDER:$2|flyttade}} sidan $3 till $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|flyttade}} sidan $3 till $4 utan att lämna en omdirigering",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|inaktiverade}} taggen \"$4\" för användning av användare och botar.",
        "rightsnone": "(inga)",
        "revdelete-summary": "sammanfattning",
+       "feedback-adding": "Ge feedback till sida...",
+       "feedback-back": "Tillbaka",
+       "feedback-bugcheck": "Jättebra! Bara kontrollera att det inte är en av de [$1 kända buggarna].",
+       "feedback-bugnew": "Jag kontrollerade. Rapportera ett nytt fel",
        "feedback-bugornote": "Om du har möjlighet att ge en detaljerad teknisk beskrivning av felet kan du lämna en [$1 buggrapport]. \nAnvänd annars formuläret nedan. Din kommentar kommer att läggas till på sidan \"[$3 $2]\", tillsammans med ditt användarnamn.",
-       "feedback-subject": "Ämne:",
-       "feedback-message": "Meddelande:",
        "feedback-cancel": "Avbryt",
-       "feedback-submit": "Skicka in feedback",
-       "feedback-adding": "Ge feedback till sida...",
+       "feedback-close": "Färdig",
+       "feedback-external-bug-report-button": "Registrera en teknisk uppgift",
+       "feedback-dialog-title": "Skicka återkoppling",
+       "feedback-dialog-intro": "Du kan använda det enkla formuläret nedan för att skicka in din återkoppling. Din kommentar kommer att läggas till på sidan \"$1\" tillsammans med ditt användarnamn.",
+       "feedback-error-title": "Fel",
        "feedback-error1": "Fel: Okänt resultat från API",
        "feedback-error2": "Fel: Redigeringen misslyckades",
        "feedback-error3": "Fel: Inget svar från API",
+       "feedback-message": "Meddelande:",
+       "feedback-subject": "Ämne:",
+       "feedback-submit": "Skicka",
+       "feedback-terms": "Jag förstår att min användaragentsinformation innehåller information om min webbläsare och operativsystemets version samt kommer att delas offentligt tillsammans med min återkoppling.",
+       "feedback-termsofuse": "Jag samtycker med att ge återkoppling enligt användarvillkoren.",
        "feedback-thanks": "Tack! Din feedback har skickats till sidan \"[$2 $1]\".",
-       "feedback-close": "Färdig",
-       "feedback-bugcheck": "Jättebra! Bara kontrollera att det inte är en av de [$1 kända buggarna].",
-       "feedback-bugnew": "Jag kontrollerade. Rapportera ett nytt fel",
+       "feedback-thanks-title": "Tack!",
+       "feedback-useragent": "Användaragent:",
        "searchsuggest-search": "Sök",
        "searchsuggest-containing": "innehåller...",
        "api-error-badaccess-groups": "Du får inte ladda upp filer till denna wiki.",
index be5d21c..878be69 100644 (file)
@@ -14,7 +14,8 @@
                        "לערי ריינהארט",
                        "아라",
                        "Baba Tabita",
-                       "Rich Farmbrough"
+                       "Rich Farmbrough",
+                       "Kipala"
                ]
        },
        "tog-underline": "Wekea mstari viungo:",
        "delete-toobig": "Ukurasa huu una historia ya kuhariri ndefu sana, yenye {{PLURAL:$1|badiliko|mabadiliko}} zaidi na $1.\nUfutaji wa kurasa hizi moja kwa moja umezuluiwa ili {{SITENAME}} isivurugwe kwa bahati mbaya.",
        "delete-warning-toobig": "Ukurasa huu unao mapitio mengi, zaida ya {{PLURAL:$1|pitio|mapitio}} $1.\nUkiufuta labda itavuruga uendeshaji wa hifadhidata ya {{SITENAME}};\nendelea kwa uangalifu.",
        "rollback": "Rejesha masahihisho",
-       "rollback_short": "Rejesha",
        "rollbacklink": "rejesha",
        "rollbackfailed": "Haikufaulu kurejesha",
        "cantrollback": "Haiwezekana kujesha sahihisho;\nukurasa huu una mhariri mmoja tu.",
        "version-specialpages": "Kurasa maalum",
        "version-variables": "Vibadili",
        "version-other": "Zingine",
-       "version-version": "(Toleo $1)",
+       "version-version": "($1)",
        "version-license": "Ruhusa",
        "version-ext-colheader-description": "Ufafanuzi",
        "version-poweredby-credits": "Wiki hii inaendeshwa na bidhaa pepe ya '''[https://www.mediawiki.org/ MediaWiki]''', hakimiliki © 2001-$1 $2.",
        "logentry-newusers-autocreate": "Akaunti ya mtumiaji $1 ilianzishwa na mashine",
        "rightsnone": "(hana)",
        "revdelete-summary": "muhtasari wa kuhariri",
-       "feedback-subject": "Mada:",
-       "feedback-message": "Ujumbe:",
-       "feedback-cancel": "Batilisha",
-       "feedback-submit": "Tuma maoni yako",
        "feedback-adding": "Maoni yako yanaongezwa katika ukurasa...",
+       "feedback-back": "Rudi",
+       "feedback-cancel": "Batilisha",
+       "feedback-close": "Tayari",
+       "feedback-error-title": "Kosa",
        "feedback-error1": "Hitilafu: Matokeo ya API hayafahamiki",
        "feedback-error2": "Hitilafu: Hiririo halikufaulu",
        "feedback-error3": "Hitilafu: API ya wiki haiitiki",
+       "feedback-message": "Ujumbe:",
+       "feedback-subject": "Mada:",
+       "feedback-submit": "Wasilisha",
        "feedback-thanks": "Ahsante! Maoni yako yamewekwa kwenye ukurasa wa \"[$2 $1]\".",
-       "feedback-close": "Tayari",
+       "feedback-thanks-title": "Asante!",
        "searchsuggest-search": "Kutafuta",
        "searchsuggest-containing": "ya maneno...",
        "api-error-empty-file": "Faili ulilowasilisha ni tupu.",
index 30cd690..16a5a19 100644 (file)
        "version-parser-function-hooks": "Fůnkcyje hokůw analizatora skuadńi (ang. parser function hooks)",
        "version-hook-name": "Mjano haka (ang. hook name)",
        "version-hook-subscribedby": "Zapotřebowany bez",
-       "version-version": "(Wersjo $1)",
+       "version-version": "($1)",
        "version-license": "Licencjo",
        "version-software": "Zainstalowane uoprůgramowańy",
        "version-software-product": "Mjano",
index 68d08aa..2e85a81 100644 (file)
@@ -35,7 +35,8 @@
                        "Thamiziniyan",
                        "아라",
                        "Kalyanasundar",
-                       "தமிழ்த்தம்பி"
+                       "தமிழ்த்தம்பி",
+                       "Macofe"
                ]
        },
        "tog-underline": "இணைப்புகளுக்கு அடிக்கோடிடு",
        "delete-toobig": "இப்பக்கம் அதிகமான திருத்தங்களை கொண்டுள்ளது, குறிப்பாக $1 {{PLURAL:$1|திருத்தத்திற்கு|திருத்தங்களிற்கு}} மேல்.\n{{SITENAME}} தளத்தின் தரவுகள் தற்செயலாக அழிந்துப்போவதை தடுப்பதற்க்காக இவ்வாறான பக்கங்கள் நீக்கப்படுவது முடக்கப்பட்டுள்ளது.",
        "delete-warning-toobig": "இப்பக்கம் அதிகமான திருத்தங்களை கொண்டுள்ளது, குறிப்பாக $1 {{PLURAL:$1|திருத்தத்திற்கு|திருத்தங்களிற்கு}} மேல்.\nஇப்பக்கத்தை நீக்குவது {{SITENAME}} தளத்தின் தரவுவழங்கனின் செயற்பாட்டை பாதிக்கலாம்;\nகவனத்துடன் முன்னெடுக்கவும்.",
        "rollback": "முன்நிலையாக்கத் தொகுப்புகள்",
-       "rollback_short": "முன்நிலையாக்கு",
        "rollbacklink": "முன்நிலையாக்கு",
        "rollbacklinkcount": "$1 {{PLURAL:$1|தொகுப்பை|தொகுப்புகளை}} முன்நிலையாக்குக",
        "rollbacklinkcount-morethan": "$1-க்கும் மேற்பட்ட {{PLURAL:$1|தொகுப்பை|தொகுப்புகளை}} முன்நிலையாக்குக",
        "import-rootpage-invalid": "கொடுக்கப்பட்ட மூலப்பக்கம் செல்லாத தலைப்பாகும்.",
        "importlogpage": "இறக்குமதி பதிகை",
        "importlogpagetext": "வேறு விக்கிகளிலில் தொகுப்பு வரலாற்றைக் கொண்டப் பக்கங்களின் மேலாண்மை இறக்குமதிகள்.",
-       "import-logentry-upload": "கோப்பு பதிவேற்றத்தின் மூலம் [[$1]] இறக்கப்பட்டது",
        "import-logentry-upload-detail": "{{PLURAL:$1|ஒரு திருத்தம்|$1 திருத்தங்கள்}}",
-       "import-logentry-interwiki": "transwikied$1",
        "import-logentry-interwiki-detail": "$2 இலிருந்து {{PLURAL:$1|ஒரு திருத்தம்|$1 திருத்தங்கள்}}",
        "javascripttest": "சாவாநிரல் சோதனை நடக்கின்றது",
-       "javascripttest-title": "$1 சோதனைகள் நடக்கின்றன",
        "javascripttest-pagetext-noframework": "இந்த பக்கம் JavaScript பரிசோதனை ஓட்டத்திற்காக ஒதுக்கப்பட்டுள்ளது",
        "javascripttest-pagetext-skins": "சோதனைகளை நடத்த முகப்புறை ஒன்றைத் தேர்வுசெய்:",
        "tooltip-pt-userpage": "உங்கள் பயனர் பக்கம்",
        "version-parser-function-hooks": "இலக்கணப் பாகுபடுத்தி செயற்பாட்டு கொக்கிகள்",
        "version-hook-name": "கொக்கியின் பெயர்",
        "version-hook-subscribedby": "பயன்பாடு",
-       "version-version": "(பதிப்பு $1)",
+       "version-version": "($1)",
        "version-license": "மீடியாவிக்கி உரிமம்",
        "version-poweredby-credits": "இந்த் விக்கி '''[https://www.mediawiki.org/ MediaWiki]''' இதன் மூலம் வழங்கப்படுகிறது, காப்புரிமை © 2001-$1 $2.",
        "version-poweredby-others": "பிறர்",
        "logentry-newusers-autocreate": "பயனர் கணக்கு $1 தானாக உருவாக்கப்பட்டது",
        "rightsnone": "(எதுவுமில்லை)",
        "revdelete-summary": "தொகுப்பு சுருக்கத்தை",
+       "feedback-adding": "பக்கத்தில் கருத்தைச் சேர்க்கிறது...",
+       "feedback-bugcheck": "சிறப்பு! அது ஏற்கனவே  [ $1 தெரிந்த  bugs ] என்பதை மட்டும்  சரிபார்க்கவும்,",
+       "feedback-bugnew": "நான் சரிபார்த்தாயிற்று. புதிய bug பற்றி கூறு.",
        "feedback-bugornote": "நீங்கள் ஒரு தொழில்நுட்பக் கோளாறு குறித்து விரிவாக விளக்க தாயாராக இருந்தால் தயவுசெய்து [ $1  ஒரு bug பற்றி கூறு].\nஇல்லையெனில், நீங்கள் கீழேயுள்ள எளிதான படிவத்தை பயன்படுத்தலாம்.உங்கள் கருத்துரை \"[$3 $2]\" பக்கத்தில் உங்கள் பயனர் பெயர் மற்றும் உங்கள் உலாவியின் பெயருடன் சேர்க்கப்படும்.",
-       "feedback-subject": "பொருள்:",
-       "feedback-message": "தகவல்:",
        "feedback-cancel": "விட்டுவிடு",
-       "feedback-submit": "கருத்தைச் சமர்ப்பிக்கவும்",
-       "feedback-adding": "பக்கத்தில் கருத்தைச் சேர்க்கிறது...",
+       "feedback-close": "முடிந்தது",
        "feedback-error1": "பிழை: API லிருந்து அங்கீகரிக்கப்படாத முடிவு.",
        "feedback-error2": "பிழை: திருத்தல்  தோல்வியடைந்தது",
        "feedback-error3": "பிழை: API லிருந்து பதிற்குறிப்பு எதுவும் இல்லை.",
+       "feedback-message": "தகவல்:",
+       "feedback-subject": "பொருள்:",
+       "feedback-submit": "சமர்ப்பி",
        "feedback-thanks": "நன்றி! உங்கள் கருத்துகள் \"[$2 $1]\" பக்கத்தில்பதிவு செய்யப்பட்டுள்ளது .",
-       "feedback-close": "முடிந்தது",
-       "feedback-bugcheck": "சிறப்பு! அது ஏற்கனவே  [ $1 தெரிந்த  bugs ] என்பதை மட்டும்  சரிபார்க்கவும்,",
-       "feedback-bugnew": "நான் சரிபார்த்தாயிற்று. புதிய bug பற்றி கூறு.",
        "searchsuggest-search": "தேடு",
        "searchsuggest-containing": "கொண்டுள்ளது...",
        "api-error-badaccess-groups": "இந்த விக்கிக்குக் கோப்புகளைப் பதிவேற்றுவதற்கு நீங்கள் அனுமதிக்கப்படவில்லை.",
index f070329..73b3b6a 100644 (file)
@@ -4,7 +4,8 @@
                        "NamwikiTL",
                        "VASANTH S.N.",
                        "VinodSBangera",
-                       "아라"
+                       "아라",
+                       "Vishwanatha Badikana"
                ]
        },
        "tog-underline": "ಲಿಂಕ್’ಲೆದ ತಿರ್ತ್ ಗೆರೆ(ಅಂಡರ್ ಲೈನ್) ಪಾಡ್’ಲೆ",
        "actions": "ಕ್ರಿಯೆಕ್ಕುಲು",
        "namespaces": "ಪುದರ್ ದ ವರ್ಗೊಲು",
        "variants": "ರೂಪಾಂತರ ಹೊಂದ್‘ನ",
+       "navigation-heading": "ಸಂಚರಣೆ ಮೆನು",
        "errorpagetitle": "ದೋಷ",
        "returnto": "$1 ಗ್ ಪಿರ ಪೋಲೆ.",
        "tagline": "{{SITENAME}} ರ್ದ್",
        "permalink": "ಸ್ಥಿರ ಸಂಪರ್ಕ",
        "print": "ಪ್ರಿ೦ಟ್ ಮನ್ಪುಲೆ",
        "view": "ತೂಲೆ",
+       "view-foreign": "$1ಡ್ ತೂಲೆ",
        "edit": "ಸಂಪಾದನೆ ಮಲ್ಪುಲೆ(Edit this page)",
        "create": "ಸೃಷ್ಟಿಸಾಲೆ",
+       "create-local": "ಸ್ಥಳೀಯ ವಿವರಣೆ ಸೇರಾಲೆ",
        "editthispage": "ಈ ಪುಟೊನು ಬದಲಾಯಿಸಾಲೆ",
        "create-this-page": "ಈ ಪುಟೊನು ಸೃಷ್ಟಿಸಾಲೆ",
        "delete": "ದೆತ್ತ್ ಪಾಡ್ಲೆ",
        "articlepage": "ಲೇಖನ ಪುಟೊನು ತೂಲೆ",
        "talk": "ಚರ್ಚೆ",
        "views": "ನೋಟಲು",
-       "toolbox": "ಉಪಕರಣ(ಟೂಲ್)",
+       "toolbox": "ಉಪಕರಣೊಲು",
        "userpage": "ಸದಸ್ಯೆರ್ನ ಪುಟೊನು ತೂಲೆ",
        "projectpage": "ಪ್ರೊಜೆಕ್ಟ್ ಪುಟೊನು ತೂಲೆ",
        "imagepage": "ಮೀಡಿಯ ಪುಟೊನು ತೂಲೆ",
        "ns-specialprotected": "ವಿಶೇಷ ಪುಟ‘ಕ್‘ಲೆನ್ ಸಂಪಾದನೆ ಮಲ್ಪರೆ ಆಪುಜಿ",
        "logouttext": "ಈರ್ ಇತ್ತೆ ಲಾಗ್ ಔಟ್ ಆತರ್.\nಈರ್ {{SITENAME}} ನ್ ಅನಾಮಧೇಯರಾತ್ ಉಪಯೋಗ ಮಲ್ಪೊಲಿ,ಅಥವಾ ಕೂಡ ಉಂದುವೇ ಪುದರ್‘ಡ್ ಯಾ ಬೇತೆ ಪುದರ್‘ಡ್ ಉಪಯೋಗ ಮಲ್ಪೊಲಿ.\nಗಮನಿಸಾಲೆ: ಈರೆನ ಬ್ರೌಸರ್‘ಡ್ ಮಾಜುನಾಡೆ ಮುಟ್ಟ ಕೆಲವು ಪುಟಕ್‘ಲು ಈರ್ ಇತ್ತೆಲಾ ಲಾಗ್ ಇನ್ ಆಯಿಲೆಕ್ಕನೇ ತೋಜಾವು.",
        "yourname": "ಸದಸ್ಯೆರ್ನ ಪುದರ್:",
+       "userlogin-yourname": "ಸದಸ್ಯೆರ್ನ ಪುದರ್",
+       "userlogin-yourname-ph": "ಈರೆನೆ ಸದಸ್ಯನಾಮ ಬರೆಲೆ",
        "yourpassword": "ಪಾಸ್-ವರ್ಡ್:",
+       "userlogin-yourpassword": "ಪ್ರವೇಶಪದೊ",
+       "userlogin-yourpassword-ph": "ಪ್ರವೇಶ ಪದೊನ್ ನಮೂದಿಸಾಲೆ",
+       "createacct-yourpassword-ph": "ಪ್ರವೇಶ ಪದೊನ್ ನಮೂದಿಸಾಲೆ",
        "yourpasswordagain": "ಪಾಸ್ವರ್ಡ್ ಪಿರ ಟೈಪ್ ಮಲ್ಪುಲೆ",
+       "createacct-yourpasswordagain": "ಪ್ರವೇಶಪದೊನ್ ಧೃಡೀಕರಣ ಮಲ್ಪುಲೆ",
+       "createacct-yourpasswordagain-ph": "ಪ್ರವೇಶಪದೊನು ನನ ಒರ ನಮೂದಿಸಾಲೆ",
        "remembermypassword": "ಈ ಕಂಪ್ಯೂಟರ್’ಡ್ ಎನ್ನ ಪ್ರವೇಶ ಪದೊನು ನೆನಪು ದೀಲ",
+       "userlogin-remembermypassword": "ಎನನ್ ಲಾಗಿನ್ ಆತೇ ದೀಡ್ಲೆ",
        "yourdomainname": "ಈರೆನ ಕಾರ್ಯಕ್ಷೇತ್ರ",
        "login": "ಲಾಗ್ ಇನ್",
        "nav-login-createaccount": "ಲಾಗ್-ಇನ್ / ಅಕೌಂಟ್ ಸೃಷ್ಟಿ ಮಲ್ಪುಲೆ",
        "logout": "ಲಾಗ್ ಔಟ್",
        "userlogout": "ಲಾಗ್ ಔಟ್",
        "notloggedin": "ಲಾಗಿನ್ ಆತ್‘ಜ್ಜರ್",
+       "userlogin-noaccount": "ಈರೆನ ಖಾತೆ ಇಜ್ಜೇ?",
+       "userlogin-joinproject": "{{SITENAME}}ಗ್ ಸೇರ್ಲೆ",
        "nologin": "ಈರೆನ ಖಾತೆ ಇಜ್ಜೇ?'''$1'''",
        "nologinlink": "ಪೊಸ ಖಾತೆ ಸುರು ಮಲ್ಪುಲೆ",
        "createaccount": "ಪೊಸ ಅಕ್ಕೌಂಟ್ ಸುರು ಮಲ್ಪುಲೆ",
        "gotaccount": "ಈರೆನ ಖಾತೆ ಉಂಡೇ?'''$1'''",
        "gotaccountlink": "ಲಾಗಿನ್ ಆಲೆ",
        "userlogin-resetlink": "ಈರೆನ ಲಾಗಿನ್ ವಿವರ ಮರತ್ತ್ಂಡೇ?",
+       "userlogin-resetpassword-link": "ಈರೆನೆ ಪ್ರವೇಶಪದೊ ಮರತ್ತ್‍ಂಡಾ?",
+       "userlogin-helplink2": "ಲಾಗಿನ್ ಆವೊರೆ ಸಹಾಯ",
+       "createacct-emailoptional": "ಮಿಂಚಂಚೆ ವಿಳಾಸೊ (ಐಚ್ಛಿಕ)",
+       "createacct-email-ph": "ಇರೆನ ಇ-ಅಂಚೆ ವಿಳಾಸೊನ್ ನಮೂದಿಸಾಲೆ.",
        "createaccountmail": "ಇ ಮೈಲ್ ಮೂಲಕ",
        "createaccountreason": "ಕಾರಣ",
+       "createacct-submit": "ಪೊಸ ಖಾತೆ ಸುರು ಮಲ್ಪುಲೆ",
+       "createacct-benefit-body1": "{{PLURAL:$1|ಸಂಪಾದನೆ|ಸಂಪಾದನೆಲು}}",
+       "createacct-benefit-body2": "{{PLURAL:$1|ಪುಟ|ಪುಟಕ್ಕುಲು}}",
+       "createacct-benefit-body3": "{{PLURAL:$1|ಕೊಡುಗೆ|ಕೊಡುಗೆಲು}}",
        "badretype": "ಈರ್ ಕೊರ್ನ ಪ್ರವೇಶ ಪದೆ ಬೇತೆ ಬೇತೆ ಅತ್ಂಡ್",
        "userexists": "ಈರ್ ಕೊರ್ನ ಸದಸ್ಯರ ಪುದರ್ ಬಳಕೆಡ್ ಉಂಡು. ದಯದೀದ್ ಬೇತೆ ಪುದರ್ ಕೊರ್ಲೆ",
        "loginerror": "ಲಾಗಿನ್ ದೋಷ",
        "accountcreated": "ಖಾತೆ ಸೃಷ್ಟಿಯಾತ್‘ಂಡ್.",
        "login-abort-generic": "ಇರೆನ ಲಾಗ್ ಇನ್ ವಿಫಲ ವಾತ್‘ಂಡ್",
        "loginlanguagelabel": "ಭಾಷೆ: $1",
+       "pt-login": "ಲಾಗಿನ್",
+       "pt-login-button": "ಲಾಗಿನ್ ಆಲೆ",
+       "pt-createaccount": "ಪೊಸ ಖಾತೆ ಸುರು ಮಲ್ಪುಲೆ",
+       "pt-userlogout": "ಲಾಗ್ ಔಟ್",
        "changepassword": "ಪ್ರವೇಶಪದೊನ್ ಬದಲಾವಣೆ ಮಲ್ಪುಲೆ",
        "resetpass_header": "ಈ ಖಾತೆದ ಪ್ರವೇಶಪದ ಬದಲಾವಣೆ ಮಲ್ಪುಲೆ",
        "oldpassword": "ಪರ ಪ್ರವೇಶಪದ",
        "userpage-userdoesnotexist": "ಬಳಕೆದಾರ ಖಾತೆ \"<nowiki>$1</nowiki>\" ದಾಖಲಾತ್‘ಜ್ಜಿ. ಈರ್ ಉಂದುವೇ ಪುಟನ್ ಸಂಪಾದನೆ ಮಲ್ಪರ ಉಂಡಾಂದ್ ಖಾತ್ರಿ ಮಲ್ತೊನಿ.",
        "previewnote": "'''ಉಂದು ಕೇವಲ ಮುನ್ನೋಟ; ಪುಟೊನು ನನಲ ಒರಿಪಾದಿಜಿ ಪನ್ಪುನೇನ್ ಮರಪೊರ್ಚಿ!'''",
        "editing": "$1 ಲೇಖನೊನು ಈರ್ ಸಂಪಾದನೆ ಮಲ್ತೊಂದುಲ್ಲರ್",
+       "creating": "$1 ನ್ನು ಸೃಷ್ಟಿಸಾವೊದುಂಡು",
        "editingsection": "$1 (ವಿಭಾಗೊನು) ಸಂಪಾದನೆ ಮಲ್ತೊಂದುಲ್ಲರ್",
        "yourtext": "ಇರೆನ ಸಂಪಾದನೆ",
        "yourdiff": "ವ್ಯತ್ಯಾಸೊಲು",
        "copyrightwarning": "ದಯಮಲ್ತ್’ದ್ ಗಮನಿಸ್’ಲೆ: {{SITENAME}} ಸೈಟ್’ಡ್ ಇರೆನ ಪೂರಾ ಕಾಣಿಕೆಲುಲಾ $2 ಅಡಿಟ್ ಬಿಡುಗಡೆ ಆಪುಂಡು (ಮಾಹಿತಿಗ್ $1 ನ್ ತೂಲೆ). ಇರೆನ ಸಂಪಾದನೆಲೆನ್ ಬೇತೆಕುಲು ನಿರ್ಧಾಕ್ಷಿಣ್ಯವಾದ್ ಬದಲ್ ಮಲ್ತ್’ದ್ ಬೇತೆ ಕಡೆಲೆಡ್ ಪಟ್ಟೆರ್. ಇಂದೆಕ್ ಇರೆನ ಒಪ್ಪಿಗೆ ಇತ್ತ್’ನ್ಡ ಮಾತ್ರ ಮುಲ್ಪ ಸಂಪಾದನೆ ಮಲ್ಪುಲೆ.<br />\nಅತ್ತಂದೆ ಇರೆನ ಸಂಪಾದನೆಲೆನ್ ಈರ್ ಸ್ವತಃ ಬರೆತರ್, ಅತ್ತ್’ನ್ಡ ಕೃತಿಸ್ವಾಮ್ಯತೆ ಇಜ್ಜಂದಿನ ಕಡೆರ್ದ್ ದೆತೊನ್ದರ್ ಪಂಡ್’ದ್ ಪ್ರಮಾಣಿಸೊಂದುಲ್ಲರ್.\n'''ಕೃತಿಸ್ವಾಮ್ಯತೆದ ಅಡಿಟುಪ್ಪುನಂಚಿನ ಕೃತಿಲೆನ್ ಒಪ್ಪಿಗೆ ಇಜ್ಜಂದೆ ಮುಲ್ಪ ಪಾಡೊಚಿ!'''",
-       "templatesused": "à²\88 à²ªà³\81à²\9fà³\8aà²\9fà³\81 à²\89ಪಯà³\8bà²\97 à²®à²²à³\8dತಿನ à²«à²²à²\95à³\8aಲà³\81:",
+       "templatesused": "à²\88 à²ªà³\81à²\9fà³\8aà²\9fà³\8d à²\89ಪಯà³\8bà²\97 à²®à²²à³\8dತಿನ {{PLURAL:$1|à²\9fà³\86à²\82ಪà³\8dಲà³\87à²\9fà³\81|à²\9fà³\86à²\82ಪà³\8dಲà³\87à²\9fà³\81à²\97ಳà³\81}}:",
        "templatesusedpreview": "ಈ ಮುನ್ನೋಟೊಡು ಉಪಯೋಗ ಮಲ್ತಿನ ಟೆಂಪ್ಲೇಟ್’ಲು:",
        "template-protected": "(ಸಂರಕ್ಷಿತ)",
        "template-semiprotected": "(ಅರೆ-ಸಂರಕ್ಷಿತ)",
        "currentrev": "ಇತ್ತೆದ ಆವೃತ್ತಿ",
        "currentrev-asof": "$1 ದ ಮುಟ್ಟ ಇತ್ತೆದ ಆವೃತ್ತಿ",
        "revisionasof": "$1 ದಿನೊತ ಆವೃತ್ತಿ",
+       "revision-info": "ಬದಲಾವಣೆ $1 ಲೆಕ್ಕೊ {{GENDER:$6|$2}} ಇಂಬೆರೆಡ್‍ದ್$7",
        "previousrevision": "←ದುಂಬುದ ಆವೃತ್ತಿ",
        "nextrevision": "ಪೊಸ ಮರು-ಆವೃತ್ತಿ",
        "currentrevisionlink": "ಇತ್ತೆದ ಆವೃತ್ತಿ",
        "mergehistory-from": "ಮೂಲ ಪುಟ",
        "mergehistory-reason": "ಕಾರಣ:",
        "revertmerge": "ಅನ್-ಮರ್ಜ್ ಮಲ್ಪುಲೆ",
-       "history-title": "\"$1\" ಪುಟೊತ ಆವೃತ್ತಿ ಇತಿಹಾಸ",
+       "history-title": "\"$1\" ಪುಟೊತ ಆವೃತ್ತಿ ಇತಿಹಾಸ",
        "lineno": "$1 ನೇ ಸಾಲ್:",
        "compareselectedversions": "ಆಯ್ಕೆ ಮಲ್ತಿನ ಆವೃತ್ತಿಲೆನ್ ಹೊಂದಾಣಿಕೆ ಮಲ್ತ್ ತೂಲೆ",
        "editundo": "ದುಂಬುದಲೆಕ",
        "notextmatches": "ವಾ ಪುಟೊತ ಪಠ್ಯೊಡುಲಾ ಹೋಲಿಕೆ ಇಜ್ಜಿ",
        "prevn": "ದುಂಬುದ {{PLURAL:$1|$1}}",
        "nextn": "ಬೊಕ್ಕದ {{PLURAL:$1|$1}}",
+       "shown-title": "ಪ್ರತಿ ಪುಟೊಡುಲಾ $1 {{PLURAL:$1|result|results}} ತೋಜಿಪಾವು",
        "viewprevnext": "ತೂಲೆ ($1 {{int:pipe-separator}} $2) ($3)",
        "searchprofile-articles": "ಲೇಖನ ಪುಟೊ",
        "searchprofile-images": "ಬಹುಮಾಧ್ಯಮ",
        "search-interwiki-more": "(ಮಸ್ತ್)",
        "searchrelated": "ಸ೦ಬ೦ಧ ಇತ್ತಿನ",
        "searchall": "ಮಾತಾ",
+       "search-nonefound": "ಈರೆನ ವಿಚಾರಣೆಗ್ ತಕ್ಕುದಾಯಿನ ಪಲಿತಾಂಶೊಲು ಇಜ್ಜಿ.",
        "powersearch-legend": "ಅಡ್ವಾನ್ಸ್’ಡ್ ಸರ್ಚ್",
        "powersearch-ns": "ನೇಮ್-ಸ್ಪೇಸ್’ಲೆಡ್ ನಾಡ್ಲೆ",
        "powersearch-toggleall": "ಮಾತಾ",
        "preferences": "ಪ್ರಾಶಸ್ತ್ಯೊಲು",
-       "mypreferences": "à²\8eನà³\8dನ à²ªà³\8dರಾಶಸà³\8dತà³\8dಯಲು",
+       "mypreferences": "ಪà³\8dರಾಶಸà³\8dತà³\8dಯà³\8aಲು",
        "prefs-rc": "ಇಂಚಿಪದ ಬದಲಾವಣೆಲು",
        "prefs-resetpass": "ಪ್ರವೇಶಪದೊನ್ ಬದಲಾವಣೆ ಮಲ್ಪುಲೆ",
        "prefs-changeemail": "ಇ-ಅಂಚೆ ವಿಳಾಸೊನು ಬದಲಾವಣೆ ಮಲ್ಪುಲೆ",
        "action-deleterevision": "ಈ ಆವೃತ್ತಿನ್ ಮಾಜಾಲೆ",
        "action-sendemail": "ಇ-ಅಂಚೆ ಕಡಪುಡುಲೆ",
        "nchanges": "$1 {{PLURAL:$1|ಬದಲಾವಣೆ|ಬದಲಾವಣೆಲು}}",
+       "enhancedrc-history": "ಇತಿಹಾಸೊ",
        "recentchanges": "ಇಂಚಿಪದ ಬದಲಾವಣೆಲು",
        "recentchanges-legend": "ಇಂಚಿಪದ ಬದಲಾವಣೆಲು ಆಯ್ಕೆಲು",
        "recentchanges-summary": "ಈ ವಿಕಿಟ್ ಇಂಚಿಪ್ಪ ಆತಿನ ಬದಲಾವಣೆನ್ ಟ್ರಾಕ್ ಮಲ್ಪುಲೆ",
        "recentchanges-feed-description": "ಈ ಫೀಡ್’ಡ್ ವಿಕಿಕ್ ಇಂಚಿಪ್ಪ ಆತಿನಂಚಿನ ಬದಲಾವಣೆಲೆನ್ ಟ್ರ್ಯಾಕ್ ಮಲ್ಪುಲೆ.",
        "recentchanges-label-newpage": "ಇರ್ನ ಈ ಬದಲಾವಣೆ ಪೊಸ ಪುಟೊನು ಸುರು ಮಲ್ಪುಂಡು",
        "recentchanges-label-minor": "ಉಂದು ಎಲ್ಯ ಬದಲಾವಣೆ",
+       "recentchanges-label-bot": "ಈ ಸಂಪಾದನೆನ್ ಒಂಜಿ ಬಾಟ್ ಮಲ್ತ್‍ದುಂಡು",
+       "recentchanges-label-unpatrolled": "ಈ ಸಂಪಾದನೆನ್ ನನಲಾ ಪರೀಕ್ಷೆ ಮಲ್ತ್‍ದಿಜ್ಜಿ.",
        "rclistfrom": "$3 $2 ರ್ದ್ ಶುರುವಾತಿನ ಪೊಸ ಬದಲಾವಣೆಲೆನ್ ತೊಜ್ಪಾವು",
        "rcshowhideminor": "$1 ಎಲ್ಯೆಲ್ಯ ಬದಲಾವಣೆಲು",
+       "rcshowhideminor-show": "ತೋಜಾಲೆ",
+       "rcshowhideminor-hide": "ದೆಂಗಾವು",
        "rcshowhidebots": "$1 ಬಾಟ್",
+       "rcshowhidebots-show": "ತೊಜಾವು",
+       "rcshowhidebots-hide": "ದೆಂಗಾಲೆ",
        "rcshowhideliu": "ಲಾಗ್-ಇನ್ ಆತಿನಂಚಿನ ಸದಸ್ಯೆರ್ $1",
+       "rcshowhideliu-hide": "ದೆಂಗಾವು",
        "rcshowhideanons": "ಅನಾಮಧೇಯ ಸದಸ್ಯೆರ್ $1",
+       "rcshowhideanons-show": "ತೋಜಾಲೆ",
+       "rcshowhideanons-hide": "ದೆಂಗಾವು",
        "rcshowhidepatr": "$1 ಪರೀಕ್ಷಿಸಾದಿನ ಸಂಪಾದನೆಲು",
        "rcshowhidemine": "ಎನ್ನ ಸಂಪಾದನೆಲೆನ್ $1",
+       "rcshowhidemine-show": "ತೋಜಾಲೆ",
+       "rcshowhidemine-hide": "ದೆಂಗಾವು",
        "rclinks": "ದುಂಬುದ $2 ದಿನೊಲೆಡ್ ಮಲ್ತಿನ $1 ಕಡೆತ ಬದಲಾವಣೆಲೆನ್ ತೂಲೆ <br />$3",
        "diff": "ವ್ಯತ್ಯಾಸ",
        "hist": "ಇತಿಹಾಸ",
        "newpageletter": "ಪೊ",
        "boteditletter": "ಬಾ",
        "rc_categories_any": "ಒವ್ವೇ",
+       "rc-change-size-new": "$1 {{ಬಹುವಚನೊ:$1|ಬೈಟ್|ಬೈಟ್‍ಲು}}ಬದಲಾವಣೆದ ಬುಕ್ಕೊ",
        "newsectionsummary": "\n/* $1 */ಪೊಸ ವಿಭಾಗ",
        "rc-enhanced-expand": "ವಿವರೊಲೆನ್ ತೊಜ್ಪಾವು (ಜಾವ ಸ್ಕ್ರಿಪ್ಟ್ ಬೋಡಾಪುಂಡು)",
        "rc-enhanced-hide": "ವಿವರೊಲೆನ್ ದೆಂಗಾವು",
        "filehist-comment": "ಕಮೆಂಟ್",
        "imagelinks": "ಫೈಲ್ ಲಿಂಕ್’ಲು",
        "linkstoimage": "ಈ ಫೈಲ್’ಗ್ ತಿರ್ತ್’ದ ಈ {{PLURAL:$1|ಪುಟ|$1 ಪುಟೊಲು}} ಲಿಂಕ್ ಕೊರ್ಪುಂಡು.",
+       "nolinkstoimage": "ಈ ಫೈಲ್‍ಗ್ ಸಂಪರ್ಕ ಉಪ್ಪುನ ವಾ ಪುಟಲಾ ಇಜ್ಜಿ.",
        "sharedupload": "ಈ ಫೈಲ್’ನ್ ಮಸ್ತ್ ಜನ ಪಟ್ಟ್’ದುಲ್ಲೆರ್ ಅಂಚೆನೆ ಉಂದು ಮಸ್ತ್ ಪ್ರೊಜೆಕ್ಟ್’ಲೆಡ್ ಉಪಯೋಗಡುಪ್ಪು.",
+       "upload-disallowed-here": "ಈರ್ ಈ ಕಡತನ್ ಕುಡ ಬರೆವರೆ ಸಾದ್ಯ ಇಜ್ಜಿ.",
        "filedelete-comment": "ಕಾರಣ",
        "filedelete-submit": "ಮಾಜಾಲೆ",
        "randompage": "ಯಾದೃಚ್ಛಿಕ ಪುಟ",
        "pager-older-n": "{{PLURAL:$1|ಪರತ್ತ್ ೧|ಪರತ್ತ್ $1}}",
        "booksources": "ಪುಸ್ತಕೊಲ್ದ ಮೂಲ",
        "booksources-search-legend": "ಪುಸ್ತಕೊದ ಮೂಲೊನು ನಾಡ್ಲ",
+       "booksources-search": "ನಾಡ್‘ಲೆ",
        "log": "ದಾಖಲೆಲು",
        "allpages": "ಪೂರಾ ಪೂಟೊಲು",
        "allpagesfrom": "ಇಂದೆರ್ದ್ ಶುರುವಾಪುನ ಪುಟೊಲೆನ್ ತೊಜ್ಪಾವು:",
        "allpagesto": "ಇಂದೆರ್ದ್ ಅಂತ್ಯ ಆಪುನ ಪುಟೊಲೆನ್ ತೊಜ್ಪಾವು:",
        "allarticles": "ಪೂರಾ ಲೇಖನೊಲು",
        "allpagessubmit": "ಪೋ",
+       "categories": "ವರ್ಗೊಲು",
        "listgrouprights-members": "(ಸದಸ್ಯೆರ್ನ ಪಟ್ಟಿ)",
        "emailuser": "ಈ ಸದಸ್ಯೆರೆಗ್ ಇ-ಮೈಲ್ ಕಡಪುಡ್ಲೆ",
        "watchlist": "ವೀಕ್ಷಣಾ ಪಟ್ಟಿ",
        "namespace": "ನೇಮ್-ಸ್ಪೇಸ್:",
        "invert": "ಆಯ್ಕೆನ್ ತಿರ್ಗಾಲೆ",
        "blanknamespace": "(ಮುಖ್ಯ)",
-       "contributions": "ಸದಸ್ಯೆರ್ನ ಕಾಣಿಕೆಲು",
+       "contributions": "{{$1ಸದಸ್ಯೆರ್ನ}} ಕಾಣಿಕೆಲು",
        "contributions-title": "$1 ಗ್ ಸದಸ್ಯೆರ್ನ ಕಾಣಿಕೆ",
        "mycontris": "ಎನ್ನ ಕಾಣಿಕೆಲು",
        "contribsub2": "$1 ($2) ಗ್",
        "nolinkshere": "'''[[:$1]]''' ಗ್ ವಾ ಪುಟೊಲುಲಾ ಲಿಂಕ್ ಕೊರ್ಪುಜಿ.",
        "isredirect": "ಪುನರ್ನಿರ್ದೇಶನ ಪುಟ",
        "istemplate": "ಸೇರ್ಪಡೆ",
-       "isimage": "à²\9aಿತà³\8dರ à²\95à³\8aà²\82ಡಿ",
+       "isimage": "ಫà³\88ಲà³\8dâ\80\8dದ à²²à²¿à³¦à²\95à³\8d",
        "whatlinkshere-prev": "{{PLURAL:$1|ದುಂಬುದ|ದುಂಬುದ $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|ಬೊಕ್ಕದ|ಬೊಕ್ಕದ $1}}",
        "whatlinkshere-links": "← ಲಿಂಕ್’ಲು",
        "tooltip-pt-mycontris": "ಎನ್ನ ಕಾಣಿಕೆಲ್ದ ಪಟ್ಟಿ",
        "tooltip-pt-login": "ಈರ್ ಲಾಗ್ ಇನ್ ಆವೊಡುಂದು ಕೋರೊಂದುಲ್ಲ, ಆಂಡ ಉಂದು ದಾಲ ಕಡ್ಡಾಯ ಅತ್ತ್.",
        "tooltip-pt-logout": "ಲಾಗ್ ಔಟ್",
+       "tooltip-pt-createaccount": "ನಿಕುಲು ಪೊಸ ಖಾತೆ ಸುರುಮಲ್ತ್‍ದ್ ಲಾಗಿನ್ ಆಪುನೈನ್ ಸ್ವಾಗತ ಮಲ್ಪುವೊ, ಆಂಡಲಾ ಉಂದು ಕಡ್ಡಾಯ ಅತ್ತ್.",
        "tooltip-ca-talk": "ಮಾಹಿತಿ ಪುಟೊತ ಬಗ್ಗೆ ಚರ್ಚೆ",
        "tooltip-ca-edit": "ಈ ಪುಟೊನು ಈರ್ ಸಂಪಾದನೆ ಮಲ್ಪೊಲಿ. ಸೇವ್ ಮಲ್ಪುನ ದುಂಬು ಮುನ್ನೋಟದ ಉಪಯೊಗ ಮನ್ತೊನ್ಲೆ.",
        "tooltip-ca-addsection": "ಪೊಸ ಸೆಶನ್ನ್ ಶರು ಮಲ್ಪುಲೆ",
        "tooltip-upload": "ಅಪ್ಲೋಡ್ ಸುರು ಮಲ್ಪು",
        "tooltip-rollback": "\"Rollback\", ಈ ಪುಟದ ಕರಿನ ಬದಾಲವಣೆಗ್ ಒ೦ಜಿ ಕ್ಲಿಕ್ ಡ್ ಕೊನೊಪು೦ಡು",
        "tooltip-undo": "\"Undo\" ಈ ಬದಲಾವಣೆನ್ ದೆತೊನುಜಿ ಬುಕ ಪ್ರಿವ್ಯೂ ಮೋಡ್ ಡ್ ಬದಲಾವಣೆ ಮಲ್ಪೆರ್ ಕೊನೊಪು೦ಡು. ಅ೦ಚೆನೆ ಸಮ್ಮರಿ ಡ್ ಬದಲಾವಣೆ ಗ್ ಕಾರಣ ಕೊರ್ರ್‍ಎ ಆಪು೦ಡು.",
+       "tooltip-summary": "ಒಂಜಿ ಎಲ್ಯ ಸಾರಾಂಶ ಕೊರ್ಲೆ",
+       "pageinfo-toolboxlink": "ಪುಟೊತ ಮಾಹಿತಿ",
        "previousdiff": "← ದುಂಬುದ ಸಂಪಾದನೆ",
        "nextdiff": "ಪೊಸ ಎಡಿಟ್ →",
        "file-info-size": "$1 × $2 ಪಿಕ್ಸೆಲ್, ಫೈಲ್’ದ ಗಾತ್ರ: $3, MIME ಪ್ರಕಾರ: $4",
        "file-nohires": "ಇಂದೆರ್ದ್ ಜಾಸ್ತಿ ವಿವರವಾಯಿನ ನೋಟ ಇಜ್ಜಿ.",
        "svg-long-desc": "ಎಸ್.ವಿ.ಜಿ ಫೈಲ್, ಸುಮಾರಾದ್ $1 × $2 ಪಿಕ್ಸೆಲ್, ಫೈಲ್’ದ ಗಾತ್ರ: $3",
-       "show-big-image": "ಪೂರ್ತಿ ರೆಸೊಲ್ಯೂಶನ್",
+       "show-big-image": "ಮೂಲ ಕಡತ",
+       "show-big-image-size": "$1 × $2 ಪಿಕ್ಸೆಲ್‌ಸ್",
        "bad_image_list": "ವ್ಯವಸ್ಥೆದ ಆಕಾರ ಈ ರೀತಿ ಉಂಡು:\n\nಪಟ್ಟಿಡುಪ್ಪುನಂಚಿನ ದಾಖಲೆಲೆನ್ (* ರ್ದ್ ಶುರು ಆಪುನ ಸಾಲ್’ಲು) ಮಾತ್ರ ಪರಿಗಣನೆಗ್ ದೆತೊನೆರಾಪುಂಡು.\nಪ್ರತಿ ಸಾಲ್’ದ ಶುರುತ ಲಿಂಕ್ ಒಂಜಿ ದೋಷ ಉಪ್ಪುನಂಚಿನ ಫೈಲ್’ಗ್ ಲಿಂಕಾದುಪ್ಪೊಡು.\nಅವ್ವೇ ಸಾಲ್’ದ ಶುರುತ ಪೂರಾ ಲಿಂಕ್’ಲೆನ್ ಪರಿಗನೆರ್ದ್ ದೆಪ್ಪೆರಾಪುಂಡು, ಪಂಡ ಓವು ಪುಟೊಲೆಡ್ ಫೈಲ್’ದ ಬಗ್ಗೆ ಬರ್ಪುಂಡೋ ಔಲು.",
        "metadata": "ಮೇಲ್ದರ್ಜೆ ಮಾಹಿತಿ",
        "metadata-help": "ಈ ಫೈಲ್’ಡ್ ಜಾಸ್ತಿ ಮಾಹಿತಿ ಉಂಡು. ಪ್ರಾಯಶಃ ಫೈಲ್’ನ್ ಉಂಡು ಮಲ್ಪೆರೆ ಉಪಯೋಗ ಮಲ್ತಿನ ಡಿಜಿಟಲ್ ಕ್ಯಾಮೆರರ್ದ್ ಅತ್ತ್’ನ್ಡ ಸ್ಕ್ಯಾನರ್ ರ್ದ್ ಈ ಮಾಹಿತಿ ಬೈದ್’ನ್ಡ್.\nಮೂಲಪ್ರತಿರ್ದ್ ಈ ಫೈಲ್ ಬದಲಾದಿತ್ತ್’ನ್ಡ, ಈ ಮಾಹಿತಿ ಬದಲಾತಿನ ಫೈಲ್’ದ ವಿವರೊಲೆಗ್ ಸರಿಯಾದ್ ಹೊಂದಂದೆ ಉಪ್ಪು.",
        "metadata-expand": "ವಿಸ್ತಾರವಾಯಿನ ವಿವರೊಲೆನ್ ತೊಜ್ಪಾವು",
        "metadata-collapse": "ವಿಸ್ತಾರವಾಯಿನ ವಿವರೊಲೆನ್ ದೆಂಗಾವು",
-       "metadata-fields": "ಈ ಸಂದೇಶೊಡು ಪಟ್ಟಿ ಮಲ್ತಿನಂಚಿನ EXIF ಮೆಟಡೇಟ ಮಾಹಿತಿನ್ ಚಿತ್ರ ಪುಟೊಕು ಸೇರ್ಪಾಯೆರೆ ಆವೊಂದುಂಡು. ಪುಟೊಟು ಮೆಟಡೇಟ ಮಾಹಿತಿದ ಪಟ್ಟಿನ್ ದೆಪ್ಪುನಗ ಉಂದು ತೋಜುಂಡು.\nಒರಿದನವು ಮೂಲಸ್ಥಿತಿಟ್ ಅಗೋಚರವಾದುಪ್ಪುಂಡು.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
+       "metadata-fields": "ಈ ಸಂದೇಶೊಡು ಪಟ್ಟಿ ಮಲ್ತಿನಂಚಿನ EXIF ಮಿತ್ತ ದರ್ಜೆದ ಮಾಹಿತಿನ್ ಚಿತ್ರ ಪುಟೊಕು ಸೇರ್ಪಾಯೆರೆ ಆವೊಂದುಂಡು. ಪುಟೊಟು ಮಿತ್ತ ದರ್ಜೆ ಮಾಹಿತಿದ ಪಟ್ಟಿನ್ ದೆಪ್ಪುನಗ ಉಂದು ತೋಜುಂಡು.\nಒರಿದನವು ಮೂಲಸ್ಥಿತಿಟ್ ಅಗೋಚರವಾದುಪ್ಪುಂಡು.\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude \n* gpsaltitude",
+       "exif-datetime": "ಕಡೊತೊನು ಬದಲಾವಣೆ ಮಲ್ತ್‍ನ ದಿನಾಂಕೊ ಬೊಕ್ಕ ಸಮಯೊ",
+       "exif-make": "ಕ್ಯಾಮೆರಾದ ತಯಾರೆಕೆರ್",
+       "exif-model": "ಕ್ಯಾಮೆರಾ ಮಾದರಿ",
+       "exif-software": "ಉಪಯೋಗ ಮಲ್ತಿನ ತಂತ್ರಾಂಶ",
+       "exif-exifversion": "Exif ಆವೃತ್ತಿ",
+       "exif-datetimeoriginal": "ಮಾಹಿತಿ ಸೃಷ್ಟಿಯಾಯಿನ ದಿನಾಂಕೊ ಬೊಕ್ಕ ಸಮಯ",
+       "exif-datetimedigitized": "ಗಣಕೀಕರಣದ ದಿನಾಂಕೊ ಬೊಕ್ಕ ಸಮಯೊ",
+       "exif-orientation-1": "ಸಾಧಾರಣ",
        "namespacesall": "ಪೂರಾ",
        "monthsall": "ಪೂರಾ",
        "watchlisttools-view": "ಪ್ರಸ್ತುತ ಬದಲಾವಣೆಲ್ ತೋಜಾಲೆ",
        "watchlisttools-edit": "ವೀಕ್ಷಣಾಪಟ್ಟಿನ್ ತೂಲೆ ಬೊಕ್ಕ ಎಡಿಟ್ ಮಲ್ಪುಲೆ",
-       "specialpages": "ವಿಷೇಶ ಪುಟೊಲು"
+       "specialpages": "ವಿಷೇಶ ಪುಟೊಲು",
+       "tag-list-wrapper": "([[ವಿಸೇಸೊ:ಟ್ಯಾಗುಲು|{{ಬಹುವಚನೊ:$1|ಟ್ಯಾಗ್|ಟ್ಯಾಗುಲು}}]]:$2)",
+       "logentry-delete-delete": "$1 {{GENDER:$2|ಮಾಜಾದ್‍ಂಡ್}} ಪುಟ $3",
+       "logentry-newusers-create": "ಬಳಕೆದಾರ ಖಾತೆ $1 ನ್ನು {{GENDER:$2|ಸೃಷ್ಟಿ ಮಲ್ತ್‍ದುಂಡು}}",
+       "logentry-upload-upload": "$1 {{GENDER:$2|ಅಪ್ಲೋಡ್ ಮಲ್ತ್‍ದೆರ್}} $3",
+       "searchsuggest-search": "ನಾಡ್‍ಲೆ"
 }
index 4fbfa96..752e794 100644 (file)
@@ -20,7 +20,9 @@
                        "לערי ריינהארט",
                        "రహ్మానుద్దీన్",
                        "రాకేశ్వర",
-                       "వైజాసత్య"
+                       "వైజాసత్య",
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "లంకె క్రీగీత:",
        "recentchanges-legend-heading": "'''సూచిక :'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} ([[Special:NewPages|కొత్త పేజీల జాబితా]]ను కూడా చూడండి)",
        "rcnotefrom": "<strong>$2</strong> నుండి జరిగిన మార్పులు (<strong>$1</strong> వరకు) కింద చూపబడ్డాయి.",
-       "rclistfrom": "$3, $2 à°¨à±\81à°\82à°¡à°¿ జరిగిన మార్పులను చూపించు",
+       "rclistfrom": "$3, $2 à°\95à±\81 à°®à±\81à°\82à°¦à±\81  జరిగిన మార్పులను చూపించు",
        "rcshowhideminor": "చిన్న మార్పులను $1",
        "rcshowhideminor-show": "చూపించు",
        "rcshowhideminor-hide": "దాచు",
        "import-rootpage-nosubpage": "మూలపేజీ యొక్క పేరుబరి \"$1\" ఉపపేజీలను అనుమతించదు.",
        "importlogpage": "దిగుమతుల చిట్టా",
        "importlogpagetext": "ఇతర వికీల నుండీ మార్పుల చరిత్రతోసహా తెచ్చిన నిర్వహణా దిగుమతులు.",
-       "import-logentry-upload": "[[$1]]ను ఫైలు అప్లోడు ద్వారా దిగుమతి చేసాం",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|కూర్పు|కూర్పులు}}",
-       "import-logentry-interwiki": "ఇతర వికీల నుండి $1",
        "import-logentry-interwiki-detail": "$2 నుండి {{PLURAL:$1|ఒక కూర్పు|$1 కూర్పులు}}",
        "javascripttest": "జావాస్క్రిప్ట్ పరీక్ష",
        "javascripttest-pagetext-noframework": "ఈ పేజీ JavaScript పరీక్షల కోసం ఉద్దేశించబడింది.",
        "tooltip-pt-mycontris": "మీ మార్పుచేర్పుల జాబితా",
        "tooltip-pt-login": "మిమ్మల్ని లాగినవమని ప్రోత్సహిస్తున్నాం; కానీ అది తప్పనిసరేమీ కాదు.",
        "tooltip-pt-logout": "లాగౌటవండి",
+       "tooltip-pt-createaccount": "మీరొక ఖాతాని సృష్టించుకొని ప్రవేశించటాన్ని సమర్ధిస్తున్నాము; కానీ, అది అవసరం కాదు, ఐచ్ఛికం మాత్రమే.",
        "tooltip-ca-talk": "విషయపు పేజీ గురించి చర్చ",
        "tooltip-ca-edit": "ఈ పేజీని మీరు సరిదిద్దవచ్చు. భద్రపరచే ముందు మునుజూపు బొత్తాన్ని వాడండి.",
        "tooltip-ca-addsection": "కొత్త విభాగాన్ని మొదలుపెట్టండి",
        "pageinfo-robot-policy": "రోబోట్లచే ఇండెక్సవుతోంది",
        "pageinfo-robot-index": "అనుమతించబడింది",
        "pageinfo-robot-noindex": "అనుమతించబడలేదు",
-       "pageinfo-watchers": "à°ªà±\87à°\9cà±\80 à°µà±\80à°\95à±\8dà°·à°\95ుల సంఖ్య",
+       "pageinfo-watchers": "à°ªà±\87à°\9cà±\80 à°\97మనిà°\82à°ªà±\81దారుల సంఖ్య",
        "pageinfo-few-watchers": "$1 {{PLURAL:$1|వీక్షకుడి|వీక్షకుల}} కంటే తక్కువ",
        "pageinfo-redirects-name": "ఈ పేజీకి ఉన్న దారిమార్పుల సంఖ్య",
        "pageinfo-subpages-name": "ఈ పేజీకి ఉన్న ఉపపేజీల సంఖ్య",
        "version-parser-function-hooks": "పార్సరుకు కొక్కాలు",
        "version-hook-name": "కొక్కెం పేరు",
        "version-hook-subscribedby": "ఉపయోగిస్తున్నవి",
-       "version-version": "(కూర్పు $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[పేరు లేదు]",
        "version-license": "MediaWiki లైసెన్సు",
        "version-ext-license": "లైసెన్సు",
        "logentry-rights-rights": "$1, $3 యొక్క గుంపు సభ్యత్వాన్ని $4 నుండి $5 కు {{GENDER:$2|మార్చారు}}",
        "logentry-rights-rights-legacy": "$1, $3 యొక్క గుంపు సభ్యత్వాన్ని {{GENDER:$2|మార్చారు}}",
        "logentry-rights-autopromote": "$1, $4 నుండి $5 కు ఆటోమేటిగ్గా {{GENDER:$2|ప్రమోటు చెయ్యబడ్డారు}}",
+       "logentry-upload-upload": "$1 $3 ను {{GENDER:$2|ఎక్కించారు}}",
        "rightsnone": "(ఏమీలేవు)",
        "revdelete-summary": "మార్పు సంగ్రహం",
+       "feedback-adding": "ఫీడ్‍బ్యాకును పేజీలోకి చేరుస్తున్నాం...",
+       "feedback-bugcheck": "అద్భుతం! ఇది ఇప్పటికే [$1 తెలిసిన బగ్గుల]లో లేదని సరిచూసుకోండి.",
+       "feedback-bugnew": "చూసాను. కొత్త బగ్గును నివేదించు",
        "feedback-bugornote": "ఏదైనా సాంకేతిక సమస్యను మీరు వివరించదలిస్తే [$1 లోపంపై ఫిర్యాదు చెయ్యండి].\nలేదంటే, కింద ఉన్న సులువైన ఫారాన్ని వాడండి. మీ వ్యాఖ్య మీ వాడుకరిపేరుతో సహా  \"[$3 $2]\" పేజీలో చేర్చబడుతుంది.",
-       "feedback-subject": "విషయం:",
-       "feedback-message": "సందేశం:",
        "feedback-cancel": "రద్దుచేయి",
-       "feedback-submit": "ప్రతిస్పందనను దాఖలుచేయి",
-       "feedback-adding": "ఫీడ్‍బ్యాకును పేజీలోకి చేరుస్తున్నాం...",
+       "feedback-close": "పూర్తయ్యింది",
        "feedback-error1": "లోపం: API నుండి గుర్తుపట్టలేని ఫలితం",
        "feedback-error2": "దోషము: సవరణ విఫలమైంది",
        "feedback-error3": "లోపం: API నుండి ప్రతిస్పందన లేదు",
+       "feedback-message": "సందేశం:",
+       "feedback-subject": "విషయం:",
+       "feedback-submit": "దాఖలుచెయ్యి",
        "feedback-thanks": "కృతజ్ఞతలు! మీ ప్రతిస్పందనను “[$2 $1]” పేజీలో చేర్చాం.",
-       "feedback-close": "పూర్తయ్యింది",
-       "feedback-bugcheck": "అద్భుతం! ఇది ఇప్పటికే [$1 తెలిసిన బగ్గుల]లో లేదని సరిచూసుకోండి.",
-       "feedback-bugnew": "చూసాను. కొత్త బగ్గును నివేదించు",
        "searchsuggest-search": "వెతుకు",
        "searchsuggest-containing": "కలిగియున్న...",
        "api-error-badaccess-groups": "ఈ వికీ లోనికి దస్త్రాలను ఎక్కించే అనుమతి మీకు లేదు.",
index e60a27d..5687b5c 100644 (file)
@@ -3,7 +3,8 @@
                "authors": [
                        "MF-Warburg",
                        "Nemo bis",
-                       "Reedy"
+                       "Reedy",
+                       "아라"
                ]
        },
        "tog-underline": "Subliña ligasaun sira:",
        "version": "Versaun",
        "version-specialpages": "Pájina espesiál",
        "version-other": "Seluk",
-       "version-version": "(Versaun $1)",
+       "version-version": "($1)",
        "version-license": "Lisensa",
        "version-poweredby-others": "ema seluk",
        "version-software-product": "Produtu",
index 22b84d5..44b6978 100644 (file)
@@ -10,7 +10,8 @@
                        "Soroush",
                        "Urhixidur",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Пайвандҳо хаткашида:",
        "delete-toobig": "Ин саҳифа таърихчаи бузурге дорад, ки шомили беш аз $1 вироиш аст. Ҳазфи ин гуна саҳифаҳо барои пешгири аз шикастани тасодуфӣ дар {{SITENAME}} маҳдуд шудааст.",
        "delete-warning-toobig": "Ин саҳифа таърихи бузурге дорад, ки шомили беш аз $1 вироиш аст. Ҳазфи ин саҳифа метавонад ихтилол ба амалгари пойгоҳи додаи {{SITENAME}} бишавад; лутфан бо эҳтиёт иқдом кунед.",
        "rollback": "Вогардонии вироишҳо",
-       "rollback_short": "Вогард",
        "rollbacklink": "вогардони",
        "rollbackfailed": "Вогардони нашуд",
        "cantrollback": "Наметавон вироишро вогардонд; охирин ҳиссагузор танҳо муаллифи ин мақола аст.",
        "import-invalid-interwiki": "Аз викии мушаххасшуда наметавон воридот кард.",
        "importlogpage": "Вориди гузоришҳо",
        "importlogpagetext": "Ворид кардани саҳифаҳо бо ҳамроҳи таърихчаи вироиши онҳо аз викиҳои дигар.",
-       "import-logentry-upload": "[[$1]] аз тариқи боргузории парванда, ворид шуд",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|нусха|нусха}}",
-       "import-logentry-interwiki": "$1 трансвикишуда",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|нусха|нусха}} аз $2",
        "tooltip-pt-userpage": "Саҳифаи корбарии шумо",
        "tooltip-pt-anonuserpage": "Саҳифаи корбари IP, ки бо он шумо вироиш мекунед",
        "iranian-calendar-m10": "Ҷадӣ",
        "iranian-calendar-m11": "Далв",
        "iranian-calendar-m12": "Ҳут",
-       "unknown_extension_tag": "Бачасби ношиноси афзунаи \"$1\"",
        "version": "Нусхаи Медиавики",
        "version-extensions": "Афзунаҳои насбшуда",
        "version-specialpages": "Саҳифаҳои вижа",
        "version-parser-function-hooks": "Қолабҳои амалгарҳои таҷзеҳгар",
        "version-hook-name": "Номи қолаб",
        "version-hook-subscribedby": "Воридшуда тавассути",
-       "version-version": "(Нусха $1)",
+       "version-version": "($1)",
        "version-license": "Иҷозатномаи МедиаВики",
        "version-ext-colheader-license": "Иҷозатнома",
        "version-ext-colheader-credits": "Муаллифон",
        "specialpages-group-pagetools": "Абзорҳои саҳифа",
        "specialpages-group-wiki": "Додаҳо ва абзорҳо",
        "specialpages-group-redirects": "Дар ҳоли тағйири масири саҳифаҳои вижа",
+       "specialpages-group-developer": "Абзорҳои тавсиядиҳандагон",
        "blankpage": "Саҳифаи холӣ",
        "tag-filter": "Филтри [[Special:Tags|барчасбҳо]]:",
        "tags-active-header": "Фаъол?",
        "revdelete-unrestricted": "маҳдудиятҳо аз мудирон бардошта шуданд",
        "rightsnone": "(ҳеҷ)",
        "revdelete-summary": "вироиши хулоса",
-       "feedback-subject": "Мавзӯъ:",
-       "feedback-message": "Пайём:",
        "feedback-cancel": "Лағв",
-       "feedback-submit": "Ирсоли Пешниҳод",
        "feedback-close": "Анҷом шуд.",
+       "feedback-message": "Пайём:",
+       "feedback-subject": "Мавзӯъ:",
+       "feedback-submit": "Ирсол",
        "expandtemplates": "Бастдодани шаблонҳо",
        "expand_templates_intro": "Ин саҳифаи вижа матнеро дарёфт карда ва тамоми шаблонҳои ба кор рафта дар онро ба таври бозгаште баст медиҳад. Ҳамчунин тобеҳои таҷзеҳ\n<nowiki>{{</nowiki>#language:...}}, ва мутағйирҳое чун\n<nowiki>{{</nowiki>CURRENTDAY}}&mdash;ро ҳам баст медиҳад – дар воқеъ тақрибан ҳар чиро ки дохили ду акулот бошад.\nИн кор бо садо задани марҳилаи таҷзеҳи марбут дар худи МедиаВики сурат мегирад.",
        "expand_templates_title": "Унвони мавзӯъ, барои {{FULLPAGENAME}} ва ғайра.:",
index 76ef9bd..c3dff49 100644 (file)
        "deletereason-dropdown": "*Dalelhoi umumiji hazf\n** Darxosti korbar\n** Naqzi haqqi taksir\n** Xarobkorī",
        "delete-edit-reasonlist": "Viroiş hazf dalelho",
        "rollback": "Vogardoniji viroişho",
-       "rollback_short": "Vogard",
        "rollbacklink": "vogardoni",
        "rollbackfailed": "Vogardoni naşud",
        "cantrollback": "Nametavon viroişro vogardond; oxirin hissaguzor tanho muallifi in maqola ast.",
        "iranian-calendar-m10": "Çadī",
        "iranian-calendar-m11": "Dalv",
        "iranian-calendar-m12": "Hut",
-       "unknown_extension_tag": "Bacasbi noşinosi afzunai \"$1\"",
        "version": "Nusxai Mediaviki",
        "version-extensions": "Afzunahoi nasbşuda",
        "version-specialpages": "Sahifahoi viƶa",
        "version-parser-function-hooks": "Qolabhoi amalgarhoi taçzehgar",
        "version-hook-name": "Nomi qolab",
        "version-hook-subscribedby": "Voridşuda tavassuti",
-       "version-version": "(Nusxa $1)",
+       "version-version": "($1)",
        "version-license": "Içozatnoma",
        "version-software": "Nusxai nasbşuda",
        "version-software-product": "Mahsul",
        "specialpages-group-pagetools": "Abzorhoi sahifa",
        "specialpages-group-wiki": "Viki dodaho va abzorho",
        "specialpages-group-redirects": "Dar holi taƣjiri masiri sahifahoi viƶa",
+       "specialpages-group-developer": "Abzorhoi tavsijadihandagon",
        "blankpage": "Sahifai xolī",
        "tags-edit": "viroiş",
        "dberr-info": "(Imkoni barqarori irtibot bo pojgohi doda vuçud nadorad: $1)",
index c4e7449..8d6541c 100644 (file)
@@ -20,7 +20,9 @@
                        "לערי ריינהארט",
                        "จักรกฤช วงศ์สระหลวง (Jakkrit Vongsraluang) / PaePae",
                        "วรากร อึ้งวิเชียร (Varakorn Ungvichian)",
-                       "아라"
+                       "아라",
+                       "Pphongpan355",
+                       "Macofe"
                ]
        },
        "tog-underline": "การขีดเส้นใต้ลิงก์:",
        "site-atom-feed": "ฟีดอะตอม $1",
        "page-rss-feed": "ฟีดอาร์เอสเอส \"$1\"",
        "page-atom-feed": "ฟีดอะตอม \"$1\"",
-       "red-link-title": "$1 (หà¸\99à¹\89าà¸\99ีà¹\89à¹\84มà¹\88มี)",
+       "red-link-title": "$1 (à¹\84มà¹\88มีหà¸\99à¹\89า)",
        "sort-descending": "เรียงจากมากไปน้อย",
        "sort-ascending": "เรียงจากน้อยไปมาก",
        "nstab-main": "หน้า",
        "createacct-imgcaptcha-ph": "กรอกข้อความที่คุณเห็นด้านบน",
        "createacct-submit": "สร้างบัญชีของคุณ",
        "createacct-another-submit": "สร้างอีกบัญชี",
-       "createacct-benefit-heading": "{{SITENAME}}สรà¹\89าà¸\87à¸\82ึà¹\89à¸\99à¸\88าà¸\81à¸\84à¸\99à¹\80à¸\8aà¹\88à¸\99à¸\84ุà¸\93",
+       "createacct-benefit-heading": "{{SITENAME}}สร้างจากคนเช่นคุณ",
        "createacct-benefit-body1": "$1 การแก้ไข",
        "createacct-benefit-body2": "$1 หน้า",
        "createacct-benefit-body3": "$1 ผู้ร่วมเขียนล่าสุด",
        "media_tip": "เชื่อมโยงไฟล์",
        "sig_tip": "ลายเซ็นของคุณพร้อมตราเวลา",
        "hr_tip": "เส้นนอน (ใช้อย่างจำกัด)",
-       "summary": "à¸\84ำอà¸\98ิà¸\9aายà¹\82à¸\94ยย่อ:",
+       "summary": "à¸\84ำอà¸\98ิà¸\9aายอยà¹\88าà¸\87ย่อ:",
        "subject": "เรื่อง/พาดหัว:",
        "minoredit": "เป็นการแก้ไขเล็กน้อย",
        "watchthis": "เฝ้าดูหน้านี้",
-       "savearticle": "บันทึก",
+       "savearticle": "บันทึกหน้า",
        "preview": "ตัวอย่าง",
        "showpreview": "แสดงตัวอย่าง",
-       "showdiff": "à¹\81สà¸\94à¸\87à¸\84วามเปลี่ยนแปลง",
+       "showdiff": "à¹\81สà¸\94à¸\87à¸\81ารเปลี่ยนแปลง",
        "blankarticle": "<strong>คำเตือน:</strong> หน้าที่คุณกำลังสร้างว่าง หากคุณคลิก \"{{int:savearticle}}\" อีกครั้ง จะสร้างหน้าโดยไม่มีเนื้อหาใด",
        "anoneditwarning": "<strong>คำเตือน:</strong> คุณมิได้ล็อกอิน สาธารณะจะเห็นเลขที่อยู่ไอพีของคุณหากคุณแก้ไข หากคุณ<strong>[$1 ล็อกอิน]</strong>หรือ<strong>[$2 สร้างบัญชี]</strong> การแก้ไขของคุณจะถือว่าเป็นของชื่อผู้ใช้ของคุณ ร่วมกับประโยชน์อื่น",
        "anonpreviewwarning": "<em>คุณมิได้ล็อกอิน การบันทึกจะเก็บเลขที่อยู่ไอพีของคุณในประวัติการแก้ไขของหน้านี้</em>",
        "shown-title": "แสดง $1 ผลลัพธ์ต่อหน้า",
        "viewprevnext": "ดู ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "<strong>มีหน้าชื่อ \"[[:$1]]\" บนวิกินี้</strong>\n{{PLURAL:$2|0=|ดูผลการค้นหาอื่นที่พบเพิ่มเติม}}",
-       "searchmenu-new": "<strong>สรà¹\89าà¸\87หà¸\99à¹\89า \"[[:$1]]\" à¸\9aà¸\99วิà¸\81ิà¸\99ีà¹\89!</strong> {{PLURAL:$2|0=|à¸\94ูหà¸\99à¹\89าà¸\97ีà¹\88à¸\9eà¸\9aà¸\94à¹\89วยà¸\81ารà¸\84à¹\89à¸\99หาà¸\82อà¸\87à¸\84ุà¸\93|à¸\94ูà¸\9cลà¸\81ารà¸\84à¹\89à¸\99หาà¸\97ีà¹\88à¸\9eà¸\9aà¹\80à¸\9eิà¹\88มà¹\80à¸\95ิม}}",
+       "searchmenu-new": "<strong>สรà¹\89าà¸\87หà¸\99à¹\89า \"[[:$1]]\" à¸\9aà¸\99วิà¸\81ิà¸\99ีà¹\89!</strong> {{PLURAL:$2|0=|à¸\94ูหà¸\99à¹\89าà¸\97ีà¹\88à¸\81ารà¸\84à¹\89à¸\99หาà¸\82อà¸\87à¸\84ุà¸\93à¸\9eà¸\9aà¹\80à¸\9eิà¹\88ม|à¸\94ูà¸\9cลà¸\81ารà¸\84à¹\89à¸\99หาà¸\97ีà¹\88à¸\9eà¸\9aà¹\80à¸\9eิà¹\88ม}}",
        "searchprofile-articles": "หน้าเนื้อหา",
        "searchprofile-images": "สื่อประสม",
        "searchprofile-everything": "ทุกอย่าง",
        "recentchanges-feed-description": "ติดตามการปรับปรุงล่าสุดในวิกินี้ในฟีดนี้",
        "recentchanges-label-newpage": "การแก้ไขนี้สร้างหน้าใหม่",
        "recentchanges-label-minor": "เป็นการแก้ไขเล็กน้อย",
-       "recentchanges-label-bot": "à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¸\99ีà¹\89à¸\81ระà¸\97ำà¹\82à¸\94ยà¸\9aอà¸\95",
+       "recentchanges-label-bot": "à¸\9aอà¸\95à¸\81ระà¸\97ำà¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¸\99ีà¹\89",
        "recentchanges-label-unpatrolled": "การแก้ไขนี้ยังไม่ได้ตรวจสอบ",
-       "recentchanges-label-plusminus": "à¸\82à¸\99าà¸\94à¸\82อà¸\87หà¸\99à¹\89าà¹\80à¸\9bลีà¹\88ยà¸\99à¹\84à¸\9bà¸\94à¹\89วยà¸\88ำà¸\99วà¸\99à¹\84à¸\9aà¸\95à¹\8cà¹\80à¸\97à¹\88าà¸\99ีà¹\89",
+       "recentchanges-label-plusminus": "ขนาดของหน้าเปลี่ยนไปจำนวนไบต์เท่านี้",
        "recentchanges-legend-heading": "'''คำอธิบายสัญลักษณ์:'''",
        "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (ดูเพิ่มที่ [[Special:NewPages|รายชื่อหน้าใหม่]])",
        "rcnotefrom": "ด้านล่างเป็นการเปลี่ยนแปลงตั้งแต่ <strong>$3, $4</strong> (แสดงมากสุด <strong>$1</strong>)",
        "recentchangeslinked-title": "การปรับปรุงที่โยงกับ \"$1\"",
        "recentchangeslinked-summary": "นี่คือรายการเปลี่ยนแปลงล่าสุดของหน้าที่ถูกลิงก์จากหน้าเฉพาะ (หรือไปสมาชิกของหมวดหมู่เฉพาะ)\nหน้าใน[[Special:Watchlist|รายการเฝ้าดู]]แสดงเป็น<strong>ตัวหนา</strong>",
        "recentchangeslinked-page": "ชื่อหน้า:",
-       "recentchangeslinked-to": "à¹\81สà¸\94à¸\87à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87à¹\84à¸\9bยัà¸\87หà¸\99à¹\89าà¸\97ีà¹\88à¹\80à¸\8aืà¹\88อมà¹\82ยà¸\87มายัà¸\87หน้าที่ระบุแทน",
+       "recentchangeslinked-to": "à¹\81สà¸\94à¸\87à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87à¹\84à¸\9bหà¸\99à¹\89าà¸\8bึà¹\88à¸\87à¹\82ยà¸\87à¹\84à¸\9bหน้าที่ระบุแทน",
        "upload": "อัปโหลดไฟล์",
        "uploadbtn": "อัปโหลดไฟล์",
        "reuploaddesc": "ยกเลิกการอัปโหลดและกลับไปยังแบบอัปโหลด",
        "listfiles-latestversion-no": "ไม่",
        "file-anchor-link": "ไฟล์",
        "filehist": "ประวัติไฟล์",
-       "filehist-help": "à¸\81à¸\94à¹\80ลือà¸\81วัà¸\99/เวลาเพื่อดูไฟล์ที่ปรากฏในขณะนั้น",
+       "filehist-help": "à¸\84ลิà¸\81วัà¸\99à¸\97ีà¹\88/เวลาเพื่อดูไฟล์ที่ปรากฏในขณะนั้น",
        "filehist-deleteall": "ลบทั้งหมด",
        "filehist-deleteone": "ลบ",
        "filehist-revert": "ย้อน",
        "filehist-current": "ปัจจุบัน",
-       "filehist-datetime": "วัน/เวลา",
+       "filehist-datetime": "วันที่/เวลา",
        "filehist-thumb": "รูปย่อ",
        "filehist-thumbtext": "รูปย่อสำหรับรุ่นเมื่อ $1",
        "filehist-nothumb": "ไม่มีรูปย่อ",
        "filehist-filesize": "ขนาดไฟล์",
        "filehist-comment": "ความเห็น",
        "imagelinks": "การใช้ไฟล์",
-       "linkstoimage": "มี $1 หน้าเชื่อมโยงมายังไฟล์นี้:",
+       "linkstoimage": "$1 หน้าต่อไปนี้โยงมาไฟล์นี้:",
        "linkstoimage-more": "มีหน้าเชื่อมโยงมาไฟล์นี้กว่า $1 หน้า\nรายการต่อไปนี้แสดงการเชื่อมโยง $1 หน้าแรกที่มายังไฟล์นี้เท่านั้น\nมี[[Special:WhatLinksHere/$2|รายการเต็ม]]",
        "nolinkstoimage": "ไม่มีหน้าเชื่อมโยงมายังไฟล์นี้",
        "morelinkstoimage": "ดู[[Special:WhatLinksHere/$1|การเชื่อมโยง]]มายังไฟล์นี้เพิ่มเติม",
        "allpagesto": "แสดงหน้าจบที่:",
        "allarticles": "หน้าทั้งหมด",
        "allinnamespace": "หน้าทั้งหมด (เนมสเปซ $1)",
-       "allpagessubmit": "à¸\94ู",
+       "allpagessubmit": "à¹\84à¸\9b",
        "allpagesprefix": "แสดงหน้าที่ขึ้นต้นด้วย:",
        "allpagesbadtitle": "ชื่อเรื่องนี้ไม่ถูกต้องหรือมีคำเติมหน้าข้ามภาษาหรือข้ามโครงการ \nอาจมีอักขระที่ไม่สามารถใช้ในชื่อเรื่องได้",
        "allpages-bad-ns": "{{SITENAME}} ไม่มีเนมสเปซ \"$1\"",
        "whatlinkshere-prev": "{{PLURAL:$1|ก่อนหน้า|ก่อนหน้า $1}}",
        "whatlinkshere-next": "{{PLURAL:$1|ถัดไป|ถัดไป $1}}",
        "whatlinkshere-links": "← ลิงก์",
-       "whatlinkshere-hideredirs": "$1หà¸\99à¹\89าเปลี่ยนทาง",
+       "whatlinkshere-hideredirs": "$1à¸\81ารเปลี่ยนทาง",
        "whatlinkshere-hidetrans": "$1 ถูกรวมอยู่",
        "whatlinkshere-hidelinks": "$1 ลิงก์",
        "whatlinkshere-hideimages": "$1ลิงก์ไฟล์",
        "import-rootpage-nosubpage": "เนมสเปซ \"$1\" ของหน้าต้นทางไม่อนุญาตหน้าย่อย",
        "importlogpage": "ปูมการนำเข้า",
        "importlogpagetext": "นำเข้าไฟล์จากวิกิอื่น โดยผ่านทางผู้ดูแลระบบ",
-       "import-logentry-upload": "นำเข้า [[$1]] ผ่านการอัปโหลดแล้ว",
        "import-logentry-upload-detail": "นำเข้า $1 {{PLURAL:$1|รุ่นการแก้ไข|รุ่นการแก้ไข}}",
-       "import-logentry-interwiki": "นำเข้าข้ามวิกิ $1 แล้ว",
        "import-logentry-interwiki-detail": "นำเข้า $1 {{PLURAL:$1|รุ่นการแก้ไข|รุ่นการแก้ไข}}จาก $2",
        "javascripttest": "การทดสอบจาวาสคริปต์",
        "javascripttest-pagetext-noframework": "หน้านี้สงวนไว้สำหรับดำเนินงานการทดสอบจาวาสคริปต์",
        "tooltip-pt-anonuserpage": "หน้าผู้ใช้ของเลขที่อยู่ไอพีที่คุณกำลังใช้แก้ไข",
        "tooltip-pt-mytalk": "หน้าพูดคุยของคุณ",
        "tooltip-pt-anontalk": "อภิปรายเกี่ยวกับการแก้ไขจากเลขที่อยู่ไอพีนี้",
-       "tooltip-pt-preferences": "à¸\95ัà¹\89à¸\87à¸\84à¹\88าà¸\81ารà¹\83à¸\8aà¹\89à¸\87าà¸\99สà¹\88วà¸\99à¸\95ัว",
-       "tooltip-pt-watchlist": "รายà¸\81ารหà¸\99à¹\89าà¸\97ีà¹\88à¸\84ุà¸\93à¹\80à¸\9dà¹\89าà¸\94ูà¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82",
+       "tooltip-pt-preferences": "à¸\81ารà¸\95ัà¹\89à¸\87à¸\84à¹\88าà¸\82อà¸\87à¸\84ุà¸\93",
+       "tooltip-pt-watchlist": "รายà¸\81ารหà¸\99à¹\89าà¸\97ีà¹\88à¸\84ุà¸\93à¸\81ำลัà¸\87à¹\80à¸\9dà¹\89าà¸\94ูà¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81ลà¸\9bà¸\87",
        "tooltip-pt-mycontris": "รายการหน้าที่คุณเขียน",
-       "tooltip-pt-login": "ไม่จำเป็นต้องล็อกอินในการแก้ไข แต่แนะนำอย่างยิ่งให้ล็อกอิน",
+       "tooltip-pt-login": "ไม่จำเป็นต้องล็อกอิน แต่แนะนำอย่างยิ่งให้ล็อกอิน",
        "tooltip-pt-logout": "ล็อกเอาต์",
        "tooltip-pt-createaccount": "สนับสนุนให้คุณสร้างบัญชีและล็อกอิน แต่ไม่บังคับ",
        "tooltip-ca-talk": "อภิปรายเกี่ยวกับหน้าเนื้อหา",
        "tooltip-ca-watch": "เพิ่มหน้านี้เข้ารายการเฝ้าดู",
        "tooltip-ca-unwatch": "นำหน้านี้ออกจากรายการเฝ้าดู",
        "tooltip-search": "ค้นหา {{SITENAME}}",
-       "tooltip-search-go": "à¸\95รà¸\87à¹\84à¸\9bยัà¸\87หน้าที่ตรงกับชื่อนี้ (ถ้ามี)",
+       "tooltip-search-go": "à¹\84à¸\9bหน้าที่ตรงกับชื่อนี้ (ถ้ามี)",
        "tooltip-search-fulltext": "ค้นหาหน้าที่มีข้อความนี้",
        "tooltip-p-logo": "เยี่ยมชมหน้าหลัก",
        "tooltip-n-mainpage": "เยี่ยมชมหน้าหลัก",
        "tooltip-t-recentchangeslinked": "รายการปรับปรุงล่าสุดในหน้าที่ลิงก์จากหน้านี้",
        "tooltip-feed-rss": "ฟีดชนิดอาร์เอสเอส (RSS) ของหน้านี้",
        "tooltip-feed-atom": "ฟีดอะตอม (Atom) ของหน้านี้",
-       "tooltip-t-contributions": "รายà¸\81ารà¹\80รืà¹\88อà¸\87à¸\97ีà¹\88à¹\80à¸\82ียà¸\99à¹\82à¸\94ยà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\99ีà¹\89",
+       "tooltip-t-contributions": "รายà¸\81ารà¹\80รืà¹\88อà¸\87à¸\97ีà¹\88à¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\99ีà¹\89à¹\80à¸\82ียà¸\99",
        "tooltip-t-emailuser": "ส่งอีเมลถึงผู้ใช้นี้",
        "tooltip-t-info": "สารสนเทศเพิ่มเติมเกี่ยวกับหน้านี้",
        "tooltip-t-upload": "อัปโหลดไฟล์",
        "tooltip-ca-nstab-project": "ดูหน้าโครงการ",
        "tooltip-ca-nstab-image": "ดูหน้าภาพไฟล์",
        "tooltip-ca-nstab-mediawiki": "ดูข้อความระบบ",
-       "tooltip-ca-nstab-template": "à¸\94ูหà¸\99à¹\89าà¹\81มà¹\88à¹\81à¸\9aà¸\9a",
+       "tooltip-ca-nstab-template": "ดูแม่แบบ",
        "tooltip-ca-nstab-help": "ดูหน้าคำอธิบาย",
        "tooltip-ca-nstab-category": "ดูหน้าหมวดหมู่",
        "tooltip-minoredit": "ทำเครื่องหมายเป็นการแก้ไขเล็กน้อย",
-       "tooltip-save": "บันทึกการแก้ไข",
+       "tooltip-save": "บันทึกการแก้ไขของคุณ",
        "tooltip-preview": "แสดงตัวอย่างการเปลี่ยนแปลงของคุณ กรุณาใช้คำสั่งนี้ก่อนบันทึก!",
        "tooltip-diff": "แสดงการเปลี่ยนการต่อข้อความ",
        "tooltip-compareselectedversions": "แสดงความแตกต่างระหว่างสองรุ่นที่เลือกของหน้านี้",
        "tooltip-recreate": "สร้างหน้านี้อีกครั้งแม้เคยถูกลบ",
        "tooltip-upload": "เริ่มอัปโหลด",
        "tooltip-rollback": "\"ย้อนกลับฉุกเฉิน\" ใช้ย้อนการแก้ไขในหน้านี้ของผู้เขียนคนล่าสุดในคลิกเดียว",
-       "tooltip-undo": "\"ยà¹\89อà¸\99\" ย้อนการแก้ไขนี้และเปิดแบบแก้ไขในภาวะตัวอย่าง เปิดให้เพิ่มเหตุผลในคำอธิบาย",
+       "tooltip-undo": "\"à¸\81ารà¸\97ำà¸\81ลัà¸\9a\" ย้อนการแก้ไขนี้และเปิดแบบแก้ไขในภาวะตัวอย่าง เปิดให้เพิ่มเหตุผลในคำอธิบาย",
        "tooltip-preferences-save": "บันทึกการตั้งค่า",
-       "tooltip-summary": "à¹\83สà¹\88à¸\84ำอà¸\98ิà¸\9aายอยà¹\88าà¸\87ยà¹\88อสั้น ๆ",
+       "tooltip-summary": "à¹\83สà¹\88สรุà¸\9bสั้น ๆ",
        "common.css": "/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ทุกสกิน */",
        "print.css": "/* สไตล์ชีตในหน้านี้จะส่งผลแก่ข้อมูลส่งออกเป็นสิ่งพิมพ์ */",
        "noscript.css": "/* สไตล์ชีตในหน้านี้จะส่งผลแก่ผู้ใช้ที่ปิดการใช้งานจาวาสคริปต์ */",
        "file-info-size-pages": "$1 × $2 พิกเซล, ขนาดไฟล์: $3, ประเภท MIME: $4, $5 {{PLURAL:$5|หน้า|หน้า}}",
        "file-nohires": "ไม่มีความละเอียดสูงกว่านี้",
        "svg-long-desc": "ไฟล์ SVG, $1 × $2 พิกเซล พอเป็นพิธี, ขนาดไฟล์: $3",
+       "svg-long-desc-animated": "ไฟล์ SVG ขนาด $1 x $2 ขนาดไฟล์ $3",
        "svg-long-error": "ไฟล์ SVG ไม่ถูกต้อง: $1",
        "show-big-image": "ไฟล์ต้นฉบับ",
-       "show-big-image-other": "อื่นๆ {{PLURAL:$2|resolution|resolutions}}: $1.",
+       "show-big-image-preview": "ขนาดของตัวอย่างนี้: $1",
+       "show-big-image-other": "ความละเอียดอื่น: $1",
        "show-big-image-size": "$1 × $2 พิกเซล",
        "file-info-gif-looped": "วนซ้ำ",
        "file-info-gif-frames": "$1 {{PLURAL:$1|เฟรม|เฟรม}}",
        "yesterday-at": "เมื่อวานเมื่อ $1 น.",
        "bad_image_list": "รูปแบบแสดงต่อไปนี้:\n\nเฉพาะรายการที่แสดง (ในแถวขึ้นต้นด้วย *) โดยลิงก์แรกของแต่ละแถวเป็นลิงก์ไปยังภาพที่เสีย\nโดยลิงก์ถัดไปเป็นข้อยกเว้น เช่น บทความที่ภาพถูกจัดในบรรทัดเดียวกับส่วนข้อความ",
        "metadata": "ข้อมูลแนบ",
-       "metadata-help": "à¹\84à¸\9fลà¹\8cà¸\99ีà¹\89มีà¸\82à¹\89อมูลà¹\80à¸\9eิà¹\88มà¹\80à¸\95ิมà¹\81à¸\99à¸\9aà¹\84วà¹\89 à¸­à¸²à¸\88à¸\88ะมาà¸\88าà¸\81 à¸\81ลà¹\89อà¸\87à¸\94ิà¸\88ิà¸\97ัล à¸ªà¹\81à¸\81à¸\99à¹\80à¸\99อรà¹\8c à¸«à¸£à¸·à¸­à¹\80à¸\84รืà¹\88อà¸\87รัà¸\9aสà¹\88à¸\87à¸\88ีà¸\9eีà¹\80อส à¸­à¸¢à¹\88าà¸\87à¹\84รà¸\81à¹\87à¸\95ามà¸\82à¹\89อมูลà¸\97ีà¹\88à¹\80à¸\81à¹\87à¸\9aà¹\84วà¹\89อาà¸\88à¸\96ูà¸\81à¸\94ัà¸\94à¹\81à¸\9bลà¸\87à¸\96à¹\89าà¹\84à¸\9fลà¹\8cà¸\95à¹\89à¸\99à¸\89à¸\9aัà¸\9aà¸\96ูà¸\81à¹\81à¸\81à¹\89à¹\84à¸\82à¸\88าà¸\81à¸\8bอà¸\9fà¸\95à¹\8cà¹\81วรà¹\8cอืà¹\88à¸\99",
+       "metadata-help": "à¹\84à¸\9fลà¹\8cà¸\99ีà¹\89มีสารสà¸\99à¹\80à¸\97ศà¹\80à¸\9eิà¹\88มà¹\80à¸\95ิม à¸­à¸²à¸\88à¹\80à¸\9eิà¹\88มà¸\88าà¸\81à¸\81ลà¹\89อà¸\87à¸\96à¹\88ายรูà¸\9bà¸\94ิà¸\88ิà¸\97ัลหรือสà¹\81à¸\81à¸\99à¹\80à¸\99อรà¹\8cà¸\97ีà¹\88à¹\83à¸\8aà¹\89à¹\80à¸\9eืà¹\88อสรà¹\89าà¸\87หรือà¹\81à¸\9bลà¸\87ภาà¸\9eà¹\80à¸\9bà¹\87à¸\99à¸\94ิà¸\88ิà¸\97ัล\nหาà¸\81à¹\84à¸\9fลà¹\8cà¸\99ีà¹\89à¸\96ูà¸\81à¸\94ัà¸\94à¹\81à¸\9bรà¸\88าà¸\81สà¸\96าà¸\99ะà¸\95à¹\89à¸\99à¸\89à¸\9aัà¸\9a à¸£à¸²à¸¢à¸¥à¸°à¹\80อียà¸\94à¸\9aาà¸\87อยà¹\88าà¸\87อาà¸\88à¹\84มà¹\88สะà¸\97à¹\89อà¸\99à¹\84à¸\9fลà¹\8cà¸\97ีà¹\88à¸\96ูà¸\81à¸\94ัà¸\94à¹\81à¸\9bลอยà¹\88าà¸\87สมà¸\9aูรà¸\93à¹\8c",
        "metadata-expand": "แสดงรายละเอียดขยาย",
        "metadata-collapse": "ซ่อนรายละเอียดขยาย",
        "metadata-fields": "เขตข้อมูลเมทาเดตาของภาพดังที่แสดงรายการไว้ในข้อความนี้ จะถูกรวมบนหน้าภาพเมื่อตารางเมทาเดตาถูกยุบ เขตข้อมูลอื่น ๆ จะถูกซ่อนโดยปริยาย\n* make\n* model\n* datetimeoriginal\n* exposuretime\n* fnumber\n* isospeedratings\n* focallength\n* artist\n* copyright\n* imagedescription\n* gpslatitude\n* gpslongitude\n* gpsaltitude",
        "exif-primarychromaticities": "โครมาติกของไพรมาริตี",
        "exif-ycbcrcoefficients": "สัมประสิทธิเมทริกซ์การเปลียนแปลงของสเปซสี",
        "exif-referenceblackwhite": "คู่จุดสีขาวและดำสำหรับอ้างอิง",
-       "exif-datetime": "วัà¸\99à¸\97ีà¹\88à¹\81ละà¹\80วลาà¸\9bรัà¸\9aà¸\9bรุà¸\87",
+       "exif-datetime": "วัà¸\99à¸\97ีà¹\88à¹\81ละà¹\80วลาà¹\80à¸\9bลีà¹\88ยà¸\99à¹\84à¸\9fลà¹\8c",
        "exif-imagedescription": "ชื่อภาพ",
        "exif-make": "ผู้ผลิตกล้อง",
-       "exif-model": "รุ่นกล้อง",
+       "exif-model": "รุ่นกล้องถ่ายรูป",
        "exif-software": "ซอฟต์แวร์ที่ใช้",
        "exif-artist": "ผู้สร้างสรรค์",
        "exif-copyright": "ผู้ทรงลิขสิทธิ์",
        "exif-pixelxdimension": "ความสูงของภาพ",
        "exif-usercomment": "ความเห็นผู้ใช้",
        "exif-relatedsoundfile": "ไฟล์เสียงที่เกี่ยวข้อง",
-       "exif-datetimeoriginal": "วัà¸\99à¸\97ีà¹\88à¹\81ละà¹\80วลาà¸\97ีà¹\88สรà¹\89าà¸\87",
-       "exif-datetimedigitized": "วัà¸\99à¸\97ีà¹\88à¹\81ละà¹\80วลาà¸\97ีà¹\88à¸\94ิà¸\88ิà¹\84à¸\97à¸\8bà¹\8c",
+       "exif-datetimeoriginal": "วัà¸\99à¸\97ีà¹\88à¹\81ละà¹\80วลาà¸\81ารà¸\81à¹\88อà¸\81ำà¹\80à¸\99ิà¸\94à¸\82à¹\89อมูล",
+       "exif-datetimedigitized": "วัà¸\99à¸\97ีà¹\88à¹\81ละà¹\80วลาà¸\81ารà¹\81à¸\9bลà¸\87à¹\80à¸\9bà¹\87à¸\99à¸\94ิà¸\88ิà¸\97ัล",
        "exif-subsectime": "เสี้ยววินาที วันที่ เวลา",
        "exif-subsectimeoriginal": "เสี้ยววินาที วันที่ เวลาต้นฉบับ",
        "exif-subsectimedigitized": "เสี้ยววินาที วันที่ เวลาที่ดิจิไทซ์",
        "version-parser-function-hooks": "ฮุกที่มีฟังก์ชันตัวแจงส่วน",
        "version-hook-name": "ชื่อฮุก",
        "version-hook-subscribedby": "สนับสนุนโดย",
-       "version-version": "(รุ่น $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[ไม่มีชื่อ]",
        "version-license": "สัญญาอนุญาตมีเดียวิกิ",
        "version-poweredby-credits": "วิกินี้จัดทำโดย '''[https://www.mediawiki.org/ MediaWiki]''', สงวนลิขสิทธิ์ © 2001-$1 โดย $2",
        "revdelete-uname-unhid": "ชื่อผู้ใช้ถูกแสดง",
        "revdelete-restricted": "เพิ่มการจำกัดกับผู้ดูแลระบบ",
        "revdelete-unrestricted": "ยกเลิกการจำกัดแก่ผู้ดูแลระบบ",
+       "logentry-block-block": "$1 บล็อก $3 โดยมีเวลาหมดอายุเมื่อ $5 $6",
+       "logentry-block-unblock": "$1 ปลดบล็อก $3",
+       "logentry-block-reblock": "$1 เปลี่ยนการตั้งค่าการบล็อกสำหรับ $3 โดยมีเวลาหมดอายุเมื่อ $5 $6",
+       "logentry-suppress-block": "$1 บล็อก $3 โดยมีเวลาหมดอายุเมื่อ $5 $6",
+       "logentry-suppress-reblock": "$1 เปลี่ยนการตั้งค่าการบล็อกสำหรับ $3 โดยมีเวลาหมดอายุเมื่อ $5 $6",
        "logentry-merge-merge": "$1 {{GENDER:$2|รวม}} $3 เข้ากับ $4 (รุ่นถึง $5)",
        "logentry-move-move": "$1 ย้ายหน้า $3 ไปยัง $4",
        "logentry-move-move-noredirect": "$1 ย้ายหน้า $3 ไปยัง $4 โดยไม่สร้างหน้าเปลี่ยนทางตามมา",
        "logentry-patrol-patrol": "$1 ทำเครื่องหมายว่ารุ่น $4 ของหน้า $3 ได้รับการตรวจสอบแล้ว",
        "logentry-patrol-patrol-auto": "$1 ทำเครื่องหมายโดยอัตโนมัติว่ารุ่น $4 ของหน้า $3 ได้รับการตรวจสอบแล้ว",
        "logentry-newusers-newusers": "บัญชีผู้ใช้ $1 ถูกสร้าง",
-       "logentry-newusers-create": "บัญชีผู้ใช้ $1 ถูกสร้างขึ้น",
+       "logentry-newusers-create": "บัญชีผู้ใช้ $1 ถูกสร้าง",
        "logentry-newusers-create2": "บัญชีผู้ใช้ $3 ถูกสร้างขึ้นโดย $1",
        "logentry-newusers-byemail": "บัญชีผู้ใช้ $3 ถูกสร้างขึ้นโดย $1 และส่งรหัสผ่านไปทางอีเมลแล้ว",
        "logentry-newusers-autocreate": "บัญชีผู้ใช้ $1 ถูกสร้างขึ้นอัตโนมัติ",
        "logentry-upload-revert": "$1 อัปโหลด $3",
        "rightsnone": "(ไม่มี)",
        "revdelete-summary": "คำอธิบายโดยย่อ",
-       "feedback-bugornote": "หากคุณได้อธิบายปัญหาทางเทคนิคในรายละเอียดแล้ว โปรด[$1 รายงานจุดบกพร่อง]\nมิฉะนั้น คุณสามารถแบบอย่างง่ายด้านล่าง ความเห็นของคุณจะถูกเพิ่มเข้าสู่ \"[$3 $2]\" ร่วมกับชื่อผู้ใช้ของคุณ",
-       "feedback-subject": "เรื่อง:",
-       "feedback-message": "ข้อความ:",
-       "feedback-cancel": "ยกเลิก",
-       "feedback-submit": "ส่งคำติชม",
        "feedback-adding": "เพิ่มคำติชมเข้าไปที่หน้า...",
-       "feedback-thanks": "ขอบคุณ! ผลป้อนกลับของคุณถูกโพสต์ไปยังหน้า \"[$2 $1]\" แล้ว",
-       "feedback-close": "เสร็จสิ้น",
        "feedback-bugcheck": "ยอดเยี่ยม! เพียงตรวจสอบว่าจุดบกพร่องนั้นมิใช่หนึ่งใน[$1 จุดบกพร่องที่ทราบแล้ว]",
        "feedback-bugnew": "ฉันตรวจสอบแล้ว รายงานจุดบกพร่องใหม่",
+       "feedback-bugornote": "หากคุณได้อธิบายปัญหาทางเทคนิคในรายละเอียดแล้ว โปรด[$1 รายงานจุดบกพร่อง]\nมิฉะนั้น คุณสามารถแบบอย่างง่ายด้านล่าง ความเห็นของคุณจะถูกเพิ่มเข้าสู่ \"[$3 $2]\" ร่วมกับชื่อผู้ใช้ของคุณ",
+       "feedback-cancel": "ยกเลิก",
+       "feedback-close": "เสร็จสิ้น",
+       "feedback-message": "ข้อความ:",
+       "feedback-subject": "เรื่อง:",
+       "feedback-submit": "ตกลง",
+       "feedback-thanks": "ขอบคุณ! ผลป้อนกลับของคุณถูกโพสต์ไปยังหน้า \"[$2 $1]\" แล้ว",
        "searchsuggest-search": "ค้นหา",
        "searchsuggest-containing": "มี...",
        "api-error-badaccess-groups": "คุณไม่ได้รับอนุญาตให้อัปโหลดไฟล์มายังวิกินี้",
        "mediastatistics-header-unknown": "ไม่ทราบ",
        "mediastatistics-header-drawing": "ภาพวาดเส้น (ภาพเวกเตอร์)",
        "mediastatistics-header-audio": "เสียง",
-       "mediastatistics-header-video": "วิดีทัศน์"
+       "mediastatistics-header-video": "วิดีทัศน์",
+       "headline-anchor-title": "โยงมาส่วนนี้"
 }
index d90b67e..ce14aea 100644 (file)
        "delete-toobig": "Bu sahypanyň $1 {{PLURAL:$1|wersiýadan|wersiýadan}} agdyk uly özgerdiş geçmişi bar.\n{{SITENAME}} saýtynyň atdanlykda bökdelmegine ýol bermezlik maksady bilen beýle sahypalaryň öçürilmegi çäklendirilýär.",
        "delete-warning-toobig": "Bu sahypanyň $1 {{PLURAL:$1|wersiýadan|wersiýadan}} agdyk uly özgerdiş geçmişi bar.\nMuny öçürmek {{SITENAME}} maglumat bazasynyň amallaryna päsgel berip biler;\nseresaplyk bilen hereket ediň.",
        "rollback": "Özgerdişleri öňki katdyna getir",
-       "rollback_short": "Öňki katdyna getir",
        "rollbacklink": "öňki katdyna getir",
        "rollbackfailed": "Öňki katdyna getirmeklik şowsuz",
        "cantrollback": "Özgerdişi yzyna getirip bolmaýar;\niň soňky goşant goşan ulanyjy bu sahypanyň ýeke-täk awtory bolup durýar.",
        "watchlisttools-view": "Degişli üýtgeşmeleri görkez",
        "watchlisttools-edit": "Gözegçilik sanawyna göz aýla we redaktirle",
        "watchlisttools-raw": "Işlenmedik gözegçilik sanawyny redaktirle",
-       "unknown_extension_tag": "Näbelli giňeltme belligi \"$1\"",
        "duplicate-defaultsort": "'''Duýduryş''': Gaýybana \"$2\" sortlaýyş açary mundan ozalky \"$1\" sortlaýyş açaryny aradan aýyrýar.",
        "version": "Wersiýa",
        "version-extensions": "Gurulgy giňeltmeler",
        "version-parser-function-hooks": "Analizator funsiýasynyň ilgençekleri",
        "version-hook-name": "Ilgençegiň ady",
        "version-hook-subscribedby": "Abuna ýazylan",
-       "version-version": "(Wersiýa $1)",
+       "version-version": "($1)",
        "version-license": "Ygtyýarnama",
        "version-poweredby-credits": "Bu wiki '''[https://www.mediawiki.org/ MediaWiki]''' arkaly üpjün edilýär, awtorlyk hukugy © 2001-$1 $2.",
        "version-poweredby-others": "beýlekiler",
        "specialpages-group-wiki": "Wiki maglumatlar we gurallar",
        "specialpages-group-redirects": "Gönükdirmeli ýörite sahypalar",
        "specialpages-group-spam": "Spam gurallary",
+       "specialpages-group-developer": "Ösdürimçi gurallary",
        "blankpage": "Boş sahypa",
        "intentionallyblankpage": "Bu sahypa ýörite boş goýuldy.",
        "external_image_whitelist": "#Bu setiri bolşy ýaly goýuň<pre>\n#Tertipli aňlatma fragmentlerini (diňe // aralygyndaky bölegi) aşak goşuň\n#Bular daşarky (hotlink) suratlaryň URL-leri bilen deňeşdiriljekdir\n#Deň gelenler surat bolup görüner, galanlary bolsa diňe suratyň çykgydy hökmünde görkeziler\n# # bilen başlaýan setirler teswir hasap ediljekdir\n#Setirler baş we setir harplara duýgur däldir\n\n#Ähli tertipli aňlatma fragmentlerini bu setiriň üstüne goşuň. Bu setiri bolşy ýaly goýuň</pre>",
index d026c49..649f8e9 100644 (file)
        "disclaimers": "Mga pagtatanggi",
        "disclaimerpage": "Project:Pangkalahatang pagtatanggi",
        "edithelp": "Tulong sa pagbabago",
+       "helppage-top-gethelp": "Tulong",
        "mainpage": "Unang Pahina",
        "mainpage-description": "Unang Pahina",
        "policy-url": "Project:Patakaran",
        "version-parser-function-hooks": "Mga pangkawit ng/sa tungkuling pambanghay (''parser'')",
        "version-hook-name": "Pangalan ng pangkawit",
        "version-hook-subscribedby": "Sinuskribi ng/ni/nina",
-       "version-version": "(Bersyon $1)",
+       "version-version": "($1)",
        "version-svn-revision": "(r$2)",
        "version-license": "Lisensiya",
        "version-poweredby-credits": "Ang wiking ito ay pinapatakbo ng '''[https://www.mediawiki.org/ MediaWiki]''', karapatang-ari © 2001-$1 $2.",
        "logentry-newusers-autocreate": "Automatikong {{GENDER:$2|inilikha}} ang account ng tagagamit na $1",
        "rightsnone": "(wala)",
        "revdelete-summary": "buod ng pagbabago",
+       "feedback-adding": "Idinaragdag ang pakaing-tugon sa pahina...",
+       "feedback-back": "Magbalik",
+       "feedback-bugcheck": "Mahusay! Suriin lang na hindi pa ito isa sa [$1 nalalamang mga depekto].",
+       "feedback-bugnew": "Sinuri ko na. Mag-ulat ng panibagong sira",
        "feedback-bugornote": "Kung handa ka nang detalyadong maglarawan ng isang suliraning teknikal mangyaring [$1 iulat ang kamalian].\nO kaya, maaari mo ring gamitin ang pinadaling pormularyo sa ibaba.  Madadagdagan ang komento mo sa pahinang \"[$3 $2]\", kasama ang iyong pangalan ng tagagamit.",
-       "feedback-subject": "Paksa:",
-       "feedback-message": "Mensahe:",
        "feedback-cancel": "Huwag ituloy",
-       "feedback-submit": "Magbigay ng komento",
-       "feedback-adding": "Idinaragdag ang pakaing-tugon sa pahina...",
+       "feedback-close": "Nagawa na",
+       "feedback-external-bug-report-button": "Mag-habla ng teknikal na gawain",
+       "feedback-dialog-title": "I-sumite ang katugunan",
+       "feedback-dialog-intro": "Maaari mo nang gamitin ang madaling pormularyo na nasa ibaba upang i-sumite ang iyong katugunan. Madadagdag ang iyong komento sa pahinang $1, kasama ang iyong ngalan-tagagamit.",
+       "feedback-error-title": "Kamalian",
        "feedback-error1": "Kamalian: Hindi nakikilalang kinalabasan mula sa API",
        "feedback-error2": "Kamalian: Nabigo ang pagpatnugot",
        "feedback-error3": "Kamalian: Walang tugon mula sa API",
+       "feedback-message": "Mensahe:",
+       "feedback-subject": "Paksa:",
+       "feedback-submit": "I-sumite",
+       "feedback-termsofuse": "Pumapayag ako na magbibigay ng katugunan sang-ayon sa mga Tuntunin sa Paggamit.",
        "feedback-thanks": "Salamat! Ang katugunan mo ay naipaskil na sa pahinang \"[$2 $1]\".",
-       "feedback-close": "Nagawa na",
-       "feedback-bugcheck": "Mahusay! Suriin lang na hindi pa ito isa sa [$1 nalalamang mga depekto].",
-       "feedback-bugnew": "Sinuri ko na. Mag-ulat ng panibagong sira",
+       "feedback-useragent": "Ahente ng tagagamit:",
        "searchsuggest-search": "Maghanap",
        "searchsuggest-containing": "naglalaman ng ...",
        "api-error-badaccess-groups": "Hindi ka pinapayagang makapagkarga ng mga talaksan papunta sa wiking ito.",
index 5153a89..1b0d831 100644 (file)
                        "Trockya",
                        "Aşilleus",
                        "BatuhanBensoy",
-                       "Mavrikant"
+                       "Mavrikant",
+                       "Ayrıntılı Bilgi",
+                       "Gokalpselamet",
+                       "Macofe"
                ]
        },
        "tog-underline": "Bağlantıların altını çiz:",
        "disclaimers": "Sorumluluk reddi",
        "disclaimerpage": "Project:Genel sorumluluk reddi",
        "edithelp": "Nasıl değiştirilir?",
+       "helppage-top-gethelp": "Yardım",
        "mainpage": "Ana Sayfa",
        "mainpage-description": "Ana sayfa",
        "policy-url": "Project:İlkeler",
        "readonly_lag": "Yedek sunucular ana sunucu ile güncellenmeye çalışılırken veritabanı otomatik olarak kilitlendi.",
        "internalerror": "Yazılım hatası",
        "internalerror_info": "İç hata: $1",
+       "internalerror-fatal-exception": "Tip \"$1\" hayati hata",
        "filecopyerror": "\"$1\"  \"$2\" dosyasına kopyalanamıyor.",
        "filerenameerror": "\"$1\" dosyasının ismi \"$2\" olarak değiştirilemedi.",
        "filedeleteerror": "\"$1\" dosyası silinemedi.",
        "createacct-benefit-heading": "{{SITENAME}} sizin gibi insanlar tarafından oluşturulur.",
        "createacct-benefit-body1": "{{PLURAL:$1|düzenleme|düzenleme}}",
        "createacct-benefit-body2": "{{PLURAL:$1|sayfa|sayfa}}",
-       "createacct-benefit-body3": "en son {{PLURAL:$1|katkıda bulunan|katkıda bulunan}}",
+       "createacct-benefit-body3": "en son {{PLURAL:$1|katkıda bulunan|katkıda bulunan}} kişi sayısı",
        "badretype": "Girdiğiniz şifreler birbirleriyle uyuşmuyor.",
        "userexists": "Girdiğiniz kullanıcı adı zaten kullanımda.\nLütfen farklı bir kullanıcı adı seçiniz.",
        "loginerror": "Oturum açma hatası.",
        "rev-deleted-event": "(kayıt ayrıntıları silindi)",
        "rev-deleted-user-contribs": "[kullanıcı adı veya IP adresi çıkarıldı - değişiklik katkılardan gizlendi]",
        "rev-deleted-text-permission": "Bu sayfa revizyonu '''silinmiş'''.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Silme kayıtlarında] ayrıntıları bulunabilir.",
+       "rev-suppressed-text-permission": "Sayfanın bu sürümü <strong>gizlenmiştir</strong>.\nAyrıntılar: [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].",
        "rev-deleted-text-unhide": "Bu sayfa revizyonu '''silinmiş'''.\n[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} Silme kayıtlarında] ayrıntıları bulunabilir.\nBir hizmetli olarak eğer devam ederseniz [$1 bu revizyonu hala görebilirsiniz].",
        "rev-suppressed-text-unhide": "Bu sayfa revizyonu '''bastırılmış'''.\n[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Durdurma kayıtlarında] ayrıntıları bulunabilir.\nBir hizmetli olarak eğer devam ederseniz [$1 bu revizyonu hala görebilirsiniz].",
        "rev-deleted-text-view": "Bu sayfa revizyonu '''silinmiş'''.\nBir hizmetli olarak sayfayı görebilirsiniz; [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} silme kayıtlarında] ayrıntılar bulunabilir.",
        "import-rootpage-nosubpage": "Kök sayfanın \"$1\" ad alanı alt sayfalara izin vermiyor.",
        "importlogpage": "Aktarım günlüğü",
        "importlogpagetext": "Diğer vikilerden sayfaların değişiklik geçmişiyle idari içe aktarımları.",
-       "import-logentry-upload": "[[$1]] dosya yüklemesiyle içe aktarıldı",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|revizyon|revizyon}} içe aktarıldı",
-       "import-logentry-interwiki": "$1 transvikileşmiş",
        "import-logentry-interwiki-detail": "$2 sayfasından $1 {{PLURAL:$1|revizyon|revizyon}} içe aktarıldı",
        "javascripttest": "JavaScript denemesi",
        "javascripttest-pagetext-noframework": "Bu sayfa JavaScript testleri çalıştırmak için ayrılmıştır.",
        "version-parser-function-hooks": "Derleyici fonksiyon çengelleri",
        "version-hook-name": "Çengel adı",
        "version-hook-subscribedby": "Abone olan",
-       "version-version": "($1 sürümü)",
+       "version-version": "($1)",
        "version-no-ext-name": "[isim yok]",
        "version-license": "MediaWiki Lisansı",
        "version-ext-license": "Lisans",
        "logentry-upload-overwrite": "$1 $3 dosyasının yeni bir sürümünü {{GENDER:$2|yükledi}}",
        "rightsnone": "(hiçbiri)",
        "revdelete-summary": "değişiklik özeti",
+       "feedback-adding": "Sayfaya geribildirim ekleniyor...",
+       "feedback-back": "Geri",
+       "feedback-bugcheck": "Harika! Sadece [bilinen $1 hatalarından] olmadığını kontrol et.",
+       "feedback-bugnew": "Kontrol ettim. Yeni hata bildir",
        "feedback-bugornote": "Eğer teknik bir problemi detaylarıyla açıklamaya hazırsanız lütfen [$1 bir hata raporlayın]. Diğer taraftan, aşağıdaki kolay formu kullanabilirsiniz. Yorumunuz, kullanıcı adınızla beraber \"[$3 $2]\" sayfasına eklenecektir.",
-       "feedback-subject": "Konu:",
-       "feedback-message": "Mesaj:",
        "feedback-cancel": "İptal",
-       "feedback-submit": "Geribildirimi Gönder",
-       "feedback-adding": "Sayfaya geribildirim ekleniyor...",
+       "feedback-close": "Tamamlandı",
        "feedback-error1": "Hata: Bilinmeyen API sonucu",
        "feedback-error2": "Hata: Düzenleme başarısız oldu",
        "feedback-error3": "Hata: API'den yanıt yok",
+       "feedback-message": "Mesaj:",
+       "feedback-subject": "Konu:",
+       "feedback-submit": "Gönder",
        "feedback-thanks": "Teşekkürler! Görüşleriniz \"[$2 $1]\" sayfasında paylaşılmıştır.",
-       "feedback-close": "Tamamlandı",
-       "feedback-bugcheck": "Harika! Sadece [bilinen $1 hatalarından] olmadığını kontrol et.",
-       "feedback-bugnew": "Kontrol ettim. Yeni hata bildir",
        "searchsuggest-search": "Ara",
        "searchsuggest-containing": "içeren...",
        "api-error-badaccess-groups": "Bu wiki için dosya yüklemenize izin verilmiyor.",
        "json-error-utf8": "Hatalı biçimlendirilmiş UTF-8 karakterleri bulundu, muhtemelen yanlış kodlanmış",
        "json-error-recursion": "Kodlanacak değeri bir veya daha fazla tekrarlı başvurular",
        "json-error-inf-or-nan": "Değerde kodlanacak bir veya daha fazla NAN veya INF değerleri",
-       "json-error-unsupported-type": "Kodlanamaz bir değer çeşidi girildi"
+       "json-error-unsupported-type": "Kodlanamaz bir değer çeşidi girildi",
+       "headline-anchor-title": "Bu bölüme bağlantı"
 }
index 98dc382..295dae9 100644 (file)
@@ -21,7 +21,8 @@
                        "Рашат Якупов",
                        "Умар",
                        "아라",
-                       "Derslek"
+                       "Derslek",
+                       "Macofe"
                ]
        },
        "tog-underline": "Сылтамаларның астына сызу:",
        "mypage": "Бит",
        "mytalk": "Бәхәс бите",
        "anontalk": "Бу IP адресы өчен бәхәс бите",
-       "navigation": "Ð\9aÒ¯Ñ\87Ò¯",
+       "navigation": "Ð\9dавигаÑ\86иÑ\8f",
        "and": "&#32;һәм",
        "qbfind": "Эзләү",
        "qbbrowse": "Карау",
        "history": "Битнең тарихы",
        "history_short": "Тарих",
        "updatedmarker": "соңгы керүемнән соң яңартылган",
-       "printableversion": "Бастыру версиясе",
+       "printableversion": "Басма версиясе",
        "permalink": "Даими сылтама",
        "print": "Бастыру",
        "view": "Карау",
        "pool-timeout": "Кысылуның  вакыты узды",
        "pool-queuefull": "Сорауларны саклау  бите тулы",
        "pool-errorunknown": "Билгесез  хата",
+       "poolcounter-usage-error": "$1: куллану хатасы",
        "aboutsite": "{{SITENAME}} турында",
        "aboutpage": "Project:Тасвирлама",
-       "copyright": "Мәгълүмат $1 буенча таратыла.",
+       "copyright": "Мәгълүмат $1 буенча таратыла (әгәр башкасы күрсәтелмәсә).",
        "copyrightpage": "{{ns:project}}:Авторлык хокуклары",
        "currentevents": "Хәзерге вакыйгалар",
        "currentevents-url": "Project:Хәзерге вакыйгалар",
        "disclaimers": "Җаваплылыктан баш тарту",
        "disclaimerpage": "Project:Җаваплылыктан баш тарту",
        "edithelp": "Үзгәртү буенча ярдәм",
+       "helppage-top-gethelp": "Ярдәм",
        "mainpage": "Баш бит",
        "mainpage-description": "Баш бит",
        "policy-url": "Project:Кагыйдәләр",
        "privacypage": "Project:Яшеренлек сәясәте",
        "badaccess": "Керү хатасы",
        "badaccess-group0": "Сез сораган гамәлне башкара алмыйсыз.",
-       "badaccess-groups": "Соралган гамәлне $1 {{PLURAL:$2|1=төркеменең|төркеменең}} кулланучылары гына башкара ала.",
+       "badaccess-groups": "Соралган гамәлне $1 {{PLURAL:$2|1=төркеме|төркемнәренең}} кулланучылары гына башкара ала.",
        "versionrequired": "MediaWikiның $1 версиясе таләп ителә",
        "versionrequiredtext": "Бу бит белән эшләү өчен MediaWikiның $1 версиясе кирәк. [[Special:Version|Кулланылучы программа версиясе турында мәгълүмат битен]] кара.",
        "ok": "OK",
        "pagetitle-view-mainpage": "{{SITENAME}}",
        "retrievedfrom": "Чыганагы — \"$1\"",
        "youhavenewmessages": "Сездә $1 бар ($2).",
-       "youhavenewmessagesfromusers": "Сезгә {{PLURAL:$3|$3 кулланучыдан}} $1 килде ($2).",
+       "youhavenewmessagesfromusers": "{{PLURAL:$4|Сезгә}} {{PLURAL:$3|$3 кулланучыдан}} $1 килде ($2).",
        "youhavenewmessagesmanyusers": "Сез бик күп кулланучыдан $1 алдыгыз ($2).",
-       "newmessageslinkplural": "{{PLURAL:$1|яңа хәбәр}}",
-       "newmessagesdifflinkplural": "{{PLURAL:$1|1=соңгы үзгәртү|соңгы үзгәртүләр}}",
+       "newmessageslinkplural": "{{PLURAL:$1|яңа хәбәр|999=яңа хәбәрләр}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|1=соңгы үзгәртү|соңгы үзгәртүләр}}\nсоңгы {{PLURAL:$1|үзгәртү|999=үзгәртү}}",
        "youhavenewmessagesmulti": "Сезгә монда яңа хәбәрләр бар: $1",
        "editsection": "үзгәртү",
        "editold": "үзгәртү",
        "hidetoc": "яшерү",
        "collapsible-collapse": "Төрү",
        "collapsible-expand": "Ачу",
+       "confirmable-confirm": "{{GENDER:$1|Шулаймы}}?",
        "confirmable-yes": "Әйе",
        "confirmable-no": "Юк",
        "thisisdeleted": "$1 карарга яки торгызырга телисезме?",
        "viewdeleted": "$1 карарга телисезме?",
-       "restorelink": "{{PLURAL:$1|1=1 бетерелгән үзгәртүне|$1 бетерелгән үзгәртүне}}",
+       "restorelink": "{{PLURAL:$1|бер бетерелгән үзгәртүне|$1 бетерелгән үзгәртүне}}",
        "feedlinks": "Шушылай:",
        "feed-invalid": "Язылу каналы тибы ялгыш",
        "feed-unavailable": "Синдикация тасмасы ябык",
        "nospecialpagetext": "<strong>Сез сорый торган махсус бит юк.</strong>\n\nМахсус битләр исемлеген карагыз: [[Special:SpecialPages|{{int:specialpages}}]].",
        "error": "Хата",
        "databaseerror": "Мәгълүматлар базасында хата",
+       "databaseerror-textcl": "Мәгълүмат базасында хата чыкты",
+       "databaseerror-query": "Сорату: $1",
+       "databaseerror-function": "Функция: $1",
+       "databaseerror-error": "Хата: $1",
        "laggedslavemode": "Игътибар: биттә соңгы яңартулар күрсәтелмәгән булырга мөмкин.",
        "readonly": "Мәгълүматлар базасына язу ябылган",
        "enterlockreason": "Ябылу сәбәбен һәм вакытын күрсәтегез.",
        "filerenameerror": "«$1» файлының исемен «$2» исеменә алыштырып булмый.",
        "filedeleteerror": "«$1» файлын бетереп булмый.",
        "directorycreateerror": "«$1» директориясен ясап булмый.",
+       "directoryreadonlyerror": "«$1» каталогы уку өчен генә.",
+       "directorynotreadableerror": "«$1» каталогы укылмый.",
        "filenotfound": "«$1» файлын табып булмый.",
        "unexpected": "Көтелмәгән кыймәт: «$1»=«$2».",
        "formerror": "Хата: форма мәгълүматларын тапшырып булмый",
        "delete-hook-aborted": "Үзгәртү махсус процедура тарафыннан кире кагыла.\nСәбәпләре китерелми.",
        "badtitle": "Яраксыз исем",
        "badtitletext": "Битнең соралган исеме дөрес түгел, буш яисә телъара яки интервики исеме дөрес күрсәтелмәгән. Исемдә тыелган символлар кулланылган булырга мөмкин.",
-       "perfcached": "Бу мәгълүматлар кэштан алынган, аларда соңгы үзгәртүләр булмаска мөмкин. Кэшта иң күбе {{PLURAL:$1|язма}} саклана.",
-       "perfcachedts": "Бу мәгълүматлар кэштан алынган, ул соңгы тапкыр $1 яңартылды. Кэшта иң күбе  {{PLURAL:$4|язма}} саклана",
+       "perfcached": "Бу мәгълүматлар кэштан алынган, аларда соңгы үзгәртүләр булмаска мөмкин. Кэшта иң күбе {{PLURAL:$1|язма|$1 язмалар}}  саклана.",
+       "perfcachedts": "Бу мәгълүматлар кэштан алынган, ул соңгы тапкыр $1 яңартылды. Кэшта иң күбе {{PLURAL:$4|язма}} саклана",
        "querypage-no-updates": "Хәзер бу битне яңартып булмый. Монда күрсәтелгән мәгълүматлар кабул ителмәячәк.",
        "viewsource": "Карау",
        "viewsource-title": "$1 битенең яхма текстын карау",
        "viewsourcetext": "Сез бу битнең башлангыч текстын карый һәм күчерә аласыз:",
        "viewyourtext": "Сез '''үз төзәтмәләрегезне''' бу сәхифәдә карый һәм чыгарылма текстны күчермәли аласыз:",
        "protectedinterface": "Бу биттә программа тәэминатының интерфейс хәбәрләре бар. Вандализмга каршы көрәш сәбәпле, бу битне үзгәртү тыела. Әлеге хәбәрнең тәрҗемәсен өстәү яки үзгәртү өчен, зинһар өчен, MediaWiki [//translatewiki.net/ translatewiki.net] тәрҗемәләү сайтын кулланыгыз.",
-       "editinginterface": "'''Игътибар:''' Сез программа тәэминатының интерфейс тексты булган битне үзгәртәсез. Бу башка кулланучыларга да тәэсир итәчәк. Тәрҗемә өчен [//translatewiki.net/wiki/Main_Page?setlang=tt-cyrl translatewiki.net] локализацияләү проектын кулланыгыз.",
+       "editinginterface": "<strong>Игътибар:</strong> Сез программа тәэминатының интерфейс тексты булган битне үзгәртәсез. Бу башка кулланучыларга да тәэсир итәчәк.",
+       "translateinterface": "Бу хәбәрнең текстын үзгәртү өчен яки өстәмәләр кертү өчен MediaWiki җирләштерү сайтын кулланыгыз [//translatewiki.net/ translatewiki.net].",
        "cascadeprotected": "Бу бит үзгәртүләрдән сакланган, чөнки ул каскадлы саклау кабул ителгән {{PLURAL:$1|1=биткә|битләргә}} өстәлгән:\n$2",
        "namespaceprotected": "'''$1''' исем киңлегендәге битләрне үзгәртү өчен сезнең рөхсәтегез юк.",
        "customcssprotected": "Сез бу CSS-сәхифәне үзгәртә алмыйсыз, чөнки монда башка кулланучының шәхси көйләнмәләре саклана",
        "loginlanguagelabel": "Тел: $1",
        "suspicious-userlogout": "Сезнең эшчәнлекне бетерү соравыгыз кире кагылды, чөнки ул ялгыш браузер яисә кэшлаучы прокси аша җибәрелергэ мөмкин.",
        "pt-login": "Керү",
+       "pt-login-button": "Керү",
        "pt-createaccount": "Яңа кулланучыны теркәү",
        "pt-userlogout": "Чыгу",
        "php-mail-error-unknown": "PHP mail() функциясендә билгесез хата",
        "prevn": "алдагы {{PLURAL:$1|$1}}",
        "nextn": "чираттагы {{PLURAL:$1|$1}}",
        "prevn-title": "Алдагы $1  {{PLURAL:$1|язма}}",
-       "nextn-title": "Киләсе $1  {{PLURAL:$1|язма}}",
+       "nextn-title": "Киләсе $1 {{PLURAL:$1|язма|язма}}",
        "shown-title": "Сәхифәдә $1 {{PLURAL:$1|1=язма|язма}} күрсәтелсен",
        "viewprevnext": "Күрсәтелүе: ($1 {{int:pipe-separator}} $2) ($3)",
        "searchmenu-exists": "'''Бу вики-проекта «[[:$1]]» исемле бит бар инде'''",
        "searchprofile-images-tooltip": "Файллар эзләү",
        "searchprofile-everything-tooltip": "Барлык битләрдә дә эзләү",
        "searchprofile-advanced-tooltip": "Бирелгән исемнәр мәйданында эзләү",
-       "search-result-size": "$1 ({{PLURAL:$2|$2 сүз}})",
+       "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-redirect": "(юнәлтү $1)",
        "search-section": "($1 бүлеге)",
        "number_of_watching_users_pageview": "[$1 {{PLURAL:$1|күзәтеп тора кулланучы}}]",
        "rc_categories": "Төркемнәрдә генә тора («|» бүлүче)",
        "rc_categories_any": "Һәрбер",
+       "rc-change-size-new": "Төзәтмәдән соң күләме: $1 {{PLURAL:$1|байт|байт|байт}}",
        "newsectionsummary": "/* $1 */ яңа бүлек",
        "rc-enhanced-expand": "Ваклыкларны күрсәтү",
        "rc-enhanced-hide": "Ваклыкларны яшерү",
        "suppress": "Яшерү",
        "booksources": "Китап чыганаклары",
        "booksources-search-legend": "Китап чыганакларыны эзләү",
+       "booksources-search": "Эзләү",
        "booksources-text": "Әлеге биттә күрсәтелгән сылтамалар ярәмендә сезнең кызыксындырган китап буенча өстәмә мәгълүматлар табарга мөмкин. Болар интернет-кибетләр һәм китапханә җыентыгында эзләүче системалар.",
        "booksources-invalid-isbn": "Бирелгән ISBN саны бәлки хаталдыр. Зинһар, бирелгән саннарны яңадан тикшерегез.",
        "specialloguserlabel": "Кулланучы:",
        "import-revision-count": "$1 {{PLURAL:$1|юрама|юрама|юрама}}",
        "importnopages": "Импортлау өчен битләр юк.",
        "importlogpage": "Кертү көндәлеге",
-       "import-logentry-interwiki": "«$1» — викиара  импортлау",
        "tooltip-pt-userpage": "Кулланучы битегез",
        "tooltip-pt-mytalk": "Бәхәс битегез",
        "tooltip-pt-preferences": "Көйләнмәләрегез",
        "tooltip-pt-mycontris": "Сезнең кертеменгезне исемлеге",
        "tooltip-pt-login": "Сез хисап язмасы төзи алыр идегез, әмма бу мәҗбүри түгел.",
        "tooltip-pt-logout": "Чыгу",
+       "tooltip-pt-createaccount": "Сезгә аккаунт ясарга һәм системага керергә киңәш итәбез, әмма бу мәҗбүри түгел.",
        "tooltip-ca-talk": "Битнең эчтәлеге турында бәхәс",
        "tooltip-ca-edit": "Сез бу бит үзгәртә аласыз. Зинһар, саклаганчы карап алуны кулланыгыз.",
        "tooltip-ca-addsection": "Яңа бүлек башлау",
        "tooltip-t-emailuser": "Бу кулланучыга хат җибәрү",
        "tooltip-t-upload": "Файлларны йөкләү",
        "tooltip-t-specialpages": "Барлык махсус битләр исемлеге",
-       "tooltip-t-print": "Бу битнең бастыру версиясе",
+       "tooltip-t-print": "Бу битнең басма версиясе",
        "tooltip-t-permalink": "Битнең бу юрамасына даими сылтама",
        "tooltip-ca-nstab-main": "Мәкаләнең эчтәлеге",
        "tooltip-ca-nstab-user": "Кулланучының шәхси бите",
        "file-nohires": "Югары ачыклык белән юрама юк.",
        "svg-long-desc": "SVG файлы, шартлы $1 × $2 нокта, файлның зурлыгы: $3",
        "show-big-image": "Тулы ачыклык",
+       "show-big-image-size": "$1 × $2 пиксель",
        "newimages": "Яңа сүрәтләр җыелмасы",
        "newimages-legend": "Фильтр",
        "ilsubmit": "Эзләү",
        "logentry-newusers-autocreate": "Автоматик рәвештә $1 хисап язмасы төзелде.",
        "rightsnone": "(юк)",
        "revdelete-summary": "үзгәртүләр тасвирламасы",
+       "feedback-adding": "Фикерне сәхифәгә өстәү ...",
+       "feedback-bugnew": "Мин тикшердем. Яңа хата турында хәбәр итү",
        "feedback-bugornote": "Әгәр дә сез техник проблеманы җентекләп тасвирларга әзер икәнсез, зинһар өчен, [$1 хата турында хәбәр итегез].\nБашка очракта сез түбәндәге гади форманы куллана аласыз. Сезнең шәрехләмә \"[$3 $2]\" сәхифәсенә сезнең кулланучы исеме һәм сез кулланган браузер исеме белән бергә өстәләчәк.",
-       "feedback-subject": "Тема:",
-       "feedback-message": "Хәбәр:",
        "feedback-cancel": "Баш тарту",
-       "feedback-submit": "Фикер җибәрү",
-       "feedback-adding": "Фикерне сәхифәгә өстәү ...",
+       "feedback-close": "Әзер",
        "feedback-error1": "Хата. APIдан билгесез нәтиҗә",
        "feedback-error2": "Хата: төзәтү уңышсыз килеп чыкты",
        "feedback-error3": "Хата: APIдан җавап юк.",
+       "feedback-message": "Хәбәр:",
+       "feedback-subject": "Тема:",
+       "feedback-submit": "Җибәрү",
        "feedback-thanks": "Рәхмәт! Сезнең фикер \"[$2 $1]\" сәхифәсенә куелды.",
-       "feedback-close": "Әзер",
-       "feedback-bugnew": "Мин тикшердем. Яңа хата турында хәбәр итү",
        "searchsuggest-search": "Эзләү",
        "searchsuggest-containing": "эчтәлек...",
        "api-error-badaccess-groups": "Сезгә бу викигә файллар өстәү рөхсәт ителмәгән",
index 4fd905f..bd1e1a9 100644 (file)
@@ -7,7 +7,8 @@
                        "Reedy",
                        "Urhixidur",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Amire80"
                ]
        },
        "tog-underline": "Sıltamalarnıñ astına sızu:",
        "mytalk": "Bäxäsem",
        "anontalk": "Bu IP adresı öçen bäxäs bite",
        "navigation": "Küçü",
-       "and": " häm",
+       "and": "&#32;häm",
        "qbfind": "Ezläw",
        "qbbrowse": "Qaraw",
        "qbedit": "Üzgärtü",
        "deletereasonotherlist": "Başqa säbäp",
        "deletereason-dropdown": "* Beterüneñ säbäpläre\n** vandallıq\n** avtor sorawı buyınça\n** avtor xoquqların bozu",
        "delete-edit-reasonlist": "Säbäplär isemlegen üzgärtü",
-       "rollback_short": "Kire qaytaru",
        "rollbacklink": "kire qaytaru",
        "editcomment": "Üzgärtü öçen taswir: \"''$1''\".",
        "revertpage": "[[Special:Contributions/$2|$2]] üzgärtüläre ([[User talk:$2|bäxäs]])  [[User:$1|$1]] yuramasına kire qaytarıldı",
index 86973bf..849def9 100644 (file)
@@ -2,7 +2,8 @@
        "@metadata": {
                "authors": [
                        "Nemo bis",
-                       "Rberchie"
+                       "Rberchie",
+                       "MF-Warburg"
                ]
        },
        "sun": "Kwasiada",
@@ -37,7 +38,7 @@
        "searchprofile-everything": "Biribiara",
        "searchprofile-articles-tooltip": "Hwehwe wo dola baako mu",
        "searchall": "Biribiara",
-       "diff": "NSONSOE",
+       "diff": "nsonsoe",
        "hide": "Fa sie",
        "watch": "Hwe",
        "undeleteviewlink": "Hwe",
index 902c9c1..2432fdf 100644 (file)
@@ -9,7 +9,8 @@
                        "Sahran",
                        "Tel'et",
                        "بىلگە",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "ئۇلانما ئاستى سىزىقى:",
        "delete-toobig": "بۇ بەتنىڭ بەك كۆپ تەھرىرلەش تارىخى بار، {{PLURAL:$1|تۈزىتىلگەن نەشرى|تۈزىتىلگەن نەشرى}} قېتىمدىن ئارتۇق. {{SITENAME}} قالايمىقانچىلىقنىڭ ئالدىنى ئېلىش ئۈچۈن بۇ خىل بەتلەرنى ئۆچۈرۈش مەشغۇلاتى چەكلەندى.",
        "delete-warning-toobig": "بۇ بەتنىڭ تەھرىرلەش تارىخى بەك كۆپ، {{PLURAL:$1|تۈزىتىلگەن نەشرى|تۈزىتىلگەن نەشرى}} قېتىمدىن ئارتۇق.\nبۇ بەت ئۆچۈرۈلسە {{SITENAME}} ساندانىنىڭ مەشغۇلاتىنى قالايمىقانلاشتۇرۇۋېتىشى مۇمكىن؛\nبۇ مەشغۇلاتنى داۋاملاشتۇرۇشتىن ئىلگىرى ئېھتىيات قىلىڭ.",
        "rollback": "تەھرىر ئەسلىگە قايتۇر",
-       "rollback_short": "ئەسلىگە قايتۇر",
        "rollbacklink": "ئەسلىگە قايتۇر",
        "rollbacklinkcount": "$1 {{PLURAL:$1|تەھرىر}}نى ئەسلىگە قايتۇر",
        "rollbacklinkcount-morethan": "$1 دىن كۆپ {{PLURAL:$1|تەھرىر}}نى ئەسلىگە قايتۇر",
        "import-rootpage-nosubpage": "\"$1\" ئات بوشلۇقىنىڭ غول بېتى تارماق بەتكە يول قويمايدۇ.",
        "importlogpage": "ئەكىرىش خاتىرىسى",
        "importlogpagetext": "باشقا wiki دىن تارىخ خاتىرىسىنى قوشۇپ باشقۇرغۇچى سۈپىتىدە ئەكىرىش.",
-       "import-logentry-upload": "ھۆججەت يۈكلەپ [[$1]] ئەكىرىلدى",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|تۈزىتىش|تۈزىتىش}}",
-       "import-logentry-interwiki": "wiki ھالقىغان $1",
        "import-logentry-interwiki-detail": "$2 دىن كەلگەن $1 {{PLURAL:$1|تۈزىتىش|تۈزىتىش}}",
        "javascripttest": "JavaScript سىناش",
-       "javascripttest-title": "$1 نى تەكشۈرۈش يۈرگۈزۈۋاتىدۇ",
        "javascripttest-pagetext-noframework": "بۇ بەت JavaScript ئىجرا قىلىپ سىناشقا قالدۇرۇلغان.",
        "javascripttest-pagetext-unknownframework": "يوچۇن سىناق قۇرۇلما \"$1\".",
        "javascripttest-pagetext-frameworks": "تۆۋەندىكى قۇرۇلمىدىن بىرنى تاللاڭ: $1",
        "javascripttest-pagetext-skins": "بىر تېرە تاللاپ سىناقنى ئىجرا قىلىڭ:",
        "javascripttest-qunit-intro": "mediawiki.org دىكى [$1 سىناش قوللانمىسى]نى كۆرۈڭ.",
-       "javascripttest-qunit-heading": "MediaWiki JavaScript QUnit سىناش يۈرۈشلۈكى",
        "tooltip-pt-userpage": "ئىشلەتكۈچى بېتىڭىز",
        "tooltip-pt-anonuserpage": "بۇ بېكەتنى تەھرىرلىگەندە ئىشلەتكەن IP ماس كەلگەن ئىشلەتكۈچى بېتى",
        "tooltip-pt-mytalk": "مۇنازىرە بېتىڭىز",
        "watchlisttools-edit": "كۆزەت تىزىملىكىنى كۆرۈپ تەھرىرلەش",
        "watchlisttools-raw": "ئەسلى كۆزەت تىزىملىك تەھرىرى",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|سۆزلىشىش]])",
-       "unknown_extension_tag": "نامەلۇم كېڭەيتىلگەن خەتكۈچ \"$1\"",
        "duplicate-defaultsort": "'''ئاگاھلاندۇرۇش:''' كۆڭۈلدىكى تەرتىپلەش كۇنۇپكىسى \"$2\" ئىلگىرىكى كۆڭۈلدىكى تەرتىپلەش كۇنۇپكىسى \"$1\" نى قاپلىۋېتىدۇ.",
        "version": "نەشرى",
        "version-extensions": "قاچىلانغان كېڭەيتىلمە",
        "version-parser-function-hooks": "تەھلىلچى فونكسىيە ئىلمىكى",
        "version-hook-name": "ئىلمەك ئاتى",
        "version-hook-subscribedby": "ئىمزا قويغۇچى",
-       "version-version": "(نەشرى $1)",
+       "version-version": "($1)",
        "version-license": "ئىجازەتنامە",
        "version-poweredby-credits": "بۇ ۋىكىنى '''[https://www.mediawiki.org/ MediaWiki]''' تېخنىكىلىق قوللايدۇ، نەشر ھوقۇقى © 2001-$1 $2",
        "version-poweredby-others": "باشقا",
        "logentry-rights-autopromote": "$1 نىڭ ئىشلەتكۈچى گۇرۇپپىسى ئۆزلۈكىدىن $4 دىن $5 غا يۈكسەلدى",
        "rightsnone": "(يوق)",
        "revdelete-summary": "ئۈزۈندە تەھرىرلە",
+       "feedback-adding": "قايتۇرما ئىنكاسنى بەتكە قوشۇۋاتىدۇ…",
+       "feedback-bugcheck": "قالتىس! كەمتۈكنىڭ ئاللىبۇرۇن يوللانغان [$1 مەلۇملۇق كەمتۈك] ياكى ئەمەسلىكىنى تەكشۈرۈڭ.",
+       "feedback-bugnew": "تەكشۈردۈم. يېڭى بىر كەمتۈك دوكلات قىل",
        "feedback-bugornote": "ئەگەر بىر تېخنىكىلىق مەسىلىنى تەپسىلىي بايان قىلىشقا تەييارلانماقچى بولسىڭىز، [$1 خاتالىق دوكلات]ى يوللاڭ. ياكى تۆۋەندىكى ئاددىي جەدۋەلنى ئىشلىتىڭ. ئىنكاسىڭىز \"[$3 $2]\" بەتكە قوشۇلىدۇ، ئىشلەتكۈچى ئاتىڭىز ۋە ئىشلەتكەن توركۆرگۈڭىز قوشۇپ قويۇلىدۇ.",
-       "feedback-subject": "تېما:",
-       "feedback-message": "ئۇچۇر:",
        "feedback-cancel": "ۋاز كەچ",
-       "feedback-submit": "قايتۇرما ئىنكاس يوللا",
-       "feedback-adding": "قايتۇرما ئىنكاسنى بەتكە قوشۇۋاتىدۇ…",
+       "feedback-close": "تامام",
        "feedback-error1": "خاتالىق: API دىن كەلگەن تونۇيالمايدىغان نەتىجە",
        "feedback-error2": "خاتا:تەھرىرلەش مەغلۇپ بولدى",
        "feedback-error3": "خاتالىق: API دىن ئىنكاس يوق",
+       "feedback-message": "ئۇچۇر:",
+       "feedback-subject": "تېما:",
+       "feedback-submit": "تاپشۇر",
        "feedback-thanks": "كۆپ رەھمەت! قايتۇرما ئىنكاسىڭىز \"[$2 $1]\" بەتكە يوللاندى.",
-       "feedback-close": "تامام",
-       "feedback-bugcheck": "قالتىس! كەمتۈكنىڭ ئاللىبۇرۇن يوللانغان [$1 مەلۇملۇق كەمتۈك] ياكى ئەمەسلىكىنى تەكشۈرۈڭ.",
-       "feedback-bugnew": "تەكشۈردۈم. يېڭى بىر كەمتۈك دوكلات قىل",
        "searchsuggest-search": "ئىزدەش",
        "searchsuggest-containing": "ئىچىدە…",
        "api-error-badaccess-groups": "ھۆججەتنى بۇ ۋىكىغا يۈكلەش ھوقۇقىڭىز يوق.",
index dcd5b9c..6671a94 100644 (file)
@@ -56,7 +56,8 @@
                        "Andygol",
                        "Ypryima",
                        "Purodha",
-                       "Green Zero"
+                       "Green Zero",
+                       "Macofe"
                ]
        },
        "tog-underline": "Підкреслювання посилань:",
        "disclaimers": "Відмова від відповідальності",
        "disclaimerpage": "Project:Відмова від відповідальності",
        "edithelp": "Довідка про редагування",
+       "helppage-top-gethelp": "Довідка",
        "mainpage": "Головна сторінка",
        "mainpage-description": "Головна сторінка",
        "policy-url": "Project:Правила",
        "readonly_lag": "База даних автоматично заблокована від змін, доки вторинний сервер бази даних не синхронізується з первинним.",
        "internalerror": "Внутрішня помилка",
        "internalerror_info": "Внутрішня помилка: $1",
+       "internalerror-fatal-exception": "Критичний виняток типу «$1»",
        "filecopyerror": "Не вдалося скопіювати файл «$1» в «$2».",
        "filerenameerror": "Не вдалося перейменувати файл «$1» на «$2».",
        "filedeleteerror": "Не вдалося вилучити файл «$1».",
        "thumbnail_image-missing": "Очевидно, відсутній файл $1",
        "thumbnail_image-failure-limit": "Там було дуже багато недавніх невдалих спроб ($1 або більше) для візуалізації цього ескізу. Будь ласка, спробуйте ще раз пізніше.",
        "import": "Імпорт статей",
-       "importinterwiki": "Ð\9cÑ\96жвÑ\96кÑ\96 Ñ\96мпоÑ\80Ñ\82",
-       "import-interwiki-text": "Вкажіть вікі й назву імпортованої сторінки.\nДати змін й імена авторів буде збережено.\nУсі операції міжвікі-імпорту реєструються в [[Special:Log/import|відповідному протоколі]].",
+       "importinterwiki": "Ð\86мпоÑ\80Ñ\82Ñ\83ваÑ\82и Ð· Ñ\96нÑ\88оÑ\97 Ð²Ñ\96кÑ\96",
+       "import-interwiki-text": "Вкажіть вікі й назву імпортованої сторінки.\nДати змін й імена авторів буде збережено.\nУсі імпорти з інших вікі реєструються у [[Special:Log/import|відповідному журналі]].",
        "import-interwiki-sourcewiki": "Джерело вікі:",
        "import-interwiki-sourcepage": "Вихідна сторінка:",
        "import-interwiki-history": "Копіювати всю історію змін цієї сторінки",
        "importcantopen": "Неможливо відкрити файл імпорту",
        "importbadinterwiki": "Невірне інтервікі-посилання",
        "importsuccess": "Імпорт виконано!",
-       "importnosources": "Ð\9dе Ð±Ñ\83ло Ð²Ð¸Ð±Ñ\80ане Ð´Ð¶ÐµÑ\80ело Ð¼Ñ\96жвÑ\96кÑ\96\96мпоÑ\80Ñ\82Ñ\83, Ð¿Ñ\80Ñ\8fме Ð·Ð°Ð²Ð°Ð½Ñ\82аженнÑ\8f Ñ\96Ñ\81Ñ\82оÑ\80Ñ\96Ñ\97 Ð·Ð¼Ñ\96н Ð²Ð¸Ð¼ÐºÐ½Ñ\83Ñ\82е.",
+       "importnosources": "Ð\9fÑ\80Ñ\8fме Ð·Ð°Ð²Ð°Ð½Ñ\82аженнÑ\8f Ñ\96Ñ\81Ñ\82оÑ\80Ñ\96Ñ\97 Ð·Ð¼Ñ\96н Ð±Ñ\83ло Ð²Ð¸Ð¼ÐºÐ½Ñ\83Ñ\82е, Ð¾Ñ\81кÑ\96лÑ\8cки Ð½Ðµ Ð±Ñ\83ла Ð²Ð¸Ð±Ñ\80ана Ð²Ñ\96кÑ\96, Ð· Ñ\8fкоÑ\97 Ð¼Ð¾Ð¶Ð½Ð° Ð±Ñ\83ло Ð± Ñ\96мпоÑ\80Ñ\82Ñ\83ваÑ\82и.",
        "importnofile": "Файл імпорту не було завантажено.",
        "importuploaderrorsize": "Не вдалося завантажити або імпортувати файл. Розмір файлу перевищує встановлену межу.",
        "importuploaderrorpartial": "Не вдалося завантажити або імпортувати файл. Він був завантажений лише частково.",
        "import-rootpage-nosubpage": "В просторі назв вказаної кореневої сторінки «$1» заборонені підсторінки",
        "importlogpage": "Журнал імпорту",
        "importlogpagetext": "Імпорт адміністраторами сторінок з історією редагувань з інших вікі.",
-       "import-logentry-upload": "«[[$1]]» — імпорт з файлу",
        "import-logentry-upload-detail": "Імпортовано $1 {{PLURAL:$1|версія|версії|версій}}",
-       "import-logentry-interwiki": "«$1» — міжвікі імпорт",
        "import-logentry-interwiki-detail": "Імпортовано $1 {{PLURAL:$1|версія|версії|версій}} з $2",
        "javascripttest": "Тестування JavaScript",
        "javascripttest-pagetext-noframework": "Ця сторінка призначений для тестування JavaScript.",
        "revdelete-uname-unhid": "ім'я користувача відкрито",
        "revdelete-restricted": "застосовані обмеження для адміністраторів",
        "revdelete-unrestricted": "зняті обмеження для адміністраторів",
+       "logentry-block-block": "$1 {{GENDER:$2|заблокував|заблокувала}} {{GENDER:$4|$3}} на термін $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|розблокував|розблокувала}} {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|переблокував|переблокувала}} {{GENDER:$4|$3}} на термін $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|заблокував}} {{GENDER:$4|$3}} строком на $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|змінив}} блокування для {{GENDER:$4|$3}} на період $5 $6",
+       "logentry-import-upload": "$1 імпортува{{GENDER:$2|в|ла}} $3 через завантаження файлів",
+       "logentry-import-interwiki": "$1 імпортува{{GENDER:$2|в|ла}} $3 з іншої вікі",
        "logentry-merge-merge": "$1 {{GENDER:$2|приєднав|приєднала}} $3 до $4 (версії до $5)",
        "logentry-move-move": "$1 {{GENDER:$2|перейменував|перейменувала}} сторінку з $3 на $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2|перейменував|перейменувала}} сторінку з $3 на $4 без створення перенаправлення",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|вимкнув|вимкнула}} мітку «$4» для використання користувачами і ботами",
        "rightsnone": "(нема)",
        "revdelete-summary": "коментар до редагування",
+       "feedback-adding": "Додавання відгуку на сторінку ...",
+       "feedback-back": "Назад",
+       "feedback-bugcheck": "Чудово! Просто перевірте, що це не одна з вже [$1 відомих помилок].",
+       "feedback-bugnew": "Я перевірив. Повідомити про нову помилку",
        "feedback-bugornote": "Якщо ви готові описати технічні проблеми в деталях, будь ласка, [$1 повідомте про помилку].\nАбо можете використати форму нижче. Ваш коментар буде додано на сторінку \"[$3  $2]\", разом з іменем користувача.",
-       "feedback-subject": "Тема:",
-       "feedback-message": "Повідомлення:",
        "feedback-cancel": "Скасувати",
-       "feedback-submit": "Надіслати відгук",
-       "feedback-adding": "Додавання відгуку на сторінку ...",
+       "feedback-close": "Виконано",
+       "feedback-external-bug-report-button": "Повідомити про технічну проблему",
+       "feedback-dialog-title": "Надіслати відгук",
+       "feedback-dialog-intro": "Для надсилання відгуку Ви можете скористатись простою формою внизу. Ваш коментар буде залишений на сторінці «$1», разом із Вашим іменем користувача (або IP-адресою).",
+       "feedback-error-title": "Помилка",
        "feedback-error1": "Помилка: Невідомий результаті API",
        "feedback-error2": "Помилка: Збій редагувань",
        "feedback-error3": "Помилка: Немає відповіді від API",
+       "feedback-message": "Повідомлення:",
+       "feedback-subject": "Тема:",
+       "feedback-submit": "Надіслати",
+       "feedback-terms": "Я розумію, що мій ідентифікатор User Agent містить інформацію про тип мого браузера та версію операційної системи, і ця інформація після залишення відгуку перебуватиме в публічному доступі.",
+       "feedback-termsofuse": "Я погоджуюсь залишити відгук у відповідності до Умов використання.",
        "feedback-thanks": "Дякуємо! Ваші відгук розміщено на сторінці \"[$2 $1]\".",
-       "feedback-close": "Виконано",
-       "feedback-bugcheck": "Чудово! Просто перевірте, що це не одна з вже [$1 відомих помилок].",
-       "feedback-bugnew": "Я перевірив. Повідомити про нову помилку",
+       "feedback-thanks-title": "Дякуємо!",
+       "feedback-useragent": "User Agent:",
        "searchsuggest-search": "Пошук",
        "searchsuggest-containing": "що містять...",
        "api-error-badaccess-groups": "Вам не дозволено завантажувати файли до цього вікіпроекту.",
        "mediastatistics-header-drawing": "Малюнки (векторні зображення)",
        "mediastatistics-header-audio": "Звук",
        "mediastatistics-header-video": "Відео",
-       "mediastatistics-header-multimedia": "Мішана мультимедія",
+       "mediastatistics-header-multimedia": "Мішана мультимедіа",
        "mediastatistics-header-office": "Офіс",
        "mediastatistics-header-text": "Текст",
        "mediastatistics-header-executable": "Виконувані файли",
index 685b459..1b95994 100644 (file)
        "grouppage-sysop": "{{ns:project}}:منتظمین",
        "grouppage-bureaucrat": "بیورو کریٹ",
        "right-upload": "ملفات زبراثقال (اپ لوڈ) کریں",
+       "right-writeapi": "اے پی آئی لکھائی کا استعمال",
        "right-delete": "صفحات حذف کریں",
        "right-sendemail": "دیگر صارفین کو برقی ڈاک بھیجیں",
        "newuserlogpage": "نوشتۂ آمد صارف",
        "listfiles-latestversion": "موجودہ ورژن",
        "listfiles-latestversion-yes": "ہاں",
        "listfiles-latestversion-no": "نہیں",
-       "file-anchor-link": "مسل",
+       "file-anchor-link": "ملف",
        "filehist": "ملف کی تاریخ",
        "filehist-help": "یہ دیکھنے کیلئے کہ کسی خاص وقت پر ملف کس طرح ظاہر ہوتا تھا اُس تاریخ یا وقت پر طق کیجئے۔",
        "filehist-deleteall": "سب حذف",
        "undeleteviewlink": "دکھاؤ",
        "undeleteinvert": "انتخاب بالعکس",
        "undeletecomment": "وجہ:",
-       "namespace": "جاۓ نام:",
+       "namespace": "فضائے نام:",
        "invert": "انتخاب بالعکس",
        "namespace_association": "متعلقہ فضا",
        "blanknamespace": "(مرکز)",
        "exif-model": "کیمرے کا ماڈل",
        "exif-software": "سافٹویئر استعمال",
        "exif-exifversion": "اکزیف ورژن",
+       "exif-colorspace": "رنگ فضا",
        "exif-datetimeoriginal": "ڈیٹا بنانے کا تاریخ اور وقت",
        "exif-datetimedigitized": "معددی کا تاریخ اور وقت",
        "exif-orientation-1": "عام",
        "specialpages": "خصوصی صفحات",
        "tag-filter": "[[Special:Tags|لوحہ]] فلٹر:",
        "logentry-delete-delete": "$1 {{GENDER:$2|حذف کیا گیا}} صفحہ $3",
+       "logentry-newusers-create": "صارف کھاتہ $1 {{GENDER:$2|بنایا گیا}}",
        "rightsnone": "(کچھ نہیں)",
        "revdelete-summary": "خلاصۂ تدوین",
        "searchsuggest-search": "تلاش",
index 5b0e2d1..8a4500c 100644 (file)
        "delete-edit-reasonlist": "Sabablar roʻyxatini tahrirlash",
        "deleting-backlinks-warning": "'''Ogohlantirish:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Baʼzi bir sahifalar]] siz oʻchirmoqchi boʻlayotgan sahifaga bogʻlangan.",
        "rollback": "Oʻzgarishlarni ortga qaytarish",
-       "rollbacklink": "ortga qaytarish",
-       "rollbacklinkcount": "$1 ta tahrirni ortga qaytarish",
-       "rollbacklinkcount-morethan": "$1 tadan koʻp tahrirni ortga qaytarish",
+       "rollbacklink": "qaytarish",
+       "rollbacklinkcount": "$1 {{PLURAL:$1|tahrirni}} qaytarish",
+       "rollbacklinkcount-morethan": "$1 tadan koʻp {{PLURAL:$1|tahrirni}} qaytarish",
        "rollbackfailed": "Eski holiga keltirishda xatolik",
        "revertpage": "[[Special:Contributions/$2|$2]] tahrirlari [[User:$1|$1]] versiyasiga qaytarildi",
        "sessionfailure-title": "Seansda xatolik",
        "pageinfo-toolboxlink": "Sahifa haqida maʼlumot",
        "pageinfo-redirectsto": "Qayta yoʻnaltirish",
        "markaspatrolledtext": "Bu sahifani tekshirilgan deb belgilash",
+       "markedaspatrolledtext": "[[:$1]] sahifasining ushbu versiyasi tekshirilgan deb belgilandi.",
+       "markedaspatrollednotify": "[[:$1]] sahifasidagi ushbu oʻzgarish tekshirilgan deb belgilandi.",
        "patrol-log-page": "Patrullash qaydlari",
        "previousdiff": "← Avvalgi tahrir",
        "nextdiff": "Keyingi tahrir →",
index d0b29db..2aad56e 100644 (file)
@@ -17,7 +17,8 @@
                        "Urhixidur",
                        "Vajotwo",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Sotołinea i cołegamenti:",
        "delete-toobig": "La cronologia de sta pagina la xe longa assè (oltre $1 {{PLURAL:$1|revision|revisioni}}). La so scancelazion la xe stà limità par evitar de crear acidentalmente dei problemi de funzionamento al database de {{SITENAME}}.",
        "delete-warning-toobig": "La cronologia de sta pagina le xe longa assè (oltre $1 {{PLURAL:$1|revision|revisioni}}). La so scancelazion la pode crear dei problemi de funzionamento al database de {{SITENAME}}; procedi con cautela.",
        "rollback": "Anuła łe modifighe",
-       "rollback_short": "Rollback",
        "rollbacklink": "tira indrìo i canbiamenti",
        "rollbacklinkcount": "rollback de {{PLURAL:$1|na modifega|$1 modifeghe}}",
        "rollbacklinkcount-morethan": "rollback de pì de {{PLURAL:$1|na modifega|$1 modifeghe}}",
        "import-rootpage-nosubpage": "El namespace \"$1\" de ła pàjina prinsipałe nó 'l permete de 'ver sotopajine.",
        "importlogpage": "Inportassion",
        "importlogpagetext": "Registro de łe inportazion d'ufiçio de pàxene provenienti da altre wiki, conplete de cronołogia.",
-       "import-logentry-upload": "gà inportà $1 tramite caricamento de file",
        "import-logentry-upload-detail": "{{PLURAL:$1|una revixion importà|$1 revixion importae}}",
-       "import-logentry-interwiki": "gà trasferìo da altra wiki ła pàxena $1",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|una revixion importà|$1 revixion importae}} da $2",
        "javascripttest": "Sperimentasion JavaScript",
-       "javascripttest-title": "In execusion test par $1",
        "javascripttest-pagetext-noframework": "Sta pàjina ła xe riservà a l'execusion de test de JavaScript.",
        "javascripttest-pagetext-unknownframework": "Framework de test sconosùo \"$1\".",
        "javascripttest-pagetext-frameworks": "Par piasere, siełi uno de i seguenti framework pa' i test: $1",
        "javascripttest-pagetext-skins": "Siełi na skin có cui exeguir i test:",
        "javascripttest-qunit-intro": "Varda so mediawiki.org ła [$1 documentasion rivardante i test].",
-       "javascripttest-qunit-heading": "Suite de test de JavaScript par QUnit in MediaWiki",
        "tooltip-pt-userpage": "La to pagina utente",
        "tooltip-pt-anonuserpage": "La pàxena utente de sto indirizo IP",
        "tooltip-pt-mytalk": "La to pagina de discussion",
        "version-parser-function-hooks": "Hook par funzioni del parser",
        "version-hook-name": "Nome de l'hook",
        "version-hook-subscribedby": "Sotoscrizioni",
-       "version-version": "(Version $1)",
+       "version-version": "($1)",
        "version-license": "Licensa MediaWiki",
        "version-ext-license": "Licensa",
        "version-ext-colheader-name": "Estension",
        "logentry-rights-autopromote": "$1 {{GENDER:$2|el|la}} xe stà automategamente promoso/a da $4 a $5",
        "rightsnone": "(nissun)",
        "revdelete-summary": "modifica ogeto",
+       "feedback-adding": "Inserimento del feedback inte ła pàjina...",
+       "feedback-bugcheck": "Otimo! Verifega che nó 'l sia xà infrà i [$1 bug conosui].",
+       "feedback-bugnew": "Controło efetuà. Segnała un novo bug",
        "feedback-bugornote": "Se se xe in grado de descrivare el problema tenico riscontrà in maniera precixa, [$1 segnałare el bug]. In alternadiva, se pol doparar el moduło senplifegà cuà soto. El comento inserio el sarà xontà a ła pàjina \"[$3 $2]\", insieme al propio nome utente.",
-       "feedback-subject": "Ogeto:",
-       "feedback-message": "Messajo:",
        "feedback-cancel": "Anuła",
-       "feedback-submit": "Invia feedback",
-       "feedback-adding": "Inserimento del feedback inte ła pàjina...",
+       "feedback-close": "Fato",
        "feedback-error1": "Eror: Da ła API xe rivà un rexultà nó riconosùo",
        "feedback-error2": "Eror: Nó xe sta posibiłe exeguir ła modifega",
        "feedback-error3": "Errore: Nisuna risposta da ła API",
+       "feedback-message": "Messajo:",
+       "feedback-subject": "Ogeto:",
+       "feedback-submit": "Manda",
        "feedback-thanks": "Grasie! El to feedback el xe sta publicà a ła pàjina \"[$2 $1]\".",
-       "feedback-close": "Fato",
-       "feedback-bugcheck": "Otimo! Verifega che nó 'l sia xà infrà i [$1 bug conosui].",
-       "feedback-bugnew": "Controło efetuà. Segnała un novo bug",
        "searchsuggest-search": "Serca",
        "searchsuggest-containing": "che contien...",
        "api-error-badaccess-groups": "Nó te si autorixà a cargar documenti so sta wiki.",
index bd9b398..36f1788 100644 (file)
        "delete-toobig": "Necil lehtpolel om avar redaktiruinadan istorii - enamba {{PLURAL:$1|versii|versijad}}.\nMugoižiden lehtpoliden čudand om kel'tud, miše sait radaiži normaližikš.",
        "delete-warning-toobig": "Necil lehtpolel om avar redaktiruinadan istorii - enamba $1 {{PLURAL:$1|versii|versijad}}.\nMugoižiden lehtpoliden čudand voiži telustada {{SITENAME}}-saitan andmuzbazan normaližele radole.\nTehkat kaik varumujandanke!",
        "rollback": "Endištada toižetused",
-       "rollback_short": "Endištuz",
        "rollbacklink": "Endištada",
        "rollbackfailed": "Endištuz om keskustadud petusen tagut.",
        "cantrollback": "Ei voi endištada toižetusid;\nJäl'gmäine toižetai om üksjäižen lehtpolen avtoran.",
        "hijri-calendar-m1": "Muharram",
        "hijri-calendar-m2": "Safar",
        "hijri-calendar-m3": "Rabi al-aual",
-       "unknown_extension_tag": "Tundmatoi \"$1\"-ližanvirg",
        "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-parser-function-hooks": "Sintaksižen analizatoran funkcijoiden sabutajad",
        "version-hook-name": "Sabustajan nimi",
        "version-hook-subscribedby": "Ezipakitoitajad",
-       "version-version": "(Versii $1)",
+       "version-version": "($1)",
        "version-license": "Licenzii",
        "version-poweredby-others": "toižed",
        "version-software": "Seižutadud programmišt",
        "revdelete-unrestricted": "kaidendused heittud administratoriden täht",
        "rightsnone": "(ei ole)",
        "revdelete-summary": "kaik toižetused",
-       "feedback-subject": "Tem:",
-       "feedback-message": "Tedotuz:",
        "feedback-cancel": "Heitta pätand",
+       "feedback-close": "Vaumiž",
        "feedback-error2": "Petuz. Ei voi redaktiruida",
        "feedback-error3": "Petuz. API ei anda vastust",
-       "feedback-close": "Vaumiž",
+       "feedback-message": "Tedotuz:",
+       "feedback-subject": "Tem:",
        "searchsuggest-search": "Ectä",
        "searchsuggest-containing": "mülütajad...",
        "api-error-empty-file": "Teil oigetud fail om pall'az.",
index 76b05b3..21f39b2 100644 (file)
@@ -27,7 +27,8 @@
                        "아라",
                        "Tranquanganh",
                        "Max20091",
-                       "Dinhxuanduyet"
+                       "Dinhxuanduyet",
+                       "Macofe"
                ]
        },
        "tog-underline": "Gạch chân liên kết:",
        "disclaimers": "Phủ nhận",
        "disclaimerpage": "Project:Phủ nhận chung",
        "edithelp": "Trợ giúp sửa đổi",
+       "helppage-top-gethelp": "Trợ giúp",
        "mainpage": "Trang Chính",
        "mainpage-description": "Trang Chính",
        "policy-url": "Project:Quy định và hướng dẫn",
        "readonly_lag": "Cơ sở dữ liệu bị khóa tự động trong khi các máy chủ cập nhật thông tin của nhau.",
        "internalerror": "Lỗi nội bộ",
        "internalerror_info": "Lỗi nội bộ: $1",
+       "internalerror-fatal-exception": "Ngoại lệ chí tử loại “$1”",
        "filecopyerror": "Không thể chép tập tin “$1” đến “$2”.",
        "filerenameerror": "Không thể đổi tên tập tin “$1” thành “$2”.",
        "filedeleteerror": "Không thể xóa tập tin “$1”.",
        "unusedimages": "Tập tin chưa dùng",
        "wantedcategories": "Thể loại cần thiết",
        "wantedpages": "Trang cần viết",
+       "wantedpages-summary": "Danh sách các trang không tồn tại có nhiều trang nhất liên kết đến, trừ các trang chỉ có trang đổi hướng đến. Xem danh sách các trang không tồn tại có trang đổi hướng đến tại [[{{#special:BrokenRedirects}}]].",
        "wantedpages-badtitle": "Tiêu đề không hợp lệ trong tập kết quả: $1",
        "wantedfiles": "Tập tin cần thiết",
        "wantedfiletext-cat": "Các tập tin sau được nhúng nhưng không tồn tại. Các tập tin từ kho dùng chung có thể được liệt kê trong khi tồn tại; các trường hợp này được <del>gạch bỏ</del>. Ngoài ra, các trang nhúng tập tin không tồn tại được liệt kê tại [[:$1]].",
        "thumbnail_image-missing": "Hình như tập tin mất tích: $1",
        "thumbnail_image-failure-limit": "Việc tạo ra hình thu nhỏ này đã bị thất bại nhiều lần quá gần đây ($1 lần trở lên). Xin vui lòng thử lại sau.",
        "import": "Nhập các trang",
-       "importinterwiki": "Nhập giữa các wiki",
-       "import-interwiki-text": "Chọn tên trang và wiki để nhập trang vào.\nNgày của phiên bản và tên người viết trang sẽ được giữ nguyên.\nTất cả những lần nhập trang từ wiki khác được ghi lại ở [[Special:Log/import|nhật trình nhập trang]].",
+       "importinterwiki": "Nhập trang từ wiki khác",
+       "import-interwiki-text": "Chọn một wiki và tên trang để nhập.\nNgày của phiên bản và tên những người viết trang sẽ được giữ nguyên.\nTất cả những lần nhập trang từ wiki khác được ghi lại ở [[Special:Log/import|nhật trình nhập trang]].",
        "import-interwiki-sourcewiki": "Wiki nguồn:",
        "import-interwiki-sourcepage": "Trang nguồn:",
        "import-interwiki-history": "Sao chép tất cả các phiên bản cũ của trang này",
        "importcantopen": "Không thể mở tập tin để nhập vào",
        "importbadinterwiki": "Liên kết liên wiki sai",
        "importsuccess": "Nhập thành công!",
-       "importnosources": "Không có nguồn nhập giữa wiki và việc nhập lịch sử bị tắt.",
+       "importnosources": "Không chỉ định wiki nguồn để nhập, và việc nhập lịch sử trực tiếp bị vô hiệu.",
        "importnofile": "Không tải được tập tin nào lên.",
        "importuploaderrorsize": "Không thể tải tập tin nhập trang. Tập tin lớn hơn kích thước cho phép tải lên.",
        "importuploaderrorpartial": "Không thể tải tập tin nhập trang. Tập tin mới chỉ tải lên được một phần.",
        "version-parser-function-hooks": "Hook cho hàm cú pháp trong bộ xử lý",
        "version-hook-name": "Tên hook",
        "version-hook-subscribedby": "Được theo dõi bởi",
-       "version-version": "(Phiên bản $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[không tên]",
        "version-license": "Giấy phép MediaWiki",
        "version-ext-license": "Giấy phép",
        "tags-delete-explanation-initial": "Bạn muốn xóa thẻ \"$1\" từ cơ sở dữ liệu.",
        "tags-delete-explanation-in-use": "Nó sẽ được gỡ bỏ từ {{PLURAL:$2|$2 mục sửa đổi hoặc mục đăng nhập|tất cả $2 bản sửa đổi và/hoặc đăng nhập các mục}} mà nó hiện đang áp dụng.",
        "tags-delete-explanation-warning": "Hành động này là <strong>không thể đảo ngược</strong> và <strong>không thể hoàn tác</strong>, ngay cả bởi người quản trị cơ sở dữ liệu. Hãy chắc chắn đây là thẻ mà bạn muốn xóa.",
+       "tags-delete-explanation-active": "<strong>Thẻ “$1” vẫn còn kích hoạt.</strong> Để ngừng áp dụng thẻ này trong tương lai, đi đến những nơi áp dụng thẻ và vô hiệu nó tại đấy.",
        "tags-delete-reason": "Lý do:",
        "tags-delete-submit": "Không thể phục hồi xóa thẻ này",
        "tags-delete-not-allowed": "Thẻ được định nghĩa bởi một mở rộng không thể bị xóa trừ khi mở rộng đặc biệt cho phép điều đó xảy ra.",
        "tags-delete-not-found": "Thẻ \"$1\" không tồn tại.",
        "tags-delete-too-many-uses": "Từ khóa \"$1\" được áp dụng cho hơn $2 {{PLURAL:$2|phiên bản}}, có nghĩa là nó không thể bị xóa.",
+       "tags-delete-warnings-after-delete": "Thẻ “$1” bị xóa thành công, nhưng gặp {{PLURAL:$2|cảnh báo|các cảnh báo}} sau:",
        "tags-activate-title": "Kích hoạt thẻ",
        "tags-activate-question": "Bạn sắp sửa kích hoạt thẻ \"$1\".",
        "tags-activate-reason": "Lý do:",
        "revdelete-uname-unhid": "đã hiện tên người dùng",
        "revdelete-restricted": "đã áp dụng hạn chế cho bảo quản viên",
        "revdelete-unrestricted": "đã gỡ bỏ hạn chế cho bảo quản viên",
+       "logentry-block-block": "$1 {{GENDER:$2}}đã cấm {{GENDER:$4}}$3 hết hạn $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2}}đã bỏ cấm {{GENDER:$4}}$3",
+       "logentry-block-reblock": "$1 {{GENDER:$2}}đã cấu hình lại vụ cấm {{GENDER:$4}}$3 hết hạn $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2}}đã cấm {{GENDER:$4}}$3 hết hạn $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2}}đã cấu hình lại vụ cấm {{GENDER:$4}}$3 hết hạn $5 $6",
        "logentry-merge-merge": "$1 {{GENDER:$2}}đã hợp nhất $3 vào $4 (các phiên bản cho tới $5)",
        "logentry-move-move": "$1 {{GENDER:$2}}đã đổi $3 thành $4",
        "logentry-move-move-noredirect": "$1 {{GENDER:$2}}đã đổi $3 thành $4 (đã tắt đổi hướng)",
        "logentry-upload-overwrite": "$1 {{GENDER:$2}}đã tải lên một phiên bản mới của $3",
        "logentry-upload-revert": "$1 {{GENDER:$2}}đã tải lên $3",
        "log-name-managetags": "Danh sách quản lý thẻ",
+       "log-description-managetags": "Trang này có các công việc quản lý [[Special:Tags|thẻ]]. Nhật trình chỉ bao gồm các tác vụ do bảo quản viên thực hiện thủ công; phần mềm wiki có thể tạo hoặc xóa thẻ mà không ghi tác vụ vào nhật trình này.",
        "logentry-managetags-create": "$1 {{GENDER:$2| đã tạo}} thẻ \"$4\"",
+       "logentry-managetags-delete": "$1 {{GENDER:$2}}đã xóa thẻ “$4” (và gỡ nó khỏi $5 phiên bản hoặc mục nhật trình)",
        "logentry-managetags-activate": "$1 {{GENDER:$2|đã kích hoạt}} tag \"$4\" để sử dụng bởi người dùng và các bot",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|đã vô hiệu}} thẻ \"$4\" để sử dụng bởi người dùng và các bot",
        "rightsnone": "(không có)",
        "revdelete-summary": "tóm lược sửa đổi",
+       "feedback-adding": "Đang thêm thông tin phản hồi vào trang…",
+       "feedback-back": "Lùi",
+       "feedback-bugcheck": "Tuyệt! Chỉ cần kiểm tra nó chưa được [$1 báo cáo trước đây].",
+       "feedback-bugnew": "Tôi đã kiểm tra – báo cáo lỗi mới",
        "feedback-bugornote": "Nếu bạn đã sẵn sàng để miêu tả các chi tiết của một vấn đề kỹ thuật, xin vui lòng [$1 báo cáo lỗi].\nNếu không thì bạn có thể điền biểu mẫu đơn giản ở dưới. Lời ghi của bạn sẽ được đăng lên trang “[$3 $2]”, cùng với tên người dùng và trình duyệt của bạn.",
-       "feedback-subject": "Tiêu đề:",
-       "feedback-message": "Thông điệp:",
        "feedback-cancel": "Hủy bỏ",
-       "feedback-submit": "Gửi phản hồi",
-       "feedback-adding": "Đang thêm thông tin phản hồi vào trang…",
+       "feedback-close": "Xong",
+       "feedback-external-bug-report-button": "Tạo một công việc kỹ thuật",
+       "feedback-dialog-title": "Gửi phản hồi",
+       "feedback-dialog-intro": "Bạn có thể gửi phản hồi dễ dàng qua biểu mẫu bên dưới. Thông tin phản hồi của bạn sẽ được bổ sung vào trang “$1” cùng với tên người dùng của bạn.",
+       "feedback-error-title": "Lỗi",
        "feedback-error1": "Hủy bỏ",
        "feedback-error2": "Lỗi: Sửa đổi thất bại",
        "feedback-error3": "Lỗi: API không có phản ứng",
+       "feedback-message": "Thông điệp:",
+       "feedback-subject": "Tiêu đề:",
+       "feedback-submit": "Gửi",
+       "feedback-terms": "Tôi hiểu rằng thông tin tác nhân người dùng của tôi bao gồm đúng phiên bản của trình duyệt và hệ điều hành của tôi, và rằng các thông tin này sẽ được chia sẻ công khai bên cạnh thông tin phản hồi của tôi.",
+       "feedback-termsofuse": "Tôi đồng ý cung cấp thông tin phản hồi theo các Điều khoản Sử dụng.",
        "feedback-thanks": "Cảm ơn! Phản hồi của bạn đã được đăng lên trang “[$2 $1]”.",
-       "feedback-close": "Xong",
-       "feedback-bugcheck": "Tuyệt! Chỉ cần kiểm tra nó chưa được [$1 báo cáo trước đây].",
-       "feedback-bugnew": "Tôi đã kiểm tra – báo cáo lỗi mới",
+       "feedback-thanks-title": "Cảm ơn!",
+       "feedback-useragent": "Tác nhân người dùng:",
        "searchsuggest-search": "Tìm kiếm",
        "searchsuggest-containing": "có chứa…",
        "api-error-badaccess-groups": "Bạn không được phép tải tập tin lên wiki này.",
        "json-error-utf8": "Ký tự UTF-8 sai dạng, có lẽ đã mã hóa không chính xác",
        "json-error-recursion": "Giá trị để mã hóa có tham chiếu đệ quy",
        "json-error-inf-or-nan": "Giá trị để mã hóa có giá trị NAN (không phải số) hoặc INF (vô tận)",
-       "json-error-unsupported-type": "Đã đưa vào giá trị có kiểu không thể mã hóa"
+       "json-error-unsupported-type": "Đã đưa vào giá trị có kiểu không thể mã hóa",
+       "headline-anchor-title": "Liên kết đến phần này"
 }
index 7541c02..d51a5fc 100644 (file)
        "permalink": "Yüm laidüpik",
        "print": "Bükön",
        "view": "Logön",
+       "view-foreign": "Logön su $1",
        "edit": "Redakön",
        "create": "Jafön",
        "editthispage": "Redakolöd padi at",
        "disclaimers": "Nuneds",
        "disclaimerpage": "Project:Gididimiedükam valemik",
        "edithelp": "Redakamayuf",
+       "helppage-top-gethelp": "Yuf",
        "mainpage": "Cifapad",
        "mainpage-description": "Cifapad",
        "policy-url": "Project:Dunamod",
        "youhavenewmessages": "Su pad ola binons $1 ($2).",
        "youhavenewmessagesfromusers": "Labol $1 de {{PLURAL:$3|geban votik|gebans $3}} ($2).",
        "youhavenewmessagesmanyusers": "Labol $1 de gebans mödik ($2).",
-       "newmessageslinkplural": "{{PLURAL:$1|nuni nulik|nunis nulik}}",
-       "newmessagesdifflinkplural": "{{PLURAL:$1|votükam|votükams}} lätik",
+       "newmessageslinkplural": "{{PLURAL:$1|nuni nulik|999=nunis nulik}}",
+       "newmessagesdifflinkplural": "{{PLURAL:$1|votükam|999=votükams}} lätik",
        "youhavenewmessagesmulti": "Labol nunis nulik su $1",
        "editsection": "redakön",
        "editold": "redakön",
        "toc": "Ninäd",
        "showtoc": "jonön",
        "hidetoc": "klänedön",
+       "confirmable-yes": "Si!",
+       "confirmable-no": "Nö!",
        "thisisdeleted": "Jonön u sädunön moükami $1?",
        "viewdeleted": "Logön eli $1?",
        "restorelink": "{{PLURAL:$1|redakama bal|redakamas $1}}",
        "gotaccount": "Ya labol-li kali? '''$1'''.",
        "gotaccountlink": "Nunädolös obi",
        "userlogin-resetlink": "Eglömol-li nünis kala olik?",
-       "userlogin-resetpassword-link": "Dönuvälön letavödi olik",
+       "userlogin-resetpassword-link": "Eglömol-li letavödi olik?",
        "createacct-emailrequired": "Ladet leäktronik",
        "createaccountmail": "me pot leäktronik",
        "createaccountreason": "Kod:",
        "wrongpassword": "Letavöd neveräton. Steifülolös dönu.",
        "wrongpasswordempty": "Letavöd vagon. Steifülolös dönu.",
        "passwordtooshort": "Letavöds mutons binädon me {{PLURAL:$1|malat|malats}} pu $1.",
-       "mailmypassword": "Sedön letavödi nulik",
+       "mailmypassword": "Dönuvälön letavödi",
        "passwordremindertitle": "Letavöd nulik nelaidik in {{SITENAME}}",
        "passwordremindertext": "Ek (luveratiko ol, se ladet-IP: $1) ebegon sedi letavöda nulik pro {{SITENAME}} ($4). Letavöd nelaidüpik pejafon pro geban: „$2“ me ninäd: „$3“. If atos ejenon ma vil olik, mutol anu nunädön oli e välön letavödi nulik. Letavöd nelaidüpik ola odulon dü {{PLURAL:$5|del bal|dels $5}}.\n\nIf pösod votik edunon begi at, ud if anu memol letavödi olik e no plu vilol votükön oni, dalol nedemön penedi at e laigebön letavödi rigik ola.",
        "noemail": "Ladet leäktronik nonik peregistaron pro geban \"$1\".",
        "mailerror": "Pöl dü sedam pota: $1",
        "acct_creation_throttle_hit": "Visitans vüka at, gebölo ladeti-IP olik, ejafons {{PLURAL:$1|kali bal|kalis $1}} dü del lätik, kelos binon num gretikün kalas jafovik dü timaperiod at.\nSekü atos, visitans ladeti-IP at geböls no dalons jafön kalis pluik ün atim.",
        "emailauthenticated": "Ladet leäktronik olik päfümükon tü düp $2 ün $3.",
-       "emailnotauthenticated": "Ladet leäktronik ola no nog pefümedon. Pened nonik posedon me pads sököl.",
+       "emailnotauthenticated": "Ladet leäktronik ola no nog pefümedon.\nPened nonik posedon me lienäds sököl.",
        "noemailprefs": "Givolös ladeti leäktronik, dat pads at okanons pagebön.",
        "emailconfirmlink": "Fümedolös ladeti leäktronik ola",
        "invalidemailaddress": "Ladet leäktronik no kanon pazepön bi fomät onik jiniko no lonöfon.\nPenolös ladeti labü fomät lonöföl, u vagükolös penamaspadi.",
        "accountcreatedtext": "Gebanakal pro [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|bespik]]) pejafon.",
        "createaccount-title": "Kalijafam in {{SITENAME}}",
        "createaccount-text": "Ek ejafon kali pro ladet leäktronik ola in {{SITENAME}} ($4) labü nem: „$2“ e letavöd: „$3“. Kanol nunädön oli e votükön letavödi olik anu.\n\nKanol nedemön penedi at, üf jafam kala at binon pöl.",
-       "login-throttled": "Esteifülol tumödikna ad nunädön oli änu.\nStebedolös büä osteifülol nogna.",
+       "login-throttled": "Esteifülol tumödikna ad nunädön oli änu.\nStebedolös $1 büä osteifülol nogna.",
        "loginlanguagelabel": "Pük: $1",
+       "pt-login": "Nunädön oki",
+       "pt-login-button": "Nunädön oki",
+       "pt-createaccount": "Jafön kali",
+       "pt-userlogout": "Senunädön oki",
        "changepassword": "Votükön letavödi",
-       "resetpass_announce": "Enunädol oli me kot nelaidüpik pisedöl ole. Ad finükön nunädami, mutol välön letavödi nulik is:",
+       "resetpass_announce": "Ad finükön nunädami, mutol välön letavödi nulik.",
        "resetpass_header": "Votükön kalaletavödi",
        "oldpassword": "Letavöd büik:",
        "newpassword": "Letavöd nulik:",
        "currentrev": "Fomam anuik",
        "currentrev-asof": "Fomam nuik tü $1",
        "revisionasof": "Fomam dätü $1",
-       "revision-info": "Fomam timü $1 fa el $2",
+       "revision-info": "Fomam timü $1 fa {{GENDER:$6|hiel|jiel|el}} $2($7)",
        "previousrevision": "←Fomam vönedikum",
        "nextrevision": "Fomam nulikum→",
        "currentrevisionlink": "Fomam anuik",
        "revdelete-hide-text": "Klänedön vödemi revida",
        "revdelete-hide-image": "Klänedön ragivaninädi",
        "revdelete-hide-name": "Klänedön duni e zeili",
-       "revdelete-hide-comment": "Klänedön redakamaküpeti",
+       "revdelete-hide-comment": "Redakön küpeti",
        "revdelete-hide-user": "Klänedön gebananemi u ladeti-IP redakana",
        "revdelete-hide-restricted": "Gebön miedükamis at i demü guvans e lökofärmükön fometi at",
        "revdelete-radio-same": "(no votükolös)",
        "compareselectedversions": "Leigodolöd fomamis pevälöl",
        "showhideselectedversions": "Jonön/klänedön fomamis pevälöl",
        "editundo": "sädunön",
+       "diff-empty": "(Nen difs)",
        "searchresults": "Sukaseks",
        "searchresults-title": "Sukaseks pro: \"$1\"",
        "titlematches": "Leigon ko padatiäd",
        "search-result-category-size": "{{PLURAL:$1|liman 1|limans $1}} ({{PLURAL:$2|donaklad 1|donaklads $2}}, {{PLURAL:$3|ragiv 1|ragivs $3}})",
        "search-redirect": "(lüodüköm: $1)",
        "search-section": "(diläd: $1)",
+       "search-category": "(klad: $1)",
        "search-suggest": "Ediseinol-li: $1 ?",
        "search-interwiki-caption": "Svistaproyegs",
        "search-interwiki-default": "Seks se $1:",
        "prefs-personal": "Gebananüns",
        "prefs-rc": "Votükams nulik",
        "prefs-watchlist": "Galädalised",
+       "prefs-editwatchlist": "Redakön galädalisedi",
        "prefs-watchlist-days": "Num delas ad pajonön in galädalised:",
        "prefs-watchlist-days-max": "Maxum: {{PLURAL:$1|del|dels}} $1",
        "prefs-watchlist-edits": "Num redakamas ad pajonön in galädalised pestäänüköl:",
        "action-userrights-interwiki": "redakön gebanagitätis gebanas vükas votik",
        "action-siteadmin": "lökofärmükön u maifükön nünodemi",
        "nchanges": "{{PLURAL:$1|votükam|votükams}} $1",
+       "enhancedrc-history": "jenotem",
        "recentchanges": "Votükams nulik",
        "recentchanges-legend": "Votükams nulik: paramets",
        "recentchanges-summary": "Su pad at binons votükams nulikün in vüki at.",
        "recentchanges-label-minor": "Atos binon redakam pülik",
        "recentchanges-label-bot": "Redakam at pädunon fa el bot",
        "recentchanges-label-unpatrolled": "Redakam at no nog pekontrolon",
-       "recentchanges-legend-newpage": "$1 - pad nulik",
+       "recentchanges-legend-newpage": "{{int:recentchanges-label-newpage}} (logolös i [[Special:NewPages|lisedi padas nulik]])",
        "rcnotefrom": "Is palisedons votükams sis '''$2''' (jü '''$1''').",
        "rclistfrom": "Jonön votükamis nulik, primölo tü düp $3 $2",
        "rcshowhideminor": "$1 votükamis pülik",
+       "rcshowhideminor-show": "Jonön",
+       "rcshowhideminor-hide": "Klänedön",
        "rcshowhidebots": "$1 elis bot",
-       "rcshowhideliu": "$1 gebanis penunädöl",
+       "rcshowhidebots-show": "Jonön",
+       "rcshowhidebots-hide": "Klänedön",
+       "rcshowhideliu": "$1 gebanis registaröl",
+       "rcshowhideliu-show": "Jonön",
+       "rcshowhideliu-hide": "Klänedön",
        "rcshowhideanons": "$1 gebanis nennemik",
+       "rcshowhideanons-show": "Jonön",
+       "rcshowhideanons-hide": "Klänedön",
        "rcshowhidepatr": "Redakams $1 pekontrolons",
+       "rcshowhidepatr-show": "Jonön",
+       "rcshowhidepatr-hide": "Klänedön",
        "rcshowhidemine": "$1 redakamis obik",
+       "rcshowhidemine-show": "Jonön",
+       "rcshowhidemine-hide": "Klänedön",
        "rclinks": "Jonön votükamis lätik $1 ün dels lätik $2<br />$3",
        "diff": "dif",
        "hist": "jen",
        "number_of_watching_users_pageview": "[{{PLURAL:$1|geban|gebans}} galädöl $1]",
        "rc_categories": "Te klads fovik (ditolös me el \"|\")",
        "rc_categories_any": "Alseimik",
+       "rc-change-size-new": "{{PLURAL:$1|jölät|jöläts}} $1 po votükam",
        "newsectionsummary": "/* $1 */ diläd nulik",
        "rc-enhanced-expand": "Jonön patis",
        "rc-enhanced-hide": "Klänedön patis",
        "suppress": "Lovelogam",
        "booksources": "Bukafons",
        "booksources-search-legend": "Sukön bukafonis:",
+       "booksources-search": "Sukön",
        "booksources-text": "Is palisedons bevüresodatopäds votik, kels selons bukis nulik e pegebölis, e kels ba labons nünis pluik dö buks fa ol pasuköls:",
        "booksources-invalid-isbn": "El ISBN at jiniko no lonöfon; kontrololös pökis po kopiedam se rigafonät.",
        "specialloguserlabel": "Dunan:",
        "protectedarticle": "ejelon padi: „[[$1]]“",
        "modifiedarticleprotection": "evotükon jelanivodi pada: „[[$1]]“",
        "unprotectedarticle": "esäjelon padi: \"[[$1]]\"",
-       "movedarticleprotection": "mengubah pengaturan perlindungan dari „[[$2]]“ ke „[[$1]]“",
        "protect-title": "lonon jelanivodi pada: „$1“",
        "prot_1movedto2": "[[$1]] petopätükon lü [[$2]]",
        "protect-legend": "Fümedolös jeli",
        "thumbnail_invalid_params": "Paramets magodila no lonöfons",
        "thumbnail_dest_directory": "No emögos ad jafön zeilaragiviäri",
        "import": "Nüveigön padis",
-       "importinterwiki": "Nüveigam vü vüks",
+       "importinterwiki": "Nüveigön de vük votik",
        "import-interwiki-text": "Levälolös vüki e padatiädi ad nüveigön.\nDäts fomamas e nems redakanas pokipedons.\nNüveigs vüvükik valik pajonons su [[Special:Log/import|nüveigamalised]].",
        "import-interwiki-history": "Kopiedön fomamis valik jenotema pada at",
        "import-interwiki-templates": "Keninükön samafomotis valik",
        "import-parse-failure": "Pöl pö nüveigam ela XML",
        "import-noarticle": "Pad nüveigabik nonik!",
        "import-nonewrevisions": "Fomams valik ya pinüveigons.",
-       "xml-error-string": "$1 pö lien: $2, kolum: $3 (jölat: $4): $5",
+       "xml-error-string": "$1 pö lien: $2, kolum: $3 (jölät: $4): $5",
        "import-upload": "Löpükön nünodis-XML",
        "import-token-mismatch": "Redakamanünods peperons. Steifülolös dönu.",
        "import-invalid-interwiki": "Nüveigam se vük pavilöl no mögon.",
        "importlogpage": "Jenotalised nüveigamas",
        "importlogpagetext": "Nüveigam guverik padas labü redakamajenotem se vüks votik",
-       "import-logentry-upload": "pad: [[$1]] penüveigon medü ragivilöpükam",
        "import-logentry-upload-detail": "{{PLURAL:$1|fomam|fomams}} $1",
-       "import-logentry-interwiki": "pevotavükükon: $1",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|fomam|fomams}} $1 se $2",
        "tooltip-pt-userpage": "Gebanapad olik",
        "tooltip-pt-anonuserpage": "Gebanapad ladeta-IP, me kel redakol",
        "file-nohires": "Gretot gudikum no pagebidon.",
        "svg-long-desc": "ragiv in fomät: SVG, magodaziöbs $1 × $2, gretot: $3",
        "svg-long-error": "Ragiv 'SVG' ne lonöfon: $1",
-       "show-big-image": "Gretot gudikün",
+       "show-big-image": "Ragiv rigik",
        "newimages": "Pänotem ragivas nulik",
        "imagelisttext": "Dono binon lised '''$1''' {{PLURAL:$1|ragiva|ragivas}} $2 pedilädölas.",
        "newimages-summary": "Pad patik at lisedon ragivis pelöpüköl lätik.",
        "watchlisttools-view": "Logön votükamis teföl",
        "watchlisttools-edit": "Logön e redakön galädalisedi",
        "watchlisttools-raw": "Redakön galädalisedi nen fomät",
+       "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|bespik]])",
        "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-hooks": "Huköms",
        "version-hook-name": "Hukömanem",
        "version-hook-subscribedby": "Pagebon fa",
-       "version-version": "(Fomam $1)",
        "version-license": "Dälazöt",
        "version-poweredby-others": "votikans",
        "version-software": "Programs pestitöl",
        "htmlform-selectorother-other": "Votik",
        "htmlform-no": "Nö",
        "htmlform-yes": "Si",
+       "logentry-delete-delete": "$1 emoükon padi: $3",
        "revdelete-restricted": "miedükams pelonöfükons pro guvans",
        "revdelete-unrestricted": "miedükams pro guvans pemoükons",
+       "logentry-block-unblock": "$1 {{GENDER:$2|eblokon}} {{GENDER:$4|hieli $3|jieli $3|eli $3}}",
+       "logentry-newusers-create": "Gebanakal: $1 pejafon",
        "rightsnone": "(nonik)",
        "revdelete-summary": "plän redakama",
+       "feedback-error-title": "Pöl",
        "feedback-subject": "Yegäd:",
        "searchsuggest-search": "Suk",
        "searchsuggest-containing": "ninädöl...",
index e4c02cf..a65ac57 100644 (file)
        "watchlisttools-raw": "Toimõndaq lätteteedüstüt",
        "duplicate-defaultsort": "'''Hoiatus:''' Sortmisvõti \"$2\" tühistäs ärq innembädse sortmisvõtmõ \"$1\".",
        "version": "Kujo",
-       "version-version": "(Kujo $1)",
+       "version-version": "($1)",
        "version-software-version": "Kujo",
        "fileduplicatesearch-filename": "Teedüstünimi:",
        "fileduplicatesearch-submit": "Otsiq",
index d7cd777..939fbe3 100644 (file)
@@ -5,7 +5,8 @@
                        "Srtxg",
                        "Urhixidur",
                        "לערי ריינהארט",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Sorlignî les loyéns:",
        "xml-error-string": "$1 al roye $2, colone $3 (octet $4): $5",
        "importlogpage": "Djournå des ristitchaedjes",
        "importlogpagetext": "Ristitchaedjes (import) administratifs di pådjes avou leus istorikes di candjmints, a pårti d' ôtes wikis.",
-       "import-logentry-upload": "a ristitchî [[$1]] avou èn eberwetaedje di fitchî",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|modêye|modêyes}}",
-       "import-logentry-interwiki": "a ristitchî $1 foû d' èn ôte wiki",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|modêye|modêyes}} foû di $2",
        "tooltip-pt-userpage": "Pådje d' uzeu da minne",
        "tooltip-pt-anonuserpage": "Li pådje d' uzeu po l' adresse IP ki vos eployîz pol moumint",
        "logentry-newusers-create2": "$1 a-st ahivé on conte d' uzeu $3",
        "logentry-newusers-autocreate": "li conte $1 a stî ahivé otomaticmint",
        "rightsnone": "(nouk)",
-       "feedback-subject": "Sudjet",
-       "feedback-message": "Messaedje",
-       "feedback-cancel": "Rinoncî",
-       "feedback-submit": "Evoyî l' vosse",
        "feedback-adding": "Vosse messaedje a stî håyné sol pådje...",
-       "feedback-error2": "Aroke : Li candjaedje n' a nén stî",
+       "feedback-cancel": "Rinoncî",
        "feedback-close": "Fwait",
+       "feedback-error2": "Aroke : Li candjaedje n' a nén stî",
+       "feedback-message": "Messaedje",
+       "feedback-subject": "Sudjet",
+       "feedback-submit": "Evoyî",
        "searchsuggest-search": "Cweri",
        "searchsuggest-containing": "ki contént...",
        "api-error-badaccess-groups": "Vos n' avoz nén l' droet d' eberweter des fitchîs so ç' wiki cial",
index ad7f250..d2df113 100644 (file)
        "deletereason-dropdown": "*Agsob nga rason hin pagpara\n** Spam\n** Bandalismo\n** Pagtalapas ha katungod hin pagtatag-iya (''copyright'')\n** Tugon han manunurat\n** Utod nga redirek",
        "delete-edit-reasonlist": "Igliwat an mga rason han pagpara",
        "rollback": "Mga libot-pabalik nga pagliwat",
-       "rollback_short": "Libot-pabalik",
        "rollbacklink": "libot-pabalik",
        "rollbackfailed": "Diri malinamposon an paglibot-pabalik",
        "revertpage": "Ginpabalik an ginliwat ni [[Special:Contributions/$2|$2]] ([[User talk:$2|hiruhimangraw]]) ngadto ha urhi nga pagliwat ni [[User:$1|$1]]",
        "version-mediahandlers": "Mga nakapot han medya",
        "version-hooks": "Mga kawil",
        "version-hook-name": "Ngaran han kawil",
-       "version-version": "(Bersion $1)",
+       "version-version": "($1)",
        "version-license": "MediaWiki nga Lisensya",
        "version-poweredby-credits": "Ini nga wiki in pinapaandar han '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
        "version-poweredby-others": "mga iba",
        "logentry-newusers-create2": "An gumaramit nga akawnt nga $3 {{GENDER:$2|ginhimo}} ni $1",
        "logentry-newusers-autocreate": "An gumaramit nga akawnt nga $1 in lugaring nga {{GENDER:$2|ginhimo}}",
        "rightsnone": "(waray)",
-       "feedback-subject": "Himangrawon:",
-       "feedback-message": "Mensahe:",
        "feedback-cancel": "Pasagdi",
-       "feedback-error2": "Sayop: Pakyas an pagliwat",
        "feedback-close": "Human na.",
+       "feedback-error2": "Sayop: Pakyas an pagliwat",
+       "feedback-message": "Mensahe:",
+       "feedback-subject": "Himangrawon:",
        "searchsuggest-search": "Pamilnga",
        "searchsuggest-containing": "nagsusulod. . .",
        "api-error-badaccess-groups": "Diri ka gintutugotan pagkarga paigbaw ha dinhi nga wiki.",
index cb5406e..0bab496 100644 (file)
@@ -12,7 +12,8 @@
                        "לערי ריינהארט",
                        "פוילישער",
                        "아라",
-                       "Har-wradim"
+                       "Har-wradim",
+                       "Amire80"
                ]
        },
        "tog-underline": "שטרייכט אונטער לינקען",
        "disclaimers": "געזעצליכע אויפֿקלערונג",
        "disclaimerpage": "Project:קלארשטעלונג",
        "edithelp": "הילף וויאזוי צו ענדערן",
+       "helppage-top-gethelp": "הילף",
        "mainpage": "הויפט זייט",
        "mainpage-description": "הויפט זייט",
        "policy-url": "Project:פאליסי",
        "readonly_lag": "די דאטעבאזע איז געווארן אויטאמטיש אפגעשפארט כדי צו דערמעגליכן פאר די אונטער דאטע באזע סערווערס צו ווערן דערהיינטיגט פון דעם אויבער סערווער.",
        "internalerror": "אינערלעכער פעלער",
        "internalerror_info": "אינערלעכער פֿעלער: $1",
+       "internalerror-fatal-exception": "פאטאלער  אויסנאם־פעלער פון טיפ \"$1\"",
        "filecopyerror": "האט נישט געקענט קאפירן \"$1\" צו \"$2\".",
        "filerenameerror": "נאמען טויש פֿאַר \"$1\" צו \"$2\" איז נישט אדורכגעגאנגען.",
        "filedeleteerror": "אויסמעקן \"$1\" נישט דורך.",
        "userlogin-yourname": "באַניצער נאָמען",
        "userlogin-yourname-ph": "גיט אריין אייער באניצער נאמען",
        "createacct-another-username-ph": "אריינגעבן באניצער נאמען",
-       "yourpassword": "פאסווארט",
+       "yourpassword": "פּאַסװאָרט",
        "userlogin-yourpassword": "פאַסווארט",
        "userlogin-yourpassword-ph": "אַרײַנגעבן אײַער פאַסווארט",
        "createacct-yourpassword-ph": "אַרײַנגעבן א פאַסווארט",
        "prefs-watchlist": "אויפפאסונג ליסטע",
        "prefs-editwatchlist": "רעדאַקטירן די אויפֿפאַסונג ליסטע",
        "prefs-editwatchlist-label": "רעדאקטירן ארטיקלען אויף אײַער אויפפאסונג־ליסטע:",
+       "prefs-editwatchlist-edit": "באקוקן און אראפנעמען קעפלעך אויף אייער אויפפאסונג־לעסטע",
        "prefs-editwatchlist-raw": "רעדאַקטירן די רויע אויפֿפאַסונג ליסטע",
        "prefs-editwatchlist-clear": "ליידיגן אייער אויפפאסונג ליסטע",
        "prefs-watchlist-days": "טעג צו ווייזן אין דער אויפפאסונג ליסטע:",
        "username": "{{GENDER:$1|באַניצער־נאָמען}}:",
        "prefs-memberingroups": "{{GENDER:$2|מיטגליד}} אין {{PLURAL:$1|גרופע|גרופעס}}:",
        "prefs-registration": "אײַנשרײַבן צײַט:",
-       "yourrealname": "עכטער נאמען *:",
+       "yourrealname": "עכטער נאָמען:",
        "yourlanguage": "שפּראַך:",
        "yourvariant": "אינהאַלט שפּראַך וואַריאַנט:",
        "prefs-help-variant": "אײַער פרעפֿערירטער וואַריאַנט אדער ארטאגראַפֿיע צו צייגן די אינהאַלט בלעטער פֿון דער וויקי.",
        "right-protect": "ענדערן שוץ ניוואען און רעדאַגירן קאסקאד־געשיצטע בלעטער",
        "right-editprotected": "רעדאַגירן בלעטער געשיצט ווי \"{{int:protect-level-sysop}}\"",
        "right-editsemiprotected": "רעדאַגירן בלעטער געשיצט ווי \"{{int:protect-level-autoconfirmed}}\"",
+       "right-editcontentmodel": "רעדאקטירן אינהאלט־מאדעל פון א בלאט",
        "right-editinterface": "רעדאַקטירן די באַניצער אייבערפֿלאַך",
        "right-editusercssjs": "רעדאַקטירן אַנדערע באַניצערס CSS און JS טעקעס",
        "right-editusercss": "רעדאַקטירן אַנדערע באַניצערס CSS טעקעס",
        "right-editmyusercss": "רעדאקטירע אײַערע אייגענע באניצער CSS טעקעס",
        "right-editmyuserjs": "רעדאקטירן אײַערע אייגענע באניצער JavaScript טעקעס",
        "right-viewmywatchlist": "באקוקן אייער אייגענע אויפפאסונג ליסטע",
-       "right-editmywatchlist": "רעדאקטירן אייער אייגענע אויפפאסונג ליסטער. טייל פעולות וועלן דאך צולייגן בלעטער אפילו אן דעם רעכט.",
+       "right-editmywatchlist": "רעדאקטירן אייער אייגענע אויפפאסונג ליסטע. טייל פעולות וועלן דאך צולייגן בלעטער אפילו אן דעם רעכט.",
        "right-viewmyprivateinfo": "באקוקן אײַער אייגענע פריוואטע דאטן (צ\"ב ע־פאסט אדרעס, אמתער נאמען)",
        "right-editmyprivateinfo": "רעדאקטירן אײַער אייגענע פריוואטע דאטן (צ\"ב ע־פאסט אדרעס, אמתער נאמען)",
        "right-editmyoptions": "רעדאקטירן אײַערע אייגענע פרעפערענצן",
        "right-override-export-depth": "עקספארטירן בלעטער כולל געלינקטע בלעטער ביז א טיף פון 5",
        "right-sendemail": "שיקן ע-פאסט צו אנדערע באניצער",
        "right-passwordreset": "באַקוקן פאַסווארט צוריקשטעלן ע־בריוו",
+       "right-managechangetags": " [[Special:Tags|טאגן]] פון דעם שאפן און אויסמעקן",
        "newuserlogpage": "נייע באַניצערס לאָג-בוך",
        "newuserlogpagetext": "דאס איז א לאג פון באַניצערס אײַנשרײַבונגען.",
        "rightslog": "באַניצער רעכטן לאג",
        "action-viewmywatchlist": "באקוקן אײַער אויפֿפאסונג ליסטע",
        "action-viewmyprivateinfo": "באקוקן אײַער פריוואטע אינפארמאציע",
        "action-editmyprivateinfo": "רעדאקטירן אײַער פריוואטע אינפארמאציע",
+       "action-editcontentmodel": "רעדאקטירן אינהאלט־מאדעל פון א בלאט",
        "action-managechangetags": "שאפן און אויסמעקן טאגן פון דער דאטנבאזע",
        "nchanges": "{{PLURAL:$1|ענדערונג|$1 ענדערונגען}}",
        "enhancedrc-since-last-visit": "$1 {{PLURAL:$1|זײַט לעצטן וויזיט}}",
        "undelete-show-file-submit": "יא",
        "namespace": "נאמענטייל:",
        "invert": "ווײַז אַלע אויסער די",
+       "tooltip-invert": "באצייכנט דאס קעסטל צו באהאלטן ענדערונגען צו בלעטער אין דעם געקליבענעם נאמענטייל",
        "tooltip-whatlinkshere-invert": "מארקירט דאס קעסטל צו באהאלטן לינקען פון בלעטער אינעם אויסגעקליבענעם נאמענטייל.",
        "namespace_association": "אָנגעבונדענער נאָמענטייל",
        "tooltip-namespace_association": "צייכנט דאס קעסטל כדי איינשליסן דעם שמועס אדער סוביעקט נאמענטייל וואס געהערט צום אויסגעקליבענעם נאמענטייל",
        "thumbnail_gd-library": "אומפולשטענדיקע קאנפיגוראציע פאר דער GD-ביבליאטעק: פונקציע $1 פעלט",
        "thumbnail_image-missing": "טעקע פֿעלט אייגנטלעך: $1",
        "import": "אימפארטירן בלעטער",
-       "importinterwiki": "×\90ר×\99×\91ער×\95×\95×\99ק×\99 ×\90×\99×\9eפ×\90ר×\98",
-       "import-interwiki-text": "ק×\9c×\95×\99×\91×\98 ×\90×\95×\99ס ×\90 ×\95×\95×\99ק×\99 ×\90×\95×\9f ×\90×\9f ×\90ר×\98×\99ק×\9c ×§×¢×¤×\9c ×¦×\95 ×\90×\99×\9eפ×\90ר×\98×\99ר×\9f.\n×\93×\99 ×\93×\90×\98עס ×\90×\95×\9f ×\93×\99 × ×¢×\9e×¢×\9f ×¤×\95×\9f ×\93×\99 ×¨×¢×\93×\90ק×\98×\90ר×\9f ×\95×\95×¢×\98 ×\95×\95ער×\9f ×\92×¢×\94×\99×\98×\9f.\n×\90×\9c×¢ ×¦×\95×\95×\99שנ×\95×\95×\99ק×\99 ×\90×\99×\9eפ×\90ר×\98 ×\90קצ×\99×¢ס ווערן פארשריבן אינעם   [[Special:Log/import|אימפארט לאג]].",
+       "importinterwiki": "×\90×\99×\9eפ×\90ר×\98×\99ר×\9f ×¤Ö¿×\95×\9f ×\90Ö·×\9f ×\90Ö·× ×\93ער ×\95×\95×\99ק×\99",
+       "import-interwiki-text": "ק×\9c×\95×\99×\91×\98 ×\90×\95×\99ס ×\90 ×\95×\95×\99ק×\99 ×\90×\95×\9f ×\90×\9f ×\90ר×\98×\99ק×\9c ×§×¢×¤×\9c ×¦×\95 ×\90×\99×\9eפ×\90ר×\98×\99ר×\9f.\n×\93×\99 ×\93×\90×\98עס ×\90×\95×\9f ×\93×\99 × ×¢×\9e×¢×\9f ×¤×\95×\9f ×\93×\99 ×¨×¢×\93×\90ק×\98×\90ר×\9f ×\95×\95×¢×\98 ×\95×\95ער×\9f ×\92×¢×\94×\99×\98×\9f.\n×\90×\9c×¢ ×\90×\99×\9eפ×\90ר×\98×\9f ×¤×\95×\9f ×\90× ×\93ערע ×\95×\95×\99ק×\99ס ווערן פארשריבן אינעם   [[Special:Log/import|אימפארט לאג]].",
        "import-interwiki-sourcewiki": "מקור וויקי:",
        "import-interwiki-sourcepage": "מקור בלאַט:",
        "import-interwiki-history": "קאפירן אלע היסטאריע ווערסיעס פאר דעם בלאט",
        "importcantopen": "נישט געקענט עפֿענען אימפארט טעקע",
        "importbadinterwiki": "שלעכטע אינטערוויקי לינק",
        "importsuccess": "!אימפארט אדורכגעפירט מיט דערפאלג!",
-       "importnosources": "ק×\99×\99×\9f ×\9eק×\95ר×\95ת ×¤Ö¿×\90ַר ×¦×\95×\95×\99ש×\9fÖ¾×\95×\95×\99ק×\99 ×\90×\99×\9eפ×\90רט, און דירעקט היסטאריע אַרויפֿלאָדן איז נישט דערמעגלעכט אַצינד.",
+       "importnosources": "ק×\99×\99×\9f ×\95×\95×\99ק×\99ס ×¤Ö¿×\95×\9f ×\95×\95×¢×\9e×¢×\9f ×¦×\95 ×\90×\99×\9eפ×\90ר×\98×\99ר×\9f ×\96×¢× ×¢×\9f ×\93עפ×\99× ×\99רט, און דירעקט היסטאריע אַרויפֿלאָדן איז נישט דערמעגלעכט אַצינד.",
        "importnofile": "קיין אימפארט טעקע איז נישט ארויפֿגעלאדן.",
        "importuploaderrorsize": "אַרויפֿלאָדן פֿון אימפארט טעקע דורכגעפֿאלן.\nדי טעקע איז גרעסער פֿון דער דערלויבטער אַרויפֿלאָדן גרייס.",
        "importuploaderrorpartial": "אַרויפֿלאָדן פֿון אימפארט טעקע דורכגעפֿאלן.\nדי טעקע איז נאר טיילווייז אַרויפֿגעלאָדן.",
        "import-rootpage-nosubpage": "נאמענטייל \"$1\" פונעם שטאמבלאט ערלויבט נישט קיין אונטערבלעטער.",
        "importlogpage": "אימפארט לאגבוך",
        "importlogpagetext": "אַדמיניסטראַטיווער אימפארט פון בלעטער מיט רעדאַגירן היסטאריע פֿון ​​אַנדערע וויקיס.",
-       "import-logentry-upload": "האט אימפארטירט [[$1]] דורך טעקע אַרויפֿלאָדן",
        "import-logentry-upload-detail": "$1 {{PLURAL:$1|רעוויזיע|רעוויזיעס}} אימפארטירט",
-       "import-logentry-interwiki": "אריבערגעוויקיט $1",
        "import-logentry-interwiki-detail": "$1 {{PLURAL:$1|רעוויזיע|רעוויזיעס}} אימפארטירט פֿון $2",
        "javascripttest": "JavaScript טעסט",
        "javascripttest-pagetext-noframework": " דער בלאט איז רעזערווירט פאר JavaScript. פרואוון.",
        "tooltip-pt-mycontris": "ליסטע פון אייערע ביישטייערונגען",
        "tooltip-pt-login": "עס איז רעקאָמענדירט זיך אײַנשרײַבן; ס'איז אבער נישט קיין פֿליכט",
        "tooltip-pt-logout": "ארויסלאגירן",
+       "tooltip-pt-createaccount": "איר ווערט דערמוטיגט צו שאפן א קאנטע און אריינלאגירן; ס'איז אביר נישט אבליגאטאריש",
        "tooltip-ca-talk": "שמועס וועגן דעם אינהאַלט בלאַט",
        "tooltip-ca-edit": "איר קענט ענדערן דעם בלאט. ביטע באניצט דעם ''פֿארויסקוק'' קנעפל בעפֿארן אפהיטן",
        "tooltip-ca-addsection": "אָנהייבן א נײַע אָפטיילונג",
        "version-hooks": "Hook סטרוקטורן",
        "version-parser-extensiontags": "פארזער פארברייטערן טאַגן",
        "version-hook-name": "נאמען פון hook",
-       "version-version": "(ווערסיע $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[קיין נאמען]",
        "version-license": "מעדיעוויקי ליצענץ",
        "version-ext-license": "ליצענץ",
        "logentry-upload-upload": "$1 {{GENDER:$2|האט ארויפגעלאדן}} $3",
        "rightsnone": "(גארנישט)",
        "revdelete-summary": "רעדאקטירונג קיצור",
+       "feedback-adding": "צולייגן פֿידבעק צו בלאַט...",
+       "feedback-bugcheck": "געוואלדיק! אבער זייט בודק אז עס איז נישט איינער פון די [$1 באוואוסטע באגן].",
+       "feedback-bugnew": "כ'האב בודק געווען. רעפארטירט א נייעם באג.",
        "feedback-bugornote": "ווען איר זענט גרייט צו באשרייבן א טעכנישן פראבלעם ביטע [$1 מעלדט א פעלער].\nאנדערש, קענט איר ניצן די גרינגע פארעם אונטן. מען וועט צולייגן אייער הערה צום בלאט \"[$3 $2]\", צוזאמען מיט אייער באניצער נאמען און וועלכן בלעטערער איר ניצט.",
-       "feedback-subject": "טעמע:",
-       "feedback-message": "מעלדונג:",
        "feedback-cancel": "אַנולירן",
-       "feedback-submit": "ארײַנגעבן פֿידבעק",
-       "feedback-adding": "צולייגן פֿידבעק צו בלאַט...",
+       "feedback-close": "ערליידיקט",
        "feedback-error1": "טעות: אומבאַקאַנטער רעזולטאַט פון API",
        "feedback-error2": "טעות: רעדאַקטירן דורכפֿאַל",
        "feedback-error3": "טעות: קיין ענטפֿער פון API",
+       "feedback-message": "מעלדונג:",
+       "feedback-subject": "טעמע:",
+       "feedback-submit": "אײַנגעבן",
        "feedback-thanks": "ייש\"כ! אײַער פֿידבעק איז געווארן ארויפגעלעגט צום בלאט \"[$2 $1]\".",
-       "feedback-close": "ערליידיקט",
-       "feedback-bugcheck": "געוואלדיק! אבער זייט בודק אז עס איז נישט איינער פון די [$1 באוואוסטע באגן].",
-       "feedback-bugnew": "כ'האב בודק געווען. רעפארטירט א נייעם באג.",
        "searchsuggest-search": "זוכן",
        "searchsuggest-containing": "כולל…",
        "api-error-badaccess-groups": "איר האט נישט קיין רעכטן אַרויפֿלאָדן טעקעס אויף דער וויקי.",
index 21dc246..4f4ffd0 100644 (file)
@@ -5,7 +5,8 @@
                        "Kaganer",
                        "Meno25",
                        "Urhixidur",
-                       "아라"
+                       "아라",
+                       "Macofe"
                ]
        },
        "tog-underline": "Ìfàlàsábẹ́ àwọn àjápọ̀:",
        "delete-toobig": "Ojúewé yìí ní ìtàn àtúnṣe tótóbi, ó pọ̀ ju {{PLURAL:$1|àtúnyẹ̀wò}} $1 lọ.\nÌparẹ́ irú àwọn ojúewé báyìí ti jẹ́ dídílọ́nà láti dènà àsìṣe ìdílọ́wọ́ sí {{SITENAME}}.",
        "delete-warning-toobig": "Ojúewé yìí ní ìtàn àtúnṣe tótóbi, ó pọ̀ ju {{PLURAL:$1|àtúnyẹ̀wò}} $1 lọ.\nÌparẹ́ rẹ̀ le dí ìsiṣẹ́ ibùdó dátà lọ́wọ́ lórí {{SITENAME}}; ẹ ṣè fura.",
        "rollback": "Yí àwọn àtúnṣe sẹ́yìn",
-       "rollback_short": "Yísẹ́yìn",
        "rollbacklink": "yísẹ́yìn",
        "rollbacklinkcount": "ìyíṣẹ́yìn {{PLURAL:$1|àtúnṣe|àtúnṣe}} $1",
        "rollbacklinkcount-morethan": "ìyíṣẹ́yìn {{PLURAL:$1|àtúnṣe|àtúnṣe}} tó ju $1 lọ",
        "import-rootpage-nosubpage": "Orúkọàyè \"$1\" fún ipasẹ̀ ojúewé kò gba ojúewé abẹ́ ní àyè.",
        "importlogpage": "Ìgbéwọlé àkọọ́lẹ̀",
        "importlogpagetext": "Ìkówọlé olùmójútó àwọn ojúewé pẹ̀lú ìtàn àtúnṣe láti àwọn wiki míràn.",
-       "import-logentry-upload": "ìkówọlé [[$1]] pẹ̀lú ìrùsókè fáìlì",
        "import-logentry-upload-detail": "{{PLURAL:$1|Àtúnyẹ̀wò|Àwọn àtúnyẹ̀wò}} $1",
-       "import-logentry-interwiki": "mú $1 wá láti inú wiki míràn",
        "import-logentry-interwiki-detail": "{{PLURAL:$1|Àtúnyẹ̀wò|Àwọn àtúnyẹ̀wò}} $1 láti $2",
        "javascripttest": "Ìdánwò JavaScript",
-       "javascripttest-title": "Únṣe ìdánwò $1",
        "javascripttest-pagetext-noframework": "Ojúewé yìí jẹ́ dídásílẹ̀ fún ṣíṣe ìdánwò JavaScript.",
        "javascripttest-pagetext-skins": "Ẹ mú irú ojú ara tí ẹ fẹ́ lò láti ṣe àdánwò náà:",
        "javascripttest-qunit-intro": "Ẹ wo [$1 ìwé aṣàlàyé ìdánwò] ní mediawiki.org.",
-       "javascripttest-qunit-heading": "Ibi ìdánwò QUnit JavaScript MediaWiki",
        "tooltip-pt-userpage": "Ojúewé oníṣe yín",
        "tooltip-pt-anonuserpage": "Ojúewé oníṣe fún àdírẹ́ẹ̀sì IP tí ẹ únlò láti ṣàtúnṣe",
        "tooltip-pt-mytalk": "Ojúewé ọ̀rọ̀ yín",
        "watchlisttools-edit": "Ìwò àti àtúnṣe ìmójútó",
        "watchlisttools-raw": "Ẹ ṣ'àtúnṣe àkójọ ìmójútó látìbẹ̀rẹ̀",
        "signature": "[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|ọ̀rọ̀]])",
-       "unknown_extension_tag": "Àlẹ̀mọ́ ìfàgùn àìdámọ̀ \"$1\"",
        "duplicate-defaultsort": "'''Ìkìlọ̀:''' Bọ́tìnì ìtò àkọ́kọ́ṣe \"$2\" dípò Bọ́tìnì ìtò àkọ́kọ́ṣe \"$1\" tẹ́lẹ̀.",
        "version": "Àtẹ̀jáde",
        "version-extensions": "Àwọn ìfàgùn kíkànsínú",
        "version-other": "Òmíràn",
        "version-hooks": "Àwọn hook",
        "version-hook-name": "Orúkọ hook",
-       "version-version": "(Àtẹ̀jáde $1)",
+       "version-version": "($1)",
        "version-license": "Ìwé àṣẹ",
        "version-poweredby-credits": "Agbára ìṣiṣẹ́ wiki yìí wá látọwọ́ '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
        "version-poweredby-others": "àwọn mìíràn",
        "logentry-rights-autopromote": "$1 jẹ́ {{GENDER:$2|gbígbénípòga}} nífúnraẹni láti $4 sí $5",
        "rightsnone": "(kòsí)",
        "revdelete-summary": "àkótán àtúnṣe",
+       "feedback-adding": "Ìfikún ìdáhùn sí ojúewé...",
+       "feedback-bugcheck": "Ó dáa bẹ́ẹ̀! Ẹ rí pé kò í ṣe ìkan nínú [$1 àwọn ìsòrò tí a ti mọ̀ tẹ́lẹ̀].",
+       "feedback-bugnew": "Mo ti yẹ́wò. Fi ìsòrò sùn",
        "feedback-bugornote": "Tí ẹ bá ti ṣetán láti ṣàlàyé ìsòrò iṣẹ́ẹ̀rọ́ lẹ́ẹ̀kúnrẹ́rẹ́ ẹ jọ̀wọ́ [$1 ẹ sọ irú ìsòro náà]\nBíbẹ̀ẹ̀kọ́, ẹ le lo fọ́ọ̀mù ìsàlẹ̀. Ẹjọ́ yín yíò jẹ́ fífikún mọ́ ojúewé \"[$3 $2]\", bákannáà mọ́ orúkọ oníṣe yín.",
-       "feedback-subject": "Oríọ̀rọ̀:",
-       "feedback-message": "Ìránṣẹ́:",
        "feedback-cancel": "Fagilé",
-       "feedback-submit": "Ìfisílẹ̀ ìdáhùn",
-       "feedback-adding": "Ìfikún ìdáhùn sí ojúewé...",
+       "feedback-close": "Ṣetán",
        "feedback-error1": "Àsìṣe: Èsì aláìdámọ́ látọ̀dọ̀ API",
        "feedback-error2": "Àsìṣe: Àtúnṣe kùnà",
        "feedback-error3": "Àsìṣe: Kò sí ìdáhùn látọ̀dọ̀ API",
+       "feedback-message": "Ìránṣẹ́:",
+       "feedback-subject": "Oríọ̀rọ̀:",
+       "feedback-submit": "Fúnsílẹ̀",
        "feedback-thanks": "Adúpẹ́! Ìdáhùn yín ti jẹ́ fífikún sí ojúewé \"[$2 $1]\".",
-       "feedback-close": "Ṣetán",
-       "feedback-bugcheck": "Ó dáa bẹ́ẹ̀! Ẹ rí pé kò í ṣe ìkan nínú [$1 àwọn ìsòrò tí a ti mọ̀ tẹ́lẹ̀].",
-       "feedback-bugnew": "Mo ti yẹ́wò. Fi ìsòrò sùn",
        "searchsuggest-search": "Ṣàwárí",
        "searchsuggest-containing": "tó ní...",
        "api-error-badaccess-groups": "Ẹ kò ní àṣẹ láti ru fáìlì wọlé sí orí wiki yìí.",
index 0924acb..b03a2b2 100644 (file)
        "version-parser-function-hooks": "語法函數鈎",
        "version-hook-name": "鈎名",
        "version-hook-subscribedby": "利用於",
-       "version-version": "(版本 $1)",
+       "version-version": "($1)",
        "version-license": "牌照",
        "version-poweredby-credits": "呢個 Wiki 係由 '''[https://www.mediawiki.org/ MediaWiki]''' 驅動,版權所有 © 2001-$1 $2。",
        "version-poweredby-others": "其他",
index 15ad4c8..9d2cec7 100644 (file)
@@ -81,7 +81,8 @@
                        "TianyinLee",
                        "NigelSoft",
                        "Zhuyifei1999",
-                       "Davidzdh"
+                       "Davidzdh",
+                       "LNDDYL"
                ]
        },
        "tog-underline": "链接下划线:",
        "disclaimers": "免责声明",
        "disclaimerpage": "Project:免责声明",
        "edithelp": "编辑帮助",
+       "helppage-top-gethelp": "帮助",
        "mainpage": "首页",
        "mainpage-description": "首页",
        "policy-url": "Project:方针",
        "previewconflict": "该预览反映了上面文字编辑区中的文字在你保存后的显示状况。",
        "session_fail_preview": "'''对不起!由于会话数据丢失,我们无法处理你的编辑。'''请重试。如果仍然失败,请尝试[[Special:UserLogout|退出登录]]后重新登录。",
        "session_fail_preview_html": "'''对不起!由于会话数据丢失,我们无法处理你的编辑。'''\n\n''因为{{SITENAME}}已启用原始HTML,为了预防JavaScript攻击,预览被隐藏。''\n\n'''如果该编辑尝试合法,请重试。'''如果仍然失败,请尝试[[Special:UserLogout|退出登录]]后重新登录。",
-       "token_suffix_mismatch": "'''由于您用户端中的编辑令牌毁损了一些标点符号字元,您的编辑已经被拒绝。'''\n此次编辑被拒绝以防止页面文本损坏。\n这种情况通常在您使用含有故障的网页式匿名代理服务的时候出现。",
+       "token_suffix_mismatch": "<strong>由于您客户端中的编辑令牌毁损了一些标点符号字符,您的编辑已经被拒绝。</strong>\n此次编辑被拒绝以防止页面文本损坏。\n这种情况通常在您使用含有故障的网页式匿名代理服务的时候出现。",
        "edit_form_incomplete": "'''编辑表格的某些部分没有到达服务器,请检查你的编辑是否完整并重试。'''",
        "editing": "编辑“$1”",
        "creating": "创建“$1”",
        "listusers-editsonly": "只显示有编辑的用户",
        "listusers-creationsort": "按创建日期排序",
        "listusers-desc": "降序排序",
-       "usereditcount": "$1个{{PLURAL:$1|编辑}}",
+       "usereditcount": "$1次编辑",
        "usercreated": "{{GENDER:$3|创建}}于$1 $2",
        "newpages": "新页面",
        "newpages-username": "用户名:",
        "emailsent": "电子邮件已发送",
        "emailsenttext": "您的电子邮件已经发出。",
        "emailuserfooter": "本电子邮件是通过{{SITENAME}}的“电邮联系”功能被$1发送至$2的。",
-       "usermessage-summary": "留下系统息。",
+       "usermessage-summary": "留下系统息。",
        "usermessage-editor": "系统信息编辑器",
        "watchlist": "监视列表",
        "mywatchlist": "监视列表",
        "sp-contributions-newbies-sub": "新账户的贡献",
        "sp-contributions-newbies-title": "新账户的用户贡献",
        "sp-contributions-blocklog": "封禁日志",
-       "sp-contributions-suppresslog": "被压制的用户贡献",
+       "sp-contributions-suppresslog": "被隐藏的用户贡献",
        "sp-contributions-deleted": "被删除的用户贡献",
        "sp-contributions-uploads": "上传",
        "sp-contributions-logs": "日志",
        "import-rootpage-nosubpage": "名字空间为“$1”的根页面不允许子页面。",
        "importlogpage": "导入日志",
        "importlogpagetext": "管理性导入在其他wiki上有编辑历史的页面。",
-       "import-logentry-upload": "通过文件上传导入[[$1]]",
        "import-logentry-upload-detail": "导入$1个{{PLURAL:$1|版本}}",
-       "import-logentry-interwiki": "跨wiki导入页面$1",
        "import-logentry-interwiki-detail": "来自$2的$1个{{PLURAL:$1|版本}}已导入",
        "javascripttest": "JavaScript测试",
        "javascripttest-pagetext-noframework": "本页面被保留进行JavaScript测试。",
        "tooltip-pt-preferences": "你的设置",
        "tooltip-pt-watchlist": "你正在监视更改的页面的列表",
        "tooltip-pt-mycontris": "你的贡献的列表",
-       "tooltip-pt-login": "建议您登录,但并非强制",
+       "tooltip-pt-login": "我们鼓励您登录;然而,这不是强制性的",
        "tooltip-pt-logout": "退出登录",
        "tooltip-pt-createaccount": "建议您创建一个账户并登录,但这不是强制的",
        "tooltip-ca-talk": "关于内容页面的讨论",
        "tooltip-ca-nstab-special": "这是特殊页面,你无法编辑该页",
        "tooltip-ca-nstab-project": "查看项目页面",
        "tooltip-ca-nstab-image": "查看文件页面",
-       "tooltip-ca-nstab-mediawiki": "查看系统息",
+       "tooltip-ca-nstab-mediawiki": "查看系统息",
        "tooltip-ca-nstab-template": "查看模板",
        "tooltip-ca-nstab-help": "查看帮助页面",
        "tooltip-ca-nstab-category": "查看分类页面",
        "version-parser-function-hooks": "解析器函数钩",
        "version-hook-name": "钩名",
        "version-hook-subscribedby": "署名",
-       "version-version": "(版本 $1)",
+       "version-version": "($1)",
        "version-no-ext-name": "[无名称]",
        "version-license": "MediaWiki协议",
        "version-ext-license": "许可协议",
        "logentry-block-reblock": "$1将{{GENDER:$4|$3}}的封禁设置{{GENDER:$2|更改为}}持续时间$5 $6",
        "logentry-suppress-block": "$1{{GENDER:$2|封禁了}}{{GENDER:$4|$3}},持续时间$5 $6",
        "logentry-suppress-reblock": "$1将{{GENDER:$4|$3}}的封禁设置{{GENDER:$2|更改为}}持续时间$5 $6",
+       "logentry-import-upload": "$1通过上传{{GENDER:$2|导入}}了$3",
+       "logentry-import-interwiki": "$1从其他wiki{{GENDER:$2|导入}}了$3",
        "logentry-merge-merge": "$1将$3{{GENDER:$2|合并}}至$4(修订版本至$5)",
        "logentry-move-move": "$1{{GENDER:$2|移动}}页面$3至$4",
        "logentry-move-move-noredirect": "$1{{GENDER:$2|移动}}页面$3至$4,不留重定向",
        "logentry-managetags-deactivate": "$1 {{GENDER:$2|停用了}}“$4”标签供用户和机器人使用",
        "rightsnone": "(无)",
        "revdelete-summary": "编辑摘要",
+       "feedback-adding": "正在添加反馈至页面...",
+       "feedback-back": "返回",
+       "feedback-bugcheck": "请检查本bug是否为[$1 已知bug]。",
+       "feedback-bugnew": "我检查了。报告新bug",
        "feedback-bugornote": "如果你准备好详细描述一个技术问题,请[$1 报告bug]。或者你可以使用下面的简单表格。你的评论将被添加至页面“[$3 $2]”,附有你的用户名。",
-       "feedback-subject": "主题:",
-       "feedback-message": "信息:",
        "feedback-cancel": "取消",
-       "feedback-submit": "提交反馈",
-       "feedback-adding": "正在添加反馈至页面...",
+       "feedback-close": "完成",
+       "feedback-external-bug-report-button": "提交技术报告",
+       "feedback-dialog-title": "发送反馈",
+       "feedback-dialog-intro": "您可以使用下面的简便表格提交您的反馈。您的评论将连同您的用户名一起加入至页面“$1”。",
+       "feedback-error-title": "错误",
        "feedback-error1": "错误:从API返回无法识别的结果",
        "feedback-error2": "错误:编辑失败",
        "feedback-error3": "错误:API没有响应",
+       "feedback-message": "信息:",
+       "feedback-subject": "主题:",
+       "feedback-submit": "提交",
+       "feedback-terms": "我理解我的用户代理信息包括有关我确切使用的浏览器和操作系统版本,并将在我的反馈旁公开分享。",
+       "feedback-termsofuse": "我同意依照使用条款提供反馈。",
        "feedback-thanks": "谢谢!你的反馈已发布至页面“[$2 $1]”。",
-       "feedback-close": "完成",
-       "feedback-bugcheck": "请检查本bug是否为[$1 已知bug]。",
-       "feedback-bugnew": "我检查了。报告新bug",
+       "feedback-thanks-title": "谢谢您!",
+       "feedback-useragent": "用户代理:",
        "searchsuggest-search": "搜索",
        "searchsuggest-containing": "含有...",
        "api-error-badaccess-groups": "您没有将文件上传到此 wiki 的权限。",
        "json-error-recursion": "要编码的数值中一个或更多递归引用",
        "json-error-inf-or-nan": "要编码的数值中一个或更多NAN或INF值",
        "json-error-unsupported-type": "给出了不能编码的类型的值",
-       "headline-anchor-title": "链接到此段落"
+       "headline-anchor-title": "该段落的链接"
 }
index e88450d..987ceba 100644 (file)
@@ -59,7 +59,8 @@
                        "Cathypilot0117",
                        "NigelSoft",
                        "EagerLin",
-                       "Cbliu"
+                       "Cbliu",
+                       "Citizen01"
                ]
        },
        "tog-underline": "底線標示連結:",
@@ -67,7 +68,7 @@
        "tog-hidepatrolled": "隱藏近期變更中巡查過的編輯",
        "tog-newpageshidepatrolled": "隱藏新頁面清單中巡查過的頁面",
        "tog-extendwatchlist": "展開監視清單顯示包含最近以外的所有變更",
-       "tog-usenewrc": "依近期變更與監視清單頁面分類顯示變更",
+       "tog-usenewrc": "依近期變更與監視清單頁面分類顯示變更",
        "tog-numberheadings": "標題自動編號",
        "tog-showtoolbar": "顯示編輯工具列",
        "tog-editondblclick": "開啟滑鼠雙擊編輯頁面",
        "tog-enotifwatchlistpages": "當我的監視清單中的頁面或檔案有變更時,傳送電子郵件通知我",
        "tog-enotifusertalkpages": "當我的對話頁面有變更時,傳送電子郵件通知我",
        "tog-enotifminoredits": "當頁面與檔案有小修訂時,傳送電子郵件通知我",
-       "tog-enotifrevealaddr": "在通知信件中顯示我的電子郵件位址",
+       "tog-enotifrevealaddr": "在通知郵件中顯示我的電子郵件地址",
        "tog-shownumberswatching": "顯示正在監視的使用者數",
        "tog-oldsig": "現有簽名:",
        "tog-fancysig": "將簽名視為 Wikitext 語言 (不自動產生連結)",
        "tog-uselivepreview": "使用即時預覽",
        "tog-forceeditsummary": "未填寫編輯摘要時提示我",
-       "tog-watchlisthideown": "é\9a±è\97\8fç\9b£è¦\96æ¸\85å\96®ä¸­æ\88\91的編輯",
+       "tog-watchlisthideown": "é\9a±è\97\8fç\9b£è¦\96æ¸\85å\96®ä¸­æ\9c¬äºº的編輯",
        "tog-watchlisthidebots": "隱藏監視清單中機器人的編輯",
        "tog-watchlisthideminor": "隱藏監視清單中的小修訂",
        "tog-watchlisthideliu": "隱藏監視清單中已登入使用者的編輯",
        "mytalk": "對話",
        "anontalk": "此 IP 位址的對話頁面",
        "navigation": "導覽",
-       "and": "&#32;和",
+       "and": "&#32;和&#32;",
        "qbfind": "尋找",
        "qbbrowse": "瀏覽",
        "qbedit": "編輯",
        "searcharticle": "執行",
        "history": "頁面歷史",
        "history_short": "歷史",
-       "updatedmarker": "自我最後一次訪問以後的更新",
+       "updatedmarker": "自我最後一次造訪以來的更新",
        "printableversion": "可列印版",
-       "permalink": "永久連結",
+       "permalink": "靜態連結",
        "print": "列印",
        "view": "檢視",
        "view-foreign": "用 $1 檢視",
        "deletethispage": "刪除此頁",
        "undeletethispage": "取消刪除此頁",
        "undelete_short": "取消刪除 $1 項修訂",
-       "viewdeleted_short": "檢視 $1 項已刪除的修訂",
+       "viewdeleted_short": "檢視 {{PLURAL:$1|1 項已刪除的修訂|$1 項已刪除的修訂}}",
        "protect": "保護",
        "protect_change": "變更",
        "protectthispage": "保護此頁面",
        "disclaimers": "免責聲明",
        "disclaimerpage": "Project:General disclaimer",
        "edithelp": "編輯説明",
+       "helppage-top-gethelp": "説明",
        "mainpage": "首頁",
        "mainpage-description": "首頁",
        "policy-url": "Project:Policy",
        "youhavenewmessages": "您有 $1 ($2)。",
        "youhavenewmessagesfromusers": "你有來自{{PLURAL:$3|另一位使用者|$3 位使用者}}的 $1 ($2)。",
        "youhavenewmessagesmanyusers": "你有來自多位使用者的 $1 ($2)。",
-       "newmessageslinkplural": "{{PLURAL:$1|ä¸\80å\80\8b新訊息|999=新訊息}}",
+       "newmessageslinkplural": "{{PLURAL:$1|ä¸\80å\89\87新訊息|999=新訊息}}",
        "newmessagesdifflinkplural": "最近{{PLURAL:$1|變更}}",
        "youhavenewmessagesmulti": "您在 $1 有新訊息",
        "editsection": "編輯",
        "readonly_lag": "資料庫已自動鎖定,正在等候次要資料庫同步資料到主要資料庫",
        "internalerror": "內部錯誤",
        "internalerror_info": "內部錯誤:$1",
+       "internalerror-fatal-exception": "嚴重例外類型 \"$1\"",
        "filecopyerror": "無法複製檔案 \"$1\" 至 \"$2\"。",
        "filerenameerror": "無法重新命名檔案 \"$1\" 為 \"$2\"。",
        "filedeleteerror": "無法刪除檔案 \"$1\"。",
        "cannotdelete": "無法刪除頁面或檔案 \"$1\"。\n它可能已經被其他人刪除。",
        "cannotdelete-title": "無法刪除頁面 \"$1\"",
        "delete-hook-aborted": "刪除已被 Hook 中止。\n且未回應無任何說明。",
-       "no-null-revision": "ç\84¡æ³\95å°\8dé \81é\9d¢ \"$1\" å»ºç«\8bæ\96°ç\9a\84空白修訂",
+       "no-null-revision": "ç\84¡æ³\95建ç«\8bé \81é\9d¢ \"$1\" ç\9a\84æ\96°空白修訂",
        "badtitle": "無效的標題",
        "badtitletext": "指定的頁面標題是無效、空白,或未正確連結的跨語言或跨 Wiki 的標題。\n標題中可能包含無法使用在標題的字元。",
        "perfcached": "以下為快取資料,可能不是最新的。 快取資料最多可儲存 {{PLURAL:$1|1 筆結果|$1 筆結果}}。",
        "ns-specialprotected": "特殊頁面無法編輯。",
        "titleprotected": "此標題已經被 [[User:$1|$1]] 保護以防止建立,原因是 \"<em>$2</em>\"。",
        "filereadonlyerror": "無法修改檔案 \"$1\" 因為檔案庫 \"$2\" 目前處於唯讀模式。\n\n鎖定的管理員說明:\"$3\"。",
-       "invalidtitle-knownnamespace": "無效的標題,命名空間 \"$2\" 與名稱 \"$3\"",
-       "invalidtitle-unknownnamespace": "無效的標題,不明的命名空間編號 $1 與名稱 \"$2\"",
+       "invalidtitle-knownnamespace": "命名空間 \"$2\" 與名稱 \"$3\" 是無效的標題",
+       "invalidtitle-unknownnamespace": "不明的命名空間編號 $1 與名稱 \"$2\" 是無效的標題",
        "exception-nologin": "未登入",
-       "exception-nologin-text": "請先登入以檢視或修改",
+       "exception-nologin-text": "您需要先登入方可存取或者操作此頁面。",
        "exception-nologin-text-manual": "請先 $1 以存取此頁面或操作。",
        "virus-badscanner": "錯誤的設定:不明的病毒掃瞄程式:<em>$1</em>",
        "virus-scanfailed": "掃瞄失敗 (代碼 $1)",
        "userlogin-helplink2": "登入協助",
        "userlogin-loggedin": "您目前已登入 {{GENDER:$1|$1}} 使用者,\n請使用下列表單改登入另一位使用者。",
        "userlogin-createanother": "建立另一個帳號",
-       "createacct-emailrequired": "電子郵件址",
-       "createacct-emailoptional": "電子郵件地址(選填)",
+       "createacct-emailrequired": "電子郵件址",
+       "createacct-emailoptional": "電子郵件地址 (選填)",
        "createacct-email-ph": "輸入您的電子郵件地址",
-       "createacct-another-email-ph": "輸入電子郵件址",
-       "createaccountmail": "使ç\94¨è\87¨æ\99\82ç\9a\84é\9a¨æ©\9få¯\86碼ï¼\8c並å°\87å®\83å\82³é\80\81å\88°æ\8c\87å®\9aç\9a\84é\9b»å­\90é\83µä»¶ä½\8d址",
+       "createacct-another-email-ph": "輸入電子郵件址",
+       "createaccountmail": "使ç\94¨è\87¨æ\99\82ç\9a\84é\9a¨æ©\9få¯\86碼ï¼\8c並å°\87å®\83å¯\84è\87³æ\8c\87å®\9aç\9a\84é\9b»å­\90é\83µä»¶å\9c°址",
        "createacct-realname": "真實姓名 (選填)",
        "createaccountreason": "原因:",
        "createacct-reason": "原因",
        "mailmypassword": "重設密碼",
        "passwordremindertitle": "{{SITENAME}} 的新臨時密碼",
        "passwordremindertext": "不明人士 (可能是您自己,來自 IP 位址 $1) 要求重設在 {{SITENAME}} ($4) 的密碼。\n給使用者 \"$2\" 的臨時密碼設為 \"$3\"。\n如果這個動作是您做的,您需要立即登入並設定一個新的密碼,\n您的臨時密碼將於{{PLURAL:$5|一|$5}}天內過期。\n\n如果不是您要求重設密碼,或您已想起密碼,並不準備修改,\n您可以忽略此訊息並且繼續使用您原本的密碼。",
-       "noemail": "使ç\94¨è\80\85 \"$1\" æ\9cªç\99»è¨\98é\9b»å­\90é\83µä»¶ä½\8då\9d\80。",
-       "noemailcreate": "您需要提供一個有效的電子郵件址。",
-       "passwordsent": "使用者 \"$1\" 的新密碼已寄至當出登記的電子郵件位址,\n請稍後收到信件後再登入。",
+       "noemail": "使ç\94¨è\80\85 \"$1\" æ²\92æ\9c\89é\9b»å­\90é\83µä»¶å\9c°å\9d\80è¨\98é\8c\84。",
+       "noemailcreate": "您需要提供一個有效的電子郵件址。",
+       "passwordsent": "使用者 \"$1\" 的新密碼已寄至當出登記的電子郵件地址,\n請稍後收到郵件後再登入。",
        "blocked-mailpassword": "您的 IP 位址已被封鎖不允許編輯,密碼復原的功能也同樣被禁止使用以防止被濫用。",
        "eauthentsent": "已寄出一封確認信到您所設定的電子郵件位址。\n在未收到其它電子郵件前,您必須先依照郵件中的指示,確認這個帳號確實是您本人。",
        "throttled-mailpassword": "密碼重設的電子郵件已經在最近 $1 小時內寄出。\n為防止濫用,$1 小時內只能寄出一次密碼重設信件。",
        "mailerror": "傳送電子郵件錯誤:$1",
        "acct_creation_throttle_hit": "使用您目前的 IP 位址的訪客在最近一天建立了 {{PLURAL:$1|1 個帳號|$1 個帳號}},已超出系統允許的上限。\n因此,目前無法讓使用此 IP 位址的訪客建立帳號。",
-       "emailauthenticated": "您的電子郵件址已於 $2 $3 確認。",
-       "emailnotauthenticated": "您的電子郵件址尚未確認,\n尚不會寄出以下功能的電子郵件給您。",
-       "noemailprefs": "在您的偏好設定中設定電子郵件址,讓您可以使用這些功能。",
-       "emailconfirmlink": "確認您的電子郵件址",
-       "invalidemailaddress": "無法接受格式不正確的電子郵件位址,\n請輸入正確的電子郵件位址格式或略過填寫該欄位。",
-       "cannotchangeemail": "此 Wiki 不允許更改帳號的電子郵件址。",
+       "emailauthenticated": "您的電子郵件址已於 $2 $3 確認。",
+       "emailnotauthenticated": "您的電子郵件址尚未確認,\n尚不會寄出以下功能的電子郵件給您。",
+       "noemailprefs": "在您的偏好設定中設定電子郵件址,讓您可以使用這些功能。",
+       "emailconfirmlink": "確認您的電子郵件址",
+       "invalidemailaddress": "無法接受格式不正確的電子郵件地址,請輸入正確的電子郵件地址格式或略過填寫該欄位。",
+       "cannotchangeemail": "此 Wiki 不允許更改帳號的電子郵件址。",
        "emaildisabled": "此網站不能傳送電子郵件。",
        "accountcreated": "已建立帳號",
        "accountcreatedtext": "使用者帳號 [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|對話]]) 已建立。",
        "createaccount-title": "{{SITENAME}} 的帳號建立",
-       "createaccount-text": "不明人士使用您的電子郵件址在 {{SITENAME}} ($4) 建立了一個帳號名稱為 \"$2\",密碼為 \"$3\"。\n您應該立即登入並更改密碼。\n\n如果該帳號是建立錯誤的話,您可以忽略此訊息。",
+       "createaccount-text": "不明人士使用您的電子郵件址在 {{SITENAME}} ($4) 建立了一個帳號名稱為 \"$2\",密碼為 \"$3\"。\n您應該立即登入並更改密碼。\n\n如果該帳號是建立錯誤的話,您可以忽略此訊息。",
        "login-throttled": "您已經嘗試太多次的登入動作。\n請稍等 $1 後再試。",
        "login-abort-generic": "您登入失敗 - 已中止",
        "login-migrated-generic": "您的帳號已轉移,且此 Wiki 中您的使用者名稱已不存在。",
        "pt-createaccount": "建立帳號",
        "pt-userlogout": "登出",
        "php-mail-error-unknown": "PHP 的 mail() 函數發生不明錯誤。",
-       "user-mail-no-addy": "試圖傳送沒有電子郵件位址的信件。",
+       "user-mail-no-addy": "試圖傳送沒有電子郵件地址的郵件。",
        "user-mail-no-body": "試圖寄出內容為空的或異常簡短的電子郵件。",
        "changepassword": "變更密碼",
        "resetpass_announce": "要完成登入,您必須設定一個新密碼。",
        "passwordreset-domain": "網域名稱:",
        "passwordreset-capture": "檢視電子郵件內容?",
        "passwordreset-capture-help": "若您勾選此核選方塊,電子郵件 (包含臨時密碼) 將直接顯示,並寄給使用者。",
-       "passwordreset-email": "電子郵件址:",
+       "passwordreset-email": "電子郵件址:",
        "passwordreset-emailtitle": "於 {{SITENAME}} 的帳號詳細資訊",
-       "passwordreset-emailtext-ip": "不明人士 (可能是您自己,來自 IP 位址 $1) 要求重設在 {{SITENAME}} ($4) 的密碼,下列是與此電子郵件位址有關的使用者{{PLURAL:$3|帳號}}:\n\n$2\n\n{{PLURAL:$3|這個臨時密碼|這些臨時密碼}}將會在{{PLURAL:$5|一天|$5 天}}內到期,\n您應立即登入並更改新的密碼。如果不是您要求重設密碼,或您已想起密碼,並不準備修改,\n您可以忽略此訊息並且繼續使用您原本的密碼。",
+       "passwordreset-emailtext-ip": "不明人士 (可能是您自己,來自 IP 位址 $1) 要求重設在 {{SITENAME}} ($4) 的密碼,下列是與此電子郵件地址有關的使用者{{PLURAL:$3|帳號}}:\n\n$2\n\n{{PLURAL:$3|這個臨時密碼|這些臨時密碼}}將會在{{PLURAL:$5|一天|$5 天}}內到期,\n您應立即登入並更改新的密碼。如果不是您要求重設密碼,或您已想起密碼,並不準備修改,\n您可以忽略本訊息並且繼續使用您原本的密碼。",
        "passwordreset-emailtext-user": "使用者 $1 要求重設在 {{SITENAME}} ($4) 的密碼,下列是與此電子郵件位址有關的使用者{{PLURAL:$3|帳號}}:\n\n$2\n\n{{PLURAL:$3|這個臨時密碼|這些臨時密碼}}將會在{{PLURAL:$5|一天|$5 天}}內到期,\n您應立即登入並更改新的密碼。如果不是您要求重設密碼,或您已想起密碼,並不準備修改,\n您可以忽略此訊息並且繼續使用您原本的密碼。",
        "passwordreset-emailelement": "使用者名稱:$1\n臨時密碼:$2",
        "passwordreset-emailsent": "已寄出重設密碼的電子郵件。",
        "passwordreset-emailsent-capture": "已寄出重設密碼的電子郵件,並於下方顯示。",
        "passwordreset-emailerror-capture": "下列為重設密碼的電子郵件內容,傳送給{{GENDER:$2|使用者}}失敗:$1",
-       "changeemail": "變更電子郵件址",
-       "changeemail-text": "完成此表單以修改您的電子郵件址,您需要輸入您的密碼來確認此次變更。",
+       "changeemail": "變更電子郵件址",
+       "changeemail-text": "完成此表單以修改您的電子郵件址,您需要輸入您的密碼來確認此次變更。",
        "changeemail-no-info": "您必須登入方可直接存取此頁面。",
-       "changeemail-oldemail": "目前的電子郵件址:",
-       "changeemail-newemail": "新的電子郵件址:",
+       "changeemail-oldemail": "目前的電子郵件址:",
+       "changeemail-newemail": "新的電子郵件址:",
        "changeemail-none": "(無)",
        "changeemail-password": "您於 {{SITENAME}} 的密碼:",
        "changeemail-submit": "變更電子郵件",
        "changeemail-throttled": "您最近嘗試了太多次登入。\n請等待 $1 後再試。",
-       "resettokens": "重設鑰",
-       "resettokens-text": "您可以在此重設用來存取您帳號相關隱私資料的密鑰。\n\n若您不小心將您的密鑰分享給其他人或您的帳號已遭到入侵、破壞,應該要重設此密鑰。",
-       "resettokens-no-tokens": "沒有可重設的鑰。",
-       "resettokens-legend": "重設鑰",
-       "resettokens-tokens": "鑰:",
+       "resettokens": "重設鑰",
+       "resettokens-text": "您可以在此重設用來存取您帳號相關隱私資料的金鑰。\n\n若您不小心將您的密鑰分享給其他人或您的帳號已遭到入侵、破壞,應該要重設此金鑰。",
+       "resettokens-no-tokens": "沒有可重設的鑰。",
+       "resettokens-legend": "重設鑰",
+       "resettokens-tokens": "鑰:",
        "resettokens-token-label": "$1 (目前為 $2)",
-       "resettokens-watchlist-token": "用來訂閱 [[Special:Watchlist|監視清單]] Atom/RSS 的鑰",
-       "resettokens-done": "已重設鑰。",
-       "resettokens-resetbutton": "重設已選擇的鑰",
+       "resettokens-watchlist-token": "用來訂閱 [[Special:Watchlist|監視清單]] Atom/RSS 的鑰",
+       "resettokens-done": "已重設鑰。",
+       "resettokens-resetbutton": "重設已選擇的鑰",
        "bold_sample": "粗體文字",
        "bold_tip": "粗體文字",
        "italic_sample": "斜體文字",
        "missingcommentheader": "<strong>提醒:</strong>您未填寫此評論的主旨/標題。\n若您再點選 \"{{int:savearticle}}\" 一次,將略過主旨/標題直接儲存您的評論。",
        "summary-preview": "摘要預覽:",
        "subject-preview": "主旨/標題預覽:",
+       "previewerrortext": "嘗試預覽您的變更時發生錯誤。",
        "blockedtitle": "使用者已被封鎖",
-       "blockedtext": "<strong>æ\82¨ç\9a\84使ç\94¨è\80\85å\90\8d稱æ\88\96 IP ä½\8då\9d\80以被å°\81é\8e\96ã\80\82</strong>\n\næ\82¨è¢« $1 å°\81é\8e\96ï¼\8c\nå\8e\9få\9b ç\88² <em>$2</em>ã\80\82\n\n* å°\81é\8e\96é\96\8bå§\8bæ\99\82é\96\93ï¼\9a$8\n* å°\81é\8e\96çµ\90æ\9d\9fæ\99\82é\96\93ï¼\9a$6\n* ç\9b¸é\97\9cå°\81é\8e\96å°\8d象ï¼\9a$7\n\næ\82¨å\8f¯ä»¥è\81¯ç¹« $1 æ\88\96å\85¶ä»\96ç\9a\84 [[{{MediaWiki:Grouppage-sysop}}|管ç\90\86å\93¡]] è¨\8eè«\96å°\81é\8e\96ç\9a\84ç\9b¸é\97\9cå\95\8fé¡\8cã\80\82\nè\8b¥æ\82¨å·²å\9c¨ [[Special:Preferences|å\81\8f好設å®\9a]] ä¸­è¨­å®\9aäº\86ä¸\80å\80\8bæ\9c\89æ\95\88ç\9a\84é\9b»å­\90é\83µä»¶ä½\8då\9d\80ï¼\8cä¸\94å°\9aæ\9cªè¢«å°\81é\8e\96é\83µä»¶å\8a\9fè\83½ï¼\8cå\89\87æ\82¨å\8f¯é\80\8fé\81\8e \"å\82³é\80\81é\9b»å­\90é\83µä»¶çµ¦é\80\99ä½\8d使ç\94¨è\80\85\" ç\9a\84å\8a\9fè\83½ä¾\86è\81¯çµ¡ç\9b¸é\97\9c管ç\90\86å\93¡ã\80\82\næ\82¨ç\9b®å\88\96ç\9a\84 IP ä½\8då\9d\80æ\98¯ $3ï¼\8c此次å°\81é\8e\96ç\9a\84 ID ç\88² #$5。\n請您在詢問時附註以上詳細訊息。",
-       "autoblockedtext": "å\9b å\85\88å\89\8dç\9a\84å\8f¦ä¸\80ä½\8d使ç\94¨è\80\85被 $1 å°\81é\8e\96ï¼\8cæ\82¨ç\9a\84 IP ä½\8då\9d\80已被è\87ªå\8b\95å°\81é\8e\96ã\80\82\nå\8e\9få\9b æ\98¯ï¼\9a\n\n:<em>$2</em>\n\n* å°\81é\8e\96é\96\8bå§\8bæ\99\82é\96\93ï¼\9a$8\n* å°\81é\8e\96çµ\90æ\9d\9fæ\99\82é\96\93ï¼\9a$6\n* ç\9b¸é\97\9cå°\81é\8e\96å°\8d象ï¼\9a$7\n\næ\82¨å\8f¯ä»¥è\81¯ç¹« $1 æ\88\96å\85¶ä»\96ç\9a\84 [[{{MediaWiki:Grouppage-sysop}}|管ç\90\86å\93¡]] è¨\8eè«\96å°\81é\8e\96ç\9a\84ç\9b¸é\97\9cå\95\8fé¡\8cã\80\82\nè\8b¥æ\82¨å·²å\9c¨ [[Special:Preferences|å\81\8f好設å®\9a]] ä¸­è¨­å®\9aäº\86ä¸\80å\80\8bæ\9c\89æ\95\88ç\9a\84é\9b»å­\90é\83µä»¶ä½\8då\9d\80ï¼\8cä¸\94å°\9aæ\9cªè¢«å°\81é\8e\96é\83µä»¶å\8a\9fè\83½ï¼\8cå\89\87æ\82¨å\8f¯é\80\8fé\81\8e \"å\82³é\80\81é\9b»å­\90é\83µä»¶çµ¦é\80\99ä½\8d使ç\94¨è\80\85\" ç\9a\84å\8a\9fè\83½ä¾\86è\81¯çµ¡ç\9b¸é\97\9c管ç\90\86å\93¡ã\80\82\næ\82¨ç\9b®å\88\96的 IP 位址是 $3,此次封鎖的 ID 爲 #$5。\n請您在詢問時附註以上詳細訊息。",
+       "blockedtext": "<strong>æ\82¨ç\9a\84使ç\94¨è\80\85å\90\8d稱æ\88\96 IP ä½\8då\9d\80以被å°\81é\8e\96ã\80\82</strong>\n\næ\82¨è¢« $1 å°\81é\8e\96ï¼\8c\nå\8e\9få\9b ç\88² <em>$2</em>ã\80\82\n\n* å°\81é\8e\96é\96\8bå§\8bæ\99\82é\96\93ï¼\9a$8\n* å°\81é\8e\96çµ\90æ\9d\9fæ\99\82é\96\93ï¼\9a$6\n* ç\9b¸é\97\9cå°\81é\8e\96å°\8d象ï¼\9a$7\n\næ\82¨å\8f¯ä»¥è\81¯çµ¡ $1 æ\88\96å\85¶ä»\96ç\9a\84 [[{{MediaWiki:Grouppage-sysop}}|管ç\90\86å\93¡]] è¨\8eè«\96å°\81é\8e\96ç\9a\84ç\9b¸é\97\9cå\95\8fé¡\8cã\80\82\nè\8b¥æ\82¨å·²å\9c¨ [[Special:Preferences|å\81\8f好設å®\9a]] ä¸­è¨­å®\9aäº\86ä¸\80å\80\8bæ\9c\89æ\95\88ç\9a\84é\9b»å­\90é\83µä»¶å\9c°å\9d\80ï¼\8cä¸\94å°\9aæ\9cªè¢«å°\81é\8e\96é\83µä»¶å\8a\9fè\83½ï¼\8cå\89\87æ\82¨å\8f¯é\80\8fé\81\8e \"Email çµ¦æ­¤ä½¿ç\94¨è\80\85\" ç\9a\84å\8a\9fè\83½ä¾\86è\81¯çµ¡ç\9b¸é\97\9c管ç\90\86å\93¡ã\80\82\næ\82¨ç\9b®å\89\8dç\9a\84 IP ä½\8då\9d\80æ\98¯ $3ï¼\8c此次å°\81é\8e\96ç\9a\84 ID ç\82º #$5。\n請您在詢問時附註以上詳細訊息。",
+       "autoblockedtext": "å\9b å\85\88å\89\8dç\9a\84å\8f¦ä¸\80ä½\8d使ç\94¨è\80\85被 $1 å°\81é\8e\96ï¼\8cæ\82¨ç\9a\84 IP ä½\8då\9d\80已被è\87ªå\8b\95å°\81é\8e\96ã\80\82\nå\8e\9få\9b æ\98¯ï¼\9a\n\n:<em>$2</em>\n\n* å°\81é\8e\96é\96\8bå§\8bæ\99\82é\96\93ï¼\9a$8\n* å°\81é\8e\96çµ\90æ\9d\9fæ\99\82é\96\93ï¼\9a$6\n* ç\9b¸é\97\9cå°\81é\8e\96å°\8d象ï¼\9a$7\n\næ\82¨å\8f¯ä»¥è\81¯çµ¡ $1 æ\88\96å\85¶ä»\96ç\9a\84 [[{{MediaWiki:Grouppage-sysop}}|管ç\90\86å\93¡]] è¨\8eè«\96å°\81é\8e\96ç\9a\84ç\9b¸é\97\9cå\95\8fé¡\8cã\80\82\nè\8b¥æ\82¨å·²å\9c¨ [[Special:Preferences|å\81\8f好設å®\9a]] ä¸­è¨­å®\9aäº\86ä¸\80å\80\8bæ\9c\89æ\95\88ç\9a\84é\9b»å­\90é\83µä»¶å\9c°å\9d\80ï¼\8cä¸\94å°\9aæ\9cªè¢«å°\81é\8e\96é\83µä»¶å\8a\9fè\83½ï¼\8cå\89\87æ\82¨å\8f¯é\80\8fé\81\8e \"Email çµ¦æ­¤ä½¿ç\94¨è\80\85\" ç\9a\84å\8a\9fè\83½ä¾\86è\81¯çµ¡ç\9b¸é\97\9c管ç\90\86å\93¡ã\80\82\næ\82¨ç\9b®å\89\8d的 IP 位址是 $3,此次封鎖的 ID 爲 #$5。\n請您在詢問時附註以上詳細訊息。",
        "blockednoreason": "未說明原因",
        "whitelistedittext": "請先 $1 才可編輯頁面。",
-       "confirmedittext": "在編輯此頁之前您必須確認您的電子郵件位址。\n請透過 [[Special:Preferences|偏好設定]] 設定並驗證您的電子郵件位址。",
+       "confirmedittext": "在編輯此頁之前您必須確認您的電子郵件地址。\n請透過 [[Special:Preferences|偏好設定]] 設定並驗證您的電子郵件地址。",
        "nosuchsectiontitle": "找不到章節",
        "nosuchsectiontext": "您嘗試編輯的章節並不存在。\n可能在您檢視頁面時已經移動或刪除。",
        "loginreqtitle": "需要登入",
        "accmailtitle": "密碼已寄出",
        "accmailtext": "[[User talk:$1|$1]] 的隨機密碼已經寄送至 $2,可登入後至 <em>[[Special:ChangePassword|變更密碼]] 頁面更改</em>。",
        "newarticle": "(新)",
-       "newarticletext": "æ\82¨æ­£é\80£çµ\90è\87³ä¸\80é \81ä¸\8då­\98å\9c¨é \81é\9d¢ã\80\82\nè¦\81建ç«\8b該é \81é\9d¢ï¼\8cè«\8bå\9c¨ä¸\8bæ\96¹ç\9a\84編輯æ¡\86中輸å\85¥å\85§å®¹ (詳æ\83\85è«\8bå\8f\83è\80\83 [$1 èª¬æ\98\8eé \81é\9d¢])。\n如果您是不小心來到此頁面,請點選瀏覽器的 <strong>返回</strong> 按鈕。",
+       "newarticletext": "æ\82¨æ­£é\80£çµ\90è\87³ä¸\80é \81ä¸\8då­\98å\9c¨é \81é\9d¢ã\80\82\nè¦\81建ç«\8b該é \81é\9d¢ï¼\8cè«\8bå\9c¨ä¸\8bæ\96¹ç\9a\84編輯æ\96¹å¡\8a中輸å\85¥å\85§å®¹ (詳æ\83\85è«\8bå\8f\83è\80\83 [$1 èª¬æ\98\8eé \81é\9d¢]) 。\n如果您是不小心來到此頁面,請點選瀏覽器的 <strong>返回</strong> 按鈕。",
        "anontalkpagetext": "----\n<em>此討論頁面是給尚未建立帳號的匿名使用者使用</em>\n因此我們必須使用 IP 位址來辨識身份,但相同的 IP 位址可能由許多不同的使用者所共用。\n如果您是匿名使用者並且覺得評論的內容與您無關,請 [[Special:UserLogin/signup|建立新帳號]] 或 [[Special:UserLogin|登入]] 避免與其他匿名使用者混淆。",
        "noarticletext": "此頁面目前沒有內容,您可以在其它頁面中[[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>,但您沒有權限建立此頁面。",
        "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。",
-       "userjsyoucanpreview": "<strong>提示:</strong>在儲存之前使用 \"{{int:showpreview}}\" 按鈕來測試您的新 JavaScript。",
+       "usercssyoucanpreview": "<strong>提示:</strong>在儲存之前使用 \"{{int:showpreview}}\" 按鈕來測試您的新 CSS 。",
+       "userjsyoucanpreview": "<strong>提示:</strong>在儲存之前使用 \"{{int:showpreview}}\" 按鈕來測試您的新 JavaScript 。",
        "usercsspreview": "<strong>您目前正預覽您的使用者 CSS,CSS 還尚未儲存!</strong>",
        "userjspreview": "<strong>您目前正預覽您的使用者 JavaScript,JavaScript 還尚未儲存!</strong>",
        "sitecsspreview": "<strong>您目前正預覽此 CSS,CSS 還尚未儲存!</strong>",
        "previewconflict": "此預覽顯示了您於上方文字編輯框中的內容儲存之後將會顯示的結果。",
        "session_fail_preview": "<strong>很抱歉!由於連線階段的資料遺失,我們無法處理您的編輯動作。</strong>\n請再試一次。\n如果仍然失敗,請 [[Special:UserLogout|登出]] 後重新登入。",
        "session_fail_preview_html": "<strong>很抱歉!由於連線階段的資料遺失,我們無法處理您的編輯動作。</strong>\n\n<em>由於 {{SITENAME}} 開啟了原始 HTML 模式,將不會顯示預覽畫面以避免 JavaScript 攻擊。</em>\n\n<strong>若這是符合規範的編輯動作,請再試一次。</strong>\n如果仍然有問題,請 [[Special:UserLogout|登出]] 後再重新登入一次。",
-       "token_suffix_mismatch": "<strong>您使用的瀏覽器刪除了編輯資訊中的特殊符號,已拒絕此編輯動作。</strong>\n為了避免破壞頁面內容,已拒絕此編輯動作,\n這通常是因為您使用了有問題的匿名網頁代理伺服器。",
+       "token_suffix_mismatch": "<strong>您的編輯已經被拒絕,因為您用戶端中的編輯金鑰破壞了一些標點符號字元。</strong>\n為了避免破壞頁面文字,已拒絕這次編輯。\n此情況通常在您使用了有問題的匿名網頁代理服務時出現。",
        "edit_form_incomplete": "<strong>部份編輯的內容未送至伺服器,請檢查您的編輯內容是否完整並再試一次。</strong>",
        "editing": "正在編輯 $1",
        "creating": "正在建立 $1",
        "templatesused": "此頁面使用了以下{{PLURAL:$1|模板}}:",
        "templatesusedpreview": "此預覽使用了以下{{PLURAL:$1|模板}}:",
        "templatesusedsection": "此頁面使用了以下 {{PLURAL:$1|模板}} :",
-       "template-protected": "(受保護)",
-       "template-semiprotected": "(受半保護)",
+       "template-protected": "(受保護)",
+       "template-semiprotected": "(受半保護)",
        "hiddencategories": "此頁面屬於 {{PLURAL:$1|1 個隱藏分類|$1 個隱藏分類}}的成員:",
        "edittools": "<!-- 此處的文字將被顯示在編輯和上傳表單以下。 -->",
        "nocreatetext": "{{SITENAME}} 已限制建立新頁面的功能。 {{GENDER:|你|妳|你}}可返回並編輯既有的頁面,或者 [[Special:UserLogin|登入或建立新帳號]]。",
        "expensive-parserfunction-category": "使用了太多消耗系統資源的分析函數的頁面",
        "post-expand-template-inclusion-warning": "<strong>警告:</strong>引用樣板後大小超出限制。\n部份樣板內容將不會被使用。",
        "post-expand-template-inclusion-category": "引用樣板後大小超出限制的頁面",
-       "post-expand-template-argument-warning": "<strong>è­¦å\91\8aï¼\9a</strong>æ­¤é \81é\9d¢æ\9c\89ä¸\80å\80\8b以ä¸\8aç\9a\84樣板參數過長。\n過長的參數會被直接忽略。",
+       "post-expand-template-argument-warning": "<strong>è­¦å\91\8aï¼\9a</strong>æ­¤é \81é\9d¢æ\9c\89ä¸\80å\80\8b以ä¸\8aç\9a\84模板參數過長。\n過長的參數會被直接忽略。",
        "post-expand-template-argument-category": "樣板參數有部份被忽略的頁面",
        "parser-template-loop-warning": "偵測到樣板遞迴:[[$1]]",
        "parser-template-recursion-depth-warning": "超出樣板遞迴深度限制 ($1)",
        "last": "前筆",
        "page_first": "第一頁",
        "page_last": "最後頁",
-       "histlegend": "比較選擇的版本差異:選要比較修訂版本的單選方塊並點選網頁底部的按鈕進行比較。<br />\n符號說明:<strong>({{int:cur}})</strong> = 與最新的修訂版本比較,<strong>({{int:last}})</strong> = 與前一筆修訂版本比較,<strong>{{int:minoreditletter}}</strong> = 小修訂。",
+       "histlegend": "比對選擇的版本差異:選擇要比對修訂版本的單選方塊並點選底部的按鈕進行比對。<br />\n符號說明:<strong>({{int:cur}})</strong> = 與最新的修訂版本比對,<strong>({{int:last}})</strong> = 與前一筆修訂版本比對,<strong>{{int:minoreditletter}}</strong> = 小修訂。",
        "history-fieldset-title": "瀏覽歷史",
        "history-show-deleted": "只顯示已刪除的修訂",
        "histfirst": "最舊",
        "rev-suppressed-text-view": "此頁面修訂已被 <strong>禁止顯示</strong>。\n您可繼續檢視修訂,可至 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 禁止顯示日誌] 取得詳細資訊。",
        "rev-deleted-no-diff": "因頁面的其中一次修訂已被 <strong>刪除</strong>,您無法檢視差異。\n可至 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌] 取得詳細資訊。",
        "rev-suppressed-no-diff": "因頁面的其中一次修訂已被 <strong>刪除</strong>,您無法檢視差異。",
-       "rev-deleted-unhide-diff": "檢視差異的其中一個修訂已被 <strong>刪除</strong>。\n可至 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌] 取得詳細資。\n若您要繼續,您仍可以 [$1 檢視此差異]。",
+       "rev-deleted-unhide-diff": "檢視差異的其中一個修訂已被 <strong>刪除</strong>。\n可至 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌] 取得詳細資。\n若您要繼續,您仍可以 [$1 檢視此差異]。",
        "rev-suppressed-unhide-diff": "檢視差異的其中一個修訂已被 <strong>禁止顯示</strong>。\n可至 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 禁止顯示日誌] 取得詳細資訊。\n若您要繼續,您仍可以 [$1 檢視此差異]。",
        "rev-deleted-diff-view": "檢視差異的其中一個修訂已被 <strong>刪除</strong>。\n您可繼續檢視差異,可至 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌] 取得詳細資訊。",
        "rev-suppressed-diff-view": "檢視差異的其中一個修訂已被 <strong>禁止顯示</strong>。\n您可繼續檢視差異,可至 [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 禁止顯示日誌] 取得詳細資訊。",
        "rev-delundel": "更改顯示設定",
        "rev-showdeleted": "顯示",
-       "revisiondelete": "刪除/取消刪除修訂",
+       "revisiondelete": "刪除/還原刪除修訂",
        "revdelete-nooldid-title": "無效的目標修訂",
        "revdelete-nooldid-text": "您尚未指定目標修訂執行此動作、指定的修訂不存在,或您嘗試隱藏目前的修訂。",
        "revdelete-no-file": "指定的檔案不存在。",
        "logdelete-selected": "已選擇{{PLURAL:$1|一筆|多筆}}日誌活動:",
        "revdelete-text-text": "已刪除的修訂仍會出現於頁面歷史中,但內容將不開放存取。",
        "revdelete-text-file": "已刪除的檔案版本仍會出現於檔案歷史中,但內容將不開放存取。",
-       "logdelete-text": "å·²å\88ªé\99¤ç\9a\84æ\97¥èª\8cæ´»å\8b\95ä»\8dæ\9c\83å\87ºç\8f¾æ\96¼æ\97¥èª\8c中ï¼\8cä½\86å\85§å®¹å°\87ä¸\8d開放存取。",
-       "revdelete-text-others": "若未æ\9c\89é¡\8då¤\96ç\9a\84設å®\9aé\99\90å\88¶ï¼\8cå\85¶ä»\96管ç\90\86å\93¡ä»\8dæ\9c\89æ¬\8aé\99\90檢è¦\96è\88\87å\8f\96æ¶\88å\88ªé\99¤é\9a±è\97\8fç\9a\84å\85§å®¹ã\80\82",
-       "revdelete-confirm": "請確認您是否明白此動作會造成的後果,\n以及您所做的動作是否符合 [[{{MediaWiki:Policy-url}}|政策]] 規範。",
-       "revdelete-suppress-text": "禁制顯示應<strong>只有</strong>在下述情形時使用:\n* 潛在誹謗的資訊\n* 不合適個人資料\n*: <em>住家地址、電話號碼、身分證字號等。</em>",
+       "logdelete-text": "å·²å\88ªé\99¤ç\9a\84æ\97¥èª\8cæ´»å\8b\95ä»\8dæ\9c\83å\87ºç\8f¾æ\96¼æ\97¥èª\8c中ï¼\8cä½\86å\85¶é\83¨å\88\86å\85§å®¹å°\87ä¸\8dæ\9c\83å\90\91å\85¬ç\9c¾開放存取。",
+       "revdelete-text-others": "若未設å®\9aé¡\8då¤\96æ¢\9d件ï¼\8cå\85¶ä»\96管ç\90\86å\93¡ä»\8dæ\9c\89æ¬\8aé\99\90檢è¦\96è\88\87å\8f\96æ¶\88å\88ªé\99¤é\9a±è\97\8fç\9a\84å\85§å®¹ã\80\82",
+       "revdelete-confirm": "請確認您是否明白此動作會造成的後果,以及您所做的動作是否符合[[{{MediaWiki:Policy-url}}|政策]]規範。",
+       "revdelete-suppress-text": "禁止顯示應<strong>只有</strong>在下述情形時使用:\n* 潛在誹謗的資訊\n* 不恰當的個人資料\n*: <em>住家地址、電話號碼、身分證號碼等。</em>",
        "revdelete-legend": "設定顯示限制",
        "revdelete-hide-text": "修訂文字",
        "revdelete-hide-image": "隱藏檔案內容",
        "revdelete-radio-same": "(請勿更改)",
        "revdelete-radio-set": "隱藏",
        "revdelete-radio-unset": "顯示",
-       "revdelete-suppress": "禁止顯示資料給管理者及其他使用者",
+       "revdelete-suppress": "禁止向管理者及其他使用者顯示資料",
        "revdelete-unsuppress": "移除已還原修訂上的顯示限制",
        "revdelete-log": "原因:",
        "revdelete-submit": "套用至已選取的{{PLURAL:$1|一筆|多筆}}修訂",
        "revertmerge": "取消合併",
        "mergelogpagetext": "以下是最近合併頁面歷史的清單。",
        "history-title": "\"$1\" 的修訂歷史",
-       "difference-title": "「$1」的修訂間的差異",
+       "difference-title": "\"$1\" 修訂間的差異",
        "difference-title-multipage": "頁面 \"$1\" 與 \"$2\" 間的差異",
        "difference-multipage": "(頁面間的差異)",
        "lineno": "行 $1:",
        "diff-multi-manyusers": "(未顯示由超過 $2 位使用者於中間所作的 $1 次修訂)",
        "difference-missing-revision": "查無此差異 ($1) 中的{{PLURAL:$2|1 次修訂|$2 次修訂}}。\n\n這通常是因為差異的連結過時,頁面已被刪除。\n詳情資訊請參閱 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 刪除日誌]。",
        "searchresults": "搜尋結果",
-       "searchresults-title": "「$1」的搜尋結果",
+       "searchresults-title": "\"$1\" 的搜尋結果",
        "titlematches": "頁面標題符合",
        "textmatches": "頁面內容符合",
        "notextmatches": "沒有符合的頁面內容",
        "searchprofile-advanced": "進階",
        "searchprofile-articles-tooltip": "在 $1 中搜尋",
        "searchprofile-images-tooltip": "搜尋檔案",
-       "searchprofile-everything-tooltip": "搜尋所有內容(包含對話頁面)",
+       "searchprofile-everything-tooltip": "搜尋所有內容 (包含對話頁面)",
        "searchprofile-advanced-tooltip": "搜尋自訂命名空間",
-       "search-result-size": "$1 ({{PLURAL:$2|1 個字|$2 個字}})",
+       "search-result-size": "$1 ({{PLURAL:$2|1 個字|$2 個字}})",
        "search-result-category-size": "$1 位成員 ($2 個子分類,$3 個檔案)",
        "search-redirect": "(重新導向自 $1)",
        "search-section": "(章節 $1)",
        "prefs-editwatchlist-edit": "檢視與移除在您監視清單上的標題",
        "prefs-editwatchlist-raw": "編輯原始監視清單",
        "prefs-editwatchlist-clear": "清除您的監視清單",
-       "prefs-watchlist-days": "監視清單中顯示的天數:",
+       "prefs-watchlist-days": "監視清單中顯示的天數:",
        "prefs-watchlist-days-max": "最多 $1 {{PLURAL:$1|天}}",
        "prefs-watchlist-edits": "展開監視清單中顯示的變更數量上限:",
        "prefs-watchlist-edits-max": "數量上限:1000",
-       "prefs-watchlist-token": "監視清單鑰:",
+       "prefs-watchlist-token": "監視清單鑰:",
        "prefs-misc": "其他",
        "prefs-resetpass": "變更密碼",
-       "prefs-changeemail": "變更電子郵件",
-       "prefs-setemail": "設定電子郵件址",
+       "prefs-changeemail": "變更電子郵件地址",
+       "prefs-setemail": "設定電子郵件址",
        "prefs-email": "電子郵件選項",
        "prefs-rendering": "外觀",
        "saveprefs": "儲存",
        "recentchangesdays-max": "最多 $1 {{PLURAL:$1|天}}",
        "recentchangescount": "預設顯示的編輯數:",
        "prefs-help-recentchangescount": "這包含近期變更、頁面歷史以及日誌。",
-       "prefs-help-watchlist-token2": "訂閱您的監視清單所需的密鑰。\n任何人只要知道密鑰就能夠讀取您的監視清單,所以請勿任意與它人共享。\n若有需要 [[Special:ResetTokens|您可重設密鑰]]。",
+       "prefs-help-watchlist-token2": "訂閱您的監視清單所需的金鑰。\n任何人只要知道金鑰就能夠讀取您的監視清單,所以請勿任意與它人共享。\n若有需要 [[Special:ResetTokens|您可重設金鑰]]。",
        "savedprefs": "已儲存您的偏好設定。",
        "timezonelegend": "時區:",
        "localtime": "當地時間:",
        "prefs-common-css-js": "所有外觀共用的 CSS/JavaScript:",
        "prefs-reset-intro": "您可以使用此頁面重設您的偏好設定為網站預設值。\n這個動作將無法復原。",
        "prefs-emailconfirm-label": "電子郵件確認:",
-       "youremail": "電子郵件:",
+       "youremail": "Email:",
        "username": "{{GENDER:$1|使用者名稱}}:",
        "prefs-memberingroups": "{{GENDER:$2|所屬}}{{PLURAL:$1|群組}}:",
        "prefs-registration": "註冊時間:",
        "gender-male": "他編輯了 Wiki 頁面",
        "gender-female": "她編輯了 Wiki 頁面",
        "prefs-help-gender": "此偏好設定為選填欄位。\n系統會使用您選擇的方式稱呼您,對他人提及您時也會使用適當語法稱呼。\n此項資訊會被公開。",
-       "email": "電子郵件",
+       "email": "Email",
        "prefs-help-realname": "真實姓名為選填欄位。\n若提供,真實姓名可能會用來作為您的作品的署名。",
-       "prefs-help-email": "電子郵件位址為選填欄位。\n但在重設密碼時會使用,而您很有可能會忘記密。",
-       "prefs-help-email-others": "您亦可以選擇讓其他使用者用電子郵件與您聯絡,透過您的使用者或對話頁面上方的連結。\n您的電子郵件位址不會實際告知給其他要聯絡您的使用者。",
+       "prefs-help-email": "電子郵件地址為選填欄位。\n但在重設密碼時會使用,而您很有可能會忘記密碼。",
+       "prefs-help-email-others": "您亦可以選擇讓其他使用者透過您的電子郵件、使用者頁面或對話頁面的連結與您聯絡。\n您的電子郵件地址不會洩漏給其他要聯絡您的使用者。",
        "prefs-help-email-required": "電子郵件地址是必填項目。",
        "prefs-info": "基本資訊",
        "prefs-i18n": "國際化",
        "prefs-advancedwatchlist": "進階選項",
        "prefs-displayrc": "顯示選項",
        "prefs-displaywatchlist": "顯示選項",
-       "prefs-tokenwatchlist": "鑰",
+       "prefs-tokenwatchlist": "鑰",
        "prefs-diffs": "差異",
        "prefs-help-prefershttps": "此偏好設定將於您下次登入時生效。",
        "prefswarning-warning": "您對您的偏好設定所做的變更尚未儲存。\n若您未點選 \"$1\" 離開此頁面,將不會更新您的偏好設定。",
        "prefs-tabs-navigation-hint": "提示:您可使用左、右方向鍵切換頁籤。",
-       "email-address-validity-valid": "電子郵件址有效",
-       "email-address-validity-invalid": "請輸入一個有效的電子郵件址",
+       "email-address-validity-valid": "電子郵件址有效",
+       "email-address-validity-invalid": "請輸入一個有效的電子郵件址",
        "userrights": "使用者權限管理",
        "userrights-lookup-user": "管理使用者群組",
        "userrights-user-editname": "請輸入使用者名稱:",
        "userrights-groupsmember-auto": "所屬隱含群組:",
        "userrights-groups-help": "您可以更改此使用者所屬的群組:\n* 已勾選的核選方塊代表該使用者屬於該群組。\n* 未勾選的核選方塊代表該使用者不屬於該群組。\n* 有 * 號標示代表一旦加入該群組後便不能移除,反之亦然。",
        "userrights-reason": "原因:",
-       "userrights-no-interwiki": "您沒有權限去編輯其它使用者在 Wiki 上的權限。",
+       "userrights-no-interwiki": "您沒有權限去編輯其他 Wiki 上的使用者權限。",
        "userrights-nodatabase": "資料庫 $1 不存在或不在本地主機的。",
        "userrights-nologin": "您必須 [[Special:UserLogin|登入]] 管理員帳號以指定使用者權限。",
        "userrights-notallowed": "您沒有權限加入或刪除使用者權限。",
        "group-bot-member": "機器人",
        "group-sysop-member": "{{GENDER:$1|管理員}}",
        "group-bureaucrat-member": "行政員",
-       "group-suppress-member": "監督員",
+       "group-suppress-member": "{{GENDER:$1|監督員}}",
        "grouppage-user": "{{ns:project}}:使用者",
        "grouppage-autoconfirmed": "{{ns:project}}:自動確認使用者",
        "grouppage-bot": "{{ns:project}}:機器人",
        "grouppage-sysop": "{{ns:project}}:管理員",
        "grouppage-bureaucrat": "{{ns:project}}:行政員",
-       "grouppage-suppress": "{{ns:project}}:監督",
+       "grouppage-suppress": "{{ns:project}}:監督",
        "right-read": "閱讀頁面",
        "right-edit": "編輯頁面",
        "right-createpage": "建立頁面 (不含討論頁面)",
        "right-editsemiprotected": "編輯保護層級為 \"{{int:protect-level-autoconfirmed}}\" 的頁面",
        "right-editcontentmodel": "編輯頁面的內容模型",
        "right-editinterface": "編輯使用者介面",
-       "right-editusercssjs": "編輯其他使用者的 CSS 和 JavaScript 檔案",
-       "right-editusercss": "編輯其他使用者的 CSS 檔",
-       "right-edituserjs": "編輯其他使用者的 JavaScript 檔",
+       "right-editusercssjs": "編輯其他使用者的 CSS 與 JavaScript 檔",
+       "right-editusercss": "編輯其他使用者的 CSS 檔",
+       "right-edituserjs": "編輯其他使用者的 JavaScript 檔",
        "right-editmyusercss": "編輯自己的使用者 CSS 檔",
        "right-editmyuserjs": "編輯自己的使用者 JavaScript 檔",
        "right-viewmywatchlist": "檢視自己的監視清單",
        "right-editmywatchlist": "編輯自己的監視清單。注意,即使無此權限,某些操作仍會新增頁面至監視清單。",
-       "right-viewmyprivateinfo": "檢視自己的私隱資料 (如:電子郵件址及真實姓名)",
-       "right-editmyprivateinfo": "編輯自己的隱私資料 (如:電子郵件址及真實姓名)",
+       "right-viewmyprivateinfo": "檢視自己的私隱資料 (如:電子郵件址及真實姓名)",
+       "right-editmyprivateinfo": "編輯自己的隱私資料 (如:電子郵件址及真實姓名)",
        "right-editmyoptions": "編輯自己的偏好設定",
        "right-rollback": "快速還原最後一位使用者對某一頁面的編輯",
        "right-markbotedits": "標示還原編輯為機械人編輯",
        "action-editcontentmodel": "編輯頁面的內容模型",
        "action-managechangetags": "建立並自資料庫移除標籤",
        "nchanges": "$1 次變更",
-       "enhancedrc-since-last-visit": "自上次訪問已有 $1",
+       "enhancedrc-since-last-visit": "{{PLURAL:$1|自上次拜訪}}已有 $1",
        "enhancedrc-history": "歷史",
        "recentchanges": "近期變更",
        "recentchanges-legend": "近期變更選項",
        "rcshowhideliu": "$1 已註冊的使用者",
        "rcshowhideliu-show": "顯示",
        "rcshowhideliu-hide": "隱藏",
-       "rcshowhideanons": "$1 匿名使用者",
+       "rcshowhideanons": "$1 匿名使用者",
        "rcshowhideanons-show": "顯示",
        "rcshowhideanons-hide": "隱藏",
        "rcshowhidepatr": "$1 巡查過的編輯",
        "rcshowhidemine": "$1 我的編輯",
        "rcshowhidemine-show": "顯示",
        "rcshowhidemine-hide": "隱藏",
-       "rclinks": "顯示最近 $2 天內的 $1 次更改。<br />$3",
+       "rclinks": "顯示近期 $2 天內的 $1 次變更。<br />$3",
        "diff": "差異",
        "hist": "歷史",
        "hide": "隱藏",
        "upload-file-error": "內部錯誤",
        "upload-file-error-text": "嘗試在伺服器上建立暫存檔案時發生內部錯誤。\n請連絡 [[Special:ListUsers/sysop|管理員]]。",
        "upload-misc-error": "不明的上傳錯誤",
-       "upload-misc-error-text": "上傳時發生不明錯誤。\n請檢查您的 URL 是否有效且可存取,然後再重試一次。\n如果仍有問題,請聯絡 [[Special:ListUsers/sysop|管理員]]。",
+       "upload-misc-error-text": "上傳時發生不明錯誤。\n請檢查您的 URL 是否有效且可存取,然後再重試一次。\n如果仍有問題,請聯絡[[Special:ListUsers/sysop|管理員]]。",
        "upload-too-many-redirects": "該 URL 重新導向至太多其他位址",
        "upload-http-error": "發生 HTTP 錯誤:$1",
        "upload-copy-upload-invalid-domain": "此網域不允許複製上傳的檔案。",
        "uploadstash-refresh": "更新檔案清單",
        "invalid-chunk-offset": "無效區塊位置",
        "img-auth-accessdenied": "拒絕存取",
-       "img-auth-nopathinfo": "缺少 PATH_INFO å\8f\83æ\95¸ã\80\82\næ\82¨ç\9a\84伺æ\9c\8då\99¨ç\92°å¢\83æ\9cªå\82³é\81\9eæ­¤è³\87è¨\8aï¼\8c\næ\82¨å\8f¯è\83½ä½¿ç\94¨ CGI-based ç\9a\84伺æ\9c\8då\99¨ï¼\8cä¸\8dæ\94¯æ\8f´ img_authã\80\82\nè«\8bå\8f\83è\80\83 https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorizationã\80\82",
+       "img-auth-nopathinfo": "缺少 PATH_INFOã\80\82\næ\82¨ç\9a\84伺æ\9c\8då\99¨ç\92°å¢\83å°\9aæ\9cªè¨­å®\9aå\82³é\81\9eæ­¤è³\87è¨\8aã\80\82\nå®\83æ\88\96許å\9fºæ\96¼ CGIï¼\8cå\9b è\80\8cä¸\8dæ\94¯æ\8f´ img_authã\80\82\nè«\8bå\8f\83è\80\83 https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Image_Authorizationã\80\82",
        "img-auth-notindir": "已設定的上傳目錄清單中不存在您指定的路徑。",
        "img-auth-badtitle": "無法使用 \"$1\" 建立有效的標題。",
        "img-auth-nologinnWL": "您尚未登入,且 \"$1\" 並未在允許清單上。",
        "http-timed-out": "HTTP 請求已逾時。",
        "http-curl-error": "擷取 URL 時錯誤:$1",
        "http-bad-status": "進行 HTTP 請求發生問題:$1 $2",
-       "upload-curl-error6": "無法連線 URL",
-       "upload-curl-error6-text": "無法連線指定的 URL。\n請重新檢查 URL 是否正確,且確認網站是否正常運作。",
+       "upload-curl-error6": "無法連線 URL",
+       "upload-curl-error6-text": "無法連線至指定的 URL 。\n請重新檢查 URL 是否正確,且確認網站是否正常運作。",
        "upload-curl-error28": "上傳逾時",
        "upload-curl-error28-text": "網站超出回應時間限制。\n請檢查該網站是否正常運作,並稍候一會再試一次。\n建議您可在非網路尖峰時段再嘗試連線。",
        "license": "授權條款:",
        "nolicense": "尚未選擇",
        "licenses-edit": "編輯授權條款選項",
        "license-nopreview": "(不可預覽)",
-       "upload_source_url": "(您選擇的檔案來自有效可公開存取的 URL)",
+       "upload_source_url": "(您選擇的檔案來自有效可公開存取的 URL)",
        "upload_source_file": "(您在您的電腦上選擇的檔案)",
        "listfiles-delete": "刪除",
        "listfiles-summary": "此特殊頁面顯示所有已上傳的檔案。",
        "nolinkstoimage": "沒有頁面連結到此檔案。",
        "morelinkstoimage": "檢視連結到這個檔案的[[Special:WhatLinksHere/$1|更多連結]]。",
        "linkstoimage-redirect": "$1 (檔案重新導向) $2",
-       "duplicatesoffile": "以ä¸\8b $1 å\80\8bæª\94æ¡\88è\88\87æ­¤æª\94æ¡\88é\87\8dè¦\86 ([[Special:FileDuplicateSearch/$2|äº\86解詳細資訊]]):",
+       "duplicatesoffile": "以ä¸\8b $1 å\80\8bæª\94æ¡\88è\88\87æ­¤æª\94æ¡\88é\87\8dè¤\87 ([[Special:FileDuplicateSearch/$2|ç\9e­解詳細資訊]]):",
        "sharedupload": "此檔案來自 $1 且可能被其他專案所使用。",
-       "sharedupload-desc-there": "此檔案來自 $1 且可能被其他專案所使用。\n請參考 [$2 檔案描述頁面] 解進一步資訊。",
-       "sharedupload-desc-here": "此檔案來自 $1 且可能被其他專案所使用。\n以下為該檔案於 [$2 檔案描述頁面] 的內容描述。",
+       "sharedupload-desc-there": "此檔案來自 $1 且可能被其他專案所使用。\n請參考 [$2 檔案描述頁面] 解進一步資訊。",
+       "sharedupload-desc-here": "此檔案來自 $1 且可能被其他專案所使用。\n在下方顯示其 [$2 檔案描述頁面] 的描述內容。",
        "sharedupload-desc-edit": "此檔案來自 $1 且可能被其他專案所使用。\n您可在該檔案的 [$2 檔案描述頁面] 上編輯內容描述。",
        "sharedupload-desc-create": "此檔案來自 $1 且可能被其他專案所使用。\n若您想要編輯內容描述可至 [$2 檔案描述頁面]。",
        "filepage-nofile": "不存在此名稱的檔案。",
        "filedelete-nofile-old": "查無 <strong>$1</strong> 擁有指定的屬性的封存版本。",
        "filedelete-otherreason": "其它/額外的原因:",
        "filedelete-reason-otherlist": "其它原因",
-       "filedelete-reason-dropdown": "*常è¦\8bç\9a\84å\88ªé\99¤å\8e\9få\9b \n** ä¾µç\8a¯ç\89\88æ¬\8a\n** æª\94æ¡\88é\87\8dè¦\86",
+       "filedelete-reason-dropdown": "*常è¦\8bç\9a\84å\88ªé\99¤å\8e\9få\9b \n** ä¾µç\8a¯ç\89\88æ¬\8a\n** æª\94æ¡\88é\87\8dè¤\87",
        "filedelete-edit-reasonlist": "編輯刪除原因",
        "filedelete-maintenance": "維護期間檔案刪除和還原暫停使用。",
        "filedelete-maintenance-title": "無法刪除檔案",
        "mimetype": "MIME 類型:",
        "download": "下載",
        "unwatchedpages": "未監視的頁面",
-       "listredirects": "重新導向頁面清單",
+       "listredirects": "重新導向清單",
        "listduplicatedfiles": "重複檔案清單",
        "listduplicatedfiles-summary": "此清單中包含最新版本的檔案與其他檔案重複的清單,本清單只顯示本地檔案。",
        "listduplicatedfiles-entry": "[[:File:$1|$1]] 有[[$3|其他 $2 個重複檔案]]。",
        "pageswithprop-prophidden-long": "已隱藏過長的屬性值 ($1)",
        "pageswithprop-prophidden-binary": "已隱藏二進位屬性值 ($1)",
        "doubleredirects": "雙重的重新導向",
-       "doubleredirectstext": "此頁列出所有重新導向頁面連結到另一個重新導向頁面的頁面清單。每一列都包含第一次和第二次重新導向頁面的連結,以及第二次重新導向之後的目標,第二次重新導向之後的目標通常是 \"實際\" 的目標頁面,也是第一個重新導向頁面應該指向的頁面。\n<del>刪節線</del> 代表該項目的問題已經解決。",
+       "doubleredirectstext": "此頁列出重新導向至另一個重新導向頁面的頁面。每一列都包含第一次和第二次重新導向頁面的連結,以及第二次重新導向之後的目標,第二次重新導向之後的目標通常是「實際」的目標頁面,也是第一個重新導向頁面應該指向的頁面。\n<del>刪節線</del> 代表該項目的問題已經解決。",
        "double-redirect-fixed-move": "[[$1]] 已完成移動。\n此頁面已自動更新並重新導向至 [[$2]]。",
        "double-redirect-fixed-maintenance": "在維護作業時自動修正雙重的重新導向自 [[$1]] 至 [[$2]]。",
        "double-redirect-fixer": "重新導向修正者",
        "unusedimages": "未使用的檔案",
        "wantedcategories": "需要的分類",
        "wantedpages": "需要的頁面",
+       "wantedpages-summary": "以下為最多連結的不存在頁面,除只有重新導向連結的頁面外。 若要取得不存在的重新導向頁面,請至 [[{{#special:BrokenRedirects}}]]。",
        "wantedpages-badtitle": "結果集合中的標題無效:$1",
        "wantedfiles": "需要的檔案",
        "wantedfiletext-cat": "下列檔案被時用,但檔案不存在。 外部儲存庫的檔案儘管存在,但此清單仍會列出。 這類誤報的項目會以 <del>刪除線</del> 標示。 另外,頁面內嵌檔案不存在會於清單 [[:$1]] 中顯示。",
        "mostlinkedtemplates": "被引用最多的頁面",
        "mostcategories": "最多分類的頁面",
        "mostimages": "被連結最多的檔案",
-       "mostinterwikis": "最多跨 Wiki 的頁面",
+       "mostinterwikis": "最多跨 Wiki 連結的頁面",
        "mostrevisions": "最多修訂的頁面",
        "prefixindex": "所有頁面與字首",
        "prefixindex-namespace": "所有含字首的頁面 ($1 命名空間)",
        "nopagetext": "您所指定的目標頁面並不存在。",
        "pager-newer-n": "較新 $1 筆",
        "pager-older-n": "較舊 $1 筆",
-       "suppress": "監督",
+       "suppress": "失職",
        "querypage-disabled": "此特殊頁面因考量效能問題已被停用。",
        "apihelp": "API 說明",
        "apihelp-no-such-module": "查無模組 \"$1\"。",
        "listgrouprights-rights": "權限",
        "listgrouprights-helppage": "Help:Group rights",
        "listgrouprights-members": "(成員清單)",
-       "listgrouprights-addgroup": "加入{{PLURAL:$2|群組|群組}}:$1",
+       "listgrouprights-addgroup": "加入{{PLURAL:$2|群組}}:$1",
        "listgrouprights-removegroup": "移除{{PLURAL:$2|群組|群組}}:$1",
        "listgrouprights-addgroup-all": "加入所有群組",
        "listgrouprights-removegroup-all": "移除所有群組",
        "trackingcategories-nodesc": "沒有可用的描述。",
        "trackingcategories-disabled": "已停用分類",
        "mailnologin": "沒有傳送位址",
-       "mailnologintext": "您必須先 [[Special:UserLogin|登入]]\n並在 [[Special:Preferences|偏好設定]]\n中設定一個有效的電子郵件位址才可以傳送信件給其他使用者。",
+       "mailnologintext": "您必須先 [[Special:UserLogin|登入]]\n並在 [[Special:Preferences|偏好設定]]\n中設定一個有效的電子郵件地址才可以傳送郵件給其他使用者。",
        "emailuser": "Email 此使用者",
-       "emailuser-title-target": "Email 給此{{GENDER:$1|使用者}}",
-       "emailuser-title-notarget": "E-mail 使用者",
+       "emailuser-title-target": "E-mail 聯絡此{{GENDER:$1|使用者}}",
+       "emailuser-title-notarget": "E-mail 聯絡使用者",
        "emailpage": "E-mail 給使用者",
        "emailpagetext": "您可以使用以下表格傳送電子郵件給這位 {{Gender:$1|使用者}}。\n您在 [[Special:Preferences|偏好設定]] 中所輸入的電子郵件位址將會作為郵件的 \"寄件人\",因此該使用者可直接回覆您。",
        "defemailsubject": "{{SITENAME}} 使用者 \"$1\" 寄來的電子郵件",
        "usermaildisabled": "使用者電子郵件已停用",
-       "usermaildisabledtext": "您不能傳送信件到這個 Wiki 上的其他使用者",
-       "noemailtitle": "沒有電子郵件位址",
-       "noemailtext": "此使用者尚未指定一個有效的電子郵件址。",
+       "usermaildisabledtext": "您不能傳送電子郵件到本 Wiki 上的其他使用者",
+       "noemailtitle": "無電子郵件地址",
+       "noemailtext": "此使用者尚未指定一個有效的電子郵件址。",
        "nowikiemailtext": "此使用者選擇不接收其他使用者的信件。",
        "emailnotarget": "收件人不存在或無效的使用者名稱。",
-       "emailtarget": "輸入收件人使用者名稱",
+       "emailtarget": "輸入收件人使用者名稱",
        "emailusername": "使用者名稱:",
        "emailusernamesubmit": "送出",
        "email-legend": "傳送電子郵件給另一位 {{SITENAME}} 的使用者",
        "emailto": "收件人:",
        "emailsubject": "主旨:",
        "emailmessage": "訊息:",
-       "emailsend": "å\82³é\80\81",
+       "emailsend": "å¯\84å\87º",
        "emailccme": "傳送一份訊息副本到我的電子郵件信箱。",
        "emailccsubject": "您寄給 $1 的訊息副本:$2",
        "emailsent": "已寄出電子郵件",
        "emailsenttext": "已寄出您的電子郵件訊息。",
        "emailuserfooter": "這封電子郵件是由 $1 透過 {{SITENAME}} 的 \"Email 給此使用者\" 功能寄給 $2。",
-       "usermessage-summary": "留給系統訊息。",
+       "usermessage-summary": "留訊息至系統。",
        "usermessage-editor": "系統訊息",
        "watchlist": "監視清單",
        "mywatchlist": "監視清單",
        "deletecomment": "原因:",
        "deleteotherreason": "其它/額外的原因:",
        "deletereasonotherlist": "其它原因",
-       "deletereason-dropdown": "* 常見的刪除原因\n** 濫發廣告訊息\n** 破壞\n** 侵犯版權\n** 作者請求\n** 損壞的重新導向連結",
+       "deletereason-dropdown": "* 常見的刪除原因\n** 濫發廣告訊息\n** 破壞\n** 侵犯版權\n** 作者請求\n** 損壞的重新導向",
        "delete-edit-reasonlist": "編輯刪除原因",
        "delete-toobig": "此頁面含有大量的編輯歷史,超過 $1 次修訂。\n已限制刪除此類頁面的動作,以避免意外中斷 {{SITENAME}} 的運作。",
        "delete-warning-toobig": "此頁面含有大量的編輯歷史,超過 $1 次修訂。\n刪除該頁面可能會中斷 {{SITENAME}} 的資料庫運作;\n請小心執行此動作。",
        "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 修訂的版本。",
+       "rollback-success": "已還原 $1 做的編輯;改回 $2 修訂的最後一個版本。",
        "sessionfailure-title": "連線階段失敗",
        "sessionfailure": "您的登入連線階段似乎有問題,\n為了預防連線階段受到劫持攻擊,此動作已經被取消。\n請返回上一頁,重新讀取該頁面再試一次。",
        "protectlogpage": "保護日誌",
        "sp-contributions-newonly": "只顯示建立頁面的編輯",
        "sp-contributions-submit": "搜尋",
        "whatlinkshere": "連入頁面",
-       "whatlinkshere-title": "連結至「$1」的頁面",
+       "whatlinkshere-title": "連結至 \"$1\" 的頁面",
        "whatlinkshere-page": "頁面:",
        "linkshere": "以下頁面連結至 <strong>[[:$1]]</strong>:",
        "nolinkshere": "沒有頁面連結至 <strong>[[:$1]]</strong>。",
        "whatlinkshere-prev": "前 $1 筆",
        "whatlinkshere-next": "{{PLURAL:$1|後筆|後 $1 筆}}",
        "whatlinkshere-links": "← 連結",
-       "whatlinkshere-hideredirs": "$1 重新導向頁面",
+       "whatlinkshere-hideredirs": "$1 重新導向",
        "whatlinkshere-hidetrans": "$1 引用",
        "whatlinkshere-hidelinks": "$1 連結",
        "whatlinkshere-hideimages": "$1 檔案連結",
        "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": "監視這位使用者的使用者頁面及其對話頁面",
-       "ipb-disableusertalk": "é\81¿å\85\8då\9c¨å°\81é\8e\96此使ç\94¨è\80\85ç\9a\84æ\9c\9fé\96\93編輯自己的對話頁面",
+       "ipb-disableusertalk": "é\98²æ­¢å\9c¨æ­¤ä½¿ç\94¨è\80\85被å°\81æ\9c\9fé\96\93編輯ä»\96å\80\91自己的對話頁面",
        "ipb-change-block": "使用現有設定重新封鎖使用者",
        "ipb-confirm": "確認封鎖",
        "badipaddress": "無效的 IP 位址",
        "ip_range_invalid": "無效的 IP 範圍。",
        "ip_range_toolarge": "不允許封鎖範圍大於 /$1。",
        "proxyblocker": "代理伺服器封鎖器",
-       "proxyblockreason": "å\9b æ\82¨ç\9a\84 IP ä½\8då\9d\80æ\98¯é\96\8bæ\94¾ä»£ç\90\86伺æ\9c\8då\99¨ï¼\8c已被å°\81é\8e\96ã\80\82\nè«\8bè\81¯ç¹«您的網路服務供應商或您所在組織的技術支援,告知他們此嚴重的安全性問題。",
+       "proxyblockreason": "å\9b æ\82¨ç\9a\84 IP ä½\8då\9d\80æ\98¯é\96\8bæ\94¾ä»£ç\90\86伺æ\9c\8då\99¨ï¼\8c已被å°\81é\8e\96ã\80\82\nè«\8bè\81¯çµ¡您的網路服務供應商或您所在組織的技術支援,告知他們此嚴重的安全性問題。",
        "sorbsreason": "您的 IP 位址在 {{SITENAME}} 使用的 DNSBL 列為開放代理伺服器。",
        "sorbs_create_account_reason": "您連線到 {{SITENAME}} 的 IP 位址被 DNSBL 列為開放代理伺服器。\n您不能建立帳號。",
        "xffblockreason": "您的 IP 位址使用 X-Forwarded-For 標頭,您或您使用的代理伺服器已被封鎖。\n封鎖的原因為:$1",
        "lockdb": "鎖定資料庫",
        "unlockdb": "解除鎖定資料庫",
        "lockdbtext": "鎖定資料庫將會中止所有使用者編輯頁面、更改偏好設定、編輯監視清單與其他需要更動到資料庫的操作。\n請確認您是否要這樣做,並在維護作業結束時解除資料庫的鎖定。",
-       "unlockdbtext": "解除鎖定資料庫會恢復所有使用者編輯頁面、更改偏好設定、編輯監視清單與其他需要更動到資料庫的操作。\n請確認您是否要這樣做。",
+       "unlockdbtext": "解除鎖定資料庫會還原所有使用者編輯頁面、更改偏好設定、編輯監視清單與其他需要更動到資料庫的操作。\n請確認您是否要這樣做。",
        "lockconfirm": "是的,我想要鎖定資料庫。",
        "unlockconfirm": "是的,我想要解除鎖定資料庫。",
        "lockbtn": "鎖定資料庫",
        "thumbnail_image-missing": "檔案遺失:$1",
        "thumbnail_image-failure-limit": "最近顯示此縮圖已發生太多次失敗 ($1 次或更多),請稍後再試。",
        "import": "匯入頁面",
-       "importinterwiki": "Transwiki 匯入",
-       "import-interwiki-text": "請選擇一個 Wiki 與頁面標題以進行匯入。\n會同時記錄修訂日期和編輯者的名稱。\n所有的 Transwiki 匯入操作會被記錄在 [[Special:Log/import|匯入日誌]]。",
+       "importinterwiki": "從其他 wiki 匯入",
+       "import-interwiki-text": "請選擇一個 Wiki 與頁面標題以進行匯入。\n會同時記錄修訂日期和編輯者的名稱。\n所有的從其他 Wiki 匯入操作都會被記錄在 [[Special:Log/import|匯入日誌]]。",
        "import-interwiki-sourcewiki": "來源 Wiki:",
        "import-interwiki-sourcepage": "來源頁面:",
        "import-interwiki-history": "複製此頁的所有歷史修訂",
        "importcantopen": "無法開啟匯入檔案",
        "importbadinterwiki": "無效的 Interwiki 連結",
        "importsuccess": "已完成匯入!",
-       "importnosources": "未定義任何 Transwiki 匯入來源且已關閉使用歷史記錄上傳功能。",
+       "importnosources": "未定義任何已匯入的 wiki 來源且已關閉使用歷史記錄上傳功能。",
        "importnofile": "未上傳匯入檔案。",
        "importuploaderrorsize": "上傳匯入檔案失敗。\n檔案大小超過允許上傳大小。",
        "importuploaderrorpartial": "上傳匯入檔案失敗。\n僅上傳部份檔案。",
        "import-rootpage-nosubpage": "命名空間 \"$1\" 的根頁面不允許子頁面。",
        "importlogpage": "匯入日誌",
        "importlogpagetext": "管理性匯入其他 Wiki 的頁面及編輯歷史記錄。",
-       "import-logentry-upload": "使用檔案上傳匯入 [[$1]]",
        "import-logentry-upload-detail": "已匯入 $1 筆{{PLURAL:$1|修訂}}",
-       "import-logentry-interwiki": "Transwiki 頁面 $1",
        "import-logentry-interwiki-detail": "已從 $2 匯入 $1 筆{{PLURAL:$1|修訂}}",
        "javascripttest": "JavaScript 測試",
        "javascripttest-pagetext-noframework": "此頁面保留用來作為 JavaScript 測試使用。",
        "javascripttest-pagetext-skins": "選擇執行測試的外觀:",
        "javascripttest-qunit-intro": "請參考 mediawiki.org 的 [$1 測試說明文件]。",
        "tooltip-pt-userpage": "您的使用者頁面",
-       "tooltip-pt-anonuserpage": "您編輯使用的 IP 位址所對應的使用者頁面",
+       "tooltip-pt-anonuserpage": "您正在用於編輯的 IP 位址所對應的使用者頁面",
        "tooltip-pt-mytalk": "您的對話頁面",
        "tooltip-pt-anontalk": "有關來自此 IP 位址編輯的討論",
        "tooltip-pt-preferences": "您的偏好設定",
-       "tooltip-pt-watchlist": "您監視變更頁面清單",
+       "tooltip-pt-watchlist": "您正在監視變更的頁面清單",
        "tooltip-pt-mycontris": "您的貢獻清單",
-       "tooltip-pt-login": "儘管非必要,仍建議您登入。",
+       "tooltip-pt-login": "儘管沒有必要,但仍建議您登入。",
        "tooltip-pt-logout": "登出",
        "tooltip-pt-createaccount": "我們會鼓勵您建立一個帳號並且登入,即使這不是必要的動作。",
        "tooltip-ca-talk": "有關頁面內容的討論",
        "tooltip-search-go": "若與此名稱相符的頁面存在,前往該頁面",
        "tooltip-search-fulltext": "搜尋使用此文字的頁面",
        "tooltip-p-logo": "前往首頁",
-       "tooltip-n-mainpage": "前往頁",
+       "tooltip-n-mainpage": "前往頁",
        "tooltip-n-mainpage-description": "前往首頁",
        "tooltip-n-portal": "關於本專案、您可以做什麼、哪裡可以找到您需要的事物",
        "tooltip-n-currentevents": "於最新動態中尋找背景資訊",
        "tooltip-preview": "請在儲存前預覽您的變更!",
        "tooltip-diff": "顯示您對內容所做的變更",
        "tooltip-compareselectedversions": "檢視此頁兩個已選擇的修訂間的差異",
-       "tooltip-watch": "將此頁加入您的監視清單",
+       "tooltip-watch": "新增此頁面至您的監視清單",
        "tooltip-watchlistedit-normal-submit": "移除標題",
        "tooltip-watchlistedit-raw-submit": "更新監視清單",
        "tooltip-recreate": "無論是否被刪除,重新建立該頁面。",
        "tooltip-summary": "請輸入簡短摘要",
        "interlanguage-link-title": "$1 – $2",
        "common.css": "/* 此 CSS 會套用至所有的介面外觀 */",
-       "print.css": "/* 此 CSS 會影響列印版輸出 */",
-       "noscript.css": "/* æ­¤ CSS æ\9c\83å½±é\9f¿æ²\92æ\9c\89å\95\93用 JavaScript 的使用者 */",
+       "print.css": "/* 此處的 CSS 會影響列印輸出 */",
+       "noscript.css": "/* æ­¤ CSS æ\9c\83å½±é\9f¿æ²\92æ\9c\89å\95\9f用 JavaScript 的使用者 */",
        "group-autoconfirmed.css": "/* 此 CSS 會影響自動確認的使用者 */",
        "group-bot.css": "/* 此 CSS 會影響機器人 */",
        "group-sysop.css": "/* 這裡的 CSS 會影響管理員 */",
        "pageinfo-few-watchers": "少於 $1 名監視者",
        "pageinfo-redirects-name": "指向此頁面的重新導向頁面數量",
        "pageinfo-subpages-name": "此頁面的子頁面數",
-       "pageinfo-subpages-value": "$1 ($2 個重新導向頁面; $3 個非重新導向頁面)",
+       "pageinfo-subpages-value": "$1 ($2 個{{PLURAL:$2|重新導向}}; $3 個{{PLURAL:$3|非重新導向}})",
        "pageinfo-firstuser": "頁面建立者",
        "pageinfo-firsttime": "頁面建立日期",
        "pageinfo-lastuser": "最近編輯者",
        "exif-countrydest": "顯示國家",
        "exif-countrycodedest": "顯示國家代碼",
        "exif-provinceorstatedest": "顯示省或州",
-       "exif-citydest": "顯示城市",
+       "exif-citydest": "顯示城市",
        "exif-sublocationdest": "顯示城市詳細地點",
        "exif-objectname": "簡稱",
        "exif-specialinstructions": "特別說明",
        "exif-editstatus": "圖片編輯狀態",
        "exif-urgency": "緊急性",
        "exif-fixtureidentifier": "夾具名稱",
-       "exif-locationdest": "位置描述",
+       "exif-locationdest": "描繪地點",
        "exif-locationdestcode": "位置代碼描述",
-       "exif-objectcycle": "åª\92é«\94ç\9a\84時間",
+       "exif-objectcycle": "åª\92é«\94ç\99¼ç\94\9f時間",
        "exif-contact": "聯絡資訊",
        "exif-writer": "作家",
        "exif-languagecode": "語言",
        "exif-intellectualgenre": "項目類型",
        "exif-subjectnewscode": "主題代碼",
        "exif-scenecode": "IPTC 現場代碼",
-       "exif-event": "事件描述",
-       "exif-organisationinimage": "組織描述",
-       "exif-personinimage": "æ\89\80æ\8f\8fè¿°ç\9a\84人",
+       "exif-event": "描繪事件",
+       "exif-organisationinimage": "描繪組織",
+       "exif-personinimage": "æ\8f\8f繪人ç\89©",
        "exif-originalimageheight": "裁切前的高度",
        "exif-originalimagewidth": "裁切前的寬度",
        "exif-compression-1": "未壓縮",
        "exif-sensingmethod-8": "連續彩色線性感測器",
        "exif-filesource-3": "數位相機",
        "exif-scenetype-1": "直接照像圖片",
-       "exif-customrendered-0": "標準處理",
-       "exif-customrendered-1": "自定義處理",
+       "exif-customrendered-0": "一般程序",
+       "exif-customrendered-1": "自訂程序",
        "exif-exposuremode-0": "自動曝光",
        "exif-exposuremode-1": "手動曝光",
-       "exif-exposuremode-2": "自動曝光感知調節",
+       "exif-exposuremode-2": "自動包圍曝光",
        "exif-whitebalance-0": "自動白平衡",
        "exif-whitebalance-1": "手動白平衡",
        "exif-scenecapturetype-0": "標準",
        "exif-gpslongitude-w": "西經",
        "exif-gpsaltitude-above-sealevel": "海拔 $1 {{PLURAL:$1|公尺}}",
        "exif-gpsaltitude-below-sealevel": "海拔負 $1 {{PLURAL:$1|公尺}}",
-       "exif-gpsstatus-a": "測é\87\8fé\81\8eç¨\8b",
-       "exif-gpsstatus-v": "互動測量",
+       "exif-gpsstatus-a": "測é\87\8fé\80²è¡\8c中",
+       "exif-gpsstatus-v": "測量互通性",
        "exif-gpsmeasuremode-2": "二維測量",
        "exif-gpsmeasuremode-3": "三維測量",
        "exif-gpsspeed-k": "每小時公里",
        "exif-ycbcrpositioning-1": "中間",
        "exif-ycbcrpositioning-2": "同時取樣",
        "exif-dc-contributor": "貢獻者",
-       "exif-dc-coverage": "時間或空間性介質範圍",
+       "exif-dc-coverage": "媒體的時空範圍",
        "exif-dc-date": "日期",
        "exif-dc-publisher": "出版商",
        "exif-dc-relation": "相關媒體",
        "exif-dc-rights": "權利",
        "exif-dc-source": "來源媒體",
-       "exif-dc-type": "介質類型",
+       "exif-dc-type": "媒體類型",
        "exif-rating-rejected": "已拒絕",
        "exif-isospeedratings-overflow": "大於 65535",
        "exif-iimcategory-ace": "藝術、文化與娛樂",
        "exif-urgency-other": "使用者自訂優先權 ($1)",
        "namespacesall": "全部",
        "monthsall": "全部",
-       "confirmemail": "確認電子郵件址",
-       "confirmemail_noemail": "您尚未於 [[Special:Preferences|偏好設定]] 輸入一個有效的電子郵件位址。",
-       "confirmemail_text": "{{SITENAME}}要求您在使用郵件功能之前驗證您的電子郵件位址。\n點選以下按鈕可向您的電子郵件傳送一封確認郵件。該郵件包含有一行代碼連結;\n請在您的瀏覽器中載入此連結以確認您的電子郵件位址是有效的。",
+       "confirmemail": "確認電子郵件址",
+       "confirmemail_noemail": "您尚未在 [[Special:Preferences|偏好設定]] 中輸入一個有效的電子郵件地址。",
+       "confirmemail_text": "{{SITENAME}} 要求您在使用郵件功能之前驗證您的電子郵件地址。\n點選以下按鈕可向您的電子郵件傳送一封確認郵件。該郵件包含有一行代碼連結;\n請在您的瀏覽器中載入此連結以確認您的電子郵件地址是有效的。",
        "confirmemail_pending": "確認碼已傳送至您的電子郵件,\n若您才剛建立好您的帳號,可能需要稍後幾分鐘才能收到。\n若沒有收到,請再重新申請一次確認碼。",
-       "confirmemail_send": "電子郵件寄送確認代碼",
-       "confirmemail_sent": "已寄出確認電子郵件。",
-       "confirmemail_oncreate": "確認代碼已傳送至您的電子郵件位址。\n登入動作不需要使用此代碼,但開啟在 Wiki 中任何以電子郵件為基礎的功能會需要先提供此代碼。",
-       "confirmemail_sendfailed": "{{SITENAME}}無法傳送確認郵件,請檢查電子郵件址是否包含非法字元。\n\n郵件傳送員回應: $1",
+       "confirmemail_send": "電子郵件確認碼",
+       "confirmemail_sent": "確認郵件已寄出。",
+       "confirmemail_oncreate": "確認碼已傳送至您的電子郵件地址。\n登入動作不需要使用此代碼,但開啟在 Wiki 中任何以電子郵件為基礎的功能會需要先提供此代碼。",
+       "confirmemail_sendfailed": "{{SITENAME}}無法傳送確認郵件,請檢查電子郵件址是否包含非法字元。\n\n郵件傳送員回應: $1",
        "confirmemail_invalid": "無效的確認碼,該代碼可能已經過期。",
-       "confirmemail_needlogin": "請 $1 以確認您的電子郵件址。",
-       "confirmemail_success": "您的電子郵件已經被確認。您現在可以[[Special:UserLogin|登入]]並使用此網站了。",
-       "confirmemail_loggedin": "已確認您的電子郵件址。",
-       "confirmemail_subject": "{{SITENAME}} 電子郵件址確認",
-       "confirmemail_body": "不明人士 (可能是您自己,來自 IP 位址 $1) 已在 {{SITENAME}} 註冊了一個帳號 \"$2\" 並使用了此電子郵件位址。\n\n請確認這個帳號是屬於您的,並使用瀏覽器開啟下方連結以開啟在 {{SITENAME}} 上的電子郵件功能:\n\n$3\n\n若您 *未* 註冊此帳號,\n請開啟下方連結取消電子郵件確認:\n\n$5\n\n此確認代碼會於 $4 過期。",
-       "confirmemail_body_changed": "不明人士 (可能是您自己,來自 IP 位址 $1)  已將在 {{SITENAME}} 帳號 \"$2\" 的電子郵件址更改至此。\n\n請確認這個帳號是屬於您的,並使用瀏覽器開啟下方連結以開啟在 {{SITENAME}} 上的電子郵件功能:\n\n$3\n\n若您 *未* 註冊此帳號,\n請開啟下方連結取消電子郵件確認:\n\n$5\n\n此確認代碼會於 $4 過期。",
-       "confirmemail_body_set": "不明人士 (可能是您自己,來自 IP 位址 $1) 已將在 {{SITENAME}} 帳號 \"$2\" 的電子郵件位址設定至此。\n\n請確認這個帳號是屬於您的,並使用瀏覽器開啟下方連結以開啟在 {{SITENAME}} 上的電子郵件功能:\n\n$3\n\n若您 *未* 註冊此帳號,\n請開啟下方連結取消電子郵件確認:\n\n$5\n\n此確認代碼會於 $4 過期。",
-       "confirmemail_invalidated": "已取消電子郵件址確認",
+       "confirmemail_needlogin": "請 $1 以確認您的電子郵件址。",
+       "confirmemail_success": "您的電子郵件已經被確認。您現在可以 [[Special:UserLogin|登入]] 並使用此網站了。",
+       "confirmemail_loggedin": "已確認您的電子郵件址。",
+       "confirmemail_subject": "{{SITENAME}} 電子郵件址確認",
+       "confirmemail_body": "不明人士 (可能是您自己,來自 IP 位址 $1) 已在 {{SITENAME}} 註冊了一個帳號 「$2」 並使用了此 Email 地址。\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": "取消電子郵件確認",
        "scarytranscludedisabled": "[Interwiki 轉換代碼不可用]",
        "scarytranscludefailed": "[模板 $1 讀取失敗]",
        "watchlistedit-raw-done": "已更新您的監視清單。",
        "watchlistedit-raw-added": "已新增 $1 個標題:",
        "watchlistedit-raw-removed": "已移除 $1 個標題:",
-       "watchlistedit-clear-title": "清空監視清單",
+       "watchlistedit-clear-title": "清空監視清單",
        "watchlistedit-clear-legend": "清空監視清單",
        "watchlistedit-clear-explain": "將會移除您的監視清單中所有的標題",
        "watchlistedit-clear-titles": "標題:",
        "version-hooks": "連結 (Hooks)",
        "version-parser-extensiontags": "解析器擴充標籤",
        "version-parser-function-hooks": "語法函數連結",
-       "version-hook-name": "é\80£çµ\90å\90\8d稱",
+       "version-hook-name": "é\89¤å\90\8d",
        "version-hook-subscribedby": "署名",
        "version-version": "($1)",
        "version-no-ext-name": "[未命名]",
        "version-poweredby-others": "其他",
        "version-poweredby-translators": " translatewiki.net 翻譯人員",
        "version-credits-summary": "我們感謝以下人士為 [[Special:Version|MediaWiki]] 作出的貢獻。",
-       "version-license-info": "MediaWiki 為自由軟體;您可依據自由軟體基金會所發表的 GNU 通用公共授權條款規定,將本程式重新發佈與/或修改;無論您依據的是本授權條款的第二版或 (您可自行選擇) 之後的任何版本。\n\n本程式發佈的目的是希望可以提供幫助,但不負任何擔保責任;亦無隱含對適售性或 特定用途的適用性的情形擔保。詳情請參照 GNU 通用公共授權。\n\n您應已隨本程式收到 [{{SERVER}}{{SCRIPTPATH}}/COPYING GNU 通用公共授權條款的副本];如果沒有,請信件通知自由軟體基金會,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA,或 [//www.gnu.org/licenses/old-licenses/gpl-2.0.html 線上閱讀]。",
+       "version-license-info": "MediaWiki 為自由軟體;您可依據自由軟體基金會所發表的 GNU 通用公共授權條款規定,將本程式重新發佈與/或修改;無論您依據的是本授權條款的第二版或 (您可自行選擇) 之後的任何版本。\n\n本程式發佈的目的是希望可以提供幫助,但不負任何擔保責任;亦無隱含對適售性或 特定用途的適用性的情形擔保。詳情請參照 GNU 通用公共授權。\n\n您應已隨本程式收到 [{{SERVER}}{{SCRIPTPATH}}/COPYING GNU 通用公共授權條款的副本];如果沒有,請寄信通知自由軟體基金會,51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA,或 [//www.gnu.org/licenses/old-licenses/gpl-2.0.html 線上閱讀]。",
        "version-software": "已經安裝的軟體",
        "version-software-product": "產品",
        "version-software-version": "版本",
        "redirect-not-exists": "查無值",
        "fileduplicatesearch": "搜尋重複檔案",
        "fileduplicatesearch-summary": "依據雜湊值 (Hash) 來搜尋重複的檔案。",
-       "fileduplicatesearch-legend": "æ\90\9cå°\8bé\87\8dè¦\86",
+       "fileduplicatesearch-legend": "æ\90\9cå°\8bé\87\8dè¤\87",
        "fileduplicatesearch-filename": "檔案名稱:",
        "fileduplicatesearch-submit": "搜尋",
        "fileduplicatesearch-info": "$1 × $2 像素<br />檔案大小:$3<br />MIME 類型:$4",
        "tags-create-submit": "建立",
        "tags-create-no-name": "您必須指定一個標籤名稱。",
        "tags-create-invalid-chars": "標籤名稱不可包含逗號 (<code>,</code>) 或斜線 (<code>/</code>)。",
+       "tags-create-invalid-title-chars": "標籤名稱不能含有無法使用者頁面標題的字元。",
        "tags-create-already-exists": "標籤 \"$1\" 已存在。",
+       "tags-create-warnings-above": "嘗試建立標籤 \"$1\" 時發生下列{{PLURAL:$2|警告}}:",
        "tags-create-warnings-below": "您是否要繼續建立標籤?",
        "tags-delete-title": "刪除標籤",
        "tags-delete-explanation-initial": "您正要從資料庫刪除標籤 \"$1\"。",
+       "tags-delete-explanation-in-use": "標籤會自目前正在使用的{{PLURAL:$2| $2 個修訂或日誌項目| $2 修訂或日誌項目}}中移除。",
+       "tags-delete-explanation-warning": "此動作是 <strong>無法還原的</strong> 且 <strong>無法取消的</strong>,即使是資料庫管理者也無法。 請確認您要刪除的標題。",
+       "tags-delete-explanation-active": "<strong>標籤 \"$1\" 尚在使用,無法刪除。</strong> 要停止標籤使用,請至套用該標籤的頁面,並於該處將標籤停用。",
        "tags-delete-reason": "原因:",
        "tags-delete-submit": "無法取消刪除此標籤",
+       "tags-delete-not-allowed": "無法刪除由擴充套件定義的標籤,除非該擴充套件允許。",
        "tags-delete-not-found": "標籤 \"$1\" 不存在。",
+       "tags-delete-too-many-uses": "標籤 \"$1\" 會套用至 $2 筆以上的{{PLURAL:$2|修訂|修訂}},這代表該標籤將無法刪除。",
+       "tags-delete-warnings-after-delete": "標籤 \"$1\" 已刪除成功,但發生下列{{PLURAL:$2|警告|警告}}:",
        "tags-activate-title": "啟動標籤",
        "tags-activate-question": "您正要啟動標籤 \"$1\"。",
        "tags-activate-reason": "原因:",
        "compare-revision-not-exists": "您所指定的修訂不存在。",
        "dberr-problems": "抱歉!這個網站出現了一些技術上的問題。",
        "dberr-again": "嘗試等候數分鐘後,然後再試。",
-       "dberr-info": "(無法連接資料庫:$1)",
-       "dberr-info-hidden": "(無法連接資料庫)",
+       "dberr-info": "(無法存取資料庫:$1)",
+       "dberr-info-hidden": "(無法存取資料庫)",
        "dberr-usegoogle": "您可以嘗試在此期間使用 Google 搜尋。",
        "dberr-outofdate": "注意,它們用來建立索引的內容可能不是最新的。",
        "dberr-cachederror": "這是請求面頁面的快取複本,可能不是最新的。",
        "revdelete-uname-unhid": "取消隱藏使用者名稱",
        "revdelete-restricted": "已套用對管理員的限制",
        "revdelete-unrestricted": "已移除對管理員的限制",
+       "logentry-block-block": "$1 {{GENDER:$2|已封鎖}} {{GENDER:$4|$3}} 期限為 $5 $6",
+       "logentry-block-unblock": "$1 {{GENDER:$2|已解除封鎖}} {{GENDER:$4|$3}}",
+       "logentry-block-reblock": "$1 {{GENDER:$2|已變更}} {{GENDER:$4|$3}} 的封鎖設定期限為 $5 $6",
+       "logentry-suppress-block": "$1 {{GENDER:$2|已封鎖}} {{GENDER:$4|$3}} 期限為 $5 $6",
+       "logentry-suppress-reblock": "$1 {{GENDER:$2|已變更}} {{GENDER:$4|$3}} 的封鎖設定期限為 $5 $6",
+       "logentry-import-upload": "$1 已由檔案上傳{{GENDER:$2|匯入}} $3",
+       "logentry-import-interwiki": "$1 已由其他 wiki {{GENDER:$2|匯入}} $3",
        "logentry-merge-merge": "$1 將 $3 {{GENDER:$2|合併}}至 $4 (修訂版本至 $5)",
        "logentry-move-move": "$1 {{GENDER:$2|已移動}}頁面 $3 至 $4",
-       "logentry-move-move-noredirect": "$1 已移動頁面 $3 至 $4,不留重新導向頁面",
+       "logentry-move-move-noredirect": "$1 {{GENDER:$2|已移動}}頁面 $3 至 $4,不保留重新導向",
        "logentry-move-move_redir": "$1 已移動頁面 $3 至 $4 並覆蓋原有重新導向",
        "logentry-move-move_redir-noredirect": "$1 {{GENDER:$2|已移動}}頁面 $3 覆蓋重新導向頁面至 $4,未留重新導向頁面",
        "logentry-patrol-patrol": "$1 {{GENDER:$2|已標記}}頁面 $3 的修訂 $4 為已巡查",
        "logentry-upload-revert": "$1 {{GENDER:$2|已上傳}} $3",
        "log-name-managetags": "標籤管理日誌",
        "log-description-managetags": "此頁面列出與[[Special:Tags|標籤]]相關的管理工作項目。 在日誌中僅包含由管理員手動所做的操作;被 Wiki 軟體所建立或刪除的標籤項目,不會記錄在此日誌中",
+       "logentry-managetags-create": "$1 {{GENDER:$2|已建立}}標籤 \"$4\"",
+       "logentry-managetags-delete": "$1 {{GENDER:$2|已刪除}}標籤 \"$4\" (已自 $5 個{{PLURAL:$5|修訂或日誌|修訂或日誌}}中移除)",
+       "logentry-managetags-activate": "$1 {{GENDER:$2|已啟用}}標籤 \"$4\" 供使用者與機器人使用",
+       "logentry-managetags-deactivate": "$1 {{GENDER:$2|已停用}}標籤 \"$4\" 供使用者與機器人使用",
        "rightsnone": "(無)",
        "revdelete-summary": "編輯摘要",
-       "feedback-bugornote": "如果您準備要詳細描述一個技術問題,請至 [$1 回報問題]。\n或您可以使用以下的簡易表單回報問題,您的使用者名稱與評論將被新增到頁面 \"[$3 $2]\"。",
-       "feedback-subject": "主旨:",
-       "feedback-message": "訊息:",
-       "feedback-cancel": "取消",
-       "feedback-submit": "送出意見回饋",
        "feedback-adding": "正在新增意見回饋至頁面...",
+       "feedback-back": "返回",
+       "feedback-bugcheck": "很好! 檢查一下您的意見是不是已經被列為 [$1 已知問題]。",
+       "feedback-bugnew": "我已經檢查。 回報新問題",
+       "feedback-bugornote": "如果您準備要詳細描述一個技術問題,請至 [$1 回報問題]。\n或您可以使用以下的簡易表單回報問題,您的使用者名稱與評論將被新增到 [$3 $2] 頁面。",
+       "feedback-cancel": "取消",
+       "feedback-close": "完成",
+       "feedback-external-bug-report-button": "回報技術問題",
+       "feedback-dialog-title": "送出意見回饋",
+       "feedback-dialog-intro": "您可以使用以下簡易表單傳送您的意見回饋。您的意見將會使用您的使用者名稱新增至頁面 \"$1\"。",
+       "feedback-error-title": "錯誤",
        "feedback-error1": "錯誤:無法識別 API 回傳的結果",
        "feedback-error2": "錯誤:編輯失敗",
        "feedback-error3": "錯誤:API 沒有回應",
+       "feedback-message": "訊息:",
+       "feedback-subject": "主旨:",
+       "feedback-submit": "送出",
+       "feedback-terms": "我了解我的使用者代理資訊包含完整的瀏覽器與作業系統版本資訊,且該資訊將會與意見回饋一同公開共享。",
+       "feedback-termsofuse": "我同意依照使用條款提供意見回饋。",
        "feedback-thanks": "感謝!您的意見回饋已發佈到頁面 \"[$2 $1]\"。",
-       "feedback-close": "完成",
-       "feedback-bugcheck": "很好! 檢查一下您的意見是不是已經被列為 [$1 已知問題]。",
-       "feedback-bugnew": "我已經檢查。 回報新問題",
+       "feedback-thanks-title": "感謝您!",
+       "feedback-useragent": "使用者代理:",
        "searchsuggest-search": "搜尋",
        "searchsuggest-containing": "包含...",
        "api-error-badaccess-groups": "您沒有權限在此 Wiki 上傳檔案。",
        "limitreport-expansiondepth": "最高展開深度",
        "limitreport-expensivefunctioncount": "高消耗解析器函數次數",
        "expandtemplates": "展開模板",
-       "expand_templates_intro": "æ\9c¬ç\89¹æ®\8aé \81é\9d¢æ\9c\83å°\87æ\96\87å­\97中ç\9a\84樣板展開,可以包含支援的解析器語法,如 <code><nowiki>{{</nowiki>#language:…}}</code> 與變數如 <code><nowiki>{{</nowiki>CURRENTDAY}}</code>。\n實際上,絕大部分在雙括號中的內容都會被展開。",
+       "expand_templates_intro": "æ\9c¬ç\89¹æ®\8aé \81é\9d¢æ\9c\83å°\87æ\96\87å­\97中ç\9a\84模板展開,可以包含支援的解析器語法,如 <code><nowiki>{{</nowiki>#language:…}}</code> 與變數如 <code><nowiki>{{</nowiki>CURRENTDAY}}</code>。\n實際上,絕大部分在雙括號中的內容都會被展開。",
        "expand_templates_title": "上下文標題,用於 {{FULLPAGENAME}} 等:",
        "expand_templates_input": "輸入文字:",
        "expand_templates_output": "結果",
        "json-error-utf8": "格式不正確的 UTF-8 字元,可能被不正確編碼",
        "json-error-recursion": "在資料中有一個或多個的遞迴參照值被編碼",
        "json-error-inf-or-nan": "在資料中有一個或多個的 NAN 或 INF 值被編碼",
-       "json-error-unsupported-type": "下列的資料型態無法被編碼"
+       "json-error-unsupported-type": "下列的資料型態無法被編碼",
+       "headline-anchor-title": "連結至此章節"
 }
index a7267dd..393c6e5 100644 (file)
@@ -60,7 +60,7 @@ $specialPageAliases = array(
        'DoubleRedirects'           => array( 'ڕەوانکەرە_دووپاتکراوەکان' ),
        'Emailuser'                 => array( 'ئیمەیل_بەکارھێنەر' ),
        'Export'                    => array( 'ھەناردن' ),
-       'Fewestrevisions'           => array( 'کەمترین__پێداچوونەوەکان' ),
+       'Fewestrevisions'           => array( 'کەمترین_پێداچوونەوەکان' ),
        'Import'                    => array( 'ھاوردن' ),
        'Listadmins'                => array( 'لیستی_بەڕێوبەران' ),
        'Listbots'                  => array( 'لیستی_بۆتەکان' ),
index e0848d0..c9994e2 100644 (file)
@@ -58,7 +58,7 @@ $specialPageAliases = array(
        'CreateAccount'             => array( 'Benutzerkonto_anlegen' ),
        'Deadendpages'              => array( 'Sackgassenseiten' ),
        'DeletedContributions'      => array( 'Gelöschte_Beiträge' ),
-       'Diff'                      => array( 'Unterschied' ),
+       'Diff'                      => array( 'Diff', 'Differenz', 'Unterschied' ),
        'DoubleRedirects'           => array( 'Doppelte_Weiterleitungen' ),
        'EditWatchlist'             => array( 'Beobachtungsliste_bearbeiten' ),
        'Emailuser'                 => array( 'E-Mail_senden', 'Mailen', 'E-Mail' ),
index 9ab687a..074e040 100644 (file)
@@ -68,7 +68,7 @@ $namespaceGenderAliases = array();
 
 $specialPageAliases = array(
        'Blankpage'                 => array( 'Пуста_лаштык' ),
-       'BrokenRedirects'           => array( 'Кӱрылтшӧ__вес_вере_колтымаш-влак' ),
+       'BrokenRedirects'           => array( 'Кӱрылтшӧ_вес_вере_колтымаш-влак' ),
        'Categories'                => array( 'Категорий-влак' ),
        'ComparePages'              => array( 'Лаштык-влакым_тергымаш' ),
        'Emailuser'                 => array( 'Пайдаланышылан_серышым_колташ' ),
index 8a249e1..451e373 100644 (file)
@@ -109,7 +109,7 @@ $specialPageAliases = array(
        'Movepage'                  => array( 'PindahLaman', 'Pindahkan_laman' ),
        'Mycontributions'           => array( 'JariahDenai', 'Jariah_Ambo' ),
        'Mypage'                    => array( 'LamanDenai', 'Laman_Ambo' ),
-       'Mytalk'                    => array( 'RundiangDenai', 'Laman_rundiang__Ambo' ),
+       'Mytalk'                    => array( 'RundiangDenai', 'Laman_rundiang_Ambo' ),
        'Myuploads'                 => array( 'DenaiMuek', 'Nan_Ambo_muek' ),
        'Newimages'                 => array( 'BerkasBaru', 'Berkas_baru' ),
        'Newpages'                  => array( 'LamanBaru', 'Laman_baru' ),
index af14bb3..a0ffcb2 100644 (file)
@@ -696,6 +696,9 @@ abstract class Maintenance {
                                        }
                                        $options[$option] = $param;
                                }
+                       } elseif ( $arg == '-' ) {
+                               # Lonely "-", often used to indicate stdin or stdout.
+                               $args[] = $arg;
                        } elseif ( substr( $arg, 0, 1 ) == '-' ) {
                                # Short options
                                $argLength = strlen( $arg );
diff --git a/maintenance/archives/patch-editsummary-length.sql b/maintenance/archives/patch-editsummary-length.sql
new file mode 100644 (file)
index 0000000..c8ac1ad
--- /dev/null
@@ -0,0 +1,11 @@
+ALTER TABLE /*_*/revision MODIFY rev_comment varbinary(767) NOT NULL;
+ALTER TABLE /*_*/archive MODIFY ar_comment varbinary(767) NOT NULL;
+ALTER TABLE /*_*/image MODIFY img_description varbinary(767) NOT NULL;
+ALTER TABLE /*_*/oldimage MODIFY oi_description varbinary(767) NOT NULL;
+ALTER TABLE /*_*/filearchive MODIFY fa_description varbinary(767);
+ALTER TABLE /*_*/filearchive MODIFY fa_deleted_reason varbinary(767) default '';
+ALTER TABLE /*_*/recentchanges MODIFY rc_comment varbinary(767) NOT NULL default '';
+ALTER TABLE /*_*/logging MODIFY log_comment varbinary(767) NOT NULL default '';
+ALTER TABLE /*_*/ipblocks MODIFY ipb_reason varbinary(767) NOT NULL;
+ALTER TABLE /*_*/protected_titles MODIFY pt_reason varbinary(767);
+
index 85ebd51..d83f1fc 100644 (file)
@@ -48,6 +48,8 @@ class TextPassDumper extends BackupDumper {
        protected $maxConsecutiveFailedTextRetrievals = 200;
        protected $failureTimeout = 5; // Seconds to sleep after db failure
 
+       protected $bufferSize = 524288; // In bytes. Maximum size to read from the stub in on go.
+
        protected $php = "php";
        protected $spawn = false;
 
@@ -186,6 +188,10 @@ class TextPassDumper extends BackupDumper {
                $url = $this->processFileOpt( $val, $param );
 
                switch ( $opt ) {
+                       case 'buffersize':
+                               // Lower bound for xml reading buffer size is 4 KB
+                               $this->bufferSize = max( intval( $val ), 4 * 1024 );
+                               break;
                        case 'prefetch':
                                require_once "$IP/maintenance/backupPrefetch.inc";
                                $this->prefetch = new BaseDump( $url );
@@ -368,12 +374,11 @@ class TextPassDumper extends BackupDumper {
                xml_set_character_data_handler( $parser, array( &$this, 'characterData' ) );
 
                $offset = 0; // for context extraction on error reporting
-               $bufferSize = 512 * 1024;
                do {
                        if ( $this->checkIfTimeExceeded() ) {
                                $this->setTimeExceeded();
                        }
-                       $chunk = fread( $input, $bufferSize );
+                       $chunk = fread( $input, $this->bufferSize );
                        if ( !xml_parse( $parser, $chunk, feof( $input ) ) ) {
                                wfDebug( "TextDumpPass::readDump encountered XML parsing error\n" );
 
index bb7499b..1569234 100644 (file)
@@ -46,7 +46,7 @@ class BenchHttpHttps extends Benchmarker {
        }
 
        static function doRequest( $proto ) {
-               Http::get( "$proto://localhost/" );
+               Http::get( "$proto://localhost/", array(), __METHOD__ );
        }
 
        // bench function 1
index cc2167e..4b9ad9c 100644 (file)
@@ -92,11 +92,13 @@ if ( $maintenance->getDbType() === Maintenance::DB_NONE ) {
        }
 }
 
-$maintenance->setConfig( ConfigFactory::getDefaultInstance()->makeConfig( 'main' ) );
 $maintenance->finalSetup();
 // Some last includes
 require_once "$IP/includes/Setup.php";
 
+// Initialize main config instance
+$maintenance->setConfig( ConfigFactory::getDefaultInstance()->makeConfig( 'main' ) );
+
 // Do the work
 $maintenance->execute();
 
index 7c17607..bde5a07 100644 (file)
@@ -59,6 +59,8 @@ Options:
   --server=h  Force reading from MySQL server h
   --current      Base ETA on number of pages in database instead of all revisions
   --spawn        Spawn a subprocess for loading text records
+  --buffersize=<size> Buffer size in bytes to use for reading the stub.
+              (Default: 512KB, Minimum: 4KB)
   --help      Display this help message
 ENDS
        );
index d17b06d..5cf4536 100644 (file)
@@ -185,7 +185,7 @@ class FindHooks extends Maintenance {
 
                $retval = array();
                while ( true ) {
-                       $json = Http::get( wfAppendQuery( 'http://www.mediawiki.org/w/api.php', $params ) );
+                       $json = Http::get( wfAppendQuery( 'http://www.mediawiki.org/w/api.php', $params ), array(), __METHOD__ );
                        $data = FormatJson::decode( $json, true );
                        foreach ( $data['query']['categorymembers'] as $page ) {
                                if ( preg_match( '/Manual\:Hooks\/([a-zA-Z0-9- :]+)/', $page['title'], $m ) ) {
index 878593c..43f4b6c 100644 (file)
@@ -33,37 +33,57 @@ class FixUserRegistration extends Maintenance {
        public function __construct() {
                parent::__construct();
                $this->mDescription = "Fix the user_registration field";
+               $this->setBatchSize( 1000 );
        }
 
        public function execute() {
-               $dbr = wfGetDB( DB_SLAVE );
                $dbw = wfGetDB( DB_MASTER );
 
-               // Get user IDs which need fixing
-               $res = $dbr->select( 'user', 'user_id', 'user_registration IS NULL', __METHOD__ );
-               foreach ( $res as $row ) {
-                       $id = $row->user_id;
-                       // Get first edit time
-                       $timestamp = $dbr->selectField(
-                               'revision',
-                               'MIN(rev_timestamp)',
-                               array( 'rev_user' => $id ),
-                               __METHOD__
+               $lastId = 0;
+               do {
+                       // Get user IDs which need fixing
+                       $res = $dbw->select(
+                               'user',
+                               'user_id',
+                               array(
+                                       'user_id >' . $dbw->addQuotes( $lastId ),
+                                       'user_registration IS NULL'
+                               ),
+                               __METHOD__,
+                               array(
+                                       'LIMIT' => $this->mBatchSize,
+                                       'ORDER BY user_id ASC',
+                               )
                        );
-                       // Update
-                       if ( !empty( $timestamp ) ) {
-                               $dbw->update(
-                                       'user',
-                                       array( 'user_registration' => $timestamp ),
-                                       array( 'user_id' => $id ),
+                       foreach ( $res as $row ) {
+                               $id = $row->user_id;
+                               $lastId = $id;
+                               // Get first edit time
+                               $timestamp = $dbw->selectField(
+                                       'revision',
+                                       'MIN(rev_timestamp)',
+                                       array( 'rev_user' => $id ),
                                        __METHOD__
                                );
-                               $this->output( "$id $timestamp\n" );
-                       } else {
-                               $this->output( "$id NULL\n" );
+                               // Update
+                               if ( $timestamp !== null ) {
+                                       $dbw->update(
+                                               'user',
+                                               array( 'user_registration' => $timestamp ),
+                                               array( 'user_id' => $id ),
+                                               __METHOD__
+                                       );
+                                       $user = User::newFromId( $id );
+                                       $user->invalidateCache();
+                                       $this->output( "Set registration for #$id to $timestamp\n" );
+                               } else {
+                                       $this->output( "Could not find registration for #$id NULL\n" );
+                               }
                        }
-               }
-               $this->output( "\n" );
+                       $this->output( "Waiting for slaves..." );
+                       wfWaitForSlaves();
+                       $this->output( " done.\n" );
+               } while ( $res->numRows() >= $this->mBatchSize );
        }
 }
 
index b803e3d..4b839a0 100644 (file)
@@ -117,7 +117,7 @@ function findAuxFile( $file, $auxExtension, $maxStrip = 1 ) {
 function getFileCommentFromSourceWiki( $wiki_host, $file ) {
        $url = $wiki_host . '/api.php?action=query&format=xml&titles=File:'
                . rawurlencode( $file ) . '&prop=imageinfo&&iiprop=comment';
-       $body = Http::get( $url );
+       $body = Http::get( $url, array(), __METHOD__ );
        if ( preg_match( '#<ii comment="([^"]*)" />#', $body, $matches ) == 0 ) {
                return false;
        }
@@ -128,7 +128,7 @@ function getFileCommentFromSourceWiki( $wiki_host, $file ) {
 function getFileUserFromSourceWiki( $wiki_host, $file ) {
        $url = $wiki_host . '/api.php?action=query&format=xml&titles=File:'
                . rawurlencode( $file ) . '&prop=imageinfo&&iiprop=user';
-       $body = Http::get( $url );
+       $body = Http::get( $url, array(), __METHOD__ );
        if ( preg_match( '#<ii user="([^"]*)" />#', $body, $matches ) == 0 ) {
                return false;
        }
index e67d077..6566a60 100644 (file)
@@ -59,7 +59,7 @@ class ImportSiteScripts extends Maintenance {
                        $url = wfAppendQuery( $baseUrl, array(
                                'action' => 'raw',
                                'title' => "MediaWiki:{$page}" ) );
-                       $text = Http::get( $url );
+                       $text = Http::get( $url, array(), __METHOD__ );
 
                        $wikiPage = WikiPage::factory( $title );
                        $content = ContentHandler::makeContent( $text, $wikiPage->getTitle() );
@@ -81,7 +81,7 @@ class ImportSiteScripts extends Maintenance {
 
                while ( true ) {
                        $url = wfAppendQuery( $baseUrl, $data );
-                       $strResult = Http::get( $url );
+                       $strResult = Http::get( $url, array(), __METHOD__ );
                        $result = FormatJson::decode( $strResult, true );
 
                        $page = null;
diff --git a/maintenance/jsduck/CustomTags.rb b/maintenance/jsduck/CustomTags.rb
deleted file mode 100644 (file)
index 2de3ac0..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-# Custom tags for JSDuck 5.x
-# See also:
-# - https://github.com/senchalabs/jsduck/wiki/Tags
-# - https://github.com/senchalabs/jsduck/wiki/Custom-tags
-# - https://github.com/senchalabs/jsduck/wiki/Custom-tags/7f5c32e568eab9edc8e3365e935bcb836cb11f1d
-require 'jsduck/tag/tag'
-
-class CommonTag < JsDuck::Tag::Tag
-  def initialize
-    @html_position = POS_DOC + 0.1
-    @repeatable = true
-  end
-
-  def parse_doc(scanner, position)
-    if @multiline
-      return { :tagname => @tagname, :doc => :multiline }
-    else
-      text = scanner.match(/.*$/)
-      return { :tagname => @tagname, :doc => text }
-    end
-  end
-
-  def process_doc(context, tags, position)
-    context[@tagname] = tags
-  end
-
-  def format(context, formatter)
-    context[@tagname].each do |tag|
-      tag[:doc] = formatter.format(tag[:doc])
-    end
-  end
-end
-
-class SourceTag < CommonTag
-  def initialize
-    @tagname = :source
-    @pattern = "source"
-    super
-  end
-
-  def to_html(context)
-    context[@tagname].map do |source|
-      <<-EOHTML
-        <h3 class='pa'>Source</h3>
-        #{source[:doc]}
-      EOHTML
-    end.join
-  end
-end
-
-class SeeTag < CommonTag
-  def initialize
-    @tagname = :see
-    @pattern = "see"
-    super
-  end
-
-  def format(context, formatter)
-    position = context[:files][0]
-    context[@tagname].each do |tag|
-      tag[:doc] = '<li>' + render_long_see(tag[:doc], formatter, position) + '</li>'
-    end
-  end
-
-  def to_html(context)
-    <<-EOHTML
-      <h3 class="pa">Related</h3>
-      <ul>
-      #{ context[@tagname].map { |tag| tag[:doc] }.join("\n") }
-      </ul>
-    EOHTML
-  end
-
-  def render_long_see(tag, formatter, position)
-    if tag =~ /\A([^\s]+)( .*)?\Z/m
-      name = $1
-      doc = $2 ? ': ' + $2 : ''
-      return formatter.format("{@link #{name}} #{doc}")
-    else
-      JsDuck::Logger.warn(nil, 'Unexpected @see argument: "' + tag + '"', position)
-      return tag
-    end
-  end
-end
-
-class ContextTag < CommonTag
-  def initialize
-    @tagname = :context
-    @pattern = 'context'
-    super
-  end
-
-  def format(context, formatter)
-    position = context[:files][0]
-    context[@tagname].each do |tag|
-      tag[:doc] = render_long_context(tag[:doc], formatter, position)
-    end
-  end
-
-  def to_html(context)
-    <<-EOHTML
-      <h3 class="pa">Context</h3>
-      #{ context[@tagname].last[:doc] }
-    EOHTML
-  end
-
-  def render_long_context(tag, formatter, position)
-    if tag =~ /\A([^\s]+)/m
-      name = $1
-      return formatter.format("`context` : {@link #{name}}")
-    else
-      JsDuck::Logger.warn(nil, 'Unexpected @context argument: "' + tag + '"', position)
-      return tag
-    end
-  end
-end
index 145905f..732bdc0 100644 (file)
@@ -14,7 +14,8 @@
                                        "mw.html.Cdata",
                                        "mw.html.Raw",
                                        "mw.hook",
-                                       "mw.template"
+                                       "mw.template",
+                                       "mw.errorLogger"
                                ]
                        },
                        {
@@ -55,7 +56,8 @@
                        {
                                "name": "Interfaces",
                                "classes": [
-                                       "mw.Feedback"
+                                       "mw.Feedback",
+                                       "mw.Feedback.Dialog"
                                ]
                        },
                        {
diff --git a/maintenance/jsduck/config.json b/maintenance/jsduck/config.json
deleted file mode 100644 (file)
index 3a74804..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-       "--title": "MediaWiki core - Documentation",
-       "--categories": "./categories.json",
-       "--eg-iframe": "./eg-iframe.html",
-       "--tags": "./CustomTags.rb",
-       "--warnings": ["-nodoc(class,public)"],
-       "--builtin-classes": true,
-       "--warnings-exit-nonzero": true,
-       "--external": "HTMLElement,HTMLDocument,Window,File",
-       "--footer": "Documentation for MediaWiki core. Generated on {DATE} by {JSDUCK} {VERSION}.",
-       "--output": "../../docs/js",
-       "--": [
-               "./external.js",
-               "../../resources/src/mediawiki",
-               "../../resources/src/mediawiki.action",
-               "../../resources/src/mediawiki.api",
-               "../../resources/src/mediawiki.language",
-               "../../resources/src/mediawiki.page",
-               "../../resources/src/mediawiki.special",
-               "../../resources/src/mediawiki.toolbar",
-               "../../resources/src/jquery/jquery.accessKeyLabel.js",
-               "../../resources/src/jquery/jquery.arrowSteps.js",
-               "../../resources/src/jquery/jquery.autoEllipsis.js",
-               "../../resources/src/jquery/jquery.badge.js",
-               "../../resources/src/jquery/jquery.byteLength.js",
-               "../../resources/src/jquery/jquery.byteLimit.js",
-               "../../resources/src/jquery/jquery.checkboxShiftClick.js",
-               "../../resources/src/jquery/jquery.client.js",
-               "../../resources/src/jquery/jquery.colorUtil.js",
-               "../../resources/src/jquery/jquery.confirmable.js",
-               "../../resources/src/jquery/jquery.footHovzer.js",
-               "../../resources/src/jquery/jquery.getAttrs.js",
-               "../../resources/src/jquery/jquery.hidpi.js",
-               "../../resources/src/jquery/jquery.localize.js",
-               "../../resources/src/jquery/jquery.makeCollapsible.js",
-               "../../resources/src/jquery/jquery.spinner.js",
-               "../../resources/src/jquery/jquery.tabIndex.js",
-               "../../resources/lib/oojs",
-               "../../resources/lib/oojs-ui"
-       ]
-}
diff --git a/maintenance/jsduck/custom_tags.rb b/maintenance/jsduck/custom_tags.rb
new file mode 100644 (file)
index 0000000..39589a0
--- /dev/null
@@ -0,0 +1,120 @@
+# Custom tags for JSDuck 5.x
+# See also:
+# - https://github.com/senchalabs/jsduck/wiki/Tags
+# - https://github.com/senchalabs/jsduck/wiki/Custom-tags
+# - https://github.com/senchalabs/jsduck/wiki/Custom-tags/7f5c32e568eab9edc8e3365e935bcb836cb11f1d
+require 'jsduck/tag/tag'
+
+class CommonTag < JsDuck::Tag::Tag
+  def initialize
+    @html_position = POS_DOC + 0.1
+    @repeatable = true
+  end
+
+  def parse_doc(scanner, _position)
+    if @multiline
+      return { tagname: @tagname, doc: :multiline }
+    else
+      text = scanner.match(/.*$/)
+      return { tagname: @tagname, doc: text }
+    end
+  end
+
+  def process_doc(context, tags, _position)
+    context[@tagname] = tags
+  end
+
+  def format(context, formatter)
+    context[@tagname].each do |tag|
+      tag[:doc] = formatter.format(tag[:doc])
+    end
+  end
+end
+
+class SourceTag < CommonTag
+  def initialize
+    @tagname = :source
+    @pattern = 'source'
+    super
+  end
+
+  def to_html(context)
+    context[@tagname].map do |source|
+      <<-EOHTML
+        <h3 class='pa'>Source</h3>
+        #{source[:doc]}
+      EOHTML
+    end.join
+  end
+end
+
+class SeeTag < CommonTag
+  def initialize
+    @tagname = :see
+    @pattern = 'see'
+    super
+  end
+
+  def format(context, formatter)
+    position = context[:files][0]
+    context[@tagname].each do |tag|
+      tag[:doc] = '<li>' + render_long_see(tag[:doc], formatter, position) + '</li>'
+    end
+  end
+
+  def to_html(context)
+    <<-EOHTML
+      <h3 class="pa">Related</h3>
+      <ul>
+      #{ context[@tagname].map { |tag| tag[:doc] }.join("\n") }
+      </ul>
+    EOHTML
+  end
+
+  def render_long_see(tag, formatter, position)
+    match = /\A([^\s]+)( .*)?\Z/m.match(tag)
+
+    if match
+      name = match[1]
+      doc = match[2] ? ': ' + match[2] : ''
+      return formatter.format("{@link #{name}} #{doc}")
+    else
+      JsDuck::Logger.warn(nil, 'Unexpected @see argument: "' + tag + '"', position)
+      return tag
+    end
+  end
+end
+
+class ContextTag < CommonTag
+  def initialize
+    @tagname = :context
+    @pattern = 'context'
+    super
+  end
+
+  def format(context, formatter)
+    position = context[:files][0]
+    context[@tagname].each do |tag|
+      tag[:doc] = render_long_context(tag[:doc], formatter, position)
+    end
+  end
+
+  def to_html(context)
+    <<-EOHTML
+      <h3 class="pa">Context</h3>
+      #{ context[@tagname].last[:doc] }
+    EOHTML
+  end
+
+  def render_long_context(tag, formatter, position)
+    match = /\A([^\s]+)/m.match(tag)
+
+    if match
+      name = match[1]
+      return formatter.format("`context` : {@link #{name}}")
+    else
+      JsDuck::Logger.warn(nil, 'Unexpected @context argument: "' + tag + '"', position)
+      return tag
+    end
+  end
+end
index 0792c24..fca839d 100644 (file)
@@ -3,6 +3,36 @@
 <head>
        <meta charset="utf-8">
        <title>MediaWiki Code Example</title>
+       <script>
+               /**
+                * Basic log console for the example iframe in documentation pages.
+                */
+               var log = ( function () {
+                       var pre;
+                       return function () {
+                               var str, i, len, line;
+                               if ( !pre ) {
+                                       pre = document.createElement( 'pre' );
+                                       pre.className = 'mw-jsduck-log';
+                                       ( document.body || document.documentElement ).appendChild( pre );
+                               }
+                               str = [];
+                               for ( i = 0, len = arguments.length; i < len; i++ ) {
+                                       str.push( String( arguments[ i ] ) );
+                               }
+                               line = document.createElement( 'div' );
+                               line.className = 'mw-jsduck-log-line';
+                               line.appendChild(
+                                               document.createTextNode( str.join( ' , ' ) + '\n' )
+                               );
+                               pre.appendChild( line );
+                       };
+               }() );
+
+               window.onerror = function ( error, filePath, linerNr ) {
+                       log( error + '\n' + filePath + ':' + linerNr  );
+               };
+       </script>
        <script src="modules/src/startup.js"></script>
        <script>
                function startUp() {
@@ -11,6 +41,8 @@
        </script>
        <script src="modules/lib/jquery/jquery.js"></script>
        <script src="modules/src/mediawiki/mediawiki.js"></script>
+       <script src="modules/src/mediawiki/mediawiki.errorLogger.js"></script>
+       <script src="modules/src/mediawiki/mediawiki.startUp.js"></script>
        <style>
                .mw-jsduck-log {
                        position: relative;
 </head>
 <body>
 <script>
-       /**
-        * Basic log console for the example iframe in documentation pages.
-        */
-       ( function () {
-               var pre;
-               mw.log = function () {
-                       var str, i, len, line;
-                       if ( !pre ) {
-                               pre = document.createElement( 'pre' );
-                               pre.className = 'mw-jsduck-log';
-                               document.body.appendChild( pre );
-                       }
-                       str = [];
-                       for ( i = 0, len = arguments.length; i < len; i++ ) {
-                               str.push( String( arguments[ i ] ) );
-                       }
-                       line = document.createElement( 'div' );
-                       line.className = 'mw-jsduck-log-line';
-                       line.appendChild(
-                                       document.createTextNode( str.join( ' , ' ) + '\n' )
-                       );
-                       pre.appendChild( line );
-               };
-       }() );
+       if ( window.mw ) {
+               mw.log = log;
+       }
+
+       window.onerror = function ( error, filePath, linerNr ) {
+               log( filePath + ':' + linerNr  );
+       };
 
        /**
         * Method called by jsduck to execute the example code.
@@ -78,7 +93,7 @@
                        eval( code );
                        callback && callback( true );
                } catch ( e ) {
-                       mw.log( 'Uncaught ' + e );
+                       log( 'Uncaught ' + e );
                        callback && callback( false, e );
                        throw e;
                }
index f902e58..71641ef 100755 (executable)
@@ -152,14 +152,12 @@ def applyExcludes( mlist, path ):
     return mlist
 
 def charManualTable( path ):
-    fp = open( path, 'r', encoding = 'U8' )
-    ret = {}
-    for line in fp:
-        elems = line.split( '#' )[0].split( '|' )
-        elems = unichr3( *elems )
-        if len( elems ) > 1:
-            ret[elems[0]] = elems[1:]
-    return ret
+   fp = open( path, 'r', encoding = 'U8' )
+   for line in fp:
+       elems = line.split( '#' )[0].split( '|' )
+       elems = unichr3( *elems )
+       if len( elems ) > 1:
+           yield elems[0], elems[1:]
         
 def toManyRules( src_table ):
     tomany = set()
@@ -299,7 +297,9 @@ def main():
     # Unihan.txt
     ( t2s_1tomany, s2t_1tomany ) = unihanParser( han_dest )
 
+    t2s_1tomany.update( charManualTable( 'symme_supp.manual' ) )
     t2s_1tomany.update( charManualTable( 'trad2simp.manual' ) )
+    s2t_1tomany.update( ( t[0], [f] ) for ( f, t ) in charManualTable( 'symme_supp.manual' ) )
     s2t_1tomany.update( charManualTable( 'simp2trad.manual' ) )
     
     if pyversion[:1] in ['2']:
@@ -369,8 +369,6 @@ def main():
     toCN = dictToSortedList( customRules( 'toCN.manual' ), 1 )
     # sorted list toHK
     toHK = dictToSortedList( customRules( 'toHK.manual' ), 1 )
-    # sorted list toSG
-    toSG = dictToSortedList( customRules( 'toSG.manual' ), 1 )
     # sorted list toTW
     toTW = dictToSortedList( customRules( 'toTW.manual' ), 1 )
     
@@ -395,8 +393,6 @@ $zh2Hant = array(\n'''
         +  PHPArray( toHK ) \
         +  '\n);\n\n$zh2CN = array(\n' \
         +  PHPArray( toCN ) \
-        +  '\n);\n\n$zh2SG = array(\n' \
-        +  PHPArray( toSG ) \
         +  '\n);\n'
     
     if pyversion[:1] in ['2']:
index 7e3f87e..e183e56 100644 (file)
@@ -1,13 +1,12 @@
 The various .manual files contains special mappings not included in the
-unihan database, and phrases not included in the SCIM package. 
+unihan database, and phrases not included in the SCIM package.
 
-- simp2trad.manual: Simplified to Traditional character mapping. Most
-  data adapted from
+- symme_supp.manual: Supplementary character mapping of symmetric conversion
+  (1 to 1) between Simplified and Traditional Chinese.
 
-   冯寿忠,“非对称繁简字”对照表, 《语文建设通讯》1997-9第53期.
-   /http://www.yywzw.com/jt/feng/fengb01.htm
+- simp2trad.manual: Simplified to Traditional asymmetric charactermapping. 
 
-- trad2simp.manual: Traditional to Simplified character mapping.
+- trad2simp.manual: Traditional to Simplified asymmetric character mapping.
 
 - simp2trad_noconvert.manual: Do not convert the chars as inapporiate.
 
@@ -18,16 +17,19 @@ unihan database, and phrases not included in the SCIM package.
 
 - simpphrases.manual: Phrases in Simplified Chinese.
 
-- tradphrases_exclude.manual: Excluding several phrases from 
-  the SCIM phrases as inappoiated.
+- tradphrases_exclude.manual: Excluding several phrases from
+  the SCIM phrasesas inappoiated.
 
 - simpphrases_exclude.manual: Excluding several phrases from
   the SCIM phrases as inapporated.
 
-- toTrad.manual, toSimp.manual: Special phrase mappings that 
+- toTrad.manual, toSimp.manual: Special phrase mappings that
   tradphrases.manual or simphrases.manual cannot be handled.
 
-- toTW.manual, toCN.manual, toSG.manual and toHK.manual: Special phrase
-  mappings. 
+- toTW.manual, toCN.manual and toHK.manual: Special phrase mappings.
+
+* 為方便轉換,以上均含不完整詞組,請勿隨意刪除。
 
 zhengzhu at gmail dot com & shinjiman at gmail dot com
+
+Modified by User:Chiefwei at Chinese Wikipedia in 2015.
\ No newline at end of file
index 1b84f8e..da75c44 100644 (file)
@@ -1,23 +1,10 @@
-U+03CE0㳠|U+06FBE澾|
-U+0447D䑽|U+26A99𦪙|
-U+0497A䥺|U+091FE釾|
-U+0497D䥽|U+093FA鏺|
-U+04983䦃|U+0942F鐯|
-U+04985䦅|U+09425鐥|
-U+04B6A䭪|U+297AF𩞯|
-U+04C9F䲟|U+09BA3鮣|
-U+04CA0䲠|U+09C06鰆|
-U+04CA1䲡|U+09C0C鰌|
-U+04CA2䲢|U+09C27鰧|
-U+04CA3䲣|U+04C77䱷|
-U+04DAE䶮|U+09F91龑|
 U+04E07万|U+0842C萬|U+04E07万|
 U+04E0E与|U+08207與|U+04E0E与|
 U+04E11丑|U+04E11丑|U+0919C醜|
 U+04E2A个|U+0500B個|U+07B87箇|
 U+04E30丰|U+08C50豐|U+04E30丰|
 U+04E3A为|U+070BA為|U+07232爲|
-U+04E48么|U+04E48么|U+09EBD麽|U+05E7A幺|U+09EBC麼|
+U+04E48么|U+09EBC麼|U+04E48么|U+09EBD麽|U+05E7A幺|
 U+04E86了|U+04E86了|U+077AD瞭|
 U+04E8E于|U+065BC於|U+04E8E于|
 U+04E91云|U+096F2雲|U+04E91云|
@@ -31,13 +18,14 @@ U+04F19伙|U+04F19伙|U+05925夥|
 U+04F2A伪|U+0507D偽|U+050DE僞|
 U+04F53体|U+09AD4體|U+04F53体|
 U+04F59余|U+04F59余|U+09918餘|
-U+04F63佣|U+04F63佣|U+050AD傭|
+U+04F63佣|U+050AD傭|U+04F63佣|
 U+0501F借|U+0501F借|U+085C9藉|
 U+0513F儿|U+05152兒|U+0513F儿|
 U+0514B克|U+0514B克|U+0524B剋|
 U+0515A党|U+09EE8黨|U+0515A党|
 U+051AC冬|U+051AC冬|U+09F15鼕|
 U+051B2冲|U+06C96沖|U+0885D衝|
+U+051C4凄|U+06DD2淒|U+060BD悽|
 U+051C6准|U+051C6准|U+06E96準|
 U+051E0几|U+05E7E幾|U+051E0几|
 U+051EB凫|U+09CE7鳧|U+09CEC鳬|
@@ -52,7 +40,6 @@ U+0535C卜|U+0535C卜|U+08514蔔|
 U+05360占|U+05360占|U+04F54佔|
 U+05364卤|U+09E75鹵|U+06EF7滷|
 U+05377卷|U+05377卷|U+06372捲|
-U+0537A卺|U+05DF9巹|
 U+05382厂|U+05EE0廠|U+05382厂|
 U+05386历|U+06B77歷|U+066C6曆|U+053A4厤|
 U+05395厕|U+05EC1廁|U+053A0厠|
@@ -66,11 +53,12 @@ U+05408合|U+05408合|U+095A4閤|
 U+0540A吊|U+0540A吊|U+05F14弔|
 U+0540C同|U+0540C同|U+08855衕|
 U+0540E后|U+05F8C後|U+0540E后|
-U+05411向|U+05411向|U+056AE嚮|U+066CF曏|
+U+05411向|U+05411向|U+056AE嚮|
 U+0542F启|U+0555F啟|U+05553啓|
 U+05446呆|U+05446呆|U+07343獃|
 U+054B8咸|U+054B8咸|U+09E79鹹|
 U+054C4哄|U+054C4哄|U+09B28鬨|
+U+0556E啮|U+09F67齧|U+056D3囓|U+05699嚙|
 U+05582喂|U+05582喂|U+09935餵|
 U+056DE回|U+056DE回|U+08FF4迴|
 U+056E2团|U+05718團|U+07CF0糰|
@@ -78,10 +66,10 @@ U+056F0困|U+056F0困|U+0774F睏|
 U+05742坂|U+05742坂|U+0962A阪|
 U+0574F坏|U+058DE壞|U+0574F坏|
 U+0575B坛|U+058C7壇|U+07F48罈|
-U+057FC埼|U+057FC埼|U+07895碕|
 U+05899墙|U+07246牆|U+058BB墻|
 U+058F3壳|U+06BBC殼|U+06BBB殻|
 U+0590D复|U+05FA9復|U+08907複|
+U+05938夸|U+05938夸|U+08A87誇|
 U+05956奖|U+0734E獎|U+0596C奬|
 U+05978奸|U+05978奸|U+059E6姦|
 U+059AB妫|U+05AAF媯|U+05B00嬀|
@@ -92,12 +80,13 @@ U+05C3D尽|U+076E1盡|U+05118儘|
 U+05CB3岳|U+05CB3岳|U+05DBD嶽|
 U+05E03布|U+05E03布|U+04F48佈|
 U+05E18帘|U+07C3E簾|U+05E18帘|
-U+05E5Eå¹\9e|U+08946è¥\86|
+U+05E2D席|U+05E2D席|U+084C6è\93\86|
 U+05E72干|U+05E72干|U+04E7E乾|U+05E79幹|U+069A6榦|
+U+05E7A幺|U+04E48么|
 U+05E76并|U+04E26並|U+04F75併|
 U+05E78幸|U+05E78幸|U+05016倖|
 U+05E7F广|U+05EE3廣|U+05E7F广|
-U+05E84庄|U+05E84庄|U+0838A莊|
+U+05E84庄|U+0838A莊|U+05E84庄|
 U+05EB5庵|U+05EB5庵|U+083F4菴|
 U+05F25弥|U+05F4C彌|U+07030瀰|
 U+05F53当|U+07576當|U+05679噹|
@@ -126,6 +115,7 @@ U+066F2曲|U+066F2曲|U+09EAF麯|U+09EB4麯|
 U+0672F术|U+08853術|U+0672E朮|
 U+06731朱|U+06731朱|U+07843硃|
 U+06734朴|U+06734朴|U+06A38樸|
+U+06760杠|U+069D3槓|U+06760杠|
 U+0676F杯|U+0676F杯|U+076C3盃|
 U+0677E松|U+0677E松|U+09B06鬆|
 U+0677F板|U+0677F板|U+095C6闆|
@@ -143,15 +133,18 @@ U+06CE8注|U+06CE8注|U+08A3B註|
 U+06D82涂|U+05857塗|U+06D82涂|
 U+06D8C涌|U+06D8C涌|U+06E67湧|
 U+06DC0淀|U+06DC0淀|U+06FB1澱|
+U+06E16渖|U+0700B瀋|
 U+06E38游|U+06E38游|U+0904A遊|
 U+06EAF溯|U+06EAF溯|U+06CDD泝|
 U+06F13漓|U+06F13漓|U+07055灕|
 U+070BC炼|U+07149煉|U+0934A鍊|
+U+07096炖|U+071C9燉|
 U+0753B画|U+0756B畫|U+07575畵|
 U+075C7症|U+075C7症|U+07665癥|
 U+07618瘘|U+0763A瘺|U+0763B瘻|
 U+0786E确|U+078BA確|U+0786E确|
-U+07877硷|U+07906礆|U+09E7C鹼|
+U+07877硷|U+09E7C鹼|U+07906礆|
+U+078B1碱|U+09E7C鹼|
 U+079CB秋|U+079CB秋|U+097A6鞦|
 U+079CD种|U+07A2E種|U+079CD种|
 U+07A57穗|U+07A57穗|U+07E50繐|
@@ -163,35 +156,33 @@ U+07D2F累|U+07D2F累|U+07E8D纍|
 U+07EA4纤|U+07E96纖|U+07E34縴|
 U+07EBF线|U+07DDA線|U+07DAB綫|
 U+07EDD绝|U+07D55絕|U+07D76絶|
-U+07EE3绣|U+07D89綉|U+07E61繡|
+U+07EE3绣|U+07E61繡|U+07D89綉|
 U+07EE6绦|U+07D5B絛|U+07E27縧|
-U+07EF1绱|U+07DD4緔|U+0979D鞝|
-U+07EF7绷|U+07DB3綳|U+07E43繃|
+U+07EF1绱|U+0979D鞝|U+07DD4緔|
+U+07EF7绷|U+07E43繃|U+07DB3綳|
 U+07EFF绿|U+07DA0綠|U+07DD1緑|
+U+07F10缐|U+07DDA線|
 U+07F30缰|U+097C1韁|U+07E6E繮|
 U+07FA1羡|U+07FA8羨|
 U+080DC胜|U+052DD勝|U+080DC胜|
 U+080E1胡|U+080E1胡|U+09B0D鬍|U+0885A衚|
-U+0810F脏|U+081DF臟|U+09AD2髒|
+U+0810F脏|U+09AD2髒|U+081DF臟|
 U+0814A腊|U+081D8臘|U+0814A腊|
 U+081F4致|U+081F4致|U+07DFB緻|
 U+0820D舍|U+0820D舍|U+06368捨|
 U+082B8芸|U+082B8芸|U+08553蕓|
-U+082CE苎|U+082E7苧|
 U+082CF苏|U+08607蘇|U+056CC囌|U+07C64甦|
-U+082E7苧|U+085B4薴|
-U+082F9苹|U+0860B蘋|U+082F9苹|
 U+08303范|U+08303范|U+07BC4範|
-U+0836F药|U+0846F葯|U+085E5藥|
+U+0836F药|U+085E5藥|U+0846F葯|
 U+083B7获|U+07372獲|U+07A6B穫|
-U+083BC莼|U+08493蒓|U+084F4蓴|
+U+083BC莼|U+084F4蓴|U+08493蒓|
 U+08499蒙|U+08499蒙|U+077C7矇|U+06FDB濛|U+061DE懞|
 U+084D1蓑|U+084D1蓑|U+07C11簑|
 U+08511蔑|U+08511蔑|U+0884A衊|
 U+08574蕴|U+0860A蘊|U+085F4藴|
 U+0866B虫|U+087F2蟲|U+0866B虫|
 U+08721蜡|U+0881F蠟|U+08721蜡|
-U+0874E蝎|U+0880D蠍|
+U+0874E蝎|U+0880D蠍|U+0874E蝎|
 U+08868表|U+08868表|U+09336錶|
 U+08BF4说|U+08AAA說|U+08AAC説|
 U+08C23谣|U+08B20謠|U+08B21謡|
@@ -209,22 +200,22 @@ U+09170酰|U+09170酰|U+091AF醯|
 U+09178酸|U+09178酸|U+075E0痠|
 U+091C7采|U+091C7采|U+063A1採|U+057F0埰|
 U+091CC里|U+091CC里|U+088E1裡|U+088CF裏|
-U+093AD鎭|U+093AE鎮|
 U+0949F钟|U+0937E鍾|U+09418鐘|
-U+094A9钩|U+09264鉤|U+0920E鈎|
+U+094A9钩|U+0920E鈎|U+09264鉤|
 U+094B5钵|U+07F3D缽|U+09262鉢|
 U+094F2铲|U+093DF鏟|U+05277剷|
 U+09508锈|U+092B9銹|U+093FD鏽|
 U+09510锐|U+092B3銳|U+092ED鋭|
 U+09528锨|U+06774杴|U+09341鍁|
+U+0954B镋|U+09482钂|U+093B2鎲|
 U+0954C镌|U+0942B鐫|U+093B8鎸|
 U+09562镢|U+09481钁|U+0941D鐝|
 U+09605阅|U+095B1閱|U+095B2閲|
 U+096C7雇|U+096C7雇|U+050F1僱|
 U+096D5雕|U+096D5雕|U+09D70鵰|
+U+095F2闲|U+09592閒|U+09591閑|
 U+09709霉|U+09709霉|U+09EF4黴|
 U+09762面|U+09762面|U+09EB5麵|U+09EAA麪|U+09EAB麫|
-U+097B2鞲|U+097DD韝|
 U+0987B须|U+09808須|U+09B1A鬚|
 U+09893颓|U+09839頹|U+0983D頽|
 U+0989C颜|U+0984F顏|U+09854顔|
@@ -232,141 +223,11 @@ U+09965饥|U+098E2飢|U+09951饑|
 U+09980馀|U+09918餘|
 U+09986馆|U+09928館|U+08218舘|
 U+09A82骂|U+07F75罵|U+099E1駡|
+U+09CC1鳁|U+09C2E鰮|
 U+09C87鲇|U+09BF0鯰|U+09B8E鮎|
 U+09C9E鲞|U+09BD7鯗|U+09B9D鮝|
 U+09CC4鳄|U+09C77鱷|U+09C10鰐|
 U+09E21鸡|U+096DE雞|U+09DC4鷄|
 U+09E5A鹚|U+09DBF鶿|U+09DC0鷀|
-U+09E6E鹮|U+04D09䴉|
-U+09F44齄|U+09F47齇|
-U+20BB6𠮶|U+055F0嗰|
-U+26216𦈖|U+04308䌈|
-U+28C3E𨰾|U+093B7鎷|
-U+28C3F𨰿|U+091F3釳|
-U+28C40𨱀|U+2895B𨥛|
-U+28C41𨱁|U+09220鈠|
-U+28C42𨱂|U+0920B鈋|
-U+28C43𨱃|U+09232鈲|
-U+28C44𨱄|U+0922F鈯|
-U+28C45𨱅|U+09241鉁|
-U+28C47𨱇|U+092B6銶|
-U+28C48𨱈|U+092C9鋉|
-U+28C49𨱉|U+09344鍄|
-U+28C4A𨱊|U+289F1𨧱|
-U+28C4B𨱋|U+09302錂|
-U+28C4C𨱌|U+093C6鏆|
-U+28C4D𨱍|U+093AF鎯|
-U+28C4E𨱎|U+0936E鍮|
-U+28C4F𨱏|U+0939D鎝|
-U+28C50𨱐|U+28AD2𨫒|
-U+28C52𨱒|U+093C9鏉|
-U+28C53𨱓|U+0940E鐎|
-U+28C54𨱔|U+0940F鐏|
-U+28C55𨱕|U+28B82𨮂|
-U+28E02𨸂|U+0958D閍|
-U+28E03𨸃|U+09590閐|
-U+293FC𩏼|U+04A8F䪏|
-U+293FD𩏽|U+293EA𩏪|
-U+293FE𩏾|U+293A2𩎢|
-U+293FF𩏿|U+04A98䪘|
-U+29400𩐀|U+04A97䪗|
-U+29595𩖕|U+294E3𩓣|
-U+29596𩖖|U+09843顃|
-U+29597𩖗|U+04AF4䫴|
-U+29665𩙥|U+098B0颰|
-U+29666𩙦|U+295C0𩗀|
-U+29667𩙧|U+295E1𩗡|
-U+29668𩙨|U+29639𩘹|
-U+29669𩙩|U+29600𩘀|
-U+2966A𩙪|U+098B7颷|
-U+2966B𩙫|U+098BE颾|
-U+2966C𩙬|U+2963A𩘺|
-U+2966D𩙭|U+2961D𩘝|
-U+2966E𩙮|U+04B18䬘|
-U+2966F𩙯|U+04B1D䬝|
-U+29670𩙰|U+29648𩙈|
-U+29805𩠅|U+297D0𩟐|
-U+29806𩠆|U+29726𩜦|
-U+29807𩠇|U+04B40䭀|
-U+29808𩠈|U+04B43䭃|
-U+2980B𩠋|U+29754𩝔|
-U+2980C𩠌|U+09938餸|
-U+299E6𩧦|U+2987A𩡺|
-U+299E8𩧨|U+099CE駎|
-U+299E9𩧩|U+2990A𩤊|
-U+299EA𩧪|U+04BBE䮾|
-U+299EB𩧫|U+099DA駚|
-U+299EC𩧬|U+298A1𩢡|
-U+299ED𩧭|U+04B7F䭿|
-U+299EE𩧮|U+298BE𩢾|
-U+299EF𩧯|U+09A4B驋|
-U+299F0𩧰|U+04B9D䮝|
-U+299F1𩧱|U+29949𩥉|
-U+299F2𩧲|U+099E7駧|
-U+299F3𩧳|U+298B8𩢸|
-U+299F4𩧴|U+099E9駩|
-U+299F5𩧵|U+298B4𩢴|
-U+299F6𩧶|U+298CF𩣏|
-U+299FA𩧺|U+099F6駶|
-U+299FB𩧻|U+298F5𩣵|
-U+299FC𩧼|U+298FA𩣺|
-U+299FF𩧿|U+04BA0䮠|
-U+29A00𩨀|U+09A14騔|
-U+29A01𩨁|U+04B9E䮞|
-U+29A03𩨃|U+09A1D騝|
-U+29A04𩨄|U+09A2A騪|
-U+29A05𩨅|U+29938𩤸|
-U+29A06𩨆|U+29919𩤙|
-U+29A08𩨈|U+09A1F騟|
-U+29A09𩨉|U+29932𩤲|
-U+29A0A𩨊|U+09A1A騚|
-U+29A0B𩨋|U+29944𩥄|
-U+29A0C𩨌|U+29951𩥑|
-U+29A0D𩨍|U+29947𩥇|
-U+29A0F𩨏|U+04BB3䮳|
-U+29A10𩨐|U+299C6𩧆|
-U+29F79𩽹|U+09B65魥|
-U+29F7A𩽺|U+29D69𩵩|
-U+29F7B𩽻|U+29D79𩵹|
-U+29F7C𩽼|U+09BF6鯶|
-U+29F7D𩽽|U+29DB1𩶱|
-U+29F7E𩽾|U+09B9F鮟|
-U+29F7F𩽿|U+29DB0𩶰|
-U+29F80𩾀|U+09B95鮕|
-U+29F81𩾁|U+09BC4鯄|
-U+29F83𩾃|U+09BB8鮸|
-U+29F84𩾄|U+29DF0𩷰|
-U+29F85𩾅|U+29E03𩸃|
-U+29F86𩾆|U+29E26𩸦|
-U+29F87𩾇|U+09BF1鯱|
-U+29F88𩾈|U+04C59䱙|
-U+29F8A𩾊|U+04C6C䱬|
-U+29F8B𩾋|U+04C70䱰|
-U+29F8C𩾌|U+09C47鱇|
-U+29F8C𩾌|U+09C47鱇|
-U+29F8E𩾎|U+29F47𩽇|
-U+2A242𪉂|U+04CB0䲰|
-U+2A243𪉃|U+09CFC鳼|
-U+2A244𪉄|U+29FEA𩿪|
-U+2A245𪉅|U+2A026𪀦|
-U+2A246𪉆|U+09D32鴲|
-U+2A248𪉈|U+09D1C鴜|
-U+2A249𪉉|U+2A048𪁈|
-U+2A24A𪉊|U+09DE8鷨|
-U+2A24B𪉋|U+2A03E𪀾|
-U+2A24C𪉌|U+2A056𪁖|
-U+2A24D𪉍|U+09D5A鵚|
-U+2A24E𪉎|U+2A086𪂆|
-U+2A24F𪉏|U+2A0CF𪃏|
-U+2A250𪉐|U+2A0CD𪃍|
-U+2A251𪉑|U+09DD4鷔|
-U+2A252𪉒|U+2A115𪄕|
-U+2A254𪉔|U+2A106𪄆|
-U+2A255𪉕|U+2A1F3𪇳|
-U+2A388𪎈|U+04D2C䴬|
-U+2A389𪎉|U+09EB2麲|
-U+2A38A𪎊|U+09EA8麨|
-U+2A38B𪎋|U+04D34䴴|
-U+2A38C𪎌|U+09EB3麳|
-U+2A68F𪚏|U+2A600𪘀|
-U+2A690𪚐|U+2A62F𪘯|
+U+09EB9麹|U+09EB4麴|
+U+080C4胄|U+080C4胄|U+05191冑|
\ No newline at end of file
index a46560a..3266168 100644 (file)
 著
 竈
 彞
-=>"余"
-=>"𫗭"
-=>"𪨧"
-=>"𫚭"
-=>"𫔀"
-=>"𫊻"
-=>"𫋌"
-=>"蚃"
-=>"𩾂"
-=>"𫚜"
-=>"𫚢"
-=>"𧉰"
-=>"䙌"
-=>"𫊮"
-=>"𫋇"
-=>"𫉄"
-=>"𫘛"
-=>"𫘜"
-=>"𫘝"
-=>"𫘟"
-=>"𩧨"
-=>"𩧫"
-=>"𫘞"
-=>"𫘠"
-=>"𩧲"
-=>"𩧴"
-=>"𫘡"
-=>"𩧺"
-=>"𫘣"
-=>"𫘤"
-=>"𫘧"
-=>"𫘥"
-=>"𫘦"
-=>"𩨀"
-=>"𩨊"
-=>"𫘩"
-=>"𩨃"
-=>"𫘪"
-=>"𫘪"
-=>"𫘫"
-=>"𫘬"
-=>"𩨈"
-=>"𫘨"
-=>"𩨄"
-=>"𫘭"
-=>"𩧯"
-=>"𫘯"
-=>"𫘰"
-=>"𫘱"
-=>"𫘽"
-=>"𫚉"
-=>"𩽹"
-=>"𫚌"
-=>"𫚍"
-=>"𫚒"
-=>"𫚑"
-=>"𫚖"
-=>"𩽾"
-=>"䲟"
-=>"𫚓"
-=>"𫚗"
-=>"𫚔"
-=>"𫚛"
-=>"𩾃"
-=>"𫚚"
-=>"𩾁"
-=>"𫚙"
-=>"𫚡"
-=>"𫚞"
-=>"𩾇"
-=>"𩽼"
-=>"𫚣"
-=>"䲠"
-=>"䲡"
-=>"𫚊"
-=>"𫚥"
-=>"𫚕"
-=>"𫚤"
-=>"䲢"
-=>"𫚦"
-=>"𫚧"
-=>"𫚋"
-=>"𩾌"
-=>"𫚪"
-=>"𫚫"
-=>"𫚈"
-=>"𫚭"
-=>"𫛛"
-=>"𪉃"
-=>"𫛚"
-=>"𫛜"
-=>"𫛞"
-=>"𫛝"
-=>"𫛤"
-=>"𫛡"
-=>"𫁡"
-=>"𪉈"
-=>"𫛣"
-=>"𫛦"
-=>"𪉆"
-=>"𫛩"
-=>"𫛪"
-=>"𫛥"
-=>"𪉍"
-=>"𫛭"
-=>"𫛨"
-=>"𫛳"
-=>"𫛱"
-=>"𫛲"
-=>"𫛵"
-=>"𫛶"
-=>"𫛸"
-=>"𫛷"
-=>"𫛯"
-=>"𫛫"
-=>"𫛽"
-=>"𫜀"
-=>"𪉑"
-=>"𫜃"
-=>"𫛴"
-=>"𪉊"
-=>"𫜁"
-=>"𫜄"
-=>"𫛢"
-=>"𫛟"
-=>"𪎊"
-=>"𤿲"
-=>"𪎉"
-=>"𪎌"
-=>"𫜑"
-=>"𫜩"
-=>"𫜪"
-=>"𫜭"
-=>"𫜬"
-=>"𫜮"
-=>"𫜰"
+咤
+吒
+疴
+桿
+錶
+蘋
+詑
\ No newline at end of file
index d8602fe..3b14982 100644 (file)
@@ -60,7 +60,7 @@
 乾步
 乾氏
 乾泉
-乾清
+乾清
 乾渥
 乾灵
 乾男
 陈乾生
 陈公乾生
 字乾生
-不着痕迹
-不着边际
-与着
-与著书
-与著作
-与著名
-与著录
-与著称
-与著者
-与著述
-丑着
-丑著书
-丑著作
-丑著名
-丑著录
-丑著称
-丑著者
-丑著述
-临着
-临著书
-临著作
-临著名
-临著录
-临著称
-临著者
-临著述
-丽着
-丽著书
-丽著作
-丽著名
-丽著录
-丽著称
-丽著者
-丽著述
-乐着
-乐著书
-乐著作
-乐著名
-乐著录
-乐著称
-乐著者
-乐著述
-乘着
-乘著书
-乘著作
-乘著名
-乘著录
-乘著称
-乘著者
-乘著述
-争着
-争著书
-争著作
-争著名
-争著录
-争著称
-争著者
-争著述
-亮着
-亮著书
-亮著作
-亮著名
-亮著录
-亮著称
-亮著者
-亮著述
-仗着
-仗著书
-仗著作
-仗著名
-仗著录
-仗著称
-仗著者
-仗著述
-代表着
-代表著书
-代表著作
-代表著名
-代表著录
-代表著称
-代表著者
-代表著述
-伴着
-伴著书
-伴著作
-伴著名
-伴著录
-伴著称
-伴著者
-伴著述
-低着
-低著书
-低著作
-低著名
-低著录
-低著称
-低著者
-低著述
-住着
-住著书
-住著作
-住著名
-住著录
-住著称
-住著者
-住著述
-侧着
-侧著书
-侧著作
-侧著名
-侧著录
-侧著称
-侧著者
-侧著述
-保障着
-保障著书
-保障著作
-保障著名
-保障著录
-保障著称
-保障著者
-保障著述
-信着
-信著书
-信著作
-信著名
-信著录
-信著称
-信著者
-信著述
-候着
-候著书
-候著作
-候著名
-候著录
-候著称
-候著者
-候著述
-借着
-借著书
-借著作
-借著名
-借著录
-借著称
-借著者
-借著述
-做着
-做著书
-做著作
-做著名
-做著录
-做著称
-做著者
-做著述
-偷着
-偷著书
-偷著作
-偷著名
-偷著录
-偷著称
-偷著者
-偷著述
-光着
-光著书
-光著作
-光著名
-光著录
-光著称
-光著者
-光著述
-关着
-关著书
-关著作
-关著名
-关著录
-关著称
-关著者
-关著述
-冀着
-冀著书
-冀著作
-冀著名
-冀著录
-冀著称
-冀著者
-冀著述
-冒着
-冒著书
-冒著作
-冒著名
-冒著录
-冒著称
-冒著者
-冒著述
-写着
-写著书
-写著作
-写著名
-写著录
-写著称
-写著者
-写著述
-凉着
-凉著书
-凉著作
-凉著名
-凉著录
-凉著称
-凉著者
-凉著述
-制着
-制著书
-制著作
-制著名
-制著录
-制著称
-制著者
-制著述
-刻着
-刻著书
-刻著作
-刻著名
-刻著录
-刻著称
-刻著者
-刻著述
-办着
-办著书
-办著作
-办著名
-办著录
-办著称
-办著者
-办著述
-动着
-动著书
-动著作
-动著名
-动著录
-动著称
-动著者
-动著述
-努力着
-努力著书
-努力著作
-努力著名
-努力著录
-努力著称
-努力著者
-努力著述
-努着
-努著书
-努著作
-努著名
-努著录
-努著称
-努著者
-努著述
-印着
-印著书
-印著作
-印著名
-印著录
-印著称
-印著者
-印著述
-压着
-压著书
-压著作
-压著名
-压著录
-压著称
-压著者
-压著述
-去着
-去著书
-去著作
-去著名
-去著录
-去著称
-去著者
-去著述
-受着
-受著书
-受著作
-受著名
-受著录
-受著称
-受著者
-受著述
-变着
-变著书
-变著作
-变著名
-变著录
-变著称
-变著者
-变著述
-叫着
-叫著书
-叫著作
-叫著名
-叫著录
-叫著称
-叫著者
-叫著述
-向着
-向著书
-向著作
-向著名
-向著录
-向著称
-向著者
-向著述
-含着
-含著书
-含著作
-含著名
-含著录
-含著称
-含著者
-含著述
-听得着
-听不着
-听着
-听著书
-听著作
-听著名
-听著录
-听著称
-听著者
-听著述
-吹着
-吹著书
-吹著作
-吹著名
-吹著录
-吹著称
-吹著者
-吹著述
-味着
-味著书
-味著作
-味著名
-味著录
-味著称
-味著者
-味著述
-响着
-响著书
-响著作
-响著名
-响著录
-响著称
-响著者
-响著述
-哭着
-哭著书
-哭著作
-哭著名
-哭著录
-哭著称
-哭著者
-哭著述
-唱着
-唱著书
-唱著作
-唱著名
-唱著录
-唱著称
-唱著者
-唱著述
-喝着
-喝著书
-喝著作
-喝著名
-喝著录
-喝著称
-喝著者
-喝著述
-嚷着
-嚷著书
-嚷著作
-嚷著名
-嚷著录
-嚷著称
-嚷著者
-嚷著述
-因着
-因著书
-因著作
-因著名
-因著录
-因著称
-因著者
-因著述
-困着
-困著书
-困著作
-困著名
-困著录
-困著称
-困著者
-困著述
-围着
-围著书
-围著作
-围著名
-围著录
-围著称
-围著者
-围著述
-在着
-在著书
-在著作
-在著名
-在著录
-在著称
-在著者
-在著述
-坐着
-坐著书
-坐著作
-坐著名
-坐著录
-坐著称
-坐著者
-坐著述
-备着
-备著书
-备著作
-备著名
-备著录
-备著称
-备著者
-备著述
-夹着
-夹著书
-夹著作
-夹著名
-夹著录
-夹著称
-夹著者
-夹著述
-孤着
-孤著书
-孤著作
-孤著名
-孤著录
-孤著称
-孤著者
-孤著述
-学着
-学著书
-学著作
-学著名
-学著录
-学著称
-学著者
-学著述
-守着
-守著书
-守著作
-守著名
-守著录
-守著称
-守著者
-守著述
-定着
-定著书
-定著作
-定著名
-定著录
-定著称
-定著者
-定著述
-对着
-对著书
-对著作
-对著名
-对著录
-对著称
-对著者
-对著述
-寻着
-寻著书
-寻著作
-寻著名
-寻著录
-寻著称
-寻著者
-寻著述
-展着
-展著书
-展著作
-展著名
-展著录
-展著称
-展著者
-展著述
-带着
-带著书
-带著作
-带著名
-带著录
-带著称
-带著者
-带著述
-帮着
-帮著书
-帮著作
-帮著名
-帮著录
-帮著称
-帮著者
-帮著述
-应着
-应著书
-应著作
-应著名
-应著录
-应著称
-应著者
-应著述
-康着
-康著书
-康著作
-康著名
-康著录
-康著称
-康著者
-康著述
-开着
-开著书
-开著作
-开著名
-开著录
-开著称
-开著者
-开著述
-当着
-当著书
-当著作
-当著名
-当著录
-当著称
-当著者
-当著述
-待着
-待著书
-待著作
-待著名
-待著录
-待著称
-待著者
-待著述
-得着
-得著书
-得著作
-得著名
-得著录
-得著称
-得著者
-得著述
-循着
-循著书
-循著作
-循著名
-循著录
-循著称
-循著者
-循著述
-心着
-心著书
-心著作
-心著名
-心著录
-心著称
-心著者
-心著述
-忍着
-忍著书
-忍著作
-忍著名
-忍著录
-忍著称
-忍著者
-忍著述
-志着
-志著书
-志著作
-志著名
-志著录
-志著称
-志著者
-志著述
-忙着
-忙著书
-忙著作
-忙著名
-忙著录
-忙著称
-忙著者
-忙著述
-怀着
-怀著书
-怀著作
-怀著名
-怀著录
-怀著称
-怀著者
-怀著述
-急着
-急著书
-急著作
-急著名
-急著录
-急著称
-急著者
-急著述
-性着
-性著书
-性著作
-性著名
-性著录
-性著称
-性著者
-性著述
-恋着
-恋著书
-恋著作
-恋著名
-恋著录
-恋著称
-恋著者
-恋著述
-悠着
-悠著书
-悠著作
-悠著名
-悠著录
-悠著称
-悠著者
-悠著述
-惯着
-惯著书
-惯著作
-惯著名
-惯著录
-惯著称
-惯著者
-惯著述
-想着
-想著书
-想著作
-想著名
-想著录
-想著称
-想著者
-想著述
-战着
-战著书
-战著作
-战著名
-战著录
-战著称
-战著者
-战著述
-戴着
-戴著书
-戴著作
-戴著名
-戴著录
-戴著称
-戴著者
-戴著述
-扎着
-扎著书
-扎著作
-扎著名
-扎著录
-扎著称
-扎著者
-扎著述
-打着
-打著书
-打著作
-打著名
-打著录
-打著称
-打著者
-打著述
-扛着
-扛著书
-扛著作
-扛著名
-扛著录
-扛著称
-扛著者
-扛著述
-找得着
-找不着
-抓着
-抓著作
-抓著名
-抓著录
-抓著称
-抓著者
-抓著述
-披着
-披著书
-披著作
-披著名
-披著录
-披著称
-披著者
-披著述
-抬着
-抬著作
-抬著名
-抬著录
-抬著称
-抬著者
-抬著述
-抱着
-抱著作
-抱著名
-抱著录
-抱著称
-抱著者
-抱著述
-拉着
-拉著书
-拉著作
-拉著名
-拉著录
-拉著称
-拉著者
-拉著述
-拎着
-拎著作
-拎著名
-拎著录
-拎著称
-拎著者
-拎著述
-拖着
-拖著作
-拖著名
-拖著录
-拖著称
-拖著者
-拖著述
-拼着
-拼著作
-拼著名
-拼著录
-拼著称
-拼著者
-拼著述
-拿着
-拿著作
-拿著名
-拿著录
-拿著称
-拿著者
-拿著述
-持着
-持著作
-持著名
-持著录
-持著称
-持著者
-持著述
-挑着
-挑著作
-挑著名
-挑著录
-挑著称
-挑著者
-挑著述
-挡着
-挡著作
-挡著名
-挡著录
-挡著称
-挡著者
-挡著述
-挣着
-挣著书
-挣著作
-挣著名
-挣著录
-挣著称
-挣著者
-挣著述
-挥着
-挥著作
-挥著名
-挥著录
-挥著称
-挥著者
-挥著述
-挨着
-挨著作
-挨著名
-挨著录
-挨著称
-挨著者
-挨著述
-捆着
-捆著作
-捆著名
-捆著录
-捆著称
-捆著者
-捆著述
-据着
-据著书
-据著作
-据著名
-据著录
-据著称
-据著者
-据著述
-掖着
-掖著作
-掖著名
-掖著录
-掖著称
-掖著者
-掖著述
-接着
-接著作
-接著名
-接著录
-接著称
-接著者
-接著述
-揉着
-揉著书
-揉著作
-揉著名
-揉著录
-揉著称
-揉著者
-揉著述
-提着
-提著作
-提著名
-提著录
-提著称
-提著者
-提著述
-搂着
-搂著作
-搂著名
-搂著录
-搂著称
-搂著者
-搂著述
-摆着
-摆著作
-摆著名
-摆著录
-摆著称
-摆著者
-摆著述
-撼着
-撼著书
-撼著作
-撼著名
-撼著录
-撼著称
-撼著者
-撼著述
-敞着
-敞著作
-敞著名
-敞著录
-敞著称
-敞著者
-敞著述
-数着
-数著作
-数著名
-数著录
-数著称
-数著者
-数著述
-斗着
-斗著书
-斗著作
-斗著名
-斗著录
-斗著称
-斗著者
-斗著述
-斥着
-斥著书
-斥著作
-斥著名
-斥著录
-斥著称
-斥著者
-斥著述
-昂着
-昂著书
-昂著作
-昂著名
-昂著录
-昂著称
-昂著者
-昂著述
-映着
-映著书
-映著作
-映著名
-映著录
-映著称
-映著者
-映著述
-晃着
-晃著作
-晃著名
-晃著录
-晃著称
-晃著者
-晃著述
-暗着
-暗著书
-暗著作
-暗著名
-暗著录
-暗著称
-暗著者
-暗著述
-有着
-有著书
-有著作
-有著名
-有著录
-有著称
-有著者
-有著述
-望着
-望著作
-望著名
-望著录
-望著称
-望著者
-望著述
-朝着
-朝著作
-朝著名
-朝著录
-朝著称
-朝著者
-朝著述
-本着
-本著书
-本著作
-本著名
-本著录
-本著称
-本著者
-本著述
-杀着
-杀著书
-杀著作
-杀著名
-杀著录
-杀著称
-杀著者
-杀著述
-杂着
-杂著书
-杂著作
-杂著名
-杂著录
-杂著称
-杂著者
-杂著述
-来着
-来著书
-来著作
-来著名
-来著录
-来著称
-来著者
-来著述
-枕着
-枕著作
-枕著名
-枕著录
-枕著称
-枕著者
-枕著述
-梦着
-梦著书
-梦著作
-梦著名
-梦著录
-梦著称
-梦著者
-梦著述
-梳着
-梳著作
-梳著名
-梳著录
-梳著称
-梳著者
-梳著述
-求着
-求著书
-求著作
-求著名
-求著录
-求著称
-求著者
-求著述
-沉着
-沉著书
-沉著作
-沉著名
-沉著录
-沉著称
-沉著者
-沉著述
-沿着
-沿著书
-沿著作
-沿著名
-沿著录
-沿著称
-沿著者
-沿著述
-活着
-活著书
-活著作
-活著名
-活著录
-活著称
-活著者
-活著述
-流着
-流著书
-流著作
-流著名
-流著录
-流著称
-流著者
-流著述
-浮着
-浮著书
-浮著作
-浮著名
-浮著录
-浮著称
-浮著者
-浮著述
-润着
-润著书
-润著作
-润著名
-润著录
-润著称
-润著者
-润著述
-涵着
-涵著书
-涵著作
-涵著名
-涵著录
-涵著称
-涵著者
-涵著述
-渴着
-渴著书
-渴著作
-渴著名
-渴著录
-渴著称
-渴著者
-渴著述
-溢着
-溢著书
-溢著作
-溢著名
-溢著录
-溢著称
-溢著者
-溢著述
-演着
-演著书
-演著作
-演著名
-演著录
-演著称
-演著者
-演著述
-漫着
-漫著书
-漫著作
-漫著名
-漫著录
-漫著称
-漫著者
-漫著述
-点着
-点著作
-点著名
-点著录
-点著称
-点著者
-点著述
-烧着
-烧著作
-烧著名
-烧著录
-烧著称
-烧著者
-烧著述
-照着
-照著书
-照著作
-照著名
-照著录
-照著称
-照著者
-照著述
-爱着
-爱著书
-爱著作
-爱著名
-爱著录
-爱著称
-爱著者
-爱著述
-牵着
-牵著书
-牵著作
-牵著名
-牵著录
-牵著称
-牵著者
-牵著述
-犯得着
-犯不着
-独着
-独著书
-独著作
-独著名
-独著录
-独著称
-独著者
-独著述
-猜着
-猜着书
-猜著作
-猜著名
-猜著录
-猜著称
-猜著者
-猜著述
-甜着
-甜著书
-甜著作
-甜著名
-甜著录
-甜著称
-甜著者
-甜著述
-用得着
-用不着
-用着
-用著书
-用著作
-用著名
-用著录
-用著称
-用著者
-用著述
-留着
-留着书
-留著作
-留著名
-留著录
-留著称
-留著者
-留著述
-疑着
-疑著书
-疑著作
-疑著名
-疑著录
-疑著称
-疑著者
-疑著述
-皱着
-皱著书
-皱著作
-皱著名
-皱著录
-皱著称
-皱著者
-皱著述
-盛着
-盛著书
-盛著作
-盛著名
-盛著录
-盛著称
-盛著者
-盛著述
-盯着
-盯着书
-盯著作
-盯著名
-盯著录
-盯著称
-盯著者
-盯著述
-盾着
-盾著书
-盾著作
-盾著名
-盾著录
-盾著称
-盾著者
-盾著述
-看得着
-看不着
-看着
-看着书
-看著作
-看著名
-看著录
-看著称
-看著者
-看著述
-瞧着
-瞧着书
-瞧著作
-瞧著名
-瞧著录
-瞧著称
-瞧著者
-瞧著述
-着业
-着丝
-着么
-着人
-着什么急
-着他
-着令
-着位
-着体
-着你
-着便
-着凉
-着力
-着劲
-着号
-着呢
-着哩
-着地
-着墨
-着声
-着处
-着她
-着妳
-着姓
-着它
-着定
-着实
-着己
-着帐
-着床
-着庸
-着式
-着录
-着心
-着志
-着忙
-着急
-着恼
-着惊
-着想
-着意
-着慌
-着我
-着手
-着抹
-着摸
-着撰
-着数
-着明
-着末
-着极
-着格
-着棋
-着槁
-着气
-着法
-着浅
-着火
-着然
-着甚
-着生
-着疑
-着白
-着相
-着眼
-着着
-着祂
-着积
-着稿
-着笔
-着籍
-着紧
-着緑
-着绊
-着绩
-着绯
-着绿
-着肉
-着脚
-着舰
-着色
-着节
-着花
-着莫
-着落
-着藁
-着衣
-着装
-着要
-着警
-着趣
-着边
-着迷
-着迹
-着重
-着録
-着闻
-着陆
-着雝
-着鞭
-着题
-着魔
-睡得着
-睡不着
-睡着
-睡著书
-睡著作
-睡著名
-睡著录
-睡著称
-睡著者
-睡著述
-瞒着
-瞒著书
-瞒著作
-瞒著名
-瞒著录
-瞒著称
-瞒著者
-瞒著述
-瞪着
-瞪著书
-瞪著作
-瞪著名
-瞪著录
-瞪著称
-瞪著者
-瞪著述
-福着
-福著书
-福著作
-福著名
-福著录
-福著称
-福著者
-福著述
-空着
-空著书
-空著作
-空著名
-空著录
-空著称
-空著者
-空著述
-穿着
-穿著书
-穿著作
-穿著名
-穿著录
-穿著称
-穿著者
-穿著述
-竖着
-竖著书
-竖著作
-竖著名
-竖著录
-竖著称
-竖著者
-竖著述
-站着
-站著书
-站著作
-站著名
-站著录
-站著称
-站著者
-站著述
-笑着
-笑著书
-笑著作
-笑著名
-笑著录
-笑著称
-笑著者
-笑著述
-管着
-管著书
-管著作
-管著名
-管著录
-管著称
-管著者
-管著述
-绑着
-绑著书
-绑著作
-绑著名
-绑著录
-绑著称
-绑著者
-绑著述
-绕着
-绕著书
-绕著作
-绕著名
-绕著录
-绕著称
-绕著者
-绕著述
-缠着
-缠著书
-缠著作
-缠著名
-缠著录
-缠著称
-缠著者
-缠著述
-罩着
-罩著书
-罩著作
-罩著名
-罩著录
-罩著称
-罩著者
-罩著述
-美着
-美著书
-美著作
-美著名
-美著录
-美著称
-美著者
-美著述
-耀着
-耀著书
-耀著作
-耀著名
-耀著录
-耀著称
-耀著者
-耀著述
-考着
-考著书
-考著作
-考著名
-考著录
-考著称
-考著者
-考著述
-背着
-背著书
-背著作
-背著名
-背著录
-背著称
-背著者
-背著述
-胶着
-胶著书
-胶著作
-胶著名
-胶著录
-胶著称
-胶著者
-胶著述
-艺着
-艺著书
-艺著作
-艺著名
-艺著录
-艺著称
-艺著者
-艺著述
-苦着
-苦著书
-苦著作
-苦著名
-苦著录
-苦著称
-苦著者
-苦著述
-获着
-获著书
-获著作
-获著名
-获著录
-获著称
-获著者
-获著述
-落着
-落著书
-落著作
-落著名
-落著录
-落著称
-落著者
-落著述
-蒙着
-蒙著书
-蒙著作
-蒙著名
-蒙著录
-蒙著称
-蒙著者
-蒙著述
-藏着
-藏著书
-藏著作
-藏著名
-藏著录
-藏著称
-藏著者
-藏著述
-蘸着
-蘸著书
-蘸著作
-蘸著名
-蘸著录
-蘸著称
-蘸著者
-蘸著述
-行着
-行著书
-行著作
-行著名
-行著录
-行著称
-行著者
-行著述
-衣着
-衣著书
-衣著作
-衣著名
-衣著录
-衣著称
-衣著者
-衣著述
-装着
-装著书
-装著作
-装著名
-装著录
-装著称
-装著者
-装著述
-裹着
-裹著书
-裹著作
-裹著名
-裹著录
-裹著称
-裹著者
-裹著述
-见着
-见著书
-见著作
-见著名
-见著录
-见著称
-见著者
-见著述
-记着
-记著书
-记著作
-记著名
-记著录
-记著称
-记著者
-记著述
-试着
-试著书
-试著作
-试著名
-试著录
-试著称
-试著者
-试著述
-语着
-语著书
-语著作
-语著名
-语著录
-语著称
-语著者
-语著述
-豫着
-豫著书
-豫著作
-豫著名
-豫著录
-豫著称
-豫著者
-豫著述
-贞着
-贞著书
-贞著作
-贞著名
-贞著录
-贞著称
-贞著者
-贞著述
-走着
-走著书
-走著作
-走著名
-走著录
-走著称
-走著者
-走著述
-赶着
-赶著书
-赶著作
-赶著名
-赶著录
-赶著称
-赶著者
-赶著述
-趴着
-趴著书
-趴著作
-趴著名
-趴著录
-趴著称
-趴著者
-趴著述
-跃着
-跃著书
-跃著作
-跃著名
-跃著录
-跃著称
-跃著者
-跃著述
-跑着
-跑著书
-跑著作
-跑著名
-跑著录
-跑著称
-跑著者
-跑著述
-跟着
-跟著书
-跟著作
-跟著名
-跟著录
-跟著称
-跟著者
-跟著述
-跪着
-跪著书
-跪著作
-跪著名
-跪著录
-跪著称
-跪著者
-跪著述
-跳着
-跳著书
-跳著作
-跳著名
-跳著录
-跳著称
-跳著者
-跳著述
-踏着
-踏著书
-踏著作
-踏著名
-踏著录
-踏著称
-踏著者
-踏著述
-踩着
-踩著书
-踩著作
-踩著名
-踩著录
-踩著称
-踩著者
-踩著述
-身着
-身著书
-身著作
-身著名
-身著录
-身著称
-身著者
-身著述
-躺着
-躺著书
-躺著作
-躺著名
-躺著录
-躺著称
-躺著者
-躺著述
-转着
-转著书
-转著作
-转著名
-转著录
-转著称
-转著者
-转著述
-载着
-载著书
-载著作
-载著名
-载著录
-载著称
-载著者
-载著述
-达着
-达著书
-达著作
-达著名
-达著录
-达著称
-达著者
-达著述
-远着
-远著书
-远著作
-远著名
-远著录
-远著称
-远著者
-远著述
-连着
-连著书
-连著作
-连著名
-连著录
-连著称
-连著者
-连著述
-追着
-追著书
-追著作
-追著名
-追著录
-追著称
-追著者
-追著述
-逆着
-逆著书
-逆著作
-逆著名
-逆著录
-逆著称
-逆著者
-逆著述
-逼着
-逼著书
-逼著作
-逼著名
-逼著录
-逼著称
-逼著者
-逼著述
-遇着
-遇著书
-遇著作
-遇著名
-遇著录
-遇著称
-遇著者
-遇著述
-配着
-配著书
-配著作
-配著名
-配著录
-配著称
-配著者
-配著述
-酿着
-酿著书
-酿著作
-酿著名
-酿著录
-酿著称
-酿著者
-酿著述
-铺着
-铺著书
-铺著作
-铺著名
-铺著录
-铺著称
-铺著者
-铺著述
-闭着
-闭著书
-闭著作
-闭著名
-闭著录
-闭著称
-闭著者
-闭著述
-闲着
-闲著书
-闲著作
-闲著名
-闲著录
-闲著称
-闲著者
-闲著述
-附着
-附著书
-附著作
-附著名
-附著录
-附著称
-附著者
-附著述
-陋着
-陋著书
-陋著作
-陋著名
-陋著录
-陋著称
-陋著者
-陋著述
-陪着
-陪著书
-陪著作
-陪著名
-陪著录
-陪著称
-陪著者
-陪著述
-随着
-随著书
-随著作
-随著名
-随著录
-随著称
-随著者
-随著述
-隔着
-隔著书
-隔著作
-隔著名
-隔著录
-隔著称
-隔著者
-隔著述
-雅着
-雅著书
-雅著作
-雅著名
-雅著录
-雅著称
-雅著者
-雅著述
-顶着
-顶著书
-顶著作
-顶著名
-顶著录
-顶著称
-顶著者
-顶著述
-顺着
-顺著书
-顺著作
-顺著名
-顺著录
-顺著称
-顺著者
-顺著述
-领着
-领著书
-领著作
-领著名
-领著录
-领著称
-领著者
-领著述
-飘着
-飘著书
-飘著作
-飘著名
-飘著录
-飘著称
-飘著者
-飘著述
-驾着
-驾著书
-驾著作
-驾著名
-驾著录
-驾著称
-驾著者
-驾著述
-骂着
-骂著书
-骂著作
-骂著名
-骂著录
-骂著称
-骂著者
-骂著述
-骑着
-骑著书
-骑著作
-骑著名
-骑著录
-骑著称
-骑著者
-骑著述
-骗着
-骗著书
-骗著作
-骗著名
-骗著录
-骗著称
-骗著者
-骗著述
-高着
-高著书
-高著作
-高著名
-高著录
-高著称
-高著者
-高著述
-髭着
-髭著书
-髭著作
-髭著名
-髭著录
-髭著称
-髭著者
-髭著述
-黏着
-黏著书
-黏著作
-黏著名
-黏著录
-黏著称
-黏著者
-黏著述
-新著龙虎门
-护着
-护著书
-护著作
-护著名
-护著录
-护著称
-护著者
-护著述
-保护着
-爱护着
-庇护着
-传着
-传著书
-传著作
-传著名
-传著录
-传著称
-传著者
-传著述
-标志着
-流露着
-靠着
-靠著作
-靠著名
-靠著录
-靠著称
-靠著者
-靠著述
-玩着
-迫着
-吃得着
-吃不着
-吃着
-闻得着
-闻不着
-闻着
-嗅得着
-嗅不着
-嗅着
-警戒着
+乾神
+乾西
+象乾
+陈遇乾
+曾运乾
+王道乾
+孙乾
+乾潭
+乾贵士
 於乎
 於戏
 魏徵
 於菟
 於潜县
 石碁镇
-因著《
-因著〈
 李泽钜
 於祥玉
 於崇文
 幺二三
 幺篇
 幺谦
-麴义
-麴英
-麯崇裕
 阿部正瞭
 醯酱
 醯鸡
 醯醢
 醯壶
 苧烯
-近角聪信
-米泽瑠美
-峯岸南
-僧伽吒
-王道乾
 後姓
+先名后姓
+矇眬
+朱有燉
+缐姓
+缐国安
+仇雠
+雠校
+雠定
+校雠
+雠夷
+雠问
+甚夥
+吴克羣
+宏碁
+石碁
+碁圣
+暗闇
+繙㠾
+惏慄
+惏悷
+目劄
+橡椀
+谢肇淛
+朱淛
+諲譔
+李譔
+扞格
+陈元扞
+祕宜
+李祕
+剋了
+挨剋
+剋架
+皁保
+爨翫
+碁所
+於之莹
+陆徵祥
+瞭台
+文徵明
+博和讬
+楈枒
+米渖
+白渖
+拾渖
+渖液
+醉渖
+墨渖
+如渖
+残渖
+馀渖
+庆馀
+馀庆
+子馀
+郭行馀
+王馀鱼
+馀年无多
\ No newline at end of file
index 3e9d3ec..b4dd3e0 100644 (file)
 樑
 摺叠
 餗
-安甯
\ No newline at end of file
+安甯
+傢俬
+癥瘕
+存摺
+着录
+硷淡
+悽恻
+鲇鱼
+和尚撞一天钟
+余
\ No newline at end of file
diff --git a/maintenance/language/zhtable/symme_supp.manual b/maintenance/language/zhtable/symme_supp.manual
new file mode 100644 (file)
index 0000000..09e1415
--- /dev/null
@@ -0,0 +1,27 @@
+U+03476㑶|U+03439㐹|
+U+042F9䋹|U+0433F䌿|
+U+043B1䎱|U+043AC䎬|
+U+04C98䲘|U+09CE4鳤|
+U+0508C傌|U+03437㐷|
+U+05DA8嶨|U+05CC3峃|
+U+05ECE廎|U+05EBC庼|
+U+069EE槮|U+0692E椮|
+U+06EAE溮|U+06D49浉|
+U+07069灩|U+06EDF滟|
+U+074A1璡|U+0740E琎|
+U+074B5璵|U+07399玙|
+U+074B8璸|U+07478瑸|
+U+075F2痲|U+075F3痳|
+U+0819E膞|U+043DD䏝|
+U+085ED藭|U+044D6䓖|
+U+08600蘀|U+0841A萚|
+U+08AE1諡|U+08C25谥|
+U+09746靆|U+053C7叇|
+U+09749靉|U+053C6叆|
+U+09A44驄|U+29A02𩨂|
+U+09C1B鰛|U+09CC1鳁|
+U+09EB3麳|U+2A38C𪎌|
+U+295E1𩗡|U+29667𩙧|
+U+298F5𩣵|U+299FB𩧻|
+U+29F47𩽇|U+29F8E𩾎|
+U+2A23C𪈼|U+2A253𪉓|
\ No newline at end of file
index 243f61b..a678ac9 100644 (file)
-」    ”
-「    “
-『    ‘
-』    ’
+餘    余
+諮    咨
+鍅    钫
+鉳    锫
+鑀    锿
+錼    镎
+鋂    镅
+鈽    钚
+鎝    锝
+鉲    锎
+矽    硅
+矽肺 矽肺
+矽塵 矽尘
+矽尘 矽尘
+矽鋼 矽钢
+矽钢 矽钢
+侏儸紀      侏罗纪
+甚麽 什么
+甚麼 什么
+胺基酸      氨基酸
+水氣 水汽
+計畫 计划
+天份 天分
+名份 名分
+職份 职分
+份外 分外
+份內 分内
+部份 部分
+知識份子   知识分子
+積極份子   积极分子
+投機份子   投机分子
+一份子      一分子
+水份 水分
+氧份 养分
+糖份 糖分
+鹽份 盐分
+組份 组分
+成份 成分
+本份 本分
+本本份份   本本分分
+恰如其份   恰如其分
+非份 非分
+過份 过分
+份量 分量
+緣份 缘分
+身分 身份
+煞車 刹车
+疊代 迭代
+叱吒 叱咤
+啸吒 啸咤
+姊姊 姐姐
+姊弟 姐弟
+姊夫 姐夫
+大姊 大姐
+御姊 御姐
+表姊 表姐
+堂姊 堂姐
+學姊 学姐
+乾姊 干姐
+澈底 彻底
+逕庭 径庭
+逕到 径到
+逕取 径取
+逕入 径入
+逕行 径行
+逕自 径自
+逕往 径往
+逕寄 径寄
+逕啟 径启
+逕迎 径迎
+徵狀 症状
+報帳 报账
+本帳 本账
+筆帳 笔账
+查帳 查账
+沖帳 冲账
+呆帳 呆账
+倒帳 倒账
+到帳 到账
+對帳 对账
+放帳 放账
+付帳 付账
+公帳 公账
+關帳 关账
+管帳 管账
+還帳 还账
+糊塗帳      糊涂账
+混帳 混账
+記帳 记账
+假帳 假账
+建帳 建账
+交帳 交账
+結帳 结账
+進帳 进账
+經常帳      经常账
+經濟帳      经济账
+舊帳 旧账
+開帳 开账
+賴帳 赖账
+爛帳 烂账
+流水帳      流水账
+買帳 买账
+明白帳      明白账
+簽帳 签账
+欠帳 欠账
+清帳 清账
+認帳 认账
+入帳 入账
+賒帳 赊账
+收帳 收账
+私帳 私账
+死帳 死账
+算帳 算账
+台帳 台账
+銷帳 销账
+要帳 要账
+轉帳 转账
+總帳 总账
+帳本 账本
+帳簿 账簿
+帳冊 账册
+帳單 账单
+帳房 账房
+帳號 账号
+帳戶 账户
+帳款 账款
+帳面 账面
+帳目 账目
+帳上 账上
+帳外 账外
+帳務 账务
+螢光棒      荧光棒
+辭彙 词汇
+著業 着业
+著絲 着丝
+著麼 着么
+著人 着人
+著什麼      着什么
+著他 着他
+著令 着令
+著位 着位
+著體 着体
+著你 着你
+著便 着便
+著涼 着凉
+著力 着力
+著勁 着劲
+著號 着号
+著呢 着呢
+著哩 着哩
+著地 着地
+著墨 着墨
+著聲 着声
+著處 着处
+著她 着她
+著妳 着妳
+著姓 着姓
+著它 着它
+著定 着定
+著實 着实
+著己 着己
+著帳 着帐
+著床 着床
+著庸 着庸
+著式 着式
+著錄 着录
+著心 着心
+著志 着志
+著忙 着忙
+著急 着急
+著惱 着恼
+著驚 着惊
+著想 着想
+著意 着意
+著慌 着慌
+著我 着我
+著手 着手
+著抹 着抹
+著摸 着摸
+著撰 着撰
+著數 着数
+著明 着明
+著末 着末
+著極 着极
+著格 着格
+著棋 着棋
+著槁 着槁
+著氣 着气
+著法 着法
+著淺 着浅
+著火 着火
+著然 着然
+著甚 着甚
+著生 着生
+著疑 着疑
+著白 着白
+著相 着相
+著眼 着眼
+著著 着着
+著祂 着祂
+著積 着积
+著稿 着稿
+著筆 着笔
+著籍 着籍
+著緊 着紧
+著緑 着緑
+著絆 着绊
+著績 着绩
+著緋 着绯
+著綠 着绿
+著肉 着肉
+著腳 着脚
+著艦 着舰
+著色 着色
+著節 着节
+著花 着花
+著莫 着莫
+著落 着落
+著槁 着藁
+著衣 着衣
+著裝 着装
+著要 着要
+著警 着警
+著趣 着趣
+著邊 着边
+著迷 着迷
+著跡 着迹
+著重 着重
+著録 着録
+著聞 着闻
+著陸 着陆
+著雝 着雝
+著鞭 着鞭
+著題 着题
+著魔 着魔
+不著 不着
+不著書      不著书
+不著名      不著名
+不著錄      不著录
+不著稱      不著称
+不著述      不著述
+與著 与着
+與著書      与著书
+與著作      与著作
+與著名      与著名
+與著錄      与著录
+與著稱      与著称
+與著者      与著者
+與著述      与著述
+醜著 丑着
+醜著書      丑著书
+醜著作      丑著作
+醜著名      丑著名
+醜著錄      丑著录
+醜著稱      丑著称
+醜著者      丑著者
+醜著述      丑著述
+臨著 临着
+臨著書      临著书
+臨著作      临著作
+臨著名      临著名
+臨著錄      临著录
+臨著稱      临著称
+臨著者      临著者
+臨著述      临著述
+麗著 丽着
+麗著書      丽著书
+麗著作      丽著作
+麗著名      丽著名
+麗著錄      丽著录
+麗著稱      丽著称
+麗著者      丽著者
+麗著述      丽著述
+樂著 乐着
+樂著書      乐著书
+樂著作      乐著作
+樂著名      乐著名
+樂著錄      乐著录
+樂著稱      乐著称
+樂著者      乐著者
+樂著述      乐著述
+乘著 乘着
+乘著書      乘著书
+乘著作      乘著作
+乘著名      乘著名
+乘著錄      乘著录
+乘著稱      乘著称
+乘著者      乘著者
+乘著述      乘著述
+爭著 争着
+爭著書      争著书
+爭著作      争著作
+爭著名      争著名
+爭著錄      争著录
+爭著稱      争著称
+爭著者      争著者
+爭著述      争著述
+亮著 亮着
+亮著書      亮著书
+亮著作      亮著作
+亮著名      亮著名
+亮著錄      亮著录
+亮著稱      亮著称
+亮著者      亮著者
+亮著述      亮著述
+仗著 仗着
+仗著書      仗著书
+仗著作      仗著作
+仗著名      仗著名
+仗著錄      仗著录
+仗著稱      仗著称
+仗著者      仗著者
+仗著述      仗著述
+代表著      代表着
+代表著書   代表著书
+代表著作   代表著作
+代表著名   代表著名
+代表著錄   代表著录
+代表著稱   代表著称
+代表著者   代表著者
+代表著述   代表著述
+伴著 伴着
+伴著書      伴著书
+伴著作      伴著作
+伴著名      伴著名
+伴著錄      伴著录
+伴著稱      伴著称
+伴著者      伴著者
+伴著述      伴著述
+低著 低着
+低著書      低著书
+低著作      低著作
+低著名      低著名
+低著錄      低著录
+低著稱      低著称
+低著者      低著者
+低著述      低著述
+住著 住着
+住著書      住著书
+住著作      住著作
+住著名      住著名
+住著錄      住著录
+住著稱      住著称
+住著者      住著者
+住著述      住著述
+側著 侧着
+側著書      侧著书
+側著作      侧著作
+側著名      侧著名
+側著錄      侧著录
+側著稱      侧著称
+側著者      侧著者
+側著述      侧著述
+保障著      保障着
+保障著書   保障著书
+保障著作   保障著作
+保障著名   保障著名
+保障著錄   保障著录
+保障著稱   保障著称
+保障著者   保障著者
+保障著述   保障著述
+信著 信着
+信著書      信著书
+信著作      信著作
+信著名      信著名
+信著錄      信著录
+信著稱      信著称
+信著者      信著者
+信著述      信著述
+候著 候着
+候著書      候著书
+候著作      候著作
+候著名      候著名
+候著錄      候著录
+候著稱      候著称
+候著者      候著者
+候著述      候著述
+借著 借着
+借著書      借著书
+借著作      借著作
+借著名      借著名
+借著錄      借著录
+借著稱      借著称
+借著者      借著者
+借著述      借著述
+做著 做着
+做著書      做著书
+做著作      做著作
+做著名      做著名
+做著錄      做著录
+做著稱      做著称
+做著者      做著者
+做著述      做著述
+偷著 偷着
+偷著書      偷著书
+偷著作      偷著作
+偷著名      偷著名
+偷著錄      偷著录
+偷著稱      偷著称
+偷著者      偷著者
+偷著述      偷著述
+光著 光着
+光著書      光著书
+光著作      光著作
+光著名      光著名
+光著錄      光著录
+光著稱      光著称
+光著者      光著者
+光著述      光著述
+關著 关着
+關著書      关著书
+關著作      关著作
+關著名      关著名
+關著錄      关著录
+關著稱      关著称
+關著者      关著者
+關著述      关著述
+冀著 冀着
+冀著書      冀著书
+冀著作      冀著作
+冀著名      冀著名
+冀著錄      冀著录
+冀著稱      冀著称
+冀著者      冀著者
+冀著述      冀著述
+冒著 冒着
+冒著書      冒著书
+冒著作      冒著作
+冒著名      冒著名
+冒著錄      冒著录
+冒著稱      冒著称
+冒著者      冒著者
+冒著述      冒著述
+寫著 写着
+寫著書      写著书
+寫著作      写著作
+寫著名      写著名
+寫著錄      写著录
+寫著稱      写著称
+寫著者      写著者
+寫著述      写著述
+涼著 凉着
+涼著書      凉著书
+涼著作      凉著作
+涼著名      凉著名
+涼著錄      凉著录
+涼著稱      凉著称
+涼著者      凉著者
+涼著述      凉著述
+制著 制着
+制著書      制著书
+制著作      制著作
+制著名      制著名
+制著錄      制著录
+制著稱      制著称
+制著者      制著者
+制著述      制著述
+刻著 刻着
+刻著書      刻著书
+刻著作      刻著作
+刻著名      刻著名
+刻著錄      刻著录
+刻著稱      刻著称
+刻著者      刻著者
+刻著述      刻著述
+辦著 办着
+辦著書      办著书
+辦著作      办著作
+辦著名      办著名
+辦著錄      办著录
+辦著稱      办著称
+辦著者      办著者
+辦著述      办著述
+動著 动着
+動著書      动著书
+動著作      动著作
+動著名      动著名
+動著錄      动著录
+動著稱      动著称
+動著者      动著者
+動著述      动著述
+努力著      努力着
+努力著書   努力著书
+努力著作   努力著作
+努力著名   努力著名
+努力著錄   努力著录
+努力著稱   努力著称
+努力著者   努力著者
+努力著述   努力著述
+努著 努着
+努著書      努著书
+努著作      努著作
+努著名      努著名
+努著錄      努著录
+努著稱      努著称
+努著者      努著者
+努著述      努著述
+印著 印着
+印著書      印著书
+印著作      印著作
+印著名      印著名
+印著錄      印著录
+印著稱      印著称
+印著者      印著者
+印著述      印著述
+壓著 压着
+壓著書      压著书
+壓著作      压著作
+壓著名      压著名
+壓著錄      压著录
+壓著稱      压著称
+壓著者      压著者
+壓著述      压著述
+去著 去着
+去著書      去著书
+去著作      去著作
+去著名      去著名
+去著錄      去著录
+去著稱      去著称
+去著者      去著者
+去著述      去著述
+受著 受着
+受著書      受著书
+受著作      受著作
+受著名      受著名
+受著錄      受著录
+受著稱      受著称
+受著者      受著者
+受著述      受著述
+變著 变着
+變著書      变著书
+變著作      变著作
+變著名      变著名
+變著錄      变著录
+變著稱      变著称
+變著者      变著者
+變著述      变著述
+叫著 叫着
+叫著書      叫著书
+叫著作      叫著作
+叫著名      叫著名
+叫著錄      叫著录
+叫著稱      叫著称
+叫著者      叫著者
+叫著述      叫著述
+向著 向着
+向著書      向著书
+向著作      向著作
+向著名      向著名
+向著錄      向著录
+向著稱      向著称
+向著者      向著者
+向著述      向著述
+含著 含着
+含著書      含著书
+含著作      含著作
+含著名      含著名
+含著錄      含著录
+含著稱      含著称
+含著者      含著者
+含著述      含著述
+聽著 听着
+聽著書      听著书
+聽著作      听著作
+聽著名      听著名
+聽著錄      听著录
+聽著稱      听著称
+聽著者      听著者
+聽著述      听著述
+吹著 吹着
+吹著書      吹著书
+吹著作      吹著作
+吹著名      吹著名
+吹著錄      吹著录
+吹著稱      吹著称
+吹著者      吹著者
+吹著述      吹著述
+味著 味着
+味著書      味著书
+味著作      味著作
+味著名      味著名
+味著錄      味著录
+味著稱      味著称
+味著者      味著者
+味著述      味著述
+響著 响着
+響著書      响著书
+響著作      响著作
+響著名      响著名
+響著錄      响著录
+響著稱      响著称
+響著者      响著者
+響著述      响著述
+哭著 哭着
+哭著書      哭著书
+哭著作      哭著作
+哭著名      哭著名
+哭著錄      哭著录
+哭著稱      哭著称
+哭著者      哭著者
+哭著述      哭著述
+唱著 唱着
+唱著書      唱著书
+唱著作      唱著作
+唱著名      唱著名
+唱著錄      唱著录
+唱著稱      唱著称
+唱著者      唱著者
+唱著述      唱著述
+喝著 喝着
+喝著書      喝著书
+喝著作      喝著作
+喝著名      喝著名
+喝著錄      喝著录
+喝著稱      喝著称
+喝著者      喝著者
+喝著述      喝著述
+嚷著 嚷着
+嚷著書      嚷著书
+嚷著作      嚷著作
+嚷著名      嚷著名
+嚷著錄      嚷著录
+嚷著稱      嚷著称
+嚷著者      嚷著者
+嚷著述      嚷著述
+因著 因着
+因著書      因著书
+因著作      因著作
+因著名      因著名
+因著錄      因著录
+因著录      因著录
+因著稱      因著称
+因著者      因著者
+因著述      因著述
+因著《      因著《
+因著〈      因著〈
+困著 困着
+困著書      困著书
+困著作      困著作
+困著名      困著名
+困著錄      困著录
+困著稱      困著称
+困著者      困著者
+困著述      困著述
+圍著 围着
+圍著書      围著书
+圍著作      围著作
+圍著名      围著名
+圍著錄      围著录
+圍著稱      围著称
+圍著者      围著者
+圍著述      围著述
+在著 在着
+在著書      在著书
+在著作      在著作
+在著名      在著名
+在著錄      在著录
+在著稱      在著称
+在著者      在著者
+在著述      在著述
+坐著 坐着
+坐著書      坐著书
+坐著作      坐著作
+坐著名      坐著名
+坐著錄      坐著录
+坐著稱      坐著称
+坐著者      坐著者
+坐著述      坐著述
+備著 备着
+備著書      备著书
+備著作      备著作
+備著名      备著名
+備著錄      备著录
+備著稱      备著称
+備著者      备著者
+備著述      备著述
+夾著 夹着
+夾著書      夹著书
+夾著作      夹著作
+夾著名      夹著名
+夾著錄      夹著录
+夾著稱      夹著称
+夾著者      夹著者
+夾著述      夹著述
+孤著 孤着
+孤著書      孤著书
+孤著作      孤著作
+孤著名      孤著名
+孤著錄      孤著录
+孤著稱      孤著称
+孤著者      孤著者
+孤著述      孤著述
+學著 学着
+學著書      学著书
+學著作      学著作
+學著名      学著名
+學著錄      学著录
+學著稱      学著称
+學著者      学著者
+學著述      学著述
+守著 守着
+守著書      守著书
+守著作      守著作
+守著名      守著名
+守著錄      守著录
+守著稱      守著称
+守著者      守著者
+守著述      守著述
+定著 定着
+定著書      定著书
+定著作      定著作
+定著名      定著名
+定著錄      定著录
+定著稱      定著称
+定著者      定著者
+定著述      定著述
+對著 对着
+對著書      对著书
+對著作      对著作
+對著名      对著名
+對著錄      对著录
+對著稱      对著称
+對著者      对著者
+對著述      对著述
+尋著 寻着
+尋著書      寻著书
+尋著作      寻著作
+尋著名      寻著名
+尋著錄      寻著录
+尋著稱      寻著称
+尋著者      寻著者
+尋著述      寻著述
+展著 展着
+展著書      展著书
+展著作      展著作
+展著名      展著名
+展著錄      展著录
+展著稱      展著称
+展著者      展著者
+展著述      展著述
+帶著 带着
+帶著書      带著书
+帶著作      带著作
+帶著名      带著名
+帶著錄      带著录
+帶著稱      带著称
+帶著者      带著者
+帶著述      带著述
+幫著 帮着
+幫著書      帮著书
+幫著作      帮著作
+幫著名      帮著名
+幫著錄      帮著录
+幫著稱      帮著称
+幫著者      帮著者
+幫著述      帮著述
+應著 应着
+應著書      应著书
+應著作      应著作
+應著名      应著名
+應著錄      应著录
+應著稱      应著称
+應著者      应著者
+應著述      应著述
+康著 康着
+康著書      康著书
+康著作      康著作
+康著名      康著名
+康著錄      康著录
+康著稱      康著称
+康著者      康著者
+康著述      康著述
+開著 开着
+開著書      开著书
+開著作      开著作
+開著名      开著名
+開著錄      开著录
+開著稱      开著称
+開著者      开著者
+開著述      开著述
+當著 当着
+當著書      当著书
+當著作      当著作
+當著名      当著名
+當著錄      当著录
+當著稱      当著称
+當著者      当著者
+當著述      当著述
+待著 待着
+待著書      待著书
+待著作      待著作
+待著名      待著名
+待著錄      待著录
+待著稱      待著称
+待著者      待著者
+待著述      待著述
+得著 得着
+得著書      得著书
+得著作      得著作
+得著名      得著名
+得著錄      得著录
+得著稱      得著称
+得著者      得著者
+得著述      得著述
+循著 循着
+循著書      循著书
+循著作      循著作
+循著名      循著名
+循著錄      循著录
+循著稱      循著称
+循著者      循著者
+循著述      循著述
+心著 心着
+心著書      心著书
+心著作      心著作
+心著名      心著名
+心著錄      心著录
+心著稱      心著称
+心著者      心著者
+心著述      心著述
+忍著 忍着
+忍著書      忍著书
+忍著作      忍著作
+忍著名      忍著名
+忍著錄      忍著录
+忍著稱      忍著称
+忍著者      忍著者
+忍著述      忍著述
+志著 志着
+志著書      志著书
+志著作      志著作
+志著名      志著名
+志著錄      志著录
+志著稱      志著称
+志著者      志著者
+志著述      志著述
+忙著 忙着
+忙著書      忙著书
+忙著作      忙著作
+忙著名      忙著名
+忙著錄      忙著录
+忙著稱      忙著称
+忙著者      忙著者
+忙著述      忙著述
+懷著 怀着
+懷著書      怀著书
+懷著作      怀著作
+懷著名      怀著名
+懷著錄      怀著录
+懷著稱      怀著称
+懷著者      怀著者
+懷著述      怀著述
+急著 急着
+急著書      急著书
+急著作      急著作
+急著名      急著名
+急著錄      急著录
+急著稱      急著称
+急著者      急著者
+急著述      急著述
+性著 性着
+性著書      性著书
+性著作      性著作
+性著名      性著名
+性著錄      性著录
+性著稱      性著称
+性著者      性著者
+性著述      性著述
+戀著 恋着
+戀著書      恋著书
+戀著作      恋著作
+戀著名      恋著名
+戀著錄      恋著录
+戀著稱      恋著称
+戀著者      恋著者
+戀著述      恋著述
+悠著 悠着
+悠著書      悠著书
+悠著作      悠著作
+悠著名      悠著名
+悠著錄      悠著录
+悠著稱      悠著称
+悠著者      悠著者
+悠著述      悠著述
+慣著 惯着
+慣著書      惯著书
+慣著作      惯著作
+慣著名      惯著名
+慣著錄      惯著录
+慣著稱      惯著称
+慣著者      惯著者
+慣著述      惯著述
+想著 想着
+想著書      想著书
+想著作      想著作
+想著名      想著名
+想著錄      想著录
+想著稱      想著称
+想著者      想著者
+想著述      想著述
+戰著 战着
+戰著書      战著书
+戰著作      战著作
+戰著名      战著名
+戰著錄      战著录
+戰著稱      战著称
+戰著者      战著者
+戰著述      战著述
+戴著 戴着
+戴著書      戴著书
+戴著作      戴著作
+戴著名      戴著名
+戴著錄      戴著录
+戴著稱      戴著称
+戴著者      戴著者
+戴著述      戴著述
+紮著 扎着
+紮著書      扎著书
+紮著作      扎著作
+紮著名      扎著名
+紮著錄      扎著录
+紮著稱      扎著称
+紮著者      扎著者
+紮著述      扎著述
+打著 打着
+打著書      打著书
+打著作      打著作
+打著名      打著名
+打著錄      打著录
+打著稱      打著称
+打著者      打著者
+打著述      打著述
+扛著 扛着
+扛著書      扛著书
+扛著作      扛著作
+扛著名      扛著名
+扛著錄      扛著录
+扛著稱      扛著称
+扛著者      扛著者
+扛著述      扛著述
+抓著 抓着
+抓著作      抓著作
+抓著名      抓著名
+抓著錄      抓著录
+抓著稱      抓著称
+抓著者      抓著者
+抓著述      抓著述
+披著 披着
+披著書      披著书
+披著作      披著作
+披著名      披著名
+披著錄      披著录
+披著稱      披著称
+披著者      披著者
+披著述      披著述
+抬著 抬着
+抬著作      抬著作
+抬著名      抬著名
+抬著錄      抬著录
+抬著稱      抬著称
+抬著者      抬著者
+抬著述      抬著述
+抱著 抱着
+抱著作      抱著作
+抱著名      抱著名
+抱著錄      抱著录
+抱著稱      抱著称
+抱著者      抱著者
+抱著述      抱著述
+拉著 拉着
+拉著書      拉著书
+拉著作      拉著作
+拉著名      拉著名
+拉著錄      拉著录
+拉著稱      拉著称
+拉著者      拉著者
+拉著述      拉著述
+拎著 拎着
+拎著作      拎著作
+拎著名      拎著名
+拎著錄      拎著录
+拎著稱      拎著称
+拎著者      拎著者
+拎著述      拎著述
+拖著 拖着
+拖著作      拖著作
+拖著名      拖著名
+拖著錄      拖著录
+拖著稱      拖著称
+拖著者      拖著者
+拖著述      拖著述
+拼著 拼着
+拼著作      拼著作
+拼著名      拼著名
+拼著錄      拼著录
+拼著稱      拼著称
+拼著者      拼著者
+拼著述      拼著述
+拿著 拿着
+拿著作      拿著作
+拿著名      拿著名
+拿著錄      拿著录
+拿著稱      拿著称
+拿著者      拿著者
+拿著述      拿著述
+持著 持着
+持著作      持著作
+持著名      持著名
+持著錄      持著录
+持著稱      持著称
+持著者      持著者
+持著述      持著述
+挑著 挑着
+挑著作      挑著作
+挑著名      挑著名
+挑著錄      挑著录
+挑著稱      挑著称
+挑著者      挑著者
+挑著述      挑著述
+擋著 挡着
+擋著作      挡著作
+擋著名      挡著名
+擋著錄      挡著录
+擋著稱      挡著称
+擋著者      挡著者
+擋著述      挡著述
+掙著 挣着
+掙著書      挣著书
+掙著作      挣著作
+掙著名      挣著名
+掙著錄      挣著录
+掙著稱      挣著称
+掙著者      挣著者
+掙著述      挣著述
+揮著 挥着
+揮著作      挥著作
+揮著名      挥著名
+揮著錄      挥著录
+揮著稱      挥著称
+揮著者      挥著者
+揮著述      挥著述
+挨著 挨着
+挨著作      挨著作
+挨著名      挨著名
+挨著錄      挨著录
+挨著稱      挨著称
+挨著者      挨著者
+挨著述      挨著述
+捆著 捆着
+捆著作      捆著作
+捆著名      捆著名
+捆著錄      捆著录
+捆著稱      捆著称
+捆著者      捆著者
+捆著述      捆著述
+據著 据着
+據著書      据著书
+據著作      据著作
+據著名      据著名
+據著錄      据著录
+據著稱      据著称
+據著者      据著者
+據著述      据著述
+掖著 掖着
+掖著作      掖著作
+掖著名      掖著名
+掖著錄      掖著录
+掖著稱      掖著称
+掖著者      掖著者
+掖著述      掖著述
+接著 接着
+接著作      接著作
+接著名      接著名
+接著錄      接著录
+接著稱      接著称
+接著者      接著者
+接著述      接著述
+揉著 揉着
+揉著書      揉著书
+揉著作      揉著作
+揉著名      揉著名
+揉著錄      揉著录
+揉著稱      揉著称
+揉著者      揉著者
+揉著述      揉著述
+提著 提着
+提著作      提著作
+提著名      提著名
+提著錄      提著录
+提著稱      提著称
+提著者      提著者
+提著述      提著述
+摟著 搂着
+摟著作      搂著作
+摟著名      搂著名
+摟著錄      搂著录
+摟著稱      搂著称
+摟著者      搂著者
+摟著述      搂著述
+擺著 摆着
+擺著作      摆著作
+擺著名      摆著名
+擺著錄      摆著录
+擺著稱      摆著称
+擺著者      摆著者
+擺著述      摆著述
+撼著 撼着
+撼著書      撼著书
+撼著作      撼著作
+撼著名      撼著名
+撼著錄      撼著录
+撼著稱      撼著称
+撼著者      撼著者
+撼著述      撼著述
+敞著 敞着
+敞著作      敞著作
+敞著名      敞著名
+敞著錄      敞著录
+敞著稱      敞著称
+敞著者      敞著者
+敞著述      敞著述
+數著 数着
+數著作      数著作
+數著名      数著名
+數著錄      数著录
+數著稱      数著称
+數著者      数著者
+數著述      数著述
+鬥著 斗着
+鬥著書      斗著书
+鬥著作      斗著作
+鬥著名      斗著名
+鬥著錄      斗著录
+鬥著稱      斗著称
+鬥著者      斗著者
+鬥著述      斗著述
+斥著 斥着
+斥著書      斥著书
+斥著作      斥著作
+斥著名      斥著名
+斥著錄      斥著录
+斥著稱      斥著称
+斥著者      斥著者
+斥著述      斥著述
+昂著 昂着
+昂著書      昂著书
+昂著作      昂著作
+昂著名      昂著名
+昂著錄      昂著录
+昂著稱      昂著称
+昂著者      昂著者
+昂著述      昂著述
+映著 映着
+映著書      映著书
+映著作      映著作
+映著名      映著名
+映著錄      映著录
+映著稱      映著称
+映著者      映著者
+映著述      映著述
+晃著 晃着
+晃著作      晃著作
+晃著名      晃著名
+晃著錄      晃著录
+晃著稱      晃著称
+晃著者      晃著者
+晃著述      晃著述
+暗著 暗着
+暗著書      暗著书
+暗著作      暗著作
+暗著名      暗著名
+暗著錄      暗著录
+暗著稱      暗著称
+暗著者      暗著者
+暗著述      暗著述
+有著 有着
+有著書      有著书
+有著作      有著作
+有著名      有著名
+有著錄      有著录
+有著稱      有著称
+有著者      有著者
+有著述      有著述
+望著 望着
+望著作      望著作
+望著名      望著名
+望著錄      望著录
+望著稱      望著称
+望著者      望著者
+望著述      望著述
+朝著 朝着
+朝著作      朝著作
+朝著名      朝著名
+朝著錄      朝著录
+朝著稱      朝著称
+朝著者      朝著者
+朝著述      朝著述
+本著 本着
+本著書      本著书
+本著作      本著作
+本著名      本著名
+本著錄      本著录
+本著稱      本著称
+本著者      本著者
+本著述      本著述
+殺著 杀着
+殺著書      杀著书
+殺著作      杀著作
+殺著名      杀著名
+殺著錄      杀著录
+殺著稱      杀著称
+殺著者      杀著者
+殺著述      杀著述
+雜著 杂着
+雜著書      杂著书
+雜著作      杂著作
+雜著名      杂著名
+雜著錄      杂著录
+雜著稱      杂著称
+雜著者      杂著者
+雜著述      杂著述
+來著 来着
+來著書      来著书
+來著作      来著作
+來著名      来著名
+來著錄      来著录
+來著稱      来著称
+來著者      来著者
+來著述      来著述
+枕著 枕着
+枕著作      枕著作
+枕著名      枕著名
+枕著錄      枕著录
+枕著稱      枕著称
+枕著者      枕著者
+枕著述      枕著述
+夢著 梦着
+夢著書      梦著书
+夢著作      梦著作
+夢著名      梦著名
+夢著錄      梦著录
+夢著稱      梦著称
+夢著者      梦著者
+夢著述      梦著述
+梳著 梳着
+梳著作      梳著作
+梳著名      梳著名
+梳著錄      梳著录
+梳著稱      梳著称
+梳著者      梳著者
+梳著述      梳著述
+求著 求着
+求著書      求著书
+求著作      求著作
+求著名      求著名
+求著錄      求著录
+求著稱      求著称
+求著者      求著者
+求著述      求著述
+沉著 沉着
+沉著書      沉著书
+沉著作      沉著作
+沉著名      沉著名
+沉著錄      沉著录
+沉著稱      沉著称
+沉著者      沉著者
+沉著述      沉著述
+沿著 沿着
+沿著書      沿著书
+沿著作      沿著作
+沿著名      沿著名
+沿著錄      沿著录
+沿著稱      沿著称
+沿著者      沿著者
+沿著述      沿著述
+活著 活着
+活著書      活著书
+活著作      活著作
+活著名      活著名
+活著錄      活著录
+活著稱      活著称
+活著者      活著者
+活著述      活著述
+流著 流着
+流著書      流著书
+流著作      流著作
+流著名      流著名
+流著錄      流著录
+流著稱      流著称
+流著者      流著者
+流著述      流著述
+浮著 浮着
+浮著書      浮著书
+浮著作      浮著作
+浮著名      浮著名
+浮著錄      浮著录
+浮著稱      浮著称
+浮著者      浮著者
+浮著述      浮著述
+潤著 润着
+潤著書      润著书
+潤著作      润著作
+潤著名      润著名
+潤著錄      润著录
+潤著稱      润著称
+潤著者      润著者
+潤著述      润著述
+涵著 涵着
+涵著書      涵著书
+涵著作      涵著作
+涵著名      涵著名
+涵著錄      涵著录
+涵著稱      涵著称
+涵著者      涵著者
+涵著述      涵著述
+渴著 渴着
+渴著書      渴著书
+渴著作      渴著作
+渴著名      渴著名
+渴著錄      渴著录
+渴著稱      渴著称
+渴著者      渴著者
+渴著述      渴著述
+溢著 溢着
+溢著書      溢著书
+溢著作      溢著作
+溢著名      溢著名
+溢著錄      溢著录
+溢著稱      溢著称
+溢著者      溢著者
+溢著述      溢著述
+演著 演着
+演著書      演著书
+演著作      演著作
+演著名      演著名
+演著錄      演著录
+演著稱      演著称
+演著者      演著者
+演著述      演著述
+漫著 漫着
+漫著書      漫著书
+漫著作      漫著作
+漫著名      漫著名
+漫著錄      漫著录
+漫著稱      漫著称
+漫著者      漫著者
+漫著述      漫著述
+點著 点着
+點著作      点著作
+點著名      点著名
+點著錄      点著录
+點著稱      点著称
+點著者      点著者
+點著述      点著述
+燒著 烧着
+燒著作      烧著作
+燒著名      烧著名
+燒著錄      烧著录
+燒著稱      烧著称
+燒著者      烧著者
+燒著述      烧著述
+照著 照着
+照著書      照著书
+照著作      照著作
+照著名      照著名
+照著錄      照著录
+照著稱      照著称
+照著者      照著者
+照著述      照著述
+愛著 爱着
+愛著書      爱著书
+愛著作      爱著作
+愛著名      爱著名
+愛著錄      爱著录
+愛著稱      爱著称
+愛著者      爱著者
+愛著述      爱著述
+牽著 牵着
+牽著書      牵著书
+牽著作      牵著作
+牽著名      牵著名
+牽著錄      牵著录
+牽著稱      牵著称
+牽著者      牵著者
+牽著述      牵著述
+獨著 独着
+獨著書      独著书
+獨著作      独著作
+獨著名      独著名
+獨著錄      独著录
+獨著稱      独著称
+獨著者      独著者
+獨著述      独著述
+猜著 猜着
+猜著書      猜着书
+猜著作      猜著作
+猜著名      猜著名
+猜著錄      猜著录
+猜著稱      猜著称
+猜著者      猜著者
+猜著述      猜著述
+甜著 甜着
+甜著書      甜著书
+甜著作      甜著作
+甜著名      甜著名
+甜著錄      甜著录
+甜著稱      甜著称
+甜著者      甜著者
+甜著述      甜著述
+用著 用着
+用著書      用著书
+用著作      用著作
+用著名      用著名
+用著錄      用著录
+用著稱      用著称
+用著者      用著者
+用著述      用著述
+留著 留着
+留著書      留着书
+留著作      留著作
+留著名      留著名
+留著錄      留著录
+留著稱      留著称
+留著者      留著者
+留著述      留著述
+疑著 疑着
+疑著書      疑著书
+疑著作      疑著作
+疑著名      疑著名
+疑著錄      疑著录
+疑著稱      疑著称
+疑著者      疑著者
+疑著述      疑著述
+皺著 皱着
+皺著書      皱著书
+皺著作      皱著作
+皺著名      皱著名
+皺著錄      皱著录
+皺著稱      皱著称
+皺著者      皱著者
+皺著述      皱著述
+盛著 盛着
+盛著書      盛著书
+盛著作      盛著作
+盛著名      盛著名
+盛著錄      盛著录
+盛著稱      盛著称
+盛著者      盛著者
+盛著述      盛著述
+盯著 盯着
+盯著書      盯着书
+盯著作      盯著作
+盯著名      盯著名
+盯著錄      盯著录
+盯著稱      盯著称
+盯著者      盯著者
+盯著述      盯著述
+盾著 盾着
+盾著書      盾著书
+盾著作      盾著作
+盾著名      盾著名
+盾著錄      盾著录
+盾著稱      盾著称
+盾著者      盾著者
+盾著述      盾著述
+看著 看着
+看著書      看着书
+看著作      看著作
+看著名      看著名
+看著錄      看著录
+看著稱      看著称
+看著者      看著者
+看著述      看著述
+瞧著 瞧着
+瞧著書      瞧着书
+瞧著作      瞧著作
+瞧著名      瞧著名
+瞧著錄      瞧著录
+瞧著稱      瞧著称
+瞧著者      瞧著者
+瞧著述      瞧著述
+存著 存着
+存著名      存著名
+劃著 划着
+別著 别着
+刮著 刮着
+掛著 挂着
+吊著 吊着
+回著 回着
+回著名      回著名
+塗著 涂着
+麼著 么着
+擔著 担着
+負著 负着
+板著臉      板着脸
+為著 为着
+為著作      为著作
+為著名      为著名
+為著錄      为著录
+為著稱      为著称
+為著者      为著者
+為著述      为著述
+為著《      为著《
+畫著 画着
+畫著作      画著作
+畫著名      画著名
+畫著稱      画著称
+畫著者      画著者
+發著 发着
+發著作      发著作
+發著名      发著名
+發著稱      发著称
+發著者      发著者
+發著《      发著《
+簽著 签着
+繃著 绷着
+覆著 覆着
+蓋著 蓋着
+說著 说着
+說著作      说著作
+說著稱      说著称
+說著者      说著者
+說著述      说著述
+湊合著      凑合着
+配合著      配合着
+配合著名   配合著名
+關係著      关系着
+鬧著 闹着
+蒙著 蒙着
+悶著 闷着
+占著 占着
+占著名      占著名
+占著作      占著作
+占著者      占著者
+呆著 呆着
+包著 包着
+駛著 驶着
+睡著 睡着
+睡著書      睡著书
+睡著作      睡著作
+睡著名      睡著名
+睡著錄      睡著录
+睡著稱      睡著称
+睡著者      睡著者
+睡著述      睡著述
+瞞著 瞒着
+瞞著書      瞒著书
+瞞著作      瞒著作
+瞞著名      瞒著名
+瞞著錄      瞒著录
+瞞著稱      瞒著称
+瞞著者      瞒著者
+瞞著述      瞒著述
+瞪著 瞪着
+瞪著書      瞪著书
+瞪著作      瞪著作
+瞪著名      瞪著名
+瞪著錄      瞪著录
+瞪著稱      瞪著称
+瞪著者      瞪著者
+瞪著述      瞪著述
+福著 福着
+福著書      福著书
+福著作      福著作
+福著名      福著名
+福著錄      福著录
+福著稱      福著称
+福著者      福著者
+福著述      福著述
+空著 空着
+空著書      空著书
+空著作      空著作
+空著名      空著名
+空著錄      空著录
+空著稱      空著称
+空著者      空著者
+空著述      空著述
+穿著 穿着
+穿著書      穿著书
+穿著作      穿著作
+穿著名      穿著名
+穿著錄      穿著录
+穿著稱      穿著称
+穿著者      穿著者
+穿著述      穿著述
+豎著 竖着
+豎著書      竖著书
+豎著作      竖著作
+豎著名      竖著名
+豎著錄      竖著录
+豎著稱      竖著称
+豎著者      竖著者
+豎著述      竖著述
+站著 站着
+站著書      站著书
+站著作      站著作
+站著名      站著名
+站著錄      站著录
+站著稱      站著称
+站著者      站著者
+站著述      站著述
+笑著 笑着
+笑著書      笑著书
+笑著作      笑著作
+笑著名      笑著名
+笑著錄      笑著录
+笑著稱      笑著称
+笑著者      笑著者
+笑著述      笑著述
+管著 管着
+管著書      管著书
+管著作      管著作
+管著名      管著名
+管著錄      管著录
+管著稱      管著称
+管著者      管著者
+管著述      管著述
+綁著 绑着
+綁著書      绑著书
+綁著作      绑著作
+綁著名      绑著名
+綁著錄      绑著录
+綁著稱      绑著称
+綁著者      绑著者
+綁著述      绑著述
+繞著 绕着
+繞著書      绕著书
+繞著作      绕著作
+繞著名      绕著名
+繞著錄      绕著录
+繞著稱      绕著称
+繞著者      绕著者
+繞著述      绕著述
+纏著 缠着
+纏著書      缠著书
+纏著作      缠著作
+纏著名      缠著名
+纏著錄      缠著录
+纏著稱      缠著称
+纏著者      缠著者
+纏著述      缠著述
+罩著 罩着
+罩著書      罩著书
+罩著作      罩著作
+罩著名      罩著名
+罩著錄      罩著录
+罩著稱      罩著称
+罩著者      罩著者
+罩著述      罩著述
+美著 美着
+美著書      美著书
+美著作      美著作
+美著名      美著名
+美著錄      美著录
+美著稱      美著称
+美著者      美著者
+美著述      美著述
+耀著 耀着
+耀著書      耀著书
+耀著作      耀著作
+耀著名      耀著名
+耀著錄      耀著录
+耀著稱      耀著称
+耀著者      耀著者
+耀著述      耀著述
+考著 考着
+考著書      考著书
+考著作      考著作
+考著名      考著名
+考著錄      考著录
+考著稱      考著称
+考著者      考著者
+考著述      考著述
+背著 背着
+背著書      背著书
+背著作      背著作
+背著名      背著名
+背著錄      背著录
+背著稱      背著称
+背著者      背著者
+背著述      背著述
+膠著 胶着
+膠著書      胶著书
+膠著作      胶著作
+膠著名      胶著名
+膠著錄      胶著录
+膠著稱      胶著称
+膠著者      胶著者
+膠著述      胶著述
+藝著 艺着
+藝著書      艺著书
+藝著作      艺著作
+藝著名      艺著名
+藝著錄      艺著录
+藝著稱      艺著称
+藝著者      艺著者
+藝著述      艺著述
+苦著 苦着
+苦著書      苦著书
+苦著作      苦著作
+苦著名      苦著名
+苦著錄      苦著录
+苦著稱      苦著称
+苦著者      苦著者
+苦著述      苦著述
+獲著 获着
+獲著書      获著书
+獲著作      获著作
+獲著名      获著名
+獲著錄      获著录
+獲著稱      获著称
+獲著者      获著者
+獲著述      获著述
+落著 落着
+落著書      落著书
+落著作      落著作
+落著名      落著名
+落著錄      落著录
+落著稱      落著称
+落著者      落著者
+落著述      落著述
+蒙著書      蒙著书
+蒙著作      蒙著作
+蒙著名      蒙著名
+蒙著錄      蒙著录
+蒙著稱      蒙著称
+蒙著者      蒙著者
+蒙著述      蒙著述
+藏著 藏着
+藏著書      藏著书
+藏著作      藏著作
+藏著名      藏著名
+藏著錄      藏著录
+藏著稱      藏著称
+藏著者      藏著者
+藏著述      藏著述
+蘸著 蘸着
+蘸著書      蘸著书
+蘸著作      蘸著作
+蘸著名      蘸著名
+蘸著錄      蘸著录
+蘸著稱      蘸著称
+蘸著者      蘸著者
+蘸著述      蘸著述
+行著 行着
+行著書      行著书
+行著作      行著作
+行著名      行著名
+行著錄      行著录
+行著稱      行著称
+行著者      行著者
+行著述      行著述
+衣著 衣着
+衣著書      衣著书
+衣著作      衣著作
+衣著名      衣著名
+衣著錄      衣著录
+衣著稱      衣著称
+衣著者      衣著者
+衣著述      衣著述
+裝著 装着
+裝著書      装著书
+裝著作      装著作
+裝著名      装著名
+裝著錄      装著录
+裝著稱      装著称
+裝著者      装著者
+裝著述      装著述
+裹著 裹着
+裹著書      裹著书
+裹著作      裹著作
+裹著名      裹著名
+裹著錄      裹著录
+裹著稱      裹著称
+裹著者      裹著者
+裹著述      裹著述
+見著 见着
+見著書      见著书
+見著作      见著作
+見著名      见著名
+見著錄      见著录
+見著稱      见著称
+見著者      见著者
+見著述      见著述
+記著 记着
+記著書      记著书
+記著作      记著作
+記著名      记著名
+記著錄      记著录
+記著稱      记著称
+記著者      记著者
+記著述      记著述
+試著 试着
+試著書      试著书
+試著作      试著作
+試著名      试著名
+試著錄      试著录
+試著稱      试著称
+試著者      试著者
+試著述      试著述
+語著 语着
+語著書      语著书
+語著作      语著作
+語著名      语著名
+語著錄      语著录
+語著稱      语著称
+語著者      语著者
+語著述      语著述
+豫著 豫着
+豫著書      豫著书
+豫著作      豫著作
+豫著名      豫著名
+豫著錄      豫著录
+豫著稱      豫著称
+豫著者      豫著者
+豫著述      豫著述
+貞著 贞着
+貞著書      贞著书
+貞著作      贞著作
+貞著名      贞著名
+貞著錄      贞著录
+貞著稱      贞著称
+貞著者      贞著者
+貞著述      贞著述
+走著 走着
+走著書      走著书
+走著作      走著作
+走著名      走著名
+走著錄      走著录
+走著稱      走著称
+走著者      走著者
+走著述      走著述
+趕著 赶着
+趕著書      赶著书
+趕著作      赶著作
+趕著名      赶著名
+趕著錄      赶著录
+趕著稱      赶著称
+趕著者      赶著者
+趕著述      赶著述
+趴著 趴着
+趴著書      趴著书
+趴著作      趴著作
+趴著名      趴著名
+趴著錄      趴著录
+趴著稱      趴著称
+趴著者      趴著者
+趴著述      趴著述
+躍著 跃着
+躍著書      跃著书
+躍著作      跃著作
+躍著名      跃著名
+躍著錄      跃著录
+躍著稱      跃著称
+躍著者      跃著者
+躍著述      跃著述
+跑著 跑着
+跑著書      跑著书
+跑著作      跑著作
+跑著名      跑著名
+跑著錄      跑著录
+跑著稱      跑著称
+跑著者      跑著者
+跑著述      跑著述
+跟著 跟着
+跟著書      跟著书
+跟著作      跟著作
+跟著名      跟著名
+跟著錄      跟著录
+跟著稱      跟著称
+跟著者      跟著者
+跟著述      跟著述
+跪著 跪着
+跪著書      跪著书
+跪著作      跪著作
+跪著名      跪著名
+跪著錄      跪著录
+跪著稱      跪著称
+跪著者      跪著者
+跪著述      跪著述
+跳著 跳着
+跳著書      跳著书
+跳著作      跳著作
+跳著名      跳著名
+跳著錄      跳著录
+跳著稱      跳著称
+跳著者      跳著者
+跳著述      跳著述
+踏著 踏着
+踏著書      踏著书
+踏著作      踏著作
+踏著名      踏著名
+踏著錄      踏著录
+踏著稱      踏著称
+踏著者      踏著者
+踏著述      踏著述
+踩著 踩着
+踩著書      踩著书
+踩著作      踩著作
+踩著名      踩著名
+踩著錄      踩著录
+踩著稱      踩著称
+踩著者      踩著者
+踩著述      踩著述
+身著 身着
+身著書      身著书
+身著作      身著作
+身著名      身著名
+身著錄      身著录
+身著稱      身著称
+身著者      身著者
+身著述      身著述
+躺著 躺着
+躺著書      躺著书
+躺著作      躺著作
+躺著名      躺著名
+躺著錄      躺著录
+躺著稱      躺著称
+躺著者      躺著者
+躺著述      躺著述
+轉著 转着
+轉著書      转著书
+轉著作      转著作
+轉著名      转著名
+轉著錄      转著录
+轉著稱      转著称
+轉著者      转著者
+轉著述      转著述
+載著 载着
+載著書      载著书
+載著作      载著作
+載著名      载著名
+載著錄      载著录
+載著稱      载著称
+載著者      载著者
+載著述      载著述
+達著 达着
+達著書      达著书
+達著作      达著作
+達著名      达著名
+達著錄      达著录
+達著稱      达著称
+達著者      达著者
+達著述      达著述
+遠著 远着
+遠著書      远著书
+遠著作      远著作
+遠著名      远著名
+遠著錄      远著录
+遠著稱      远著称
+遠著者      远著者
+遠著述      远著述
+連著 连着
+連著書      连著书
+連著作      连著作
+連著名      连著名
+連著錄      连著录
+連著稱      连著称
+連著者      连著者
+連著述      连著述
+追著 追着
+追著書      追著书
+追著作      追著作
+追著名      追著名
+追著錄      追著录
+追著稱      追著称
+追著者      追著者
+追著述      追著述
+逆著 逆着
+逆著書      逆著书
+逆著作      逆著作
+逆著名      逆著名
+逆著錄      逆著录
+逆著稱      逆著称
+逆著者      逆著者
+逆著述      逆著述
+逼著 逼着
+逼著書      逼著书
+逼著作      逼著作
+逼著名      逼著名
+逼著錄      逼著录
+逼著稱      逼著称
+逼著者      逼著者
+逼著述      逼著述
+遇著 遇着
+遇著書      遇著书
+遇著作      遇著作
+遇著名      遇著名
+遇著錄      遇著录
+遇著稱      遇著称
+遇著者      遇著者
+遇著述      遇著述
+配著 配着
+配著書      配著书
+配著作      配著作
+配著名      配著名
+配著錄      配著录
+配著稱      配著称
+配著者      配著者
+配著述      配著述
+釀著 酿着
+釀著書      酿著书
+釀著作      酿著作
+釀著名      酿著名
+釀著錄      酿著录
+釀著稱      酿著称
+釀著者      酿著者
+釀著述      酿著述
+鋪著 铺着
+鋪著書      铺著书
+鋪著作      铺著作
+鋪著名      铺著名
+鋪著錄      铺著录
+鋪著稱      铺著称
+鋪著者      铺著者
+鋪著述      铺著述
+閉著 闭着
+閉著書      闭著书
+閉著作      闭著作
+閉著名      闭著名
+閉著錄      闭著录
+閉著稱      闭著称
+閉著者      闭著者
+閉著述      闭著述
+閑著 闲着
+閑著書      闲著书
+閑著作      闲著作
+閑著名      闲著名
+閑著錄      闲著录
+閑著稱      闲著称
+閑著者      闲著者
+閑著述      闲著述
+附著 附着
+附著書      附著书
+附著作      附著作
+附著名      附著名
+附著錄      附著录
+附著稱      附著称
+附著者      附著者
+附著述      附著述
+陋著 陋着
+陋著書      陋著书
+陋著作      陋著作
+陋著名      陋著名
+陋著錄      陋著录
+陋著稱      陋著称
+陋著者      陋著者
+陋著述      陋著述
+陪著 陪着
+陪著書      陪著书
+陪著作      陪著作
+陪著名      陪著名
+陪著錄      陪著录
+陪著稱      陪著称
+陪著者      陪著者
+陪著述      陪著述
+隨著 随着
+隨著書      随著书
+隨著作      随著作
+隨著名      随著名
+隨著錄      随著录
+隨著稱      随著称
+隨著者      随著者
+隨著述      随著述
+隔著 隔着
+隔著書      隔著书
+隔著作      隔著作
+隔著名      隔著名
+隔著錄      隔著录
+隔著稱      隔著称
+隔著者      隔著者
+隔著述      隔著述
+雅著 雅着
+雅著書      雅著书
+雅著作      雅著作
+雅著名      雅著名
+雅著錄      雅著录
+雅著稱      雅著称
+雅著者      雅著者
+雅著述      雅著述
+頂著 顶着
+頂著書      顶著书
+頂著作      顶著作
+頂著名      顶著名
+頂著錄      顶著录
+頂著稱      顶著称
+頂著者      顶著者
+頂著述      顶著述
+順著 顺着
+順著書      顺著书
+順著作      顺著作
+順著名      顺著名
+順著錄      顺著录
+順著稱      顺著称
+順著者      顺著者
+順著述      顺著述
+領著 领着
+領著書      领著书
+領著作      领著作
+領著名      领著名
+領著錄      领著录
+領著稱      领著称
+領著者      领著者
+領著述      领著述
+飄著 飘着
+飄著書      飘著书
+飄著作      飘著作
+飄著名      飘著名
+飄著錄      飘著录
+飄著稱      飘著称
+飄著者      飘著者
+飄著述      飘著述
+駕著 驾着
+駕著書      驾著书
+駕著作      驾著作
+駕著名      驾著名
+駕著錄      驾著录
+駕著稱      驾著称
+駕著者      驾著者
+駕著述      驾著述
+罵著 骂着
+罵著書      骂著书
+罵著作      骂著作
+罵著名      骂著名
+罵著錄      骂著录
+罵著稱      骂著称
+罵著者      骂著者
+罵著述      骂著述
+騎著 骑着
+騎著書      骑著书
+騎著作      骑著作
+騎著名      骑著名
+騎著錄      骑著录
+騎著稱      骑著称
+騎著者      骑著者
+騎著述      骑著述
+騙著 骗着
+騙著書      骗著书
+騙著作      骗著作
+騙著名      骗著名
+騙著錄      骗著录
+騙著稱      骗著称
+騙著者      骗著者
+騙著述      骗著述
+高著 高着
+高著書      高著书
+高著作      高著作
+高著名      高著名
+高著錄      高著录
+高著稱      高著称
+高著者      高著者
+高著述      高著述
+髭著 髭着
+髭著書      髭著书
+髭著作      髭著作
+髭著名      髭著名
+髭著錄      髭著录
+髭著稱      髭著称
+髭著者      髭著者
+髭著述      髭著述
+黏著 黏着
+黏著書      黏著书
+黏著作      黏著作
+黏著名      黏著名
+黏著錄      黏著录
+黏著稱      黏著称
+黏著者      黏著者
+黏著述      黏著述
+護著 护着
+護著書      护著书
+護著作      护著作
+護著名      护著名
+護著錄      护著录
+護著稱      护著称
+護著者      护著者
+護著述      护著述
+保護著      保护着
+愛護著      爱护着
+庇護著      庇护着
+傳著 传着
+傳著書      传著书
+傳著作      传著作
+傳著名      传著名
+傳著錄      传著录
+傳著稱      传著称
+傳著者      传著者
+傳著述      传著述
+標誌著      标志着
+流露著      流露着
+靠著 靠着
+靠著作      靠著作
+靠著名      靠著名
+靠著錄      靠著录
+靠著稱      靠著称
+靠著者      靠著者
+靠著述      靠著述
+玩著 玩着
+迫著 迫着
+吃著 吃着
+聞著 闻着
+嗅著 嗅着
+警戒著      警戒着
+過著 过着
+過著作      过著作
+過著名      过著名
+過著錄      过著录
+過著稱      过著称
+過著者      过著者
+過著述      过著述
+下著 下着
+下著作      下著作
+下著名      下著名
+下著錄      下著录
+下著录      下著录
+下著稱      下著称
+下著称      下著称
+下著者      下著者
+下著述      下著述
+下著有      下著有
+放著 放着
+放著作      放著作
+放著名      放著名
+放著稱      放著称
+放著称      放著称
+藉著 借着
+显著 显著
+顯著 显著
+標誌著      标志着
+幹著 干着
+幹著名      幹著名
+幹著稱      幹著称
+穫著 获着
+閒著 闲着
+飃著 飘着
+沈著 沉着
+擡著 抬着
+著甚麽      着什么
+滿著 满着
+滿著名      满著名
+滿著作      满著作
+滿著者      满著者
+衝著 冲着
+沖著 冲着
+沖著《      冲著《
+沖著。      冲著。
+沖著,      冲著,
+繫著 系着
+颳著 刮着
+鬥著 斗着
+象徵著      象征着
+象徵著名   象征著名
+三十六著   三十六着
+走為上著   走为上着
 記憶體      内存
-預設 默认
-串列 串行
-串列加速器        串列加速器
 乙太網      以太网
 點陣圖      位图
-常式 例程
-光碟 光盘
 光碟機      光驱
-全形 全角
-載入 加载
-半形 半角
-變數 变量
 雜訊 噪声
-因數 因子
 功能變數名稱     域名
 音效卡      声卡
 字型大小   字号
 字型檔      字库
 欄位 字段
-字元 字符
-字元济      字元济
-字元濟      字元济
-字元会      字元会
-字元會      字元会
-存檔 存盘
-定址 寻址
-章節附註   尾注
 非同步      异步
 匯流排      总线
-括弧 括号
-介面 接口
+介面 界面
 控制項      控件
-許可權      权限
-碟片 盘片
 矽片 硅片
 矽谷 硅谷
 硬碟 硬盘
 磁碟 磁盘
 磁軌 磁道
 程式控制   程控
-遠程控制   远程控制
-远程控制   远程控制
 運算元      算子
 演算法      算法
 晶片 芯片
 晶元 芯片
 片語 词组
 軟碟機      软驱
-快閃記憶體        快闪存储器
+快閃記憶體        闪存
 滑鼠 鼠标
 滑鼠蛇      滑鼠蛇
 二進位      二进制
 滿八進位   满八进位
 十進位      十进制
 滿十進位   满十进位
-16進位       16进
+16進位       16进
 滿16進位    满16进位
 二進位制   二进位制
 六進位制   六进位制
 16進位制    16进位制
 互動式      交互式
 優先順序   优先级
-感測 传感
 攜帶型      便携式
 資訊理論   信息论
 迴圈 循环
-防寫 写保护
 解析度      分辨率
 伺服器      服务器
-等於 等于
 區域網      局域网
 巨集 宏
-掃瞄器      扫
+掃瞄器      扫
 寬頻 宽带
 資料庫      数据库
-萬曆 万历
-永曆 永历
-辭彙 词汇
 母音 元音
-字母 字母
-頭槌 头球
-進球 入球
-顆進球      粒入球
-射門 打门
-蓋火鍋      火锅盖帽
 印表機      打印机
-打印機      打印机
 位元組      字节
-字節 字节
 列印 打印
-打印 打印
 硬體 硬件
 二極體      二极管
-二極管      二极管
 三極體      三极管
-三極管      三极管
 軟體 软件
-軟件 软件
+軟體動物   软体动物
+軟體家具   软体家具
 網路 网络
-網絡 网络
 人工智慧   人工智能
 太空梭      航天飞机
 穿梭機      航天飞机
 網際網路   互联网
-互聯網      互联网
 機械人      机器人
-機器人      机器人
 行動電話   移动电话
 流動電話   移动电话
-調制解調器        调制解调器
 數據機      调制解调器
-短訊 短信
-簡訊 短信
 烏茲別克   乌兹别克斯坦
 葉門 也门
-伯利茲      伯利兹
 貝里斯      伯利兹
 維德角      佛得角
 克羅埃西亞        克罗地亚
 衣索比亞   埃塞俄比亚
 吉里巴斯   基里巴斯
 塔吉克      塔吉克斯坦
+塔吉克斯坦        塔吉克斯坦
 塞拉利昂   塞拉利昂
 塞普勒斯   塞浦路斯
 塞席爾      塞舌尔
-多米尼克   多米尼加国
 安地卡及巴布達  安提瓜和巴布达
-尼日利亞   尼日利亚
-尼日利亚   尼日利亚
 奈及利亞   尼日利亚
 尼日爾      尼日尔
-尼日尔      尼日尔
 巴貝多      巴巴多斯
 巴布亞紐幾內亞  巴布亚新几内亚
-布基納法索        布基纳法索
 布吉納法索        布基纳法索
 蒲隆地      布隆迪
 帛琉 帕劳
 辛巴威      津巴布韦
 宏都拉斯   洪都拉斯
 千里達托貝哥     特立尼达和托巴哥
-諾魯 瑙鲁
 萬那杜      瓦努阿图
 溫納圖      瓦努阿图
 葛摩 科摩罗
 象牙海岸   科特迪瓦
 突尼西亞   突尼斯
-索馬利亞   索马里
 寮國 老挝
-肯雅 肯尼亚
-肯亞 肯尼亚
 蘇利南      苏里南
 莫三比克   莫桑比克
 賴索托      莱索托
-貝南 贝宁
 尚比亞      赞比亚
 亞塞拜然   阿塞拜疆
 阿拉伯聯合大公國       阿拉伯联合酋长国
 馬爾地夫   马尔代夫
 馬爾他      马耳他
 馬利共和國        马里共和国
-即食麵      方便面
-快速面      方便面
-速食麵      方便面
-泡麵 方便面
 笨豬跳      蹦极跳
 绑紧跳      蹦极跳
-冷盤 凉菜
-冷菜 凉菜
-散钱 零钱
-谐星 笑星
-夜学 夜校
-华乐 民乐
-中樂 民乐
-軍中樂園    军中乐园
-华乐街      华乐街
-屋价 房价
-計程車      出租车
-單車 自行车
-節慶 节日
-芝士 乾酪
 狗隻 犬只
 士多啤梨   草莓
 忌廉 奶油
-桌球 台球
 撞球 台球
-衞生 卫生
-衛生 卫生
 賓士 奔驰
-平治 奔驰
-平治之亂   平治之乱
-平治之乱   平治之乱
 積架 捷豹
-福斯 大众
-福士 大众
-萬事得      马自达
-寶獅 标志
-拿破崙      拿破仑
 布殊 布什
-布希 布什
-布希亞      布希亚
-布希亚      布希亚
 柯林頓      克林顿
-海珊 侯赛因
-梵谷 凡高
-大衛碧咸   大卫·贝克汉姆
-米高奧雲   迈克尔·欧文
-卡佩雅蒂   珍妮弗·卡普里亚蒂
-沙芬 马拉特·萨芬
-舒麥加      迈克尔·舒马赫
+梵谷 梵高
+碧咸 贝克汉姆
+米高·奧雲 迈克尔·欧文
+卡佩雅蒂   卡普里亚蒂
+舒麥加      舒马赫
 希特拉      希特勒
 黛安娜      戴安娜
-榴槤 榴莲
-榴梿 榴莲
-矽    硅
-矽肺 矽肺
-矽塵 矽尘
-矽尘 矽尘
-矽鋼 矽钢
-矽钢 矽钢
-侏儸紀      侏罗纪
-甚麽 什么
-甚麼 什么
+雷諾瓦      雷诺阿
+達文西      达芬奇
+達·文西    达·芬奇
+辛康納利   肖恩·康纳利
+維根斯坦   维特根斯坦
+索忍尼辛   索尔仁尼琴
+索贊尼辛   索尔仁尼琴
+蘇辛尼津   索尔仁尼琴
+皮雅斯·布士南   皮尔斯·布鲁斯南
+甘迺迪      肯尼迪
+梅赫西迪   梅赛德斯
+李奧納多   列奥那多
+普利茲      普利策
+戈巴契夫   戈尔巴乔夫
+德希達      德里达
+席哈克      希拉克
+蘿拉 劳拉
+史達林      斯大林
+史特勞斯   斯特劳斯
+卡斯楚      卡斯特罗
+占士邦      詹姆斯·邦德
+傅利葉      傅里叶
+伊莉莎白   伊丽莎白
+派屈克      帕特里克
+蒲美蓬      普密蓬
+畢卡索      毕加索
+蒲朗克      普朗克
+薛丁格      薛定谔
+克卜勒      开普勒
+都卜勒      多普勒
+邱吉爾      丘吉尔
+狄托 铁托
+查維茲      查韦斯
+班傑明      本杰明
+柯德莉·夏萍      奥黛丽·赫本
+華勒沙      瓦文萨
+華里沙      瓦文萨
+歐巴馬      奥巴马
+北韓 北朝鲜
+寮人民民主共和國       老挝人民民主共和国
+寮語 老挝语
+蘭卡威      浮罗交怡
+雷伊泰灣   莱特湾
+耶加達      雅加达
+伊斯蘭瑪巴德     伊斯兰堡
+喀拉蚩      卡拉奇
+葉里溫      埃里温
+提比里西   第比利斯
+巴斯拉      巴士拉
+杜拜 迪拜
+賽普勒斯   塞浦路斯
+荷姆茲      霍尔木兹
+加薩走廊   加沙地带
+西臺人      赫梯人
+西臺族      赫梯族
+西臺文      赫梯文
+西臺語      赫梯语
+西臺王      赫梯王
+西臺國      赫梯国
+西臺帝      赫梯帝
+坎培拉      堪培拉
+玻里尼西亞        波利尼西亚
+紐幾內亞   新几内亚
+強斯頓環礁        约翰斯顿岛
+帕邁拉環礁        巴尔米拉环礁
+萌島 马恩岛
+伯明罕      伯明翰
+威爾斯      威尔士
+諾曼第      诺曼底
+土魯斯      图卢兹
+坎城 戛纳
+羅亞爾      卢瓦尔
+艾菲爾      埃菲尔
+羅浮宮      卢浮宫
+安哈特      安哈尔特
+布蘭登堡   勃兰登堡
+什勒斯維希        石勒苏益格
+霍爾斯坦   荷尔斯泰因
+前波莫瑞   前波美拉尼亚
+威斯伐倫   威斯特法伦
+德勒斯登   德累斯顿
+杜塞道夫   杜塞尔多夫
+漢諾瓦      汉诺威
+柏林圍牆   柏林墙
+巴塞隆拿   巴塞罗那
+巴塞隆納   巴塞罗那
+西維爾      塞维利亚
+塞維亞      塞维利亚
+華倫西亞   巴伦西亚
+瓦倫西亞   巴伦西亚
+雅爾達      雅尔塔
+車諾比      切尔诺贝利
+馬斯垂克   马斯特里赫特
+波士尼亞   波斯尼亚
+塞拉耶佛   萨拉热窝
+貝爾格勒   贝尔格莱德
+蒙特內哥羅        黑山
+塞爾維亞與蒙特內哥羅 塞尔维亚和黑山
+伊斯坦堡   伊斯坦布尔
+庇里牛斯   比利牛斯
+亞斯文      阿斯旺
+厄立特里亞        厄立特里亚
+厄利垂亚   厄立特里亚
+亞歷山卓   亚历山大
+雅穆索戈   亚穆苏克罗
+畿內亞      几内亚
+索馬利蘭   索马里兰
+吉力馬札羅        乞力马扎罗
+索馬利亞   索马里
+金夏沙      金沙萨
+三蘭港      达累斯萨拉姆
+布隆泉      布隆方丹
+馬拉威      马拉维
+百慕達      百慕大
+三藩市      旧金山
+荷里活      好莱坞
+麻薩諸塞   马萨诸塞
+伊利諾      伊利诺伊
+伊利諾伊   伊利诺伊
+密执安      密歇根
+密西根      密歇根
+紐澤西      新泽西
+蒙特婁      蒙特利尔
+滿地可      蒙特利尔
+千里達及托巴哥  特立尼达和多巴哥
+千里達      特立尼达
+托巴哥      多巴哥
+多明尼加   多米尼加
+頻寬 带宽
+數位相機   数码相机
+單眼相機   单反相机
+單鏡反光機        单反相机
+韌體 固件
+唯讀 只读
+作業系統   操作系统
+外掛程式   插件
+電晶體      晶体管
+顯示卡      显卡
+主機板      主板
+網際網絡   互联网
+原始碼      源代码
+螢幕 屏幕
+螢屏 荧屏
+解像度      分辨率
+IP位址       IP地址
+IP 位址      IP 地址
+程式設計師        程序员
+公尺 米
+公升 升
+英吋 英寸
+英呎 英尺
+高畫質      高清
+飛彈 导弹
+電視影集   电视系列剧
+原子筆      圆珠笔
+智慧卡      智能卡
+鐵達尼號   泰坦尼克号
+轉殖 克隆
+空中巴士   空中客车
+電視劇集   电视剧
+狂牛症      疯牛病
+結他 吉他
+了結他      了结他
+連結他      连结他
+已開發國家        发达国家
+太空飛行員        宇航员
+太空衣      宇航服
+外部連結   外部链接
+網站連結   网站链接
+網頁連結   网页链接
+超連結      超链接
+動畫影集   系列动画片
+全球資訊網        万维网
+伊波拉      埃博拉
+C肝   丙肝
+C型肝炎     丙型肝炎
+B肝   乙肝
+B型肝炎     乙型肝炎
+A肝   甲肝
+A型肝炎     甲型肝炎
+錄影帶      录像带
+音樂錄影帶        音乐录影带
+健力士世界紀錄  吉尼斯世界纪录
+金氏世界紀錄     吉尼斯世界纪录
+祖雲達斯   尤文图斯
+若且唯若   当且仅当
+山葉 雅马哈
+複製人      克隆人
+白朗寧      勃朗宁
+形上學      形而上学
+藍芽 蓝牙
+槍枝 枪支
+掃瞄 扫描
+愛滋 艾滋
+正體中文   繁体中文
+智慧財產權        知识产权
+智財權      知识产权
+哥德式      哥特式
+芮氏0        里氏0
+芮氏1        里氏1
+芮氏2        里氏2
+芮氏3        里氏3
+芮氏4        里氏4
+芮氏5        里氏5
+芮氏6        里氏6
+芮氏7        里氏7
+芮氏8        里氏8
+芮氏9        里氏9
+芮氏規模   里氏震级
+芮氏地震規模     里氏地震规模
+黎克特制   里氏
+機率 概率
+行政總裁   首席执行官
+執行長,   首席执行官,
+執行長、   首席执行官、
+執行長。   首席执行官。
+財務長,   首席财务官,
+財務長、   首席财务官、
+財務長。   首席财务官。
+營運長,   首席运营官,
+營運長、   首席运营官、
+營運長。   首席运营官。
+智慧型      智能
+智慧手機   智能手机
+可攜式      便携式
+電腦程式   计算机程序
+應用程式   应用程序
+雷射 激光
+尖峰時間   高峰时间
+尖峰時段   高峰时段
+咖哩 咖喱
+東協 东盟
+亚细安      东盟
+大英國協   英联邦
+共和联邦   英联邦
+阿布達比   阿布扎比
+蓋曼群島   开曼群岛
+柴契爾      撒切尔       
+戴卓爾      撒切尔
+凱薩琳      凯瑟琳
+嘉芙蓮      凯瑟琳
+孟德爾頌   门德尔松
+孟德爾遜   门德尔松
+蕭士塔高維奇     肖斯塔科维奇
+蕭士達高維契     肖斯塔科维奇
+工具機      机床
+空氣品質   空气质量
+空氣質素   空气质量
+伏地挺身   俯卧撑
+掌上壓      俯卧撑
+數位電視   数字电视
+數碼電視   数字电视
+數位技術   数字技术
+數碼技術   数字技术
+數位訊號   数字信号
+數碼訊號   数字信号
+行動網路   移动网络
+流動網絡   移动网络
+咪高峰      麦克风
+幫浦 泵
+電單車      摩托车
+演化論      进化论
+搜尋引擎   搜索引擎
+福馬林      福尔马林
+海洛英      海洛因
+赫魯雪夫   赫鲁晓夫
+公厘 毫米
+公釐 毫米
+海浬 海里
+森巴舞      桑巴舞
+喬治·歐威爾      乔治·奥威尔
+西元1        公元1
+西元2        公元2
+西元3        公元3
+西元4        公元4
+西元5        公元5
+西元6        公元6
+西元7        公元7
+西元8        公元8
+西元9        公元9
+西元前      公元前
+翁山蘇姬   昂山素季
+昂山素姬   昂山素季
+西洋棋      囯际象棋
+私隱 隐私
\ No newline at end of file
index 1f7fe7d..c31d232 100644 (file)
-”    」
-“    「
-‘    『
-’    』
+裡    裏
 鉤    鈎
-衛    衞
+檯    枱
+臥    卧
+醯    酰
+菸    煙
+汙    污
+溼    濕
+硅    矽
+計畫 計劃
+吧台 吧枱
+坐台 坐枱
+妆台 妝枱
+弹珠台      彈珠枱
+折台 摺枱
+台布 枱布
+台历 枱曆
+台灯 枱燈
+写字台      寫字枱
+工作台      工作枱
+弹子台      彈子枱
+台面上      枱面上
+柜台 櫃枱
+球台 球枱
+赌台 賭枱
+办公台      辦公枱
+餐台 餐枱
 凶殺 兇殺
 凶殘 兇殘
+凶惡 兇惡
 緝凶 緝兇
 買凶 買兇
-印表機      打印機
-字节 位元組
-字節 位元組
-列印 打印
-硬件 硬件
-硬體 硬件
-二極體      二極管
-三極體      三極管
-軟體 軟件
-網路 網絡
-人工智慧   人工智能
-航天飞机   穿梭機
-太空梭      穿梭機
-因特网      互聯網
-網際網路   互聯網
-机器人      機械人
-機器人      機械人
-移动电话   流動電話
-行動電話   流動電話
-數據機      調制解調器
-短信 短訊
-簡訊 短訊
-查德 乍得
-葉門 也門
-貝里斯      伯利茲
-維德角      佛得角
-克羅埃西亞        克羅地亞
-甘比亞      岡比亞
-幾內亞比索        幾內亞比紹
-列支敦斯登        列支敦士登
-賴比瑞亞   利比里亞
-迦納 加納
-加彭 加蓬
-波札那      博茨瓦納
-盧安達      盧旺達
-瓜地馬拉   危地馬拉
-厄瓜多尔   厄瓜多爾
-厄瓜多爾   厄瓜多爾
-厄瓜多      厄瓜多爾
-厄利垂亞   厄立特里亞
-吉布地      吉布堤
-哥斯大黎加        哥斯達黎加
-吐瓦魯      圖瓦盧
-聖露西亞   聖盧西亞
-圣基茨和尼维斯  聖吉斯納域斯
-聖克里斯多福及尼維斯 聖吉斯納域斯
-聖文森及格瑞那丁       聖文森特和格林納丁斯
-聖馬利諾   聖馬力諾
-蓋亞那      圭亞那
-坦尚尼亞   坦桑尼亞
-衣索匹亞   埃塞俄比亞
-衣索比亞   埃塞俄比亞
-吉里巴斯   基里巴斯
-塞普勒斯   塞浦路斯
-塞席爾      塞舌爾
-安地卡及巴布達  安提瓜和巴布達
-尼日利亚   尼日利亞
-尼日利亞   尼日利亞
-奈及利亞   尼日利亞
-尼日尔      尼日爾
-尼日爾      尼日爾
-尼日 尼日爾
-巴貝多      巴巴多斯
-巴布亞紐幾內亞  巴布亞新畿內亞
-布吉納法索        布基納法索
-蒲隆地      布隆迪
-帕劳 帛琉
-義大利      意大利
-索羅門群島        所羅門群島
-文莱 汶萊
-史瓦濟蘭   斯威士蘭
-斯洛維尼亞        斯洛文尼亞
-紐西蘭      新西蘭
-格瑞那達   格林納達
-茅利塔尼亞        毛里塔尼亞
-毛里求斯   毛里裘斯
-模里西斯   毛里裘斯
-沙地阿拉伯        沙特阿拉伯
-沙烏地阿拉伯     沙特阿拉伯
-波士尼亞赫塞哥維納    波斯尼亞黑塞哥維那
-辛巴威      津巴布韋
-宏都拉斯   洪都拉斯
-千里達托貝哥     特立尼達和多巴哥
-諾魯 瑙魯
-萬那杜      瓦努阿圖
-葛摩 科摩羅
-索馬利亞   索馬里
-寮國 老撾
-肯尼亚      肯雅
-肯亞 肯雅
-莫三比克   莫桑比克
-賴索托      萊索托
-貝南 貝寧
-尚比亞      贊比亞
-亞塞拜然   阿塞拜疆
-阿拉伯聯合大公國       阿拉伯聯合酋長國
-馬爾地夫   馬爾代夫
-馬利共和國        馬里共和國
-方便面      即食麵
-快速面      即食麵
-速食麵      即食麵
-泡麵 即食麵
-土豆 馬鈴薯
-土豆网      土豆網
-土豆網      土豆網
-华乐 中樂
-民乐 中樂
-計程車      的士
-出租车      的士
-公車 巴士
-公車上書   公車上書
-自行车      單車
-犬只 狗隻
-台球 桌球
-撞球 桌球
-冰淇淋      雪糕
-賓士 平治
-捷豹 積架
-福斯 福士
-雪铁龙      先進
-雪鐵龍      先進
-沃尓沃      富豪
-马自达      萬事得
-馬自達      萬事得
-寶獅 標致
-布什 布殊
-布希 布殊
-布希亞      布希亞
-布希亚      布希亞
-柯林頓      克林頓
-萨达姆      薩達姆
-海珊 侯賽因
-大卫·贝克汉姆   大衛碧咸
-迈克尔·欧文      米高奧雲
-珍妮弗·卡普里亚蒂     卡佩雅蒂
-马拉特·萨芬      沙芬
-迈克尔·舒马赫   舒麥加
-希特勒      希特拉
-狄安娜      戴安娜
-黛安娜      戴安娜
 颁布 頒佈
 頒布 頒佈
+发布 發佈
+發布 發佈
+秀发布      秀發佈
+并发布      並發佈       
+分布 分佈
+宣布 宣佈
+公布 公佈
+摆布 擺佈
+擺布 擺佈
+遍布 遍佈
+散布 散佈
+密布 密佈
+布于 佈於
+布於 佈於
+布道 佈道
+布置 佈置
+布景 佈景
+布光 佈光
+布局 佈局
+布防 佈防
+布施 佈施
+布满 佈滿
+布滿 佈滿
+布告 佈告
+布阵 佈陣
+布陣 佈陣
+布点 佈點
+布點 佈點
+布警 佈警
+布控 佈控
+布设 佈設
+布設 佈設
+布展 佈展
+布下了      佈下了
+布下的      佈下的
+星罗棋布   星羅棋佈
+星羅棋布   星羅棋佈
+开诚布公   開誠佈公
+開誠布公   開誠佈公
+空投布雷   空投佈雷
+火箭布雷   火箭佈雷
+海湾布雷   海灣佈雷
+海灣布雷   海灣佈雷
+空中布雷   空中佈雷
+海上布雷   海上佈雷
+布雷的      佈雷的
+布雷,      佈雷,
+布雷、      佈雷、
+布雷。      佈雷。
+布雷;      佈雷;
+布雷舰      佈雷艦
+布雷艦      佈雷艦
+布雷艇      佈雷艇
+布雷速度   佈雷速度
+布雷封锁   佈雷封鎖
+布雷封鎖   佈雷封鎖
+准将 準將
+准將 準將
+准尉 準尉
+迭代 疊代
+彩排 綵排
+彩带 綵帶
+彩帶 綵帶
+彩楼 綵樓
+彩樓 綵樓
+彩牌楼      綵牌樓
+彩牌樓      綵牌樓
+彩球 綵球
+彩绸 綵綢
+彩綢 綵綢
+彩线 綵綫
+彩線 綵線
+彩船 綵船
+彩衣 綵衣
+结彩 結綵
+結彩 結綵
+戏彩娱亲   戲綵娛親
+戲彩娛親   戲綵娛親
+剪彩 剪綵
+占上风      佔上風
+占上風      佔上風
+占下 佔下
+占位 佔位
+占住 佔住
+占占 佔佔
+占便宜      佔便宜
+占个 佔個
+占個 佔個
+占先 佔先
+占光 佔光
+占到 佔到
+占取 佔取
+占在 佔在
+占地 佔地
+占好 佔好
+占得 佔得
+占掉 佔掉
+占据 佔據
+占據 佔據
+占有 佔有
+占满 佔滿
+占滿 佔滿
+占为 佔為
+占為 佔為
+占用 佔用
+占毕 佔畢
+占畢 佔畢
+占尽 佔盡
+占盡 佔盡
+占线 佔線
+占線 佔線
+占起 佔起
+占过 佔過
+占過 佔過
+占领 佔領
+占領 佔領
+占头筹      佔頭籌
+占頭籌      佔頭籌
+占高枝      佔高枝
+侵占 侵佔
+先占 先佔
+分占 分佔
+只占 只佔
+强占 強佔
+強占 強佔
+抢占 搶佔
+搶占 搶佔
+攻占 攻佔
+照占 照佔
+约占 約佔
+約占 約佔
+连占 連佔
+連占 連佔
+进占 進佔
+進占 進佔
+还占 還佔
+還占 還佔
+隐占 隱佔
+隱占 隱佔
+霸占 霸佔
+鸠占 鳩佔
+鳩占 鳩佔
+割占 割佔
+非占不可   非佔不可
+占1   佔1
+占2   佔2
+占3   佔3
+占4   佔4
+占5   佔5
+占6   佔6
+占7   佔7
+占8   佔8
+占9   佔9
+占0   佔0
+占零 佔零
+占〇 佔〇
+占一 佔一
+占二 佔二
+占两 佔兩
+占兩 佔兩
+占三 佔三
+占四 佔四
+占五 佔五
+占六 佔六
+占七 佔七
+占八 佔八
+占九 佔九
+占十 佔十
+占百 佔百
+占千 佔千
+占万 佔萬
+占萬 佔萬
+占亿 佔億
+占億 佔億
+占超过      佔超過
+占超過      佔超過
+占不足      佔不足
+占至少      佔至少
+占少 佔少
+占至多      佔至多
+占半 佔半
+占多 佔多
+占大 佔大
+占小 佔小
+占中 佔中
+占东 佔東
+占東 佔東
+占西 佔西
+占南 佔南
+占北 佔北
+占平均      佔平均
+占总 佔總
+占總 佔總
+独占 獨佔
+獨占 獨佔
+所占 所佔
+市占 市佔
+占率 佔率
+占市 佔市
+占世界      佔世界
+占全 佔全
+占国 佔國
+占國 佔國
+占国桥      占國橋
+占國橋      占國橋
+占美 佔美
+占台 佔台
+占臺 佔臺
+占香 佔香
+占澳 佔澳
+占加 佔加
+占新 佔新
+占马 佔馬
+占馬 佔馬
+占印 佔印
+占英 佔英
+占法 佔法
+占德 佔德
+占葡 佔葡
+占俄 佔俄
+占苏 佔蘇
+占蘇 佔蘇
+占缺 佔缺
+占A   佔A
+占B   佔B
+占C   佔C
+占D   佔D
+占E   佔E
+占F   佔F
+占G   佔G
+占H   佔H
+占I   佔I
+占J   佔J
+占K   佔K
+占L   佔L
+占M   佔M
+占N   佔N
+占O   佔O
+占P   佔P
+占Q   佔Q
+占R   佔R
+占S   佔S
+占T   佔T
+占U   佔U
+占V   佔V
+占W   佔W
+占X   佔X
+占Y   佔Y
+占Z   佔Z
+占不占      佔不佔
+不占 不佔
+占了 佔了
+占资 佔資
+占資 佔資
+占人便宜   佔人便宜
+占主要      佔主要
+占所有      佔所有
+占头 佔頭
+占頭 佔頭
+占道 佔道
+占屋 佔屋
+占网 佔網
+占網 佔網
+占床 佔床
+占座 佔座
+占分 佔分
+占个位      佔個位
+占個位      佔個位
+占後 佔後
+占山为      佔山為
+占山為      佔山為
+占比 佔比
+占下風      佔下風
+占下风      佔下風
+少占 少佔
+多占 多佔
+费占 費佔
+費占 費佔
+占查 佔查
+占压 佔壓
+占壓 佔壓
+占优 佔優
+占優 佔優
+占劣 佔劣
+稳占 穩佔
+穩占 穩佔
+占整 佔整
+占局部      佔局部
+日占 日佔
+美占 美佔
+英占 英佔
+德占 德佔
+法占 法佔
+俄占 俄佔
+葡占 葡佔
+西占 西佔
+奥占 奧佔
+奧占 奧佔
+意占 意佔
+義占 意佔
+地占 地佔
+占场 佔場
+占場 佔場
+占耕 佔耕
+狂占 狂佔
+征占 徵佔
+徵占 徵佔
+圈占 圈佔
+已占 已佔
+占囁 佔囁
+占主 佔主
+占次 佔次
+寡占 寡佔
+占去 佔去
+将占 將佔
+將占 將佔
+将占卜      將占卜
+將占卜      將占卜
+要占 要佔
+要占卜      要占卜
+会占 會佔
+會占 會佔
+会占卜      會占卜
+會占卜      會占卜
+占卜 占卜
+梦有五不占        夢有五不占
+夢有五不占        夢有五不占
+占有五不   占有五不
+吞占 吞佔
+一地里      一地裏
+一年里      一年裏
+中文里      中文裏
+事里 事裏
+井里 井裏
+作品里      作品裏
+个里 個裏
+假里 假裏
+傻里傻气   傻裏傻氣
+丛林里      叢林裏
+口里 口裏
+吃里扒外   吃裏扒外
+吃里爬外   吃裏爬外
+呆里呆气   呆裏呆氣
+哪里 哪裏
+嘴里 嘴裏
+圈里 圈裏
+园里 園裏
+土里 土裏
+坑里 坑裏
+城里 城裏
+域里 域裏
+场里 場裏
+壶里 壺裏
+夜里 夜裏
+梦里 夢裏
+天里 天裏
+子里 子裏
+字里行间   字裏行間
+学里 學裏
+宫里 宮裏
+家里 家裏
+宝里宝气   寶裏寶氣
+封面里      封面裏
+专辑里      專輯裏
+就里 就裏
+局里 局裏
+屋里 屋裏
+屯里 屯裏
+巷里 巷裏
+市里 市裏
+年代里      年代裏
+年里 年裏
+店里 店裏
+庙里 廟裏
+往里 往裏
+从里到外   從裏到外
+从里向外   從裏向外
+心里面      心裏面
+心里 心裏
+忙里 忙裏
+怪里怪气   怪裏怪氣
+慌里慌张   慌裏慌張
+怀里 懷裏
+戏里 戲裏
+房里 房裏
+手里 手裏
+手里剑      手裏劍
+族里 族裏
+日里 日裏
+暗地里      暗地裏
+暗沟里      暗溝裏
+暗里 暗裏
+会里 會裏
+村里 村裏
+森林里      森林裏
+棺材里      棺材裏
+树林里      樹林裏
+历史里      歷史裏
+死里求生   死裏求生
+死里逃生   死裏逃生
+壳里 殼裏
+水来汤里去        水來湯裏去
+水里 水裏
+池里 池裏
+沙里淘金   沙裏淘金
+河里 河裏
+洞里 洞裏
+渊里 淵裏
+湖里 湖裏
+漠里 漠裏
+潜意识里   潛意識裏
+潭里 潭裏
+墙里 牆裏
+狱里 獄裏
+班里 班裏
+田里 田裏
+由表及里   由表及裏
+界里 界裏
+白里透红   白裏透紅
+百科里      百科裏
+皮里春秋   皮裏春秋
+皮里阳秋   皮裏陽秋
+盒里 盒裏
+盘里 盤裏
+眼眶里      眼眶裏
+眼睛里      眼睛裏
+眼里 眼裏
+社里 社裏
+私下里      私下裏
+窝里 窩裏
+笑里藏刀   笑裏藏刀
+箱里 箱裏
+节目里      節目裏
+糊里糊涂   糊裏糊塗
+系列里      系列裏
+系里 系裏
+组里 組裏
+网里 網裏
+县里 縣裏
+缝里 縫裏
+肚里 肚裏
+胃里 胃裏
+背地里      背地裏
+胡里胡涂   胡裏胡塗
+腰里 腰裏
+花盆里      花盆裏
+苑里 苑裏
+苦里 苦裏
+草丛里      草叢裏
+庄里 莊裏
+葫芦里卖甚么药  葫蘆裏賣甚麼藥
+蜜里调油   蜜裏調油
+表里 表裏
+表里一致   表裏一致
+表里不一   表裏不一
+表里如一   表裏如一
+表里山河   表裏山河
+袋里 袋裏
+袖里 袖裏
+被里 被裏
+里勾外连   裏勾外連
+里手 裏手
+里海 裏海
+里屋 裏屋
+里层 裏層
+里带 裏帶
+里弦 裏弦
+里应外合   裏應外合
+里脊 裏脊
+里衣 裏衣
+里通外国   裏通外國
+里通外敌   裏通外敵
+里边 裏邊
+里间 裏間
+里面 裏面
+里面包      裏面包
+里头 裏頭
+衬里 襯裏
+角落里      角落裏
+话里有话   話裏有話
+车库里      車庫裏
+车站里      車站裏
+车里 車裏
+车里雅宾斯克     車里雅賓斯克
+这里 這裏
+邋里邋遢   邋裏邋遢
+那里 那裏
+金装玉里   金裝玉裏
+钟在寺里   鐘在寺裏
+门里 門裏
+间里 間裏
+院里 院裏
+阴沟里翻船        陰溝裏翻船
+集里 集裏
+鸡蛋里挑骨头     雞蛋裏挑骨頭
+雪里 雪裏
+雾里 霧裏
+鞋里 鞋裏
+鞭辟入里   鞭辟入裏
+头里 頭裏
+风里 風裏
+馆里 館裏
+点里 點裏
+点里程      點里程
+鼓里 鼓裏
+世纪里      世紀裏
+夜晚里      夜晚裏
+参数里      參數裏
+集数里      集數裏
+人数里      人數裏
+总数里      總數裏
+函数里      函數裏
+地图里      地圖裏
+版图里      版圖裏
+配图里      配圖裏
+路图里      路圖裏
+线图里      線圖裏
+幅图里      幅圖裏
+镜图里      鏡圖裏
+从图里      從圖裏
+的图里      的圖裏
+图里的      圖裏的
+图里,      圖裏,
+深山里      深山裏
+冰山里      冰山裏
+火山里      火山裏
+在山里      在山裏
+的山里      的山裏
+到山里      到山裏
+去山里      去山裏
+从山里      從山裏
+山里的      山裏的
+山里有      山裏有
+棉里 棉裏
+语里 語裏
+方法里      方法裏
+语法里      語法裏
+看法里      看法裏
+宪法里      憲法裏
+用法里      用法裏
+法里,      法裏,
+苑裡 苑裡
+霄裡 霄裡
+岸裡 岸裡
+裡冷 裡冷
 挨著 挨着
 愛著 愛着
 暗著 暗着
 定著 定着
 動著 動着
 鬥著 鬥着
+斗着 鬥着
 獨著 獨着
 對著 對着
 盾著 盾着
 揮著 揮着
 活著 活着
 獲著 獲着
-獲著 獲着
 急著 急着
 記著 記着
 冀著 冀着
 叫著 叫着
 接著 接着
 借著 借着
-借著 借着
 據著 據着
 開著 開着
 看得著      看得着
 潤著 潤着
 燒著 燒着
 身著 身着
-沉著 沉着
 盛著 盛着
 試著 試着
 守著 守着
 在著 在着
 紮著 紮着
 展著 展着
+占着 佔着
+占著 佔着
+占著作      占著作
+占著者      佔著者
+占著名      佔著名
+占著述      占著述
+占著稱      占著稱
+占著錄      占著錄
 站著 站着
 戰著 戰着
 蘸著 蘸着
 爭著 爭着
 掙著 掙着
 制著 制着
-志著 志着
+標志著      標志着
 皺著 皺着
 住著 住着
 抓著 抓着
 寫著 寫着
 遇著 遇着
 殺著 殺着
+驶著 驶着
 著筆 着筆
 著鞭 着鞭
 著法 着法
 著妳 着妳
 著你 着你
 著色 着色
-著什麼急   着什麼急
+著什 着什
 著實 着實
 著手 着手
 著數 着數
 著衣 着衣
 著意 着意
 著重 着重
-著重 着重
 著裝 着裝
 著地 着地
 不著邊際   不着邊際
 獲著稱      獲著稱
 獲著錄      獲著錄
 獲著書      獲著書
-獲著作      獲著作
-獲著者      獲著者
-獲著名      獲著名
-獲著述      獲著述
-獲著稱      獲著稱
-獲著錄      獲著錄
-獲著書      獲著書
 急著作      急著作
 急著者      急著者
 急著名      急著名
 借著稱      借著稱
 借著錄      借著錄
 借著書      借著書
-借著作      借著作
-借著者      借著者
-借著名      借著名
-借著述      借著述
-借著稱      借著稱
-借著錄      借著錄
-借著書      借著書
 據著作      據著作
 據著者      據著者
 據著名      據著名
 身著稱      身著稱
 身著錄      身著錄
 身著書      身著書
-沉著作      沉著作
-沉著者      沉著者
-沉著名      沉著名
-沉著述      沉著述
-沉著稱      沉著稱
-沉著錄      沉著錄
-沉著書      沉著書
 盛著作      盛著作
 盛著者      盛著者
 盛著名      盛著名
 因著稱      因著稱
 因著錄      因著錄
 因著書      因著書
+因著《      因著《
+因著〈      因著〈
 印著作      印著作
 印著者      印著者
 印著名      印著名
 殺著書      殺著書
 標誌著      標誌着
 幹著 幹着
+幹著名      幹著名
+幹著稱      幹著稱
 干着 幹着
 干着急      干着急
 流露著      流露着
 靠著称      靠著稱
 靠著者      靠著者
 靠著述      靠著述
-新著龍虎門        新著龍虎門
 迫著 迫着
-心繫著      心繫着
+繫著 繫着
 藉著 藉着
 吃得著      吃得着
 吃不著      吃不着
 嗅不著      嗅不着
 嗅著 嗅着
 警戒著      警戒着
+過著 過着
+過著作      當著作
+過著者      當著者
+過著名      當著名
+過著述      當著述
+過著稱      當著稱
+過著錄      當著錄
+過著書      當著書
+穫著 穫着
+閒著 閒着
+飃著 飃着
+沈著 沈着
+竪著 竪着
+擡著 擡着
+沖著 沖着
+沖著《      沖著《
+沖著。      沖著。
+沖著,      沖著,
+衝著 衝着
+著甚麽      着甚麽
+存著 存着
+存著名      存著名
+劃著 劃着
+別著 別着
+刮著 刮着
+掛著 掛着
+吊著 吊着
+回著 回着
+回著名      回著名
+塗著 塗着
+麼著 麼着
+擔著 擔着
+負著 負着
+板著臉      板着臉
+為著 為着
+為著作      為著作
+為著名      為著名
+為著錄      為著錄
+為著稱      為著稱
+為著者      為著者
+為著述      為著述
+為著《      為著《
+畫著 畫着
+畫著作      畫著作
+畫著名      畫著名
+畫著稱      畫著稱
+畫著者      畫著者
+發著 發着
+發著作      發著作
+發著名      發著名
+發著稱      發著稱
+發著者      發著者
+發著《      發著《
+簽著 簽着
+繃著 繃着
+覆著 覆着
+蓋著 蓋着
+說著 說着
+說著作      說著作
+說著稱      說著稱
+說著者      說著者
+說著述      說著述
+象徵著      象著着
+象徵著名   象徵著名
+湊合著      湊合着
+配合著      配合着
+配合著名   配合著名
+關係著      關係着
+下著 下着
+下著作      下著作
+下著名      下著名
+下著录      下著錄
+下著錄      下著錄
+下著称      下著稱
+下著稱      下著稱
+下著者      下著者
+下著述      下著述
+下著有      下著有
+放著 放着
+放著作      放著作
+放著名      放著名
+放著稱      放著稱
+放著称      放著稱
+三十六著   三十六着
+走為上著   走為上着
+鬧著 鬧着
+悶著 悶着
+呆著 呆着
+包著 包着
+系着 繫着
+颳著 颳着
 榴莲 榴槤
 榴蓮 榴槤
-发布 發佈
-發布 發佈
-掛鉤 掛鈎
-鉤心鬥角   鈎心鬥角
-咤    咤
 叱吒 叱咤
-叱咤 叱咤
-醯    酰
+嘯吒 嘯咤
 醯醬 醯醬
 醯雞 醯雞
 醯酱 醯醬
 醯醢 醯醢
 醯壶 醯壺
 醯壺 醯壺
-菸    煙
-雪裡紅      雪裏紅
-雪裡蕻      雪裏蕻
-雪里蕻      雪裏蕻
-雪里红      雪裏紅
-森林裡      森林裏
-森林里      森林裏
-日子裡      日子裏
-日子里      日子裏
-故事裡      故事裏
-故事里      故事裏
-領域裡      領域裏
-领域里      領域裏
-時間裡      時間裏
-时间里      時間裏
-深淵裡      深淵裏
-深渊里      深渊裏
-醫院裡      醫院裏
-医院里      医院裏
-春假裡      春假裏
-春假里      春假裏
-暑假裡      暑假裏
-暑假里      暑假裏
-秋假裡      秋假裏
-秋假里      秋假裏
-寒假裡      寒假裏
-寒假里      寒假裏
-春天裡      春天裏
-春天里      春天裏
-夏天裡      夏天裏
-夏天里      夏天裏
-秋天裡      秋天裏
-秋天里      秋天裏
-冬天裡      冬天裏
-冬天里      冬天裏
-春日裡      春日裏
-夏日裡      夏日裏
-秋日裡      秋日裏
-冬日裡      冬日裏
-春日里      春日裏
-夏日里      夏日裏
-秋日里      秋日裏
-冬日里      冬日裏
-嘴裡 嘴裏
-嘴里 嘴裏
-心裡 心裏
-心里 心裏
-皮裡陽秋   皮裏陽秋
-皮里阳秋   皮裏陽秋
-肚裡 肚裏
-肚里 肚裏
-苦裡 苦裏
-苦里 苦裏
-裡勾外連   裏勾外連
-里勾外连   裏勾外連
-裡面 裏面
-里面 裏面
-這裡 這裏
-這里 這裏
-點裡 點裏
-点里 點裏
-中文裡      中文裏
-中文里      中文裏
-山洞里      山洞裏
-山洞裡      山洞裏
-近角聪信   近角聰信
-近角聰信   近角聰信
-世界里      世界裏
-世界裡      世界裏
-眼睛里      眼睛裏
-眼睛裡      眼睛裏
-百科裡      百科裏
-百科里      百科裏
-歷史裡      歷史裏
-历史里      歷史裏
-戲裡 戲裏
-戏里 戲裏
-作品裡      作品裏
-作品里      作品裏
-專輯裡      專輯裏
-专辑里      專輯裏
-年代裡      年代裏
-年代里      年代裏
-棺材裡      棺材裏
-棺材里      棺材裏
-學裡 學裏
-学里 學裏
-獄裡 獄裏
-狱里 獄裏
-館裡 館裏
-馆里 館裏
-系列裡      系列裏
-系列里      系列裏
-村子裡      村子裏
-村子里      村子裏
-分布 分佈
-分布于      分佈於
-分布於      分佈於
 想象 想像
-無線電視   無綫電視
-无线电视   無綫電視
-無線收費   無綫收費
-无线收费   無綫收費
-無線節目   無綫節目
-无线节目   無綫節目
-無線劇集   無綫劇集
-无线剧集   無綫劇集
-東鐵線      東鐵綫
-东铁线      東鐵綫
-觀塘線      觀塘綫
-观塘线      觀塘綫
-荃灣線      荃灣綫
-荃湾线      荃灣綫
-港島線      港島綫
-港岛线      港島綫
-東涌線      東涌綫
-东涌线      東涌綫
-將軍澳線   將軍澳綫
-将军澳线   將軍澳綫
-西鐵線      西鐵綫
-西铁线      西鐵綫
-馬鞍山線   馬鞍山綫
-马鞍山线   馬鞍山綫
-迪士尼線   迪士尼綫
-迪士尼线   迪士尼綫
-沙田至中環線     沙田至中環綫
-沙田至中环线     沙田至中環綫
-沙中線      沙中綫
-沙中线      沙中綫
-北環線      北環綫
-北环线      北環綫
-機場快線   機場快綫
-机场快线   機場快綫
-505線 505綫
-505线 505綫
-507線 507綫
-507线 507綫
-610線 610綫
-610线 610綫
-614線 614綫
-614线 614綫
-614P線        614P綫
-614P线        614P綫
-615線 615綫
-615线 615綫
-615P線        615P綫
-615P线        615P綫
-705線 705綫
-705线 705綫
-706線 706綫
-706线 706綫
-751線 751綫
-751线 751綫
-751P線        751P綫
-751P线        751P綫
-761P線        761P綫
-761P线        761P綫
+係數 系數
+澈底 徹底
+雇员 僱員
+雇用 僱用
+糊口 餬口
+倒楣 倒霉
+径庭 逕庭
+径到 逕到
+径取 逕取
+径入 逕入
+径行 逕行
+径自 逕自
+径往 逕往
+径寄 逕寄
+径启 逕啟
+径迎 逕迎
+印表機      打印機
+字节 位元組
+字節 位元組
+列印 打印
+硬件 硬件
+硬體 硬件
+二極體      二極管
+三極體      三極管
+軟體 軟件
+軟體動物   軟體動物
+軟體家具   軟體家具
+網路 網絡
+人工智慧   人工智能
+航天飞机   穿梭機
+太空梭      穿梭機
+因特网      互聯網
+網際網路   互聯網
+机器人      機械人
+機器人      機械人
+移动电话   流動電話
+行動電話   流動電話
+數據機      調制解調器
+短信 短訊
+簡訊 短訊
+葉門 也門
+貝里斯      伯利茲
+維德角      佛得角
+克羅埃西亞        克羅地亞
+甘比亞      岡比亞
+幾內亞比索        幾內亞比紹
+列支敦斯登        列支敦士登
+賴比瑞亞   利比里亞
+迦納 加納
+加彭 加蓬
+波札那      博茨瓦納
+盧安達      盧旺達
+瓜地馬拉   危地馬拉
+厄瓜多尔   厄瓜多爾
+厄瓜多爾   厄瓜多爾
+厄瓜多      厄瓜多爾
+厄利垂亞   厄立特里亞
+吉布地      吉布堤
+哥斯大黎加        哥斯達黎加
+吐瓦魯      圖瓦盧
+聖露西亞   聖盧西亞
+圣基茨和尼维斯  聖吉斯納域斯
+聖克里斯多福及尼維斯 聖吉斯納域斯
+聖文森及格瑞那丁       聖文森特和格林納丁斯
+聖馬利諾   聖馬力諾
+蓋亞那      圭亞那
+坦尚尼亞   坦桑尼亞
+衣索匹亞   埃塞俄比亞
+衣索比亞   埃塞俄比亞
+吉里巴斯   基里巴斯
+塞普勒斯   塞浦路斯
+塞席爾      塞舌爾
+安地卡及巴布達  安提瓜和巴布達
+巴貝多      巴巴多斯
+巴布亞紐幾內亞  巴布亞新畿內亞
+布吉納法索        布基納法索
+蒲隆地      布隆迪
+帕劳 帛琉
+義大利      意大利
+索羅門群島        所羅門群島
+文莱 汶萊
+史瓦濟蘭   斯威士蘭
+斯洛維尼亞        斯洛文尼亞
+紐西蘭      新西蘭
+格瑞那達   格林納達
+茅利塔尼亞        毛里塔尼亞
+毛里求斯   毛里裘斯
+模里西斯   毛里裘斯
+沙地阿拉伯        沙特阿拉伯
+沙烏地阿拉伯     沙特阿拉伯
+波士尼亞赫塞哥維納    波斯尼亞黑塞哥維那
+辛巴威      津巴布韋
+宏都拉斯   洪都拉斯
+千里達托貝哥     特立尼達和多巴哥
+萬那杜      瓦努阿圖
+葛摩 科摩羅
+寮國 老撾
+肯尼亚      肯雅
+莫三比克   莫桑比克
+賴索托      萊索托
+尚比亞      贊比亞
+亞塞拜然   阿塞拜疆
+阿拉伯聯合大公國       阿拉伯聯合酋長國
+馬爾地夫   馬爾代夫
+馬利共和國        馬里共和國
+台球 桌球
+撞球 桌球
+冰淇淋      雪糕
+賓士 平治
+捷豹 積架
+雪铁龙      先進
+雪鐵龍      先進
+沃尓沃      富豪
+马自达      萬事得
+馬自達      萬事得
+寶獅 標致
+布什 布殊
+柯林頓      克林頓
+萨达姆      薩達姆
+贝克汉姆   碧咸
+贝克漢      碧咸
+迈克尔·欧文      米高·奧雲
+卡普里亚蒂        卡佩雅蒂
+马拉特·萨芬      馬拉特·沙芬
+舒马赫      舒麥加
+希特勒      希特拉
+狄安娜      戴安娜
+黛安娜      戴安娜
+南朝鲜      南韓
+北朝鲜      北韓
+寮語 老撾語
+寮人民民主共和國       老撾人民民主共和國
+莱特湾      雷伊泰灣
+萊特灣      雷伊泰灣
+蘭卡威      浮羅交怡
+吉尔吉斯斯坦     吉爾吉斯
+撒马尔罕   撒馬爾罕
+伊斯蘭瑪巴德     伊斯蘭堡
+喀拉蚩      卡拉奇
+帕塔亚      芭達亞
+葉里溫      埃里溫
+巴士拉      巴斯拉
+賽普勒斯   塞浦路斯
+荷姆茲      霍爾木茲
+加薩走廊   加沙地帶
+西臺語      赫梯語
+西臺王      赫梯王
+西臺族      赫梯族
+西臺文      赫梯文
+西臺帝      赫梯帝
+西臺國      赫梯國
+西臺人      赫梯人
+阿联酋      阿聯酋
+迪拜 杜拜
+格鲁吉亚   格魯吉亞
+提比里西   第比利斯
+諾鲁 瑙魯
+玻里尼西亞        波利尼西亞
+帛琉 帕勞
+堪培拉      坎培拉
+约翰斯顿岛        強斯頓環礁
+巴尔米拉环礁     帕邁拉環礁
+马恩岛      萌島
+伯明罕      伯明翰
+布里斯托尔        布里斯托
+威尔士      威爾斯
+威爾士      威爾斯
+·威尔士    ·威爾士
+·威爾士    ·威爾士
+土魯斯      圖盧茲
+戛纳 康城
+坎城 康城
+羅亞爾      盧瓦爾
+诺曼底      諾曼第
+卢浮宫      羅浮宮
+埃菲尔      艾菲爾
+霍爾斯坦   荷爾斯泰因
+漢諾瓦      漢諾威
+哥廷根      格丁根
+杜塞道夫   杜塞爾多夫
+德勒斯登   德累斯頓
+安哈特      安哈爾特
+威斯伐倫   威斯特法倫
+布蘭登堡   勃蘭登堡
+前波莫瑞   前波美拉尼亞
+什勒斯維希        石勒蘇益格
+不萊梅      不來梅
+柏林墙      柏林圍牆
+巴塞罗那   巴塞隆拿
+巴塞隆納   巴塞隆拿
+塞维利亚   西維爾
+塞維亞      西維爾
+巴伦西亚   華倫西亞
+巴倫西亞   華倫西亞
+瓦倫西亞   華倫西亞
+雅爾達      雅爾塔
+切尔诺贝利        切爾諾貝爾
+蒙特內哥羅        黑山
+馬斯垂克   馬斯特里赫特
+貝爾格勒   貝爾格萊德
+塞拉耶佛   薩拉熱窩
+波士尼亞   波斯尼亞
+塞爾維亞與蒙特內哥羅 塞爾維亞和黑山
+卢塞恩      琉森
+亞斯文      阿斯旺
+奈及利亞   尼日利亞
+雅穆索戈   雅穆蘇克雷
+幾內亞      畿內亞
+几内亚      畿內亞
+衣索匹亞   埃塞俄比亚
+吉力馬札羅        乞力馬札羅
+厄利垂亚   厄立特里亞
+索馬利亞   索馬里
+索馬利里   索馬里
+马里兰      馬利蘭
+馬里蘭      馬利蘭
+好萊塢      荷里活
+好莱坞      荷里活
+舊金山      三藩市
+旧金山      三藩市
+紐澳良      新奧爾良
+密西根      密歇根
+愛荷華      艾奧瓦
+爱荷华      艾奧瓦
+得克萨斯   德克薩斯
+蒙特婁      蒙特利爾
+滿地可      蒙特利爾
+紐賓士域   紐賓士域
+默多克      梅鐸
+梅鐸 梅鐸
+麦克尔      米高
+迈克尔      米高
+錢尼 切尼
+里瓦尔多   李華度
+罗纳德·里根      朗奴·列根
+达芬奇      達文西
+达·芬奇    達·文西
+谢丽·布莱尔      彭雪玲
+葉爾欽      葉利欽
+菲利普親王        菲臘親王
+菲利普亲王        菲臘親王
+華勒沙      華里沙
+艾里爾·夏隆      阿里埃勒·沙龍
+罗纳尔迪尼奥     朗拿甸奴
+罗纳尔多   朗拿度
+索忍尼辛   索贊尼辛
+索尔仁尼琴        索贊尼辛
+瓦文萨      華里沙
+班傑明      本傑明
+狄托 鐵托
+柴契爾      戴卓爾
+撒切尔      戴卓爾
+斯蒂芬·斯皮尔伯格     史提芬·史匹堡
+斯皮尔伯格        史匹堡
+史蒂芬·史匹柏   史提芬·史匹堡
+史匹柏      史匹堡
+戈巴契夫   戈爾巴喬夫
+席哈克      希拉克
+希拉蕊      希拉里
+布莱尔      貝理雅
+尼克松      尼克遜
+奧黛麗·赫本      柯德莉·夏萍
+奧黛莉·朵杜      柯德莉·塔圖
+奥黛丽·赫本      柯德莉·夏萍
+卡斯楚      卡斯特羅
+肖邦 蕭邦
+恺撒 凱撒
+肯尼迪      甘迺迪
+歐巴馬      奧巴馬
+戈登·布朗 白高敦
+狂牛症      瘋牛症
+A肝   甲肝
+A型肝炎     甲型肝炎
+B肝   乙肝
+B型肝炎     乙型肝炎
+C肝   丙肝
+C型肝炎     丙型肝炎
+艾滋 愛滋
+链接 連結
+分辨率      解像度
+解析度      解像度
+智慧卡      智能卡
+晶元 晶片
+芯片 晶片
+晶體管      電晶體
+晶体管      電晶體
+源代码      原始碼
+IP地址       IP位址
+IP 地址      IP 位址
+屏幕 螢幕
+荧屏 螢屏
+版权信息   版權資訊
+蹦床 彈床
+擊劍 劍擊
+击剑 劍擊
+金氏世界紀錄     健力士世界紀錄
+牛轧 鳥結
+牛軋 鳥結
+數位相機   數碼相機
+單眼相機   單鏡反光機
+单反相机   單鏡反光機
+形上學      形而上學
+吉尼斯世界纪录  健力士世界紀錄
+吉他 結他
+古柯鹼      可卡因
+咖哩 咖喱
+泰坦尼克号        鐵達尼號
+自行火炮   自走炮
+冰激凌      雪糕
+奥斯曼      鄂圖曼
+里氏0        黎克特制0
+里氏1        黎克特制1
+里氏2        黎克特制2
+里氏3        黎克特制3
+里氏4        黎克特制4
+里氏5        黎克特制5
+里氏6        黎克特制6
+里氏7        黎克特制7
+里氏8        黎克特制8
+里氏9        黎克特制9
+芮氏0        黎克特制0
+芮氏1        黎克特制1
+芮氏2        黎克特制2
+芮氏3        黎克特制3
+芮氏4        黎克特制4
+芮氏5        黎克特制5
+芮氏6        黎克特制6
+芮氏7        黎克特制7
+芮氏8        黎克特制8
+芮氏9        黎克特制9
+芮氏規模   黎克特制震級
+芮氏地震規模     黎克特制地震震級
+里氏震级   黎克特制震級
+里氏规模   黎克特制震級
+里氏地震规模     黎克特制地震震級
+埃博拉      伊波拉
+哥特式      哥德式
+正體中文   繁體中文
+板球 木球
+籃板球      籃板球
+智慧財產權        知識產權
+智財權      知識產權
+首席执行官        行政總裁
+智慧型      智能
+智慧手機   智能手機
+计算机程序        電腦程式
+电脑程序   電腦程式
+应用程序   應用程式
+尖峰時間   繁忙時間
+尖峰時段   繁忙時段
+東協 東盟
+亚细安      東盟
+大英國協   英聯邦
+共和联邦   英聯邦
+阿布達比   阿布扎比
+蓋曼群島   開曼群島
+宇航员      太空人
+薛丁格      薛定諤
+凯瑟琳      嘉芙蓮
+凱薩琳      嘉芙蓮
+门德尔松   孟德爾遜
+孟德爾頌   孟德爾遜
+肖斯塔科维奇     蕭士達高維契
+蕭士塔高維奇     蕭士達高維契
+工具機      機床
+伊斯坦堡   伊斯坦布爾
+空气质量   空氣質素
+空氣品質   空氣質素
+俯卧撑      掌上壓
+伏地挺身   掌上壓
+数字电视   數碼電視
+數位電視   數碼電視
+数字技术   數碼技術
+數位技術   數碼技術
+数字信号   數碼訊號
+數碼訊號   數碼訊號
+行動網路   流動網絡
+移动网络   流動網絡
+麥克風      咪高峰
+麦克风      咪高峰
+幫浦 泵
+朝鲜战争   韓戰
+万历朝鲜战争     萬曆朝鮮戰爭
+演化論      進化論
+搜索引擎   搜尋引擎
+福馬林      福爾馬林
+海洛因      海洛英
+高畫質      高清
+赫魯雪夫   赫魯曉夫
+公厘 毫米
+公釐 毫米
+桑巴舞      森巴舞
+乔治·奥威尔      喬治·歐威爾
+程序员      程式設計師
+昂山素季   昂山素姬
+翁山蘇姬   昂山素姬
+西洋棋      國際象棋
+隐私 私隱
+隱私 私隱
+硅藻 硅藻
\ No newline at end of file
diff --git a/maintenance/language/zhtable/toSG.manual b/maintenance/language/zhtable/toSG.manual
deleted file mode 100644 (file)
index 2d39aa3..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-」    ”
-「    “
-『    ‘
-』    ’
-方便面      快速面
-速食麵      快速面
-即食麵      快速面
-泡麵 快速面
-蹦极跳      绑紧跳
-笨豬跳      绑紧跳
-凉菜 冷菜
-冷盤 冷菜
-零钱 散钱
-散紙 散钱
-笑星 谐星
-夜校 夜学
-民乐 华乐
-住房 住屋
-房价 屋价
-榴莲 榴梿
-榴蓮 榴梿
\ No newline at end of file
index e22447a..b857e5f 100644 (file)
@@ -1,10 +1,16 @@
+」    ”
+「    “
+『    ‘
+』    ’
+「    “
+」    ”
 乾县 乾县
 萧乾 萧乾
 乾断 乾断
 乾图 乾图
 乾纲 乾纲
 乾红 乾红
-乾清宫      乾清宫
+乾清 乾清
 乾仪 乾仪
 乾兴 乾兴
 乾冈 乾冈
 男性为乾   男性为乾
 男为乾      男为乾
 阳为乾      阳为乾
-男性为乾   男性为乾
 男性爲乾   男性为乾
-男为乾      男为乾
 男爲乾      男为乾
-阳为乾      阳为乾
 陽爲乾      阳为乾
 乾一组      乾一组
 乾一坛      乾一坛
 陈乾生      陈乾生
 陈公乾生   陈公乾生
+李乾顺      李乾顺
+孙乾 孙乾
+陈遇乾      陈遇乾
+曾运乾      曾运乾
+象乾 象乾
+乾贵士      乾贵士
 柳诒徵      柳诒徵
 於夫罗      於夫罗
 於梨华      於梨华
 藉機 借机
 藉此 借此
 藉由 借由
-藉著 借着
-藉着 借着
 沈積 沉积
 沈船 沉船
 沈默 沉默
 沈沒 沉没
+沈澱 沉淀
+沈重 沉重
 彷彿 仿佛
 項鍊 项链
 肘手鍊足   肘手链足
 銀鍊 银链
 鍊錘 链锤
 洗鍊 洗练
-石碁镇      石碁镇
+手鍊 手链
+鍊表 链表
 反覆 反复
 回覆 回复
 答覆 答复
 重覆 重复
 覆核 复核
 覆查 复查
+覆检 复检
 鬱姓 鬱姓
 鬱氏 鬱氏
-侏儸紀      侏罗纪
 夥計 伙计
-吳其濬      吴其濬
-吴其濬      吴其濬
 乾泉水      干泉水
-么半群      幺半群
+么半 幺半
 么元 幺元
 么爹 幺爹
 么叔 幺叔
 么娘 幺娘
 么孃 幺娘
 幺孃 幺娘
+么弟 幺弟
 么妹 幺妹
 么小 幺小
 么姓 幺姓
 么氏 幺氏
 么蛾子      幺蛾子
 幺厮 幺厮
-睪丸 睾丸
-附睪 附睾
-隱睪 隱睾
 麼麼 麽麽
 么麼 幺麽
-么麼小丑   幺麽小丑
 么鳳 幺凤
 么二三      幺二三
 么篇 幺篇
 么謙 幺谦
+六么 六幺
 这么 这么
-麴义 麴义
 乾乾淨淨   干干净净
 乾乾脆脆   干干脆脆
 肉乾乾      肉干干
 醯鸡 醯鸡
 醯壶 醯壶
 苧烯 苧烯
-李乾顺      李乾顺
-幹著 干着
 氾濫 泛滥
-显著 显著
-顯著 显著
-標誌著      标志着
 近角聪信   近角聪信
-修鍊 修炼
 米泽瑠美   米泽瑠美
-太閤 太阁
 候覆 候复
 待覆 待复
 批覆 批复
+矇眬 矇眬
+荠苧 荠苧
+噁心 恶心
+碁圣 碁圣
+慇懃 殷勤
+慇勤 殷勤
+崑崙 昆仑
+崑山 昆山
+崑劇 昆剧
+崑曲 昆曲
+崑腔 昆腔
+崑蘇 昆苏
+崑調 昆调
+諠譁 喧哗
+慫慂 怂恿
+陈元扞      陈元扞
+甦醒 苏醒
+復甦 复苏
+蒐證 搜证
+蒐索 搜索
+蒐藏 搜藏
+蒐羅 搜罗
+蒐購 搜购
+蒐錄 搜录
+蒐集 搜集
+蒐輯 搜辑
+蒐采 搜采
+蒐採 搜采
+偵蒐 侦搜
+情蒐 情搜
+蘋果 苹果
+於之莹      於之莹
+陆徵祥      陆徵祥
+瞭臺 瞭台
+瞭台 瞭台
+慘澹 惨淡
+鍾情 钟情
+鍾愛 钟爱
+鍾意 钟意
+所鍾 所钟
+情鍾 情钟
+獨鍾 独钟
+鍾靈 钟灵
+龍鍾 龙钟
+鍾山 钟山
+一鍾 一钟
+千鍾 千钟
+薰心 熏心
+薰習 熏习
+薰陶 熏陶
+薰沐 熏沐
+薰香 熏香
+餬口 糊口
+跼限 局限
+跼促 局促
+釐清 厘清
+釐訂 厘订
+釐革 厘革
+釐改 厘改
+釐整 厘整
+釐正 厘正
+毫釐 毫厘
+釐毫 厘毫
+剖釐 剖厘
+一釐 一厘
+昇平 升平
+飛昇 飞升
+提昇 提升
+高昇 高升
+初昇 初升
+昇天 升天
+上昇 上升
+昇汞 升汞
+昇華 升华
+昇仙 升仙
+昇降 升降
+竹昇 竹升
+直昇 直升
+高陞 高升
+晉陞 晋升
+歷陞 历升
+官陞 官升
+榮陞 荣升
+又陞 又升
+年陞 年升
+月陞 月升
+陞官 升官
+陞任 升任
+陞為 升为
+陞遷 升迁
+陞用 升用
+陞補 升补
+陞了 升了
+,陞 ,升
+。陞 。升
+爾冬陞      尔冬升
+內聯陞      内联升
+同陞和      同升和
+拿破崙      拿破仑
+酒麴 酒曲
+麴黴 曲霉
+造麴 造曲
+大麴 大曲
+黃麴毒素   黄曲毒素
\ No newline at end of file
index 1a14e99..14f7eae 100644 (file)
-”    」
-“    「
-‘    『
-’    』
 着    著
+佈    布
 鈎    鉤
 钩    鉤
-衞 衛
-元凶 元凶
-元兇 元凶
-凶器 凶器
-兇器 凶器
-凶徒 凶徒
-兇徒 凶徒
-凶手 凶手
-兇手 凶手
-凶案 凶案
-兇案 凶案
-凶残 凶殘
-凶殘 凶殘
-兇殘 凶殘
-凶杀 凶殺
-凶殺 凶殺
-兇殺 凶殺
-疑凶 疑凶
-疑兇 疑凶
-真凶 真凶
-真兇 真凶
-缉凶 緝凶
-緝凶 緝凶
-緝兇 緝凶
-行凶 行凶
-行兇 行凶
-行凶后      行凶後
-行凶後      行凶後
-行兇後      行凶後
-买凶 買凶
-買凶 買凶
-買兇 買凶
-追凶 追凶
-追兇 追凶
-逞凶斗狠   逞凶鬥狠
-逞凶鬥狠   逞凶鬥狠
-逞兇鬥狠   逞凶鬥狠
-复苏 復甦
-復蘇 復甦
+账    帳
+枱    檯
+卧    臥
+睾    睪
+酰    醯
+钫    鍅
+锫    鉳
+镎    錼
+镅    鋂
+锿    鑀
+锝    鎝
+锎    鉲
+钚    鈽
+硅    矽
+煙草 菸草
+煙蒂 菸蒂
+煙斗 菸斗
+煙鬼 菸鬼
+煙灰 菸灰
+煙具 菸具
+煙民 菸民
+煙農 菸農
+煙絲 菸絲
+煙頭 菸頭
+煙葉 菸葉
+煙癮 菸癮
+煙嘴 菸嘴
+煙酒 菸酒
+煙袋 菸袋
+煙品 菸品
+煙鹼 菸鹼
+煙捲 菸捲
+香煙 香菸
+捲煙 捲菸
+旱煙 旱菸
+烤煙 烤菸
+禁煙 禁菸
+戒煙 戒菸
+拒煙 拒菸
+紙煙 紙菸
+抽煙 抽菸
+吸煙 吸菸
+反煙 反菸
+私煙 私菸
+點煙 點菸
+洋煙 洋菸
+二手煙      二手菸
+電子煙      電子菸
+呂宋煙      呂宋菸
+雪茄煙      雪茄菸
+無煙日      無菸日
+無煙環境   無菸環境
+榴莲 榴槤
+榴蓮 榴槤
+霉素 黴素
+想象 想像
+迭代 疊代
+叱咤 叱吒
+嘯咤 嘯吒
+叱咤9        叱咤9
+叱咤M        叱咤M
+叱咤樂壇   叱咤樂壇
+叱咤咤      叱咤咤
+叱咤叱      叱咤叱
+正在叱咤   正在叱咤
+氨基酸      胺基酸
+枪支 槍枝
+球杆 球桿
+推杆 推桿
+挥杆 揮桿
+揮杆 揮桿
+一杆 一桿
+二杆 二桿
+三杆 三桿
+四杆 四桿
+五杆 五桿
+六杆 六桿
+七杆 七桿
+八杆 八桿
+九杆 九桿
+十杆 十桿
+1杆   1桿
+2杆   2桿
+3杆   3桿
+4杆   4桿
+5杆   5桿
+6杆   6桿
+7杆   7桿
+8杆   8桿
+9杆   9桿
+0杆   0桿
+标准杆      標準桿
+標準杆      標準桿
+电杆 電桿
+电线杆      電線桿
+木杆 木桿
+铁杆 鐵桿
+鐵杆 鐵桿
+杆头 桿頭
+杆頭 桿頭
+杆身 桿身
+杆弟 桿弟
+锻炼 鍛鍊
+炼金 鍊金
+熏烤 燻烤
+烟熏 煙燻
+熏肉 燻肉
+熏黑 燻黑
+糊口 餬口
+径庭 逕庭
+径到 逕到
+径取 逕取
+径入 逕入
+径行 逕行
+径自 逕自
+径往 逕往
+径寄 逕寄
+径启 逕啟
+径迎 逕迎
+系着 繫著
+关系着      關係著
+冲着 衝著
+干着 幹著
+干着急      干著急
+斗着 鬥著
+徵狀 症狀
+系数 係數
 缺省 預設
-串行 串列
-串列加速器        串列加速器
 以太网      乙太網
-位图 點陣圖
-例程 常式
-光标 游標
 光盘 光碟
 光驱 光碟機
-全角 全形
-加载 載入
-半角 半形
-变量 變數
-噪声 雜訊
-脱机 離線
 声卡 音效卡
-老字号      老字號
-连字号      連字號
-字号 字型大小
 字库 字型檔
 字段 欄位
-字符 字元
-字符集      字符集
 存盘 存檔
-寻址 定址
-尾注 章節附註
-异步 非同步
-总线 匯流排
-括号 括弧
-接口 介面
+界面 介面
 控件 控制項
-权限 許可權
 盘片 碟片
-硅片 矽片
-硅谷 矽谷
 硬盘 硬碟
 磁盘 磁碟
 磁道 磁軌
-程控 程式控制
-远程控制   遠程控制
-遠程控制   遠程控制
-行程控制   行程控制
-流程控制   流程控制
 端口 埠
 算子 運算元
-算法 演算法
 芯片 晶片
-芯片 晶元
-词组 片語
 译码 解碼
 软驱 軟碟機
 快闪存储器        快閃記憶體
 闪存 快閃記憶體
 鼠标 滑鼠
 进制 進位
-交互式      互動式
-仿真 模擬
-优先级      優先順序
-传感 感測
-便携式      攜帶型
 信息论      資訊理論
 写保护      防寫
 分辨率      解析度
 服务器      伺服器
-等于 等於
 局域网      區域網
-扫瞄仪      掃瞄器
 宽带 寬頻
 数据库      資料庫
-奶酪 乳酪
-手电 手電筒
-手电筒      手電筒
-万历 萬曆
-永历 永曆
-词汇 辭彙
-习用 慣用
-元音 母音
-新纪元      新紀元
-新紀元      新紀元
-宋元 宋元
-头球 頭槌
-入球 進球
-粒入球      顆進球
-打门 射門
-火锅盖帽   蓋火鍋
 打印机      印表機
 打印機      印表機
 字节 位元組
 字節 位元組
 打印 列印
-打印 列印
-硬件 硬體
+攻打印      攻打印
 硬件 硬體
 二极管      二極體
 二極管      二極體
 三極管      三極體
 软件 軟體
 軟件 軟體
-网络 網路
-網絡 網路
 人工智能   人工智慧
 航天飞机   太空梭
-航天大学   航天大學
 穿梭機      太空梭
 因特网      網際網路
 互聯網      網際網路
 调制解调器        數據機
 調制解調器        數據機
 短信 簡訊
-短訊 簡訊
 乌兹别克斯坦     烏茲別克
 乍得 查德
-乍得 查德
 也门 葉門
 也門 葉門
 伯利兹      貝里斯
 几内亚比绍        幾內亞比索
 幾內亞比紹        幾內亞比索
 列支敦士登        列支敦斯登
-列支敦士登        列支敦斯登
 利比里亚   賴比瑞亞
 利比里亞   賴比瑞亞
-加纳 迦納
-加納 迦納
-加蓬 加彭
 加蓬 加彭
 博茨瓦纳   波札那
 博茨瓦納   波札那
 圣马力诺   聖馬利諾
 聖馬力諾   聖馬利諾
 圭亚那      蓋亞那
-圭亞那      蓋亞那
+法属圭亚那        法屬蓋亞那
 坦桑尼亚   坦尚尼亞
 坦桑尼亞   坦尚尼亞
 埃塞俄比亚        衣索比亞
 埃塞俄比亞        衣索比亞
 基里巴斯   吉里巴斯
-基里巴斯   吉里巴斯
 塔吉克斯坦        塔吉克
 塞拉利昂   獅子山
-塞拉利昂   獅子山
-塞浦路斯   塞普勒斯
 塞浦路斯   塞普勒斯
 塞舌尔      塞席爾
 塞舌爾      塞席爾
-多米尼加共和国  多明尼加
-多米尼加共和國  多明尼加
-多明尼加共和國  多明尼加
-多米尼加国        多米尼克
-多明尼加國        多米尼克
 安提瓜和巴布达  安地卡及巴布達
 安提瓜和巴布達  安地卡及巴布達
 尼日利亚   奈及利亞
 布基纳法索        布吉納法索
 布基納法索        布吉納法索
 布隆迪      蒲隆地
-布隆迪      蒲隆地
 帕劳 帛琉
 意大利      義大利
 所罗门群岛        索羅門群島
 津巴布韦   辛巴威
 津巴布韋   辛巴威
 洪都拉斯   宏都拉斯
-洪都拉斯   宏都拉斯
 特立尼达和托巴哥       千里達托貝哥
 特立尼達和多巴哥       千里達托貝哥
 瑙鲁 諾魯
 科摩羅      葛摩
 科特迪瓦   象牙海岸
 突尼斯      突尼西亞
-索马里      索馬利亞
-索馬里      索馬利亞
 老挝 寮國
 老撾 寮國
 肯尼亚      肯亞
-肯雅 肯亞
 苏里南      蘇利南
 莫桑比克   莫三比克
 莱索托      賴索托
 萊索托      賴索托
-贝宁 貝南
-貝寧 貝南
 赞比亚      尚比亞
 贊比亞      尚比亞
 阿塞拜疆   亞塞拜然
 马耳他      馬爾他
 马里共和国        馬利共和國
 馬里共和國        馬利共和國
-方便面      速食麵
-快速面      速食麵
-即食麵      速食麵
-薯仔 土豆
-土豆网      土豆網
-土豆網      土豆網
 蹦极跳      笨豬跳
 绑紧跳      笨豬跳
-冷菜 冷盤
-凉菜 冷盤
 出租车      計程車
 台球 撞球
-桌球 撞球
-卫生 衛生
-衞生 衛生
-平治之亂   平治之亂
-平治之乱   平治之亂
-平治 賓士
-奔驰 賓士
 積架 捷豹
-雪铁龙      雪鐵龍
-萬事得      馬自達
-拿破仑      拿破崙
-拿破侖      拿破崙
 布什 布希
 布殊 布希
 克林顿      柯林頓
 克林頓      柯林頓
 侯赛因      海珊
 侯賽因      海珊
-高 梵谷
+高 梵谷
 狄安娜      黛安娜
 戴安娜      黛安娜
-颁布 頒布
-頒佈 頒布
-彩带 彩帶
-彩排 彩排
-彩楼 彩樓
-彩牌楼      彩牌樓
-彩球 綵球
-彩绸 綵綢
-彩线 綵線
-彩船 綵船
-彩衣 綵衣
-结彩 結綵
-戏彩娱亲   戲綵娛親
-剪彩 剪綵
-榴莲 榴槤
-榴蓮 榴槤
-掛鈎 掛鉤
-挂钩 掛鉤
-鈎心鬥角   鉤心鬥角
-钩心斗角   鉤心鬥角
-酰    醯
-雪裏紅      雪裡紅
-雪裏蕻      雪裡蕻
-森林裏      森林裡
-日子裏      日子裡
-故事裏      故事裡
-領域裏      領域裡
-時間裏      時間裡
-深淵裏      深淵裡
-醫院裏      醫院裡
-春假裏      春假裡
-暑假裏      暑假裡
-秋假裏      秋假裡
-寒假裏      寒假裡
-春天裏      春天裡
-夏天裏      夏天裡
-秋天裏      秋天裡
-冬天裏      冬天裡
-春日裏      春日裡
-夏日裏      夏日裡
-秋日裏      秋日裡
-冬日裏      冬日裡
-百科裏      百科裡
-歷史裏      歷史裡
-戲裏 戲裡
-作品裏      作品裡
-專輯裏      專輯裡
-年代裏      年代裡
-棺材裏      棺材裡
-嘴裏 嘴裡
-心裏 心裡
-皮裏陽秋   皮裡陽秋
-肚裏 肚裡
-苦裏 苦裡
-裏勾外連   裡勾外連
-裏面 裡面
-這裏 這裡
-點裏 點裡
-中文裏      中文裡
-山洞裏      山洞裡
-世界裏      世界裡
-眼睛裏      眼睛裡
-學裏 學裡
-獄裏 獄裡
-館裏 館裡
-系列裏      系列裡
-村子裏      村子裡
-青霉素      青黴素
-想象 想像
-锎    鉲
-信道 信道
-綫    線
+南朝鲜      南韓
+北朝鲜      北韓
+乔戈里峰   K2
+老挝人民民主共和国    寮人民民主共和國
+老撾人民民主共和國    寮人民民主共和國
+老挝语      寮語
+老撾語      寮語
+浮罗交怡   蘭卡威
+浮羅交怡   蘭卡威
+莱特湾      雷伊泰灣
+萊特灣      雷伊泰灣
+耶加達      雅加達
+吉尔吉斯斯坦     吉爾吉斯
+伊斯兰堡   伊斯蘭瑪巴德
+伊斯蘭堡   伊斯蘭瑪巴德
+卡拉奇      喀拉蚩
+帕塔亚      芭達亞
+埃里温      葉里溫
+埃里溫      葉里溫
+第比利斯   提比里西
+巴士拉      巴斯拉
+塞浦路斯   賽普勒斯
+霍尔木兹   荷姆茲
+霍爾木茲   荷姆茲
+加沙地带   加薩走廊
+加沙地帶   加薩走廊
+赫梯 西臺
+阿联酋      阿聯
+阿聯酋      阿聯
+迪拜 杜拜
+堪培拉      坎培拉
+悉尼 雪梨
+波利尼西亚        玻里尼西亞
+波利尼西亞        玻里尼西亞
+新几内亚   紐幾內亞
+约翰斯顿岛        強斯頓環礁
+巴尔米拉环礁     帕邁拉環礁
+马恩岛      曼島
+萌島 曼島
+伯明翰      伯明罕
+布里斯托尔        布里斯托
+威尔士      威爾斯
+威爾士      威爾斯
+·威尔士    ·威爾士
+·威爾士    ·威爾士
+图卢兹      土魯斯
+圖盧茲      土魯斯
+戛纳 坎城
+卢瓦尔      羅亞爾
+盧瓦爾      羅亞爾
+诺曼底      諾曼第
+卢浮宫      羅浮宮
+埃菲尔      艾菲爾
+荷爾斯泰因        霍爾斯坦
+荷尔斯泰因        霍爾斯坦
+石勒蘇益格        什勒斯維希
+石勒苏益格        什勒斯維希
+漢诺威      漢諾瓦
+汉诺威      漢諾瓦
+格丁根      哥廷根
+杜塞爾多夫        杜塞道夫
+杜塞尔多夫        杜塞道夫
+德累斯顿   德勒斯登
+德累斯頓   德勒斯登
+安哈爾特   安哈特
+安哈尔特   安哈特
+威斯特法倫        威斯伐倫
+威斯特法伦        威斯伐倫
+勃蘭登堡   布蘭登堡
+勃兰登堡   布蘭登堡
+前波美拉尼亞     前波莫瑞
+前波美拉尼亚     前波莫瑞
+不来梅      不萊梅
+不來梅      不萊梅
+柏林墙      柏林圍牆
+柏林牆      柏林圍牆
+巴塞罗那   巴塞隆納
+巴塞隆拿   巴塞隆納
+塞维利亚   塞維亞
+西維爾      塞維亞
+巴伦西亚   瓦倫西亞
+華倫西亞   瓦倫西亞
+佛罗伦萨   佛羅倫斯
+雅尔塔      雅爾達
+雅爾塔      雅爾達
+切尔诺贝利        車諾比
+黑山共和國        蒙特內哥羅共和國
+黑山共和国        蒙特內哥羅共和國
+马斯特里赫特     馬斯垂克
+馬斯特里赫特     馬斯垂克
+贝尔格莱德        貝爾格勒
+貝爾格萊德        貝爾格勒
+薩拉熱窩   塞拉耶佛
+萨拉热窝   塞拉耶佛
+波黑 波赫
+波斯尼亞   波士尼亞
+波斯尼亚   波士尼亞
+比利牛斯   庇里牛斯
+塞黑 塞蒙
+塞爾維亞與蒙特內哥羅 塞爾維亞與蒙特內哥羅
+塞爾維亞和黑山  塞爾維亞與蒙特內哥羅
+塞尔维亚和黑山  塞爾維亞與蒙特內哥羅
+伊斯坦布尔        伊斯坦堡
+伊斯坦布爾        伊斯坦堡
+卢塞恩      琉森
+阿斯旺      亞斯文
+雅穆苏克雷        雅穆索戈
+雅穆蘇克雷        雅穆索戈
+畿內亞      幾內亞
+索马里兰   索馬利蘭
+索馬里蘭   索馬利蘭
+乞力马扎罗        吉力馬札羅
+乞力馬札羅        吉力馬札羅
+厄利垂亚   厄利垂亞
+索马里      索馬利亞
+索馬里      索馬利亞
+扎伊尔      薩伊
+扎伊爾      薩伊
+金沙萨      金夏沙
+金沙薩      金夏沙
+达累斯萨拉姆     三蘭港
+马拉维      馬拉威
+留尼汪      留尼旺
+布隆方丹   布隆泉
+厄瓜多      厄瓜多
+百慕大      百慕達
+圣赫勒拿   聖赫倫那
+马萨诸塞   麻薩諸塞
+馬利蘭      馬里蘭
+里士满      里奇蒙
+荷里活      好萊塢
+荷李活道   荷李活道
+维尔京群岛        維京群島
+維爾京群島        維京群島
+纽黑文      紐哈芬
+特拉華      德拉瓦
+特拉华      德拉瓦
+爱德华州   愛達荷州
+新罕布什尔        新罕布夏
+新奥尔良   紐奧良
+新奧爾良   紐奧良
+得克萨斯   德克薩斯
+弗吉尼亚   維吉尼亞
+康涅狄格   康乃狄克
+密歇根      密西根
+宾西法尼亚        賓夕法尼亞
+威士顿康星        威斯康辛
+伊利诺伊州        伊利諾州
+亚拉巴马   阿拉巴馬
+三藩市      舊金山
+艾奧瓦      愛荷華
+得克薩斯   德克薩斯
+蒙特利尔   蒙特婁
+蒙特利爾   蒙特婁
+滿地可      蒙特婁
+麦克尔      麥可
+迈克尔      麥可
+魯賓斯·巴里切羅        魯本·巴瑞切羅
+雷诺阿      雷諾瓦
+阿里埃勒·沙龙   艾里爾·夏隆
+阿里埃勒·沙龍   艾里爾·夏隆
+铁托 狄托
+鐵托 狄托
+邁凱輪      麥拿輪
+迈凯轮      麥拿輪
+达芬奇      達文西
+达·芬奇    達·文西
+赫鲁晓夫   赫魯雪夫
+赫丘勒·波洛      赫丘勒·白羅
+薛定谔      薛丁格
+葉利欽      葉爾欽
+華里沙      華勒沙
+瓦文萨      華勒沙
+艾森豪威尔        艾森豪
+罗纳德·里根      隆納·雷根
+维特根斯坦        維根斯坦
+约翰逊      詹森
+索尔仁尼琴        索忍尼辛
+索贊尼辛   索忍尼辛
+瓦格纳      華格納
+毕加索      畢卡索
+碧咸 贝克漢
+梅尔·吉布森      梅爾·吉勃遜
+查韦斯      查維茲
+本杰明      班傑明
+本傑明      班傑明
+普密蓬      蒲美蓬
+普利策      普利茲
+施罗德      施洛德
+斯蒂芬      史蒂芬
+斯皮尔伯格        史匹柏
+斯特劳斯   史特勞斯
+斯大林      史達林
+斯坦福      史丹福
+撒切尔      柴契爾
+戴卓爾      柴契爾
+摩根士丹利        摩根史坦利
+拉普兰      拉布蘭
+戴克里先   戴克里先
+戈爾巴喬夫        戈巴契夫
+戈尔巴乔夫        戈巴契夫
+愛德文      愛德溫
+德里达      德希達
+帕特里克   派屈克
+希拉里      希拉蕊
+希拉克      席哈克
+尼克松      尼克森
+威廉姆斯   威廉士
+多普勒      都卜勒
+叶利钦      葉爾欽
+卡斯特罗   卡斯楚
+包豪斯      包浩斯
+勃朗宁      白朗寧
+劳拉 蘿拉
+列奥纳多   李奧納多
+克里斯托弗        克里斯多福
+傅里叶      傅立葉
+伊丽莎白   伊莉莎白
+丘吉尔      邱吉爾
+肖邦 蕭邦
+理查德      理察
+肯尼迪      甘迺迪
+奥巴马      歐巴馬
+奧巴馬      歐巴馬
+概率 機率
+疯牛症      狂牛症
+甲肝 A肝
+甲型肝炎   A型肝炎
+乙肝 B肝
+乙型肝炎   B型肝炎
+丙肝 C肝
+丙型肝炎   C型肝炎
+艾滋 愛滋
+链接 連結
+程序员      程式設計師
+源代码      原始碼
+智能卡      智慧卡
+數據庫      資料庫
+操作系统   作業系統
+人机交互   人機互動
+交互设计   互動設計
+互联网络   網際網路
+互联网      網際網路
+万维网      全球資訊網
+编程语言   程式語言
+晶體管      電晶體
+晶体管      電晶體
+IP地址       IP位址
+IP 地址      IP 位址
+解像度      解析度
+屏幕 螢幕
+荧屏 螢屏
+版权信息   版權資訊
+航天器      太空飛行器
+导弹 飛彈
+宇航服      太空衣
+宇航员      太空人
+太空飛行員        太空人
+独联体      獨立國協
+独立国家联合体  獨立國家國協
+东南亚国家联盟  東南亞國協
+发达国家   已開發國家
+哥特式      哥德式
+落車 下車
+上落客      上下客
+集装箱      貨櫃
+雅马哈      山葉
+避孕套      保險套
+素檀 蘇丹
+珍寶客機   巨無霸客機
+泰坦尼克号        鐵達尼號
+樂行童軍   羅浮童軍
+朝鲜战争   韓戰
+万历朝鲜战争     萬曆朝鮮戰爭
+數碼相機   數位相機
+單鏡反光機        單眼相機
+数码相机   數位相機
+单反相机   單眼相機
+形而上學   形上學
+形而上学   形上學
+当且仅当   若且唯若
+圆珠笔      原子筆
+国际象棋   西洋棋
+可卡因      古柯鹼
+公共交通   公共運輸
+吉尼斯世界纪录  金氏世界紀錄
+健力士世界纪录  金氏世界紀錄
+健力士世界紀錄  金氏世界紀錄
+沙律 沙拉
+忌廉 奶油
+味美思      苦艾酒
+奥斯曼      鄂圖曼
+埃博拉      伊波拉
+克隆人      複製人
+荧光 螢光
+里氏0        芮氏0
+里氏1        芮氏1
+里氏2        芮氏2
+里氏3        芮氏3
+里氏4        芮氏4
+里氏5        芮氏5
+里氏6        芮氏6
+里氏7        芮氏7
+里氏8        芮氏8
+里氏9        芮氏9
+里氏震级   芮氏規模
+里氏规模   芮氏規模
+里氏地震规模     芮氏地震規模
+黎克特制   芮氏
+知识产权   智慧財產權
+知識產權   智慧財產權
+知识产权局        知識產權局
+知識產權局        知識產權署
+知识产权署        知識產權署
+知識產權署        知識產權署
+乒乓球      桌球
+乒乓 桌球
+首席执行官        執行長
+首席财务官        財務長
+首席运营官        營運長
+智能手机   智慧型手機
+智能手機   智慧型手機
+智能电话   智慧型電話
+智能電話   智慧型電話
+便携式      可攜式
+计算机程序        電腦程式
+电脑程序   電腦程式
+应用程序   應用程式
+激光 雷射
+高峰时间   尖峰時間
+高峰时段   尖峰時段
+东盟 東協
+亚细安      東協
+英联邦      大英國協
+英聯邦      大英國協
+共和联邦   大英國協
+阿布扎比   阿布達比
+开曼群岛   蓋曼群島
+開曼群島   蓋曼群島
+凯瑟琳      凱薩琳
+嘉芙蓮      凱薩琳
+门德尔松   孟德爾頌
+孟德爾遜   孟德爾頌
+肖斯塔科维奇     蕭士塔高維奇
+蕭士達高維契     蕭士塔高維奇
+希特拉      希特勒
+自由泳      自由式
+机床 工具機
+機床 工具機
+空气质量   空氣品質    
+空氣質素   空氣品質
+俯卧撑      伏地挺身
+掌上壓      伏地挺身
+数字电视   數位電視
+數碼電視   數位電視
+数字技术   數位技術
+數碼技術   數位技術
+数字信号   數位訊號
+數碼訊號   數位訊號
+移动网络   行動網路
+流動網絡   行動網路
+咪高峰      麥克風
+電單車      機車
+搜索引擎   搜尋引擎
+福尔马林   福馬林
+福爾馬林   福馬林
+海洛英      海洛因
+高清电视   高畫質電視
+桑巴舞      森巴舞
+乔治·奥威尔      喬治·歐威爾
+結他 吉他
+了結他      了結他
+連結他      連結他
+昂山素季   翁山蘇姬
+昂山素姬   翁山蘇姬
+囯际象棋   西洋棋
+國際象棋   西洋棋
+私隱 隱私
+硅藻 硅藻
\ No newline at end of file
index b0efd28..7fc60c7 100644 (file)
@@ -1,8 +1,9 @@
+”    」
+“    「
+‘    『
+’    』
+’s   ’s 
 手塚治虫   手塚治虫
-校仇 校讎
-仇校 讎校
-仇夷 讎夷
-仇問 讎問
 無言不仇   無言不讎
 視如寇仇   視如寇讎
 往日無仇   往日無讎
@@ -26,8 +27,6 @@
 丰韻 丰韻
 丰儀 丰儀
 丰標不凡   丰標不凡
-干細胞      幹細胞
-干熱 乾熱
 二里頭      二里頭
 水里鄉      水里鄉
 蒙胧 朦朧
 拜托 拜託
 委托书      委託書
 委托 委託
-挽詞 輓詞
-挽聯 輓聯
-挽詩 輓詩
 於夫罗      於夫羅
 府干預      府干預
 府干擾      府干擾
-分布圖      分布圖
 頁面 頁面
 面條目      面條目
 黃鈺筑      黃鈺筑
-仿佛 彷彿
-凶殘 兇殘
-凶殺 兇殺
-緝凶 緝兇
-行凶後      行兇後
-買凶 買兇
-逞凶鬥狠   逞兇鬥狠
-合著者      合著者
 答复 答覆
 反复 反覆
+候复 候覆
+待复 待覆
+批复 批覆
+复信 覆信
+复核 覆核
+的回复      的回覆
+回复中      回覆中
+回复说      回覆說
+回复你      回覆你
+有回复      有回覆
+回复邮件   回覆郵件
+回复意见   回覆意見
+回复帖子   回覆帖子
+得到回复   得到回覆
+回复:      回覆:
 索馬里      索馬里
 洗练 洗鍊
 朝乾夕惕   朝乾夕惕
 不干預      不干預
 不干擾      不干擾
 不干牠      不干牠
-矽谷 矽谷
 范文瀾      范文瀾
-發表 發表
 機械系      機械系
 頂多 頂多
 馬占山      馬占山
-叱咤樂壇   叱咤樂壇
 闫怀礼      閆懷禮
-变髒 變髒
 薴烯 薴烯
 后豐 后豐
 于謙 于謙
 詩云 詩云
-鄭凱云      鄭凱云
 云為 云為
 古書云      古書云
 古語云      古語云
 經有云      經有云
 語有云      語有云
-显著标志   顯著標志
-占領 佔領
 采納 採納
 風采 風采
 于樂 于樂
 于鳳桐      于鳳桐
 于默奧      于默奧
 于爾岑      于爾岑
-于默奧      于默奧
 于貝爾      于貝爾
 于爾根      于爾根
 于雙戈      于雙戈
 涂澤民      涂澤民
 涂長望      涂長望
 涂敏恆      涂敏恆
-台历 枱曆
 艷后 艷后
 廢后 廢后
 后髮座      后髮座
 蟻后 蟻后
 馬格里布   馬格里布
 佳里鎮      佳里鎮
-埔裡社撫墾局     埔裏社撫墾局
-埔裏社撫墾局     埔裏社撫墾局
 有只採      有只採
-任何表達   任何表達
 會干擾      會干擾
 党項 党項
 余三勝      余三勝
 楊雅筑      楊雅筑
 杰威爾音樂        杰威爾音樂
 尸羅精舍   尸羅精舍
-索馬里      索馬里
 騰格里      騰格里
 村里長      村里長
 進制 進制
 黎吉雲      黎吉雲
 于飛島      于飛島
 鄉愿 鄉愿
+愿樸 愿樸
+謹愿 謹愿
 奇迹 奇蹟
-候复 候覆
-待复 待覆
-批复 批覆
 划槳 划槳
+折子戲      折子戲
+佣錢 佣錢
+佣鈿 佣鈿
+阁府 閤府
+太阁 太閤
+昆仑 崑崙
+昆山 崑山
+昆剧 崑劇
+昆曲 崑曲
+昆腔 崑腔
+昆苏 崑蘇
+昆调 崑調
+昆冈 崑岡
+西昆 西崑
+苏昆 蘇崑
+苏醒 甦醒
+复苏 復甦
+苹果 蘋果
+苹果干      蘋果乾
+后庄 后庄
+龜山庄      龜山庄
+寶山庄      寶山庄
+員山庄      員山庄
+昵称 暱稱
+單于 單于
+鮮于樞      鮮于樞
+鳳凰于飛   鳳凰于飛
+賦范 賦范
+陳士杰      陳士杰
+林杰樑      林杰樑
+茅于軾      茅于軾
+陳有后      陳有后
+天神之后   天神之后
+豔后 豔后
+后綜 后綜
+壽天里      壽天里
+貴子里      貴子里
+東湖里      東湖里
+鹿場里      鹿場里
+水里高級商工     水里高級商工
+水里鳳林   水里鳳林
+水里濁水溪        水里濁水溪
+划不來      划不來
+划來划去   划來划去
+划動 划動
+划得來      划得來
+划著 划著
+划進 划進
+划過 划過
+划龍舟      划龍舟
+只影響      只影響
+么弟 么弟
+六么 六么
+么雞 么雞
+義联 義联
+杠轂 杠轂
+局促 侷促
+開山辟谷   開山辟谷
+戲院里      戲院里
+惨淡 慘澹
+恶心 噁心
+证谏 証諫
+项链 項鍊
+手链 手鍊
+金链 金鍊
+链表 鍊表
+熏心 薰心
+熏习 薰習
+熏陶 薰陶
+熏沐 薰沐
+熏染 薰染
+熏香 薰香
+熏风 薰風
+雨蒙蒙      雨濛濛
+夹衣 袷衣
+夹裙 袷裙
+局蹐 跼蹐
+拳局 拳跼
+踡局 踡跼
+局躅 跼躅
+蹒局 蹣跼
+厘清 釐清
+厘订 釐訂
+厘革 釐革
+厘改 釐改
+厘整 釐整
+厘正 釐正
+毫厘 毫釐
+厘毫 釐毫
+剖厘 剖釐
+一厘一毫   一釐一毫
+升州 昇州
+升平 昇平
+升阳 昇陽
+陈升 陳昇
+南宮适      南宮适
+舊庄 舊庄
+拿破仑      拿破崙
+冗余 冗餘
+课余 課餘
+节余 節餘
+盈余 盈餘
+病余 病餘
+余地 餘地
+余力 餘力
+余子 餘子
+余事 餘事
+扶余 扶餘
+腐余 腐餘
+富余 富餘
+之余 之餘
+余泽 餘澤
+流风余俗   流風餘俗
+流风余韵   流風餘韻
+淋余土      淋餘土
+余一 餘一
+余二 餘二
+余三 餘三
+余四 餘四
+余五 餘五
+余六 餘六
+余七 餘七
+余八 餘八
+余九 餘九
+余十 餘十
+零余 零餘
+〇余 〇餘
+余零 餘零
+余〇 餘〇
+余1   餘1
+余2   餘2
+余3   餘3
+余4   餘4
+余5   餘5
+余6   餘6
+余7   餘7
+余8   餘8
+余9   餘9
+余0   餘0
+余数 餘數
+其余 其餘
+尸居余气   尸居餘氣
+剩余 賸餘
+余孽 餘孽
+残余 殘餘
+业余 業餘
+余割 餘割
+余款 餘款
+余角 餘角
+余切 餘切
+余霞 餘霞
+余下 餘下
+余弦 餘弦
+余震 餘震
+余貾 餘貾
+余额 餘額
+余人 餘人
+余俗 餘俗
+余倍 餘倍
+同余 同餘
+空余 空餘
+余量 餘量
+余年 餘年
+余留 餘留
+余项 餘項
+余式 餘式
+余部 餘部
+编余 編餘
+余墨 餘墨
+唾余 唾餘
+余韵 餘韻
+归余 歸餘
+公余 公餘
+宽余 寬餘
+余粮 餘糧
+余庆 餘慶
+余殃 餘殃
+余烬 餘燼
+劫余 劫餘
+结余 結餘
+烬余 燼餘
+净余 淨餘
+馂余 餕餘
+余晖 餘暉
+余辉 餘輝
+羡余 羨餘
+余悸 餘悸
+心余 心餘
+刑余 刑餘
+绪余 緒餘
+血余 血餘
+朱庆余      朱慶餘
+诸余 諸餘
+余论 餘論
+茶余 茶餘
+厨余 廚餘
+余裕 餘裕
+余气 餘氣
+诗余 詩餘
+词余 詞餘
+余僇 餘僇
+余辜 餘辜
+余责 餘責
+余罪 餘罪
+无余 無餘
+耳余 耳餘
+余烈 餘烈
+余思 餘思
+盐余 鹽餘
+嬴余 嬴餘
+赢余 贏餘
+王余鱼      王餘魚
+纡余 紆餘
+余波 餘波
+余杯 餘杯
+余步 餘步
+余妙 餘妙
+余音 餘音
+余声 餘聲
+余明 餘明
+余风 餘風
+余党 餘黨
+余毒 餘毒
+余桃 餘桃
+余桶 餘桶
+余利 餘利
+余沥 餘瀝
+余膏 餘膏
+余光 餘光
+余杭 餘杭
+余窍 餘竅
+余缺 餘缺
+余暇 餘暇
+余闲 餘閒
+余羡 餘羨
+余响 餘響
+余兴 餘興
+余蓄 餘蓄
+余绪 餘緒
+余珍 餘珍
+余众 餘眾
+余酲 餘酲
+余喘 餘喘
+余食 餘食
+余热 餘熱
+余刃 餘刃
+余闰 餘閏
+余存 餘存
+余业 餘業
+余姚 餘姚
+余荫 餘蔭
+余映 餘映
+余外 餘外
+余威 餘威
+余味 餘味
+余温 餘溫
+余勇 餘勇
+多余 多餘
+剩余 剩餘
+余生 餘生
+余欢 餘歡
+有余 有餘
+一余 一餘
+二余 二餘
+两余 兩餘
+三余 三餘
+四余 四餘
+五余 五餘
+六余 六餘
+七余 七餘
+八余 八餘
+九余 九餘
+十余 十餘
+百余 百餘
+千余 千餘
+万余 萬餘
+亿余 億餘
+兆余 兆餘
+0余   0餘
+1余   1餘
+2余   2餘
+3余   3餘
+4余   4餘
+5余   5餘
+6余   6餘
+7余   7餘
+8余   8餘
+9余   9餘
+于余曲折   于餘曲折
+尸居余气   尸居餘氣
+余光生      余光生
+余光中      余光中
+余思敏      余思敏
+余威德      余威德
+余子明      余子明
+余三胜      余三勝
+咨询 諮詢
+酒曲 酒麴
+曲霉 麴黴
+曲秀才      麴秀才
+曲尘 麴塵
+曲櫱 麴櫱
+黄曲毒素   黃麴毒素
+曲道士      麴道士
+曲钱 麴錢
+曲车 麴車
+鼠曲草      鼠麴草
+大曲酒      大麴酒
+泸州大曲   瀘州大麯 #商標名
+洋河大曲   洋河大麴
+双沟大曲   雙溝大麯 #商標名
\ No newline at end of file
index 747a240..f76a949 100644 (file)
+U+0347A㑺|U+04FCA俊|
+U+034BA㒺|U+07F54罔|
+U+034C2㓂|U+05BC7寇|
+U+03541㕁|U+05374却|
+U+03551㕑|U+053A8厨|
+U+03558㕘|U+053C2参|
+U+03565㕥|U+04EE5以|
+U+0362D㘭|U+05773坳|
+U+0375B㝛|U+05BBF宿|
+U+03760㝠|U+051A5冥|
+U+03800㠀|U+05C9B岛|
+U+0382F㠯|U+04EE5以|
+U+03836㠶|U+05E06帆|
+U+0384C㡌|U+05E3D帽|
+U+03898㢘|U+05EC9廉|
+U+03919㤙|U+06069恩|
+U+03966㥦|U+060EC惬|
+U+0396B㥫|U+060C7惇|
+U+039F1㧱|U+062FF拿|
+U+03A17㨗|U+06377捷|
+U+03A2A㨪|U+06643晃|
+U+03A3F㨿|U+0636E据|
+U+03A57㩗|U+0643A携|
+U+03A66㩦|U+0643A携|
+U+03A9A㪚|U+06563散|
+U+03A9F㪟|U+06566敦|
+U+03B09㬉|U+06696暖|
+U+03B2A㬪|U+053E0叠|
+U+03BED㯭|U+06A79橹|
+U+03C43㱃|U+0996E饮|
+U+03CD2㳒|U+06CD5法|
+U+03D31㴱|U+06DF1深|
+U+03F1D㼝|U+07897碗|
+U+03F5E㽞|U+07559留|
+U+03FDC㿜|U+0762A瘪|
+U+04230䈰|U+07B72筲|
+U+04280䊀|U+07CCA糊|
+U+045EC䗬|U+08702蜂|
+U+0460F䘏|U+06064恤|
+U+04611䘑|U+08109脉|
+U+0461A䘚|U+05352卒|
+U+046D0䛐|U+08BCD词|
+U+046E1䛡|U+08BDD话|
+U+04754䝔|U+0737E獾|
+U+04800䠀|U+08E5A蹚|
+U+04836䠶|U+05C04射|
+U+04965䥥|U+09570镰|
+U+04B03䬃|U+098D2飒|
+U+04B7E䭾|U+09A6E驮|
+U+04C1F䰟|U+09B42魂|
+U+04CD8䳘|U+09E45鹅|
+U+04D8A䶊|U+08844衄|
+U+04E23丣|U+0536F卯|
+U+04E57乗|U+04E58乘|
+U+04E79乹|U+05E72干|
+U+04E81亁|U+05E72干|
 U+04E99亙|U+04E98亘|
-U+04F48佈|U+05E03布|
+U+04E9D亝|U+0658B斋|
+U+04EB1亱|U+0591C夜|
+U+04EB7亷|U+05EC9廉|
+U+04EBE亾|U+04EA1亡|
 U+04F48佈|U+05E03布|
 U+04F54佔|U+05360占|
+U+04FB7侷|U+05C40局|
+U+04FFB俻|U+05907备|
+U+05010倐|U+0500F倏|
 U+05016倖|U+05E78幸|
+U+05023倣|U+04EFF仿|
+U+05038倸|U+0776C睬|
+U+0509A傚|U+06548效|
 U+050A2傢|U+05BB6家|
+U+050CA僊|U+04ED9仙|
+U+050CD働|U+052A8动|
 U+050F1僱|U+096C7雇|
+U+0510C儌|U+04FA5侥|
 U+05138儸|U+03469㑩|U+07F57罗|
 U+05147兇|U+051F6凶|
+U+0514E兎|U+05154兔|
+U+05160兠|U+0515C兜|
+U+05184冄|U+05189冉|
+U+05190冐|U+05192冒|
+U+05191冑|U+080C4胄|
+U+051BA冺|U+06CEF泯|
+U+051E2凢|U+051E1凡|
+U+051F4凴|U+051ED凭|
+U+05226刦|U+052AB劫|
+U+05227刧|U+052AB劫|
+U+0523C刼|U+052AB劫|
+U+05249剉|U+09509锉|
+U+0524F剏|U+0521B创|
+U+05259剙|U+0521B创|
+U+05273剳|U+0672D札|
 U+05277剷|U+094F2铲|
+U+05279剹|U+0622E戮|
+U+05284劄|U+0672D札|
+U+05292劒|U+05251剑|
+U+052B9効|U+06548效|
+U+052C5勅|U+06555敕|
+U+052CC勌|U+05026倦|
+U+052D1勑|U+06555敕|
+U+052E6勦|U+0527F剿|
 U+052F3勳|U+052CB勋|
+U+0531F匟|U+07095炕|
+U+05332匲|U+05941奁|
+U+05333匳|U+05941奁|
+U+05379卹|U+06064恤|
 U+0537D卽|U+05373即|
+U+05380厀|U+0819D膝|
+U+053A0厠|U+05395厕|
 U+053A4厤|U+05386历|
+U+053B0厰|U+05382厂|
+U+0541A吚|U+054BF咿|
+U+0544C呌|U+053EB叫|
+U+0546A呪|U+05492咒|
+U+0548A咊|U+0548C和|
+U+054F6哶|U+054A9咩|
+U+05515唕|U+05523唣|
+U+05518唘|U+0542F启|
+U+05538唸|U+05FF5念|
+U+0554E啎|U+05FE4忤|
+U+05551啑|U+0558B喋|
+U+05553啓|U+0542F启|
+U+05557啗|U+05556啖|
+U+05563啣|U+08854衔|
 U+055AB喫|U+05403吃|
-U+05641噁|U+06076恶|
+U+055C1嗁|U+0557C啼|
+U+05605嘅|U+06168慨|
+U+05611嘑|U+0547C呼|
+U+05620嘠|U+0560E嘎|
+U+05637嘷|U+055E5嗥|
+U+05649噉|U+05556啖|
 U+05690嚐|U+05C1D尝|
 U+056A5嚥|U+054BD咽|
 U+056AE嚮|U+05411向|
 U+056CC囌|U+082CF苏|
+U+056D3囓|U+0556E啮|
+U+056D9囙|U+056E0因|
+U+05705圅|U+051FD函|
+U+0577F坿|U+09644附|
+U+0579C垜|U+0579B垛|
 U+0585A塚|U+051A2冢|
+U+0585F塟|U+0846C葬|
+U+05872塲|U+0573A场|
+U+05896墖|U+05854塔|
 U+058B0墰|U+0575B坛|
+U+058BB墻|U+05899墙|
+U+058CE壎|U+057D9埙|
 U+058DC壜|U+0575B坛|
-U+05925夥|U+04F19伙|
+U+058FB壻|U+05A7F婿|
+U+05918夘|U+0536F卯|
+U+05925夥|U+04F19伙|U+05925夥|
+U+0596C奬|U+05956奖|
+U+059AC妬|U+05992妒|
+U+059B3妳|U+04F60你|
+U+059B7妷|U+04F84侄|
+U+059C9姉|U+059CA姊|
+U+059D9姙|U+0598A妊|
+U+059EA姪|U+04F84侄|
+U+059F8姸|U+0598D妍|
+U+05A63婣|U+059FB姻|
+U+05A6C婬|U+06DEB淫|
+U+05A8D媍|U+05987妇|
+U+05ABF媿|U+06127愧|
+U+05ACB嫋|U+08885袅|
+U+05AF0嫰|U+05AE9嫩|
+U+05AFA嫺|U+05A34娴|
+U+05B00嬀|U+059AB妫|
+U+05B1D嬝|U+08885袅|
+U+05B2D嬭|U+05976奶|
+U+05B3E嬾|U+061D2懒|
+U+05B43孃|U+05A18娘|
+U+05B7C孼|U+05B7D孽|
+U+05B82宂|U+05197冗|
 U+05BC0寀|U+091C7采|
-U+05D11崑|U+06606昆|
-U+05D19崙|U+04ED1仑|
+U+05BC3寃|U+051A4冤|
+U+05BD1寑|U+05BDD寝|
+U+05BF3寳|U+05B9D宝|
+U+05C05尅|U+0514B克|
+U+05C12尒|U+05C14尔|
+U+05C19尙|U+05C1A尚|
+U+05C1F尟|U+09C9C鲜|
+U+05C20尠|U+09C9C鲜|
+U+05C5B屛|U+05C4F屏|
+U+05C6D屭|U+05C43屃|
+U+05C85岅|U+05742坂|
+U+05CDD峝|U+05CD2峒|
 U+05D57嵗|U+05C81岁|
+U+05D83嶃|U+05D2D崭|
 U+05DBD嶽|U+05CB3岳|
 U+05DD6巖|U+05CA9岩|
-U+05DF9巹|U+0537A卺|
+U+05DD7巗|U+05CA9岩|
+U+05DF5巵|U+0536E卮|
+U+05E00帀|U+0531D匝|
+U+05E0B帋|U+07EB8纸|
+U+05E2C帬|U+088D9裙|
+U+05E47幇|U+05E2E帮|
+U+05E51幑|U+05FBD徽|
+U+05E59幙|U+05E55幕|
+U+05E5A幚|U+05E2E帮|
+U+05EBB庻|U+05EB6庶|
+U+05EBD庽|U+05BD3寓|
+U+05ED0廐|U+053A9厩|
+U+05ED5廕|U+0836B荫|
+U+05EF5廵|U+05DE1巡|
+U+05EF9廹|U+08FEB迫|
+U+05EFB廻|U+056DE回|
+U+05EFC廼|U+04E43乃|
 U+05F14弔|U+0540A吊|
 U+05F46彆|U+0522B别|
+U+05F6B彫|U+096D5雕|
+U+05F83徃|U+05F80往|
+U+05FA7徧|U+0904D遍|
+U+06031怱|U+05306匆|
+U+06033怳|U+0604D恍|
+U+06060恠|U+0602A怪|
+U+06061恡|U+0541D吝|
+U+060A4悤|U+05306匆|
+U+060BD悽|U+051C4凄|
+U+060CF惏|U+05A6A婪|
+U+060E5惥|U+0607F恿|
+U+060F7惷|U+08822蠢|
+U+0613D愽|U+0535A博|
+U+06159慙|U+060ED惭|
+U+06164慤|U+060AB悫|
+U+06174慴|U+06151慑|
 U+0617C慼|U+0621A戚|
+U+0617D慽|U+0621A戚|
 U+0617E慾|U+06B32欲|
+U+06187憇|U+061A9憩|
 U+061DE懞|U+08499蒙|
+U+0621E戞|U+0621B戛|
+U+0622F戯|U+0620F戏|
+U+06239戹|U+05384厄|
+U+0625E扞|U+0634D捍|
+U+0629D抝|U+062D7拗|
 U+062DA拚|U+062FC拼|
 U+06331挱|U+06332挲|
-U+06371捱|U+06328挨|
+U+06335挵|U+05F04弄|
+U+06344捄|U+06551救|
 U+06372捲|U+05377卷|
+U+063BD掽|U+078B0碰|
+U+063D1揑|U+0634F捏|
+U+063EB揫|U+063EA揪|
+U+063F7揷|U+063D2插|
+U+063F9揹|U+080CC背|
+U+06406搆|U+06784构|
+U+06407搇|U+063FF揿|
+U+06409搉|U+069B7榷|
+U+06424搤|U+0627C扼|
+U+06425搥|U+06376捶|
+U+06428搨|U+062D3拓|
+U+0642F搯|U+0638F掏|
+U+0643E搾|U+069A8榨|
+U+06443摃|U+0625B扛|
 U+0647A摺|U+06298折|
+U+064A1撡|U+064CD操|
+U+064A6撦|U+0626F扯|
+U+064D5擕|U+0643A携|
+U+064E7擧|U+04E3E举|
+U+06529攩|U+06321挡|
+U+06537攷|U+08003考|
+U+06542敂|U+053E9叩|
+U+0654D敍|U+053D9叙|
+U+0657A敺|U+09A71驱|
 U+065C2旂|U+065D7旗|
 U+065E3旣|U+065E2既|
-U+06607昇|U+05347升|
+U+065E4旤|U+07978祸|
+U+065F9旹|U+065F6时|
+U+065FE旾|U+06625春|
+U+06607昇|U+06607昇|U+05347升|
+U+0662C昬|U+0660F昏|
+U+066B1暱|U+06635昵|
+U+066E1曡|U+053E0叠|
+U+0671E朞|U+0671F期|
+U+06722朢|U+0671B望|
 U+0672E朮|U+0672F术|
+U+06736朶|U+06735朵|
+U+06792枒|U+04E2B桠|
+U+067B1枱|U+053F0台|
+U+067FA柺|U+062D0拐|
+U+067FB査|U+067E5查|
+U+06801栁|U+067F3柳|
+U+0681E栞|U+0520A刊|
+U+06822栢|U+067CF柏|
+U+06830栰|U+07B4F筏|
+U+06852桒|U+06851桑|
+U+0686E桮|U+0676F杯|
+U+0687A桺|U+067F3柳|
 U+068CA棊|U+068CB棋|
+U+06900椀|U+07897碗|
+U+06909椉|U+04E58乘|
+U+06917椗|U+07887碇|
+U+06936椶|U+068D5棕|
+U+06937椷|U+07F04缄|
+U+0693E椾|U+07B3A笺|
+U+06965楥|U+06966楦|
 U+069A6榦|U+05E72干|
 U+069D3槓|U+06760杠|
+U+069D5槕|U+0684C桌|
 U+06A11樑|U+06881梁|
+U+06A5C橜|U+06A5B橛|
+U+06AC8櫈|U+051F3凳|
 U+06B05欅|U+06989榉|
+U+06B1D欝|U+090C1郁|
+U+06B35欵|U+06B3E款|
 U+06B4E歎|U+053F9叹|
+U+06B5B歛|U+0655B敛|
+U+06B74歴|U+05386历|
+U+06B80殀|U+0592D夭|
 U+06BAD殭|U+050F5僵|
+U+06BBB殻|U+058F3壳|
+U+06BE7毧|U+07ED2绒|
+U+06BEC毬|U+07403球|
+U+06C0A氊|U+06BE1毡|
+U+06C37氷|U+051B0冰|
 U+06C59汙|U+06C61污|
+U+06C5A汚|U+06C61污|
+U+06C88瀋|U+06C88沈|U+0700B渖|
 U+06CDD泝|U+06EAF溯|
 U+06D29洩|U+06CC4泄|
+U+06D96涖|U+08385莅|
 U+06DD2淒|U+051C4凄|
+U+06DDB淛|U+06D59浙|
 U+06DE8淨|U+051C0净|
 U+06DE9淩|U+051CC凌|
 U+06E67湧|U+06D8C涌|
+U+06E7B湻|U+06DF3淳|
+U+06E7C湼|U+06D85涅|
+U+06EBC溼|U+06E7F湿|
 U+06ED9滙|U+06C47汇|
+U+06EDB滛|U+06DEB淫|
+U+06EF7滷|U+05364卤|
+U+06F44潄|U+06F31漱|
+U+06F59潙|U+06CA9沩|
+U+06F81澁|U+06DA9涩|
 U+06F90澐|U+06C84沄|
 U+06FBE澾|U+03CE0㳠|
+U+06FC7濇|U+06DA9涩|
 U+06FDB濛|U+06FDB濛|U+08499蒙|
+U+06FF6濶|U+09614阔|
 U+07030瀰|U+05F25弥|
+U+0704B灋|U+06CD5法|
+U+070D6烖|U+0707E灾|
+U+07151煑|U+0716E煮|
+U+07157煗|U+06696暖|
+U+07188熈|U+07199熙|
+U+071C4燄|U+07130焰|
+U+071C9燉|U+07096炖|U+071C9燉|
 U+071EC燬|U+06BC1毁|
+U+071FB燻|U+0718F熏|
+U+07217爗|U+070E8烨|
 U+07232爲|U+04E3A为|
+U+07240牀|U+05E8A床|
+U+0724B牋|U+07B3A笺|
+U+0724E牎|U+07A97窗|
+U+07250牐|U+095F8闸|
+U+07253牓|U+0699C榜|
+U+07255牕|U+07A97窗|
+U+07260牠|U+05B83它|
+U+07274牴|U+062B5抵|
+U+072E5狥|U+05F87徇|
+U+07302猂|U+0608D悍|
+U+07328猨|U+0733F猿|
 U+07343獃|U+05446呆|
+U+07358獘|U+06BD9毙|
+U+07367獧|U+072F7狷|
+U+07385玅|U+05999妙|
+U+07416琖|U+076CF盏|
+U+07431琱|U+096D5雕|
+U+07447瑇|U+073B3玳|
+U+0746F瑯|U+07405琅|
+U+074A2璢|U+07460瑠|
+U+0750E甎|U+07816砖|
 U+07515甕|U+074EE瓮|
-U+07526甦|U+082CF苏|
-U+0752F甯|U+05B81宁|
+U+07516甖|U+07F42罂|
+U+0751E甞|U+05C1D尝|
+U+07523産|U+04EA7产|
+U+07526甦|U+07526甦|U+082CF苏|
+U+0752F甯|U+0752F甯|U+05B81宁|
+U+07542畂|U+04EA9亩|
+U+07546畆|U+04EA9亩|
+U+07567畧|U+07565略|
 U+0756B畫|U+0753B画|U+05212划|
+U+0756E畮|U+04EA9亩|
+U+07571畱|U+07559留|
 U+07575畵|U+0753B画|U+05212划|
+U+0758E疎|U+0758F疏|
+U+07598疘|U+0809B肛|
+U+075BF疿|U+075F1痱|
+U+075D0痐|U+086D4蛔|
 U+075E0痠|U+09178酸|
+U+075FA痺|U+075F9痹|
+U+07609瘉|U+06108愈|
+U+07616瘖|U+05591喑|
+U+0763B瘻|U+07618瘘|
+U+07644癄|U+06194憔|
+U+07645癅|U+07624瘤|
+U+07648癈|U+05E9F废|
 U+07652癒|U+06108愈|
 U+07661癡|U+075F4痴|
+U+07681皁|U+07682皂|
+U+07690皐|U+0768B皋|
+U+0769C皜|U+07693皓|
+U+076B7皷|U+09F13鼓|
 U+076C3盃|U+0676F杯|
+U+076C7盇|U+076CD盍|
+U+076CC盌|U+07897碗|
+U+0770E眎|U+089C6视|
 U+0771E眞|U+0771F真|
+U+07721眡|U+089C6视|
+U+07760睠|U+07737眷|
+U+0776A睪|U+0777E睾|
+U+07787瞇|U+0772F眯|
+U+07796瞖|U+07FF3翳|
 U+077AD瞭|U+04E86了|
-U+077C7矇|U+08499蒙|
+U+077C1矁|U+07785瞅|
+U+077C7矇|U+08499蒙|U+077C7矇|
+U+077D9矙|U+077B0瞰|
+U+07832砲|U+070AE炮|
 U+07843硃|U+06731朱|
-U+07895碕|U+057FC埼|
+U+07881碁|U+068CB棋|
+U+078AA碪|U+07827砧|
+U+078DF磟|U+0788C碌|
+U+07906礆|U+078B1碱|
+U+0792E礮|U+070AE炮|
+U+07955祕|U+079D8秘|
 U+07958祘|U+07B97算|
+U+079CA秊|U+05E74年|
+U+079CC秌|U+079CB秋|
+U+079D6秖|U+053EA只|
+U+07A09稉|U+07CB3粳|
 U+07A1C稜|U+068F1棱|
+U+07A2C稬|U+07CEF糯|
+U+07A2D稭|U+079F8秸|
+U+07A3E稾|U+07A3F稿|
+U+07A64穤|U+07CEF糯|
+U+07A68穨|U+09893颓|
+U+07A7D穽|U+09631阱|
+U+07A93窓|U+07A97窗|
+U+07AB0窰|U+07A91窑|
+U+07ABB窻|U+07A97窗|
+U+07AC8竈|U+07076灶|
+U+07ADA竚|U+04F2B伫|
+U+07ADD竝|U+05E76并|
+U+07AE2竢|U+04FDF俟|
+U+07AEA竪|U+07AD6竖|
+U+07B5E筞|U+07B56策|
+U+07B69筩|U+07B52筒|
+U+07B6F筯|U+07BB8箸| 
 U+07B87箇|U+04E2A个|
+U+07B92箒|U+05E1A帚|
+U+07BA0箠|U+068F0棰|
+U+07BDB篛|U+07BAC箬|
 U+07C11簑|U+084D1蓑|
+U+07C12簒|U+07BE1篡|
+U+07C2E簮|U+07C2A簪|
+U+07C37簷|U+06A90檐|
+U+07C50籐|U+085E4藤|
 U+07C64籤|U+07B7E签|
 U+07C72籲|U+05401吁|
+U+07C83粃|U+079D5秕|
+U+07CA7粧|U+05986妆|
+U+07CC9糉|U+07CBD粽|
 U+07CF0糰|U+056E2团|
+U+07D25紥|U+0624E扎|
 U+07D2E紮|U+0624E扎|
+U+07D43絃|U+05F26弦|
+U+07D4F絏|U+07EC1绁|
+U+07D89綉|U+07EE3绣|
+U+07D91綑|U+06346捆|
 U+07DAB綫|U+07EBF线|
 U+07DB5綵|U+05F69彩|U+0433D䌽|
+U+07DD0緐|U+07E41繁|
+U+07DD1緑|U+07EFF绿|
+U+07DD4緔|U+07EF1绱|
+U+07DDA線|U+07EBF线|U+07F10缐|
+U+07DDC緜|U+07EF5绵|
+U+07DE5緥|U+08913褓|
+U+07DFC緼|U+07F0A缊|
+U+07E27縧|U+07EE6绦|
 U+07E34縴|U+07EA4纤|
 U+07E50繐|U+07A57穗|
+U+07E56繖|U+04F1E伞|
+U+07E59繙|U+07FFB翻|
+U+07E66繦|U+08941襁|
+U+07E6E繮|U+07F30缰|
 U+07E94纔|U+0624D才|
+U+07F47罇|U+06A3D樽|
+U+07F4B罋|U+074EE瓮|
 U+07F4E罎|U+0575B坛|
+U+07F78罸|U+07F5A罚|
+U+07F97羗|U+07F8C羌|
+U+07FA2羢|U+07ED2绒|
+U+07FA3羣|U+07FA4群|
 U+07FA8羨|U+07FA1羡|
+U+07FB6羶|U+081BB膻|
+U+07FC4翄|U+07FC5翅|
+U+07FEB翫|U+073A9玩|
+U+07FF6翶|U+07FF1翱|
+U+08021耡|U+09504锄|
+U+0808E肎|U+080AF肯|
+U+08090肐|U+080F3胳|
+U+080A7肧|U+080DA胚|
+U+080F7胷|U+080F8胸|
+U+08103脃|U+08106脆|
+U+08107脇|U+080C1胁|
+U+08117脗|U+0543B吻|
 U+08123脣|U+05507唇|
+U+08141腁|U+080FC胼|
+U+08193膓|U+080A0肠|
+U+081C8臈|U+0814A腊|
+U+081CB臋|U+081C0臀|
+U+081D5臕|U+08198膘|
+U+081D9臙|U+080ED胭|
+U+081DD臝|U+088F8裸|
 U+081E5臥|U+05367卧|
+U+081EF臯|U+0768B皋|
+U+08216舖|U+094FA铺|
 U+08218舘|U+09986馆|
-U+083F4菴|U+05EB5庵|
+U+08229舩|U+08239船|
+U+08262艢|U+06A2F樯|
+U+08263艣|U+06A79橹|
+U+0826A艪|U+06A79橹|
+U+082B2芲|U+082B1花|
+U+08318茘|U+08354荔|
+U+08373荳|U+08C46豆|
+U+083F8菸|U+070DF烟|
+U+08432萲|U+08431萱|
 U+08457著|U+08457著|U+07740着|
+U+08460葠|U+053C2参|
+U+0846F葯|U+0836F药|
+U+08493蒓|U+083BC莼|
+U+084C6蓆|U+05E2D席|
+U+084E1蓡|U+053C2参|
+U+084F4蓴|U+083BC莼|
+U+08514蔔|U+0535C卜|
+U+08515蔕|U+08482蒂|
 U+08518蔘|U+053C2参|
+U+0855A蕚|U+0843C萼|
+U+0857F蕿|U+08431萱|
 U+08591薑|U+059DC姜|
 U+085C9藉|U+085C9藉|U+0501F借|
+U+085F4藴|U+08574蕴|
+U+085F7藷|U+085AF薯|
+U+085FC藼|U+08431萱|
+U+08610蘐|U+08431萱|
+U+08613蘓|U+082CF苏|
+U+08624蘤|U+082B1花|
+U+08698蚘|U+086D4蛔|
+U+086D5蛕|U+086D4蛔|
+U+0870B蜋|U+08782螂|
+U+08716蜖|U+086D4蛔|
+U+08728蜨|U+08776蝶|
+U+08768蝨|U+08671虱|
+U+0876F蝯|U+0733F猿|
+U+08771蝱|U+0867B虻|
+U+0878E螎|U+0878D融|
+U+087A1螡|U+0868A蚊|
+U+087C1蟁|U+0868A蚊|
+U+087C7蟇|U+087C6蟆|
 U+0880D蠍|U+0874E蝎|
+U+0880F蠏|U+087F9蟹|
+U+08812蠒|U+08327茧|
+U+08814蠔|U+0869D蚝|
+U+0882D蠭|U+08702蜂|
+U+08842衂|U+08844衄|
+U+08846衆|U+04F17众|
+U+08847衇|U+08109脉|
 U+0884A衊|U+08511蔑|
+U+08856衖|U+05F04弄|
+U+0885E衞|U+0536B卫|
+U+0887A衺|U+090AA邪|
+U+0889F袟|U+05E19帙|
+U+088B5袵|U+0887D衽|
+U+088CC裌|U+088B7袷|
 U+088CF裏|U+091CC里|
-U+08946襆|U+05E5E幞|
+U+088E0裠|U+088D9裙|
+U+0892D褭|U+08885袅|
+U+08943襃|U+08912褒|
+U+0894D襍|U+06742杂|
 U+08986覆|U+08986覆|U+0590D复|
+U+08987覇|U+09738霸|
+U+08988覈|U+06838核|
+U+0898A覊|U+07F81羁|
+U+08994覔|U+089C5觅|
+U+089A9覩|U+07779睹|
+U+089D4觔|U+065A4斤|
+U+089DD觝|U+062B5抵|
 U+08A17託|U+06258托|U+08BAC讬|
-U+08AEE諮|U+054A8咨|U+08C18谘|
+U+08A3C証|U+08BC1证|
+U+08A76詶|U+0916C酬|
+U+08A96誖|U+06096悖|
+U+08AAC説|U+08BF4说|
+U+08AEE諮|U+08C18谘|U+054A8咨|
+U+08B0C謌|U+06B4C歌|
+U+08B21謡|U+08C23谣|
+U+08B2D謭|U+08C2B谫|
+U+08B41譁|U+054D7哗|
+U+08B46譆|U+0563B嘻|
+U+08B4C譌|U+08BB9讹|
+U+08B54譔|U+064B0撰|
+U+08B5F譟|U+0566A噪|
 U+08B6D譭|U+06BC1毁|
-U+08B8E讎|U+04EC7仇|
+U+08B81讁|U+08C2A谪|
+U+08B8E讎|U+04EC7仇|U+096E0雠|
+U+08B90讐|U+096E0雠|
 U+08B9A讚|U+08D5E赞|
+U+08C53豓|U+08273艳|
 U+08C54豔|U+08273艳|
+U+08C8D貍|U+072F8狸|
+U+08C9B貛|U+0737E獾|
+U+08CC9賉|U+06064恤|
+U+08CDB賛|U+08D5E赞|
+U+08CEB賫|U+08D4D赍|
+U+08CF7賷|U+08D4D赍|
+U+08D0B贋|U+08D5D赝|
+U+08D11贑|U+08D63赣|
+U+08D1C贜|U+08D43赃|
+U+08D82趂|U+08D81趁|
+U+08DE5跥|U+08DFA跺|
+U+08DF4跴|U+08E29踩|
+U+08E01踁|U+080EB胫|
+U+08E2B踫|U+078B0碰|
+U+08E30踰|U+0903E逾|
+U+08E4F蹏|U+08E44蹄|
+U+08E54蹔|U+06682暂|
+U+08E5F蹟|U+08FF9迹|
+U+08E60蹠|U+08DD6跖|
+U+08E67蹧|U+07CDF糟|
+U+08E75蹵|U+08E74蹴|
+U+08EAD躭|U+0803D耽|
+U+08EB3躳|U+08EAC躬|
+U+08EB6躶|U+088F8裸|
+U+08F19輙|U+08F84辄|
+U+08F2D輭|U+08F6F软|
+U+08F3C輼|U+08F92辒|
+U+08FA0辠|U+07F6A罪|
+U+08FA2辢|U+08FA3辣|
+U+08FA4辤|U+08F9E辞|
+U+08FB3辳|U+0519C农|
 U+08FF4迴|U+056DE回|
+U+08FFB迻|U+079FB移|
+U+09008逈|U+08FE5迥|
+U+09025逥|U+056DE回|
+U+09029逩|U+05954奔|
+U+0902C逬|U+08FF8迸|
 U+09031週|U+05468周|
+U+09049遉|U+04FA6侦|
 U+0904A遊|U+06E38游|
 U+09061遡|U+06EAF溯|
+U+0906F遯|U+09041遁|
+U+09076遶|U+07ED5绕|
+U+09156酖|U+09E29鸩|
+U+09167酧|U+0916C酬|
+U+09183醃|U+0814C腌|
+U+09186醆|U+076CF盏|
+U+09195醕|U+09187醇|
 U+091A3醣|U+07CD6糖|
 U+091AF醯|U+09170酰|
+U+091BB醻|U+0916C酬|
+U+091BC醼|U+05BB4宴|
+U+091E6釦|U+06263扣|
+U+091EC釬|U+0710A焊|
+U+09205鈅|U+094A5钥|
+U+0920E鈎|U+094A9钩|
+U+09246鉆|U+094BB钻|
+U+09262鉢|U+094B5钵|
+U+092B2銲|U+0710A焊|
+U+092ED鋭|U+09510锐|
+U+09332録|U+05F55录|
+U+09341鍁|U+09528锨|
 U+0934A鍊|U+070BC炼|U+094FE链|
+U+0936B鍫|U+09539锹|
+U+09373鍳|U+09274鉴|
+U+0937E鍾|U+0953A锺|U+0949F钟|
 U+0938C鎌|U+09570镰|
+U+09397鎗|U+067AA枪|
+U+0939A鎚|U+09524锤|
 U+093AD鎭|U+093AE镇|
+U+093AD鎭|U+09547镇|
+U+093B8鎸|U+0954C镌|
+U+093BB鎻|U+09501锁|
 U+093DA鏚|U+0621A戚|
+U+0941D鐝|U+09562镢|
 U+09451鑑|U+09274鉴|
-U+0955F镟|U+065CB旋|
+U+0945A鑚|U+094BB钻|
+U+0945B鑛|U+077FF矿|
+U+09464鑤|U+05228刨|
+U+09475鑵|U+07F50罐|
+U+09482钂|U+0954B镋|
 U+09592閒|U+095F2闲|
-U+095A4閤|U+05408合|
+U+09599閙|U+095F9闹|
+U+095A4閤|U+09601阁|U+05408合|
+U+095A7閧|U+054C4哄|
+U+095B2閲|U+09605阅|
+U+095C7闇|U+06697暗|
+U+095DA闚|U+07AA5窥|
 U+095E2闢|U+08F9F辟|
+U+09628阨|U+05384厄|
 U+0962A阪|U+0962A阪|U+05742坂|
-U+0965E陞|U+05347升|
+U+0962C阬|U+05751坑|
+U+09657陗|U+05CED峭|
+U+0965C陜|U+09655陕|
+U+0965E陞|U+0965E陞|U+05347升|
+U+0967B陻|U+05819堙|
+U+0967F陿|U+072ED狭|
+U+09682隂|U+09634阴|
+U+09684隄|U+05824堤|
+U+09696隖|U+0575E坞|
+U+096A3隣|U+090BB邻|
+U+096B7隷|U+096B6隶|
+U+0976D靭|U+097E7韧|
+U+09771靱|U+097E7韧|
+U+0978C鞌|U+0978D鞍|
 U+097A6鞦|U+079CB秋|U+097A7鞧|
+U+097B5鞵|U+0978B鞋|
+U+097BE鞾|U+09774靴|
 U+097C6韆|U+05343千|
-U+097DD韝|U+097B2鞲|
+U+097C8韈|U+0889C袜|
+U+097E4韤|U+0889C袜|
+U+097EE韮|U+097ED韭|
+U+0981F頟|U+0989D额|
+U+0983C頼|U+08D56赖|
+U+0983D頽|U+09893颓|
+U+09847顇|U+060B4悴|
+U+0984B顋|U+0816E腮|
+U+09854顔|U+0989C颜|
 U+09858願|U+0613F愿|
+U+09866顦|U+06194憔|
+U+098C3飃|U+098D8飘|
+U+098DC飜|U+07FFB翻|
+U+098E4飤|U+09972饲|
 U+098F1飱|U+098E7飧|
-U+09918餘|U+04F59余|U+09980馀|
-U+09931餱|U+07CC7糇|
-U+09935餵|U+05582喂|
+U+09901餁|U+0996A饪|
+U+09908餈|U+07CCD糍|
+U+09918餘|U+09980馀|U+04F59余|
+U+09939餹|U+07CD6糖|
+U+0993B餻|U+07CD5糕|
+U+0993D餽|U+09988馈|
+U+0994D饍|U+081B3膳|
+U+09951饑|U+09965饥|
+U+0995D饝|U+0998D馍|
+U+099C8駈|U+09A71驱|
+U+099E1駡|U+09A82骂|
+U+099EE駮|U+09A73驳|
+U+09A10騐|U+09A8C验|
+U+09A23騣|U+09B03鬃|
+U+09A58驘|U+09AA1骡|
+U+09ABD骽|U+0817F腿|
+U+09ABE骾|U+09CA0鲠|
+U+09AC8髈|U+08180膀|
+U+09AE3髣|U+04EFF仿|
+U+09AE5髥|U+09AEF髯|
+U+09AF4髴|U+04F5B佛|
+U+09B00鬀|U+05243剃|
+U+09B09鬉|U+09B03鬃|
+U+09B26鬦|U+06597斗|
 U+09B28鬨|U+054C4哄|
+U+09B2A鬪|U+06597斗|
+U+09B2D鬭|U+06597斗|
+U+09B30鬰|U+090C1郁|
+U+09B8E鮎|U+09C87鲇|
+U+09B9D鮝|U+09C9E鲞|
+U+09BF0鯰|U+09CB6鲶|U+09C87鲇|
+U+09C10鰐|U+09CC4鳄|
+U+09C1B鰛|U+09CC1鳁|
+U+09C2E鰮|U+09CC1鳁|
+U+09CEC鳬|U+051EB凫|
+U+09D08鴈|U+096C1雁|
+U+09D5E鵞|U+09E45鹅|
 U+09D70鵰|U+096D5雕|U+05F6B彫|
+U+09D76鵶|U+09E26鸦|
+U+09DC0鷀|U+09E5A鹚|
+U+09DC4鷄|U+09E21鸡|
+U+09DF0鷰|U+071D5燕|
+U+09DF4鷴|U+09E47鹇|
+U+09E0E鸎|U+083BA莺|
+U+09E7B鹻|U+078B1碱|
 U+09E7C鹼|U+078B1碱|U+07877硷|
 U+09EAA麪|U+09762面|
 U+09EAB麫|U+09762面|
 U+09EAF麯|U+066F2曲|
-U+09EB4麴|U+066F2曲|U+09EB4麴|
+U+09EB4麴|U+09EB9麹|U+066F2曲|
+U+09EB5麵|U+09762面|U+09EBA麺|
 U+09EF4黴|U+09709霉|
+U+09F03鼃|U+086D9蛙|
+U+09F07鼇|U+09CCC鳌|
+U+09F08鼈|U+09CD6鳖|
 U+09F15鼕|U+051AC冬|
-U+09F47齇|U+09F44齄|
 U+09F63齣|U+051FA出|
-U+09F91龑|U+04DAE䶮|
+U+09F67齧|U+0556E啮|
+U+09F69齩|U+054AC咬|
+U+201EE𠇮|U+0547D命|
+U+20302𠌂|U+04F1E伞|
+U+20542𠕂|U+0518D再|
+U+20545𠕅|U+0518D再|
+U+20587𠖇|U+051A5冥|
+U+207B0𠞰|U+0527F剿|
+U+20ABE𠪾|U+05386历|
+U+20D1F𠴟|U+054A9咩|
+U+20EF3𠻳|U+055FD嗽|
+U+21428𡐨|U+091CE野|
+U+21681𡚁|U+05F0A弊|
+U+21A18𡨘|U+051A4冤|
+U+21A25𡨥|U+05BC7寇|
+U+21B36𡬶|U+05BFB寻|
 U+21ED5𡻕|U+05C81岁|
-U+298F5𩣵|U+299FB𩧻|
+U+22B38𢬸|U+062EC括|
+U+22B4F𢭏|U+06363捣|
+U+22BA5𢮥|U+064CD操|
+U+22DEC𢷬|U+06363捣|
+U+2365C𣙜|U+069B7榷|
+U+242EE𤋮|U+07199熙|
+U+24A0F𤨏|U+07410琐|
+U+24C1C𤰜|U+04EA9亩|
+U+24C48𤱈|U+04EA9亩|
+U+24C4A𤱊|U+07559留|
+U+24EA5𤺥|U+07629瘩|
+U+25128𥄨|U+07785瞅|
+U+25997𥦗|U+07A97窗|
+U+25CBB𥲻|U+07E82纂|
+U+260B3𦂳|U+07D27紧|
+U+260C2𦃂|U+07D27紧|
+U+26246𦉆|U+078B4碴|
+U+262B1𦊱|U+06302挂|
+U+26351𦍑|U+07F8C羌|
+U+26548𦕈|U+07707眇|
+U+26A99𦪙|U+0447D䑽|
+U+26D4F𦵏|U+0846C葬|
+U+28F7B𨽻|U+096B6隶|
+U+294D0𩓐|U+08116脖|
+U+295D7𩗗|U+098D3飓|
\ No newline at end of file
index 69b2c83..4d313b4 100644 (file)
 7隻
 8隻
 9隻
-0隻
-1隻
-2隻
-3隻
-4隻
-5隻
-6隻
-7隻
-8隻
-9隻
 0只支援
 1只支援
 2只支援
 至多
 頂多
 多隻
-0多隻
-0多隻
-零多隻
-十多隻
-百多隻
-千多隻
-萬多隻
-億多隻
 這只能
 這只可
 這只在
 這只是
 這只需
+這只須
 這只會
 這只用
+這只比
+這只限
+這只應
+這只不過
+這只包括
 那只能
 那只可
 那只在
 那只是
 那只需
+那只須
 那只會
 那只用
+那只怕
+那只比
+那只限
+那只應
+那只不過
+那只包括
 多只能
 多只可
 多只在
 多只有
 多只是
 多只需
+多只須
 多只會
 多只用
+多只含
+多只比
+多只限
+多只包括
 大只能
 大只可
 大只在
 小只是
 小只需
 小只會
+數隻
+數只能
+數只可
+數只在
+數只有
+數只是
+數只需
+數只須
+數只會
+數只含
+數只比
+數只限
+數只應
+數只包括
+人數只
+參數只
+總數只
 隻身
 形單影隻
 首隻
 7天後
 8天後
 9天後
-0天後
-1天後
-2天後
-3天後
-4天後
-5天後
-6天後
-7天後
-8天後
-9天後
 天後來
 天後天
 天後半
 後印
 萬象
-並存著
 乾絲
-乾著急
 乾魚
 魚乾
 乾梅
 淚乾
 沒幹
 沒乾沒淨
-枝不得大於榦
 杯乾
 打幹
 打乾噦
 乾咽
 乾和
 幹吏
-乾吊著下巴
 乾號
 乾颱
 乾卦
 乾麵
 乾柴
 枯乾
\99\92
\9b¬
 顛乾倒坤
 強幹
-乾著
 乾眼
 幹的停當
+井幹
 乾巴
 偎乾
 眼乾
-偷雞不著
-几絲
-划著
-划著走
-別著
-刮著
-千絲萬縷
-參合
-參考價值
-參與
-參與人員
-參與制
-參與感
-參與者
-參觀團
-參觀團體
-參閱
-吃著不盡
-合著
-吊帶褲
-吊掛著
-吊著
-吊褲
-吊褲帶
-向著
-嚴絲合縫
-回絲
-回著
-塗著
-壟斷價格
-壟斷資產
-壟斷集團
-姜絲
-帶團參加
-干著急
-幾絲
-彆著
-怎麼著
-憑藉著
-憑藉
-接著說
-擔著
-擔負著
-敘說著
-斗轉參橫
-旋繞著
-板著臉
-正當著
-沈著
-沖著
-派團參加
-涂著
-湊合著
-瀰漫著
-為著
-煙斗絲
-率團參加
-畫著
-當著
-發著
-直接參与
-睡著了
-秋褲
-積极參与
-積极參加
-簽著
-系著
-絕對參照
-絲來線去
-絲布
-絲板
-絲瓜布
-絲絨布
-絲線
-絲織廠
-絲蟲
-緊繃著
-繃著
-繃著臉
-繃著臉兒
-繫著
-罵著
 肉絲麵
-背向著
-菌絲體
-著兒
-著書立說
-著色軟體
-著重指出
-著錄
-著錄規則
 薑絲
-藉著
-蘊含著
-蘊涵著
-衝著
-被覆著
-覆著
-覆蓋著
 反覆
-訴說著
-說著
-請參閱
-謝絕參觀
-豎著
 豐濱
 豐濱鄉
 豐度
-象徵著
-這麼著
-那麼著
-配合著
-醞釀著
-錄著
-鍛鍊出
-關係著
 雞絲
 雞絲麵
-面朝著
-面臨著
-颳著
 髮絲
 斷髮
 不斷發
 打斷發
 披頭散髮
 髮禁
-鬥著
-鬧著玩兒
-鯰魚
 世界盃
 其次辟地
 開闢
 一彆頭
 并州
 併兼
-併產
 併骨
 併網
 併線
 併流
 逼併
 併名
-併當
 併火
 併肩子
-併除
 併疊
-忙併
-打併
 簡併
 並發表
 並發現
 數罪併罰
 催併
 狂併潮
-薝蔔
 提摩太後書
-當家纔知柴米價
-剛纔一載
 裏海
-骨頭裡掙出來的錢纔做得肉
-恰纔
-遠縣纔至
-別日南鴻纔北去
-然身死纔數月耳
-纔得兩年
-纔則
-纔此
-你纔子發昏
-纔可容顏十五餘
 不採
 披榛採蘭
 謬採虛聲
 官地為寀
 寮寀
 蔘綏
-個人# “個人參數”不是“個人蔘數”
-人蔘
 蕭蔘
-人參與
-人參選
-人參觀
-人參考
-人參展
-人參加
-人參議
-人參謀
-人參酌
-人參照
-人參政
-人參戰
-人參拜
-人參閱
-人參禪
-人參贊
-人參見
-人參透
-人參看
 東衝西突
 天克地衝
 六衝
 丑表功
 公孫丑
 么麼小丑
-齣電影
-齣電視
-齣動畫
-齣節目
-齣卡通
-齣戲
-齣劇
 平平當當
 滿滿當當
 當當丁丁
 快快當當
 咯噹
 啷噹
-党參
 党進
 党太尉
 党項
 髮屋
 櫛髮工
 鬒髮
+令人髮指
+爆發指數
+開發
+剪其髮
+吐哺捉髮
+吐哺握髮
+含齒戴髮
+大金髮苔
+寸髮千金
+心長髮短
+戴髮含齒
+拔髮
+拔鬚
+揪髮
+揪鬚
+整髮用品
+斷髮文身
+滿頭洋髮
+燙一個髮
+燙一次髮
+燙個髮
+燙完髮
+燙次髮
+理一個髮
+理一次髮
+理個髮
+理完髮
+理次髮
+細如髮
+繫於一髮
+皮膚
+生華髮
+蒼髮
+被髮佯狂
+被髮入山
+被髮左衽
+被髮纓冠
+被髮陽狂
+身體髮膚
+髮光可鑑
+髮已霜白
+髮油
+髮為血之本
+髮網
+髮踊沖冠
+髮際
+黃髮
+齒落髮白
+長髮姑娘
+長髮公主
+長髮妹
+的髮小
+是髮小
+代理發行
+美髮店
+美髮館
+美髮師
+美髮學
+美髮業
+美髮沙龍
+美容美髮
 模范棒棒堂
 模范三軍
 模范七棒
 複流
 反複製
 複對數
-顛覆
-答覆
-覆沒
-覆亡
-覆水難收
-翻雲覆雨
-覆雨翻雲
-覆轍
-覆巢之下無完卵
-覆蓋
-覆命
-天翻地覆
-天覆地載
 撥穀
 扁擬穀盜蟲
 不穀
 言大而夸
 睏覺
 愛睏
+睏了
 纍堆
 纍紲
 纍臣
 澤滲灕而下降
 裏勾外連
 裏手
-水里鄉
 水里溪
-水里濁水溪
 二里頭
 年歷史
 西歷史
 穆罕默德曆
 大明曆
 大曆
-
+
 太初曆
 通曆
 曆本
 懞直
 老懞
 放懞掙
-矇著
 矇聵
 矇瞍
 矇事
 矇頭轉
 矇松雨
 藏矇歌兒
-矇著鍋兒
 朦朧
 濛濛細雨
 濛汜
 小米麵
 壯麵
 吃板刀麵
-吃辣麵
 扯麵
 搋麵
 重羅麵
 湯下麵
 茶麵
 麵糰
+北山索麵
+土索麵
+米麵
+椒麵
+掛麵
+臊子麵
+龍鬚麵
+油潑麵
+辣麵
+肉麵
+燴麵
+雲吞麵
 冷面相
 糞穢衊面
-湟潦生苹
-食野之苹
-苹縈
-青苹
-青蘋果
 僕僕
 有僕
 冉有僕
 僮僕
 金僕姑
 僕婢
+惡僕
+從僕
 樸實
 樸訥
 樸念仁
 上簽字
 上簽收
 上簽寫
+上簽訂
+上簽定
+上簽署
+上簽發
+上簽約
+中簽名
+中簽字
+中簽收
+中簽寫
+中簽訂
+中簽定
+中簽署
+中簽發
+中簽約
 下簽名
 下簽字
 下簽收
 下簽寫
+下簽訂
+下簽定
+下簽署
+下簽發
+下簽約
 犖确
 磽确
 确瘠
 蒼朮
 赤朮
 朮赤
+博爾朮
 髼鬆
 皮鬆
 濛鬆雨
 鬆一口氣
 鬆元音
 鬆喉
+鬆化
 囉囉囌囌
 囉囌
 骨罈
+菜罈
 罈騞
 餵驢
 剪牡丹喂牛
 鬱鬱不樂
 鬱鬱寡歡
 鬱鬱蔥蔥
+鬱鬱蒼蒼
 鬱鬱而終
 愿樸
 愿而恭
 种放
 种師道
 种師中
-後庄
-舊庄
 正官庄
-龜山庄
-寶山庄
 冬山庄
-員山庄
 松山庄
 厂部
-閤府
-佈道
-剪綵
 衝量
 衝車
-書獃子
 相干
 府干預
 府干涉
 一干人
 未乾
 未干涉
+未干預
 抹乾
 餅乾
 拭乾
 乾季
 葡萄乾
 提子乾
-蘿蔔乾
-蘋果乾
 芒果乾
 菠蘿乾
 鳳梨乾
 幹事
 幹什麼
 幹細胞
-悶著頭兒幹
+頭兒幹
 配水幹管
 繐幃飄井幹
 站乾岸兒
 二不稜登
 有稜有角
 威稜
-負債纍纍
-傷痕纍纍
+債纍纍
+果纍纍
+實纍纍
 儒略曆
 伊斯蘭曆
 酒麴
-昇平
 爾冬陞
 澹臺
 拜託
 委託
 輓曲
 敬輓
+輓車
+輓輸
+輓辭
 万俟
 万旗
 鬚鯨
 叶韻
 叶音
 叶恭弘
-叶 恭弘
-叶 恭弘
 於1
 於2
 於3
 於8
 於9
 於0
-於1
-於2
-於3
-於4
-於5
-於6
-於7
-於8
-於9
-於0
 於一
 於二
 於三
 於夫羅
 於梨華
 置於
-佈於
 散於
 播於
 國於
 心於
 集於
 容於
-髒詞
-髒心
 新紮
 紙紮
 紮鐵
 百紮
 千紮
 萬紮
-佔1
-佔2
-佔3
-佔4
-佔5
-佔6
-佔7
-佔8
-佔9
-佔0
-佔1
-佔2
-佔3
-佔4
-佔5
-佔6
-佔7
-佔8
-佔9
-佔0
-佔零
-佔〇
-佔一
-佔二
-佔兩
-佔三
-佔四
-佔五
-佔六
-佔七
-佔八
-佔九
-佔十
-佔百
-佔千
-佔万
-佔億
-佔超過
-佔不足
-佔至少
-佔少
-佔至多
-佔半
-佔多
-佔大
-佔小
-佔中
-佔東
-佔西
-佔南
-佔北
-佔平均
-佔總
-獨佔鰲頭
-所佔
-市佔
-佔率
-市佔率
-佔市場
-佔世界
-佔全
-佔國內
-佔美
-佔台
-佔香
-佔澳
-佔加
-佔新
-佔馬
-佔印
-佔英
-佔法
-佔德
-佔葡
-佔俄
-佔蘇
-佔缺
-佔A
-佔B
-佔C
-佔D
-佔E
-佔F
-佔G
-佔H
-佔I
-佔J
-佔K
-佔L
-佔M
-佔N
-佔O
-佔P
-佔Q
-佔R
-佔S
-佔T
-佔U
-佔V
-佔W
-佔X
-佔Y
-佔Z
-佔a
-佔b
-佔c
-佔d
-佔e
-佔f
-佔g
-佔h
-佔i
-佔j
-佔k
-佔l
-佔m
-佔n
-佔o
-佔p
-佔q
-佔r
-佔s
-佔t
-佔u
-佔v
-佔w
-佔x
-佔y
-佔z
-佔A
-佔B
-佔C
-佔D
-佔E
-佔F
-佔G
-佔H
-佔I
-佔J
-佔K
-佔L
-佔M
-佔N
-佔O
-佔P
-佔Q
-佔R
-佔S
-佔T
-佔U
-佔V
-佔W
-佔X
-佔Y
-佔Z
-佔a
-佔b
-佔c
-佔d
-佔e
-佔f
-佔g
-佔h
-佔i
-佔j
-佔k
-佔l
-佔m
-佔n
-佔o
-佔p
-佔q
-佔r
-佔s
-佔t
-佔u
-佔v
-佔w
-佔x
-佔y
-佔z
-佔不佔
-不佔
-佔了
-佔穩
-佔資源
-佔人便宜
-佔頭
-佔道
-佔屋
-佔網
-佔床
-佔座
-佔分
-佔飯
-佔個位
-佔後
-佔著
-佔山
-馬占山
-佔比
-佔停車
-佔哺乳
-佔下風
-少佔
-多佔
-費佔
-佔查
-佔壓
-佔優
-佔劣
-穩佔
-佔整體
-佔局部
-日佔
-美佔
-英佔
-德佔
-法佔
-俄佔
-葡佔
-西佔
-奧佔
-意佔
-義佔
-地佔
-佔場
-佔耕
-狂佔
-徵佔
-圈佔
-已佔
-佔囁
-佔主
-佔次
-寡佔
-佔去
-將佔
-將占卜
-要佔
-要占卜
-會佔
-會占卜
-占卜
-夢有五不占
-占有五不驗
 誌異
 筑前
 筑後
 鐘表面
 南京鐘
 南京鐘錶
-造鐘錶
 造鐘
-九龍表行
-鐘錶行
 鐘行
-錶行
 小型鐘表面
 小型鐘面
 小型鐘錶
 他鐘
 寺鐘
 座鐘
-盜鐘
 大笨鐘
 大本鐘
-鐘錶歷史
-錶的歷史
-鐘錶的歷史
 點多鐘
 點半鐘
 分多鐘
 操作鐘
 南屏晚鐘
 敲鐘
-瞧著鐘
-瞧著鐘錶
-瞧著錶
 警報鐘
 猶如鐘
 猶如鐘錶
 鐘差
 任何鐘錶
 任何鐘
-任何錶
-任何表示
-任何表達
-任何表演
+手錶
 選手表現
 選手表達
 選手表示
 鐘速
 紅鐘
 各類鐘
-打著鐘
-鐘意
 衛星鐘
 該鐘
 錶轉
 逆鐘
 拂鐘無聲
 鐘不空則啞
-看著鐘錶
-看著鐘
-看著錶
 晚鐘
 潛水鐘錶
 潛水鐘
 潛水錶
 樂器鐘
 鐘左右
-埋頭尋鐘錶
-埋頭尋鐘
-埋頭尋錶
 鐘陳列
 驚鐘
-望著鐘錶
-望著鐘
-望著錶
 鐘錶停
 鐘停
 銫鐘
 華嚴鐘
 懷鐘
 生物鐘
-鐘錶的
-錶的嘀嗒
-的鐘錶
-嘀嗒的錶
 鐘好
 鐘太
 鐘不
 舊錶
 台鐘
 鐘響
-叩鐘
 計時錶
 防水錶
+顯示表格
+顯示表頭
+顯示表面
+顯示表達
+顯示表明
+顯示表現
+顯示表示
+電錶
+水錶
+咪錶
 射鵰
 神鵰
 神雕像
 村落發
 蛇髮女妖
 畢生發展
-對華發動
-中美發表
+對華發
 尸魂界
 樹樑
 屋樑
 柱樑
 下樑
 上梁山
-昇陽
 僥倖
 夏遊
 秋遊
 冬遊
+傲遊 # 浏览器名
+網遊
+桌遊
+遊輪
+遊牧
+遊蕩
+遊刃
 黑奴籲天錄
 林郁方
 讚歌
-編餘
-餘墨
-唾餘
-餘韻
-歸餘
-公餘
-寬餘
-餘糧
-餘慶
-餘殃
-餘燼
-劫餘
-結餘
-燼餘
-淨餘
-餕餘
-餘暉
-餘輝
-羨餘
-餘悸
-心餘
-刑餘
-緒餘
-血餘
-朱慶餘
-諸餘
-餘論
-茶餘
-廚餘
-餘裕
-餘氣
-詩餘
-詞餘
-餘僇
-餘辜
-餘責
-餘罪
-無餘
-耳餘
-餘烈
-餘思
-鹽餘
-嬴餘
-贏餘
-王餘魚
-紆餘
-餘波
-餘杯
-餘步
-餘妙
-餘音
-餘聲
-餘明
-餘風
-餘黨
-餘毒
-餘桃
-餘桶
-餘利
-餘瀝
-餘膏
-餘光
-餘杭
-餘竅
-餘缺
-餘暇
-餘閒
-餘羨
-餘響
-餘興
-餘蓄
-餘緒
-餘珍
-餘眾
-餘酲
-餘喘
-餘食
-餘熱
-餘刃
-餘閏
-餘存
-餘業
-餘姚
-餘蔭
-餘映
-餘外
-餘威
-餘味
-餘溫
-餘勇
-多餘
-剩餘
-餘生
-餘歡
-有餘
-一餘
-二餘
-兩餘
-三餘
-四餘
-五餘
-六餘
-七餘
-八餘
-九餘
-十餘
-百餘
-千餘
-萬餘
-億餘
-兆餘
-0餘
-1餘
-2餘
-3餘
-4餘
-5餘
-6餘
-7餘
-8餘
-9餘
-0餘
-1餘
-2餘
-3餘
-4餘
-5餘
-6餘
-7餘
-8餘
-9餘
-余姓
-余光生
-余光中
-余思敏
-余威德
-余子明
-余三勝
 崑山
 崑曲
 崑腔
 崑劇
 崑蘇
 蘇崑
-分布圖
 一干家中
 星期後
-不准你
-不准我
-不准他
-不准她
-不准它
-不准誰
-不准許
-准不准你
-准不准我
-准不准他
-准不准她
-准不准它
-准不准誰
-准不准許
 依依不捨
 戀戀不捨
 窮追不捨
 緊追不捨
 鍥而不捨
 稜登
-前言不答後語
 繃扒弔拷
 不弔
 不通弔慶
 陪弔
 盆弔
-屁股大弔了心
 撇弔
 憑弔
 門弔兒
 搗鬼弔白
 弔膀子
 弔民
-弔民伐罪
 弔奠
 弔頭
 弔古
-弔古尋幽
 弔詭
-弔詭矜奇
 弔客
 弔拷
-弔拷繃扒
 弔扣
 弔賀迎送
 弔鶴
 弔喉
 弔謊
 弔祭
+弔恤
 弔腳兒事
-弔頸
-弔橋
 弔取
 弔孝
 弔紙
 弔者大悅
-弔場
-弔書
 弔詞
-弔死問孤
-弔死問疾
 弔撒
 弔喪
-弔喪問疾
 弔腰撒跨
 弔唁
 弔宴
 弔慰
 弔文
 弔問
-頭巾弔在水裡
-提心弔膽
 弄鬼弔猴
-管人弔腳兒事
 開弔
 鶴弔
 昊天不弔
 吉凶慶弔
 蟣蝨相弔
 祭弔
-祭弔文
-青蠅弔客
 慶弔
-形影ç\9b¸å¼\94
+影相弔
 哀弔
-一弔
 唁弔
 於水
 安於
 源於
 且於
 長於
-短於
 現於
 較於
 於之
 晚於
 感於
 鬼谷子
+谷子敬
+洪谷子
 于美人
 緊緻
-冗餘
 曰云
 若干
 徵婚
 鬥風
 鬥雪紅
 鬥暴
-鬥é\96\91
+鬥é\96\92
 龍鬥虎傷
 殷師牛鬥
 二虎相鬥
 藏歷史
 頁面
 方面
-表面
 面條目
-課餘
-節餘
-盈餘
-病餘
-餘地
-餘力
-餘子
-餘事
-扶餘國
-腐餘
-富餘
-之餘
-餘澤
-流風餘俗
-流風餘韻
-淋餘土
-餘一
-餘二
-餘三
-餘四
-餘五
-餘六
-餘七
-餘八
-餘九
-餘十
-零餘
-〇餘
-餘零
-餘〇
-餘1
-餘2
-餘3
-餘4
-餘5
-餘6
-餘7
-餘8
-餘9
-餘0
-餘1
-餘2
-餘3
-餘4
-餘5
-餘6
-餘7
-餘8
-餘9
-餘0
-餘數
-其餘
-尸居餘氣
-賸餘
-餘孽
-殘餘
-業餘
-餘割
-餘款
-餘角
-餘切
-餘霞
-餘下
-餘弦
-餘震
-餘貾
-餘額
-禹餘糧
-餘人
-編余
-病余
-餘俗
-餘倍
-同餘
 大讚
 唄讚
 褒讚
 本徵
 船鐘
 黃鈺筑
-齊莊
-鴻案相莊
-項莊
-韋莊
-鍋莊
-鄭莊公
-通莊
-蒙莊
-端莊
-票莊
-矜莊
-楚莊問鼎
-楚莊絕纓
-整莊
-打路莊板
-莊騷
-莊語
-莊舄越吟
-莊房
-莊客
-莊農
-平泉莊
-布莊
 香山庄
-寶莊
-坐莊
-周莊王
-發莊
-卞莊
-包莊
-剔莊貨
-劉克莊
-冷莊子
-石家莊
-卞莊子
-新莊市
 當準
 憑準
 沒準
 三準
 鵝準
 有準
-崑崙
 鎌倉
 請君入甕
 甕安
 癒合
 槓桿
 宣洩
+鑑別
+鑑察
+鑑定
+鑑戒
+鑑諒
+鑑賞
+鑑於
+鑑證
+鑑湖
+鑑識
+鑑藏
+鑑往知來
+品鑑
+評鑑
+可鑑
+為鑑
+之鑑
+鑑古
+明鑑
+寶鑑
+破鑑
+年鑑
 圖鑑
-諮詢
+通鑑
+綱鑑
+鸞鑑
+借鑑
+龜鑑
+衡鑑
+史鑑
+殷鑑
+印鑑
+王鑑
 勳章
 張勳
 趙治勳
 兇槍
 很兇
 兇巴巴
-行兇前
+頂兇
+太兇
+好兇
 凝鍊
 鍊貧
 鍊度
 母醜
 一齣子
 齣兒
-賣獃
-發獃
-大獃
-獃獃
-獃等
-獃頭
-獃腦
-獃根
-獃磕
-獃憨獃
-獃話
-獃氣
-獃想
-獃性
-獃滯
-獃著
-獃痴
 獃串了皮
-獃事
-獃人
-獃子
-好獃
 占便宜的是獃
-阿獃
 丰標
 丰姿
 丰韻
 撲鼕鼕
 普鼕鼕
 鼕鼕鼓
-令人髮指
-爆發指數
-開發
-剪其髮
-吐哺捉髮
-吐哺握髮
-含齒戴髮
-大金髮苔
-寸髮千金
-心長髮短
-戴髮含齒
-拔髮
-拔鬚
-揪髮
-揪鬚
-整髮用品
-斷髮文身
-滿頭洋髮
-燙一個髮
-燙一次髮
-燙個髮
-燙完髮
-燙次髮
-理一個髮
-理一次髮
-理個髮
-理完髮
-理次髮
-細如髮
-繫於一髮
-膚髮
-皮膚
-生華髮
-蒼髮
-被髮佯狂
-被髮入山
-被髮左衽
-被髮纓冠
-被髮陽狂
-身體髮膚
-髒髮
-髮光可鑑
-髮已霜白
-髮油
-髮為血之本
-髮網
-髮踊沖冠
-髮際
-黃髮
-齒落髮白
 剷頭
 剷刈
 口燥唇乾
 對表揚
 對表中
 對表明
-不準確
-並不準確
 一伙頭
 一伙食
 一半只
 萬一只
 上面糊
 不克自制
-不准沒
 不加自制
 不占凶吉
 不占卜
 台子女
 台子孫
 台布景
-台面前
+台州
+台風穩健
+穩健的台風
+台風獎
 合府上
 後面店
 向往常
 好斗篷
 好斗膽
 好斗蓬
-家具體
-家具備
-家具有
 小几
 尸利
 尸祿
 面包涵
 面包管
 面包羅
-面包著
 面包藏
 面包裝
 面包裹
 面包起
-面店
+面店
 面粉碎
 面粉紅
 面食麵
 恕乏价催
 悲筑
 折子戲
-揮杆
 搤肮拊背
 文采郁郁
-木杆
 洪适
-球杆
 腊之以為餌
 腊毒
 蜡月
 宜云
 貴价
 郁郁菲菲
-馬杆
-造麯
-麴生
-麴秀才
-麴塵
-麴櫱
-大麴
-黃麴毒素
-酒醴麴櫱
-麴道士
-麴錢
-麴車
-麴院
-鼠麴草
 不乾不淨
 生發生
 必須
 須根據
 ·范
-、剋制
-,剋制
-。剋制
-!剋制
-?剋制
-;剋制
-:剋制
-不剋制
-也剋制
-了剋制
-他剋制
-們剋制
-剋制不了
-剋制不住
-力剋制
-力求剋制
-可以剋制
-和剋制
-在剋制
-地剋制
-夠剋制
-她剋制
-你剋制
-您剋制
-就剋制
-彼此剋制
-得剋制
-快剋制
-想剋制
-意剋制
-應剋制
-我剋制
-才剋制
-於剋制
-易剋制
-無法剋制
-的剋制
-盡量剋制
-而剋制
-能剋制
-與剋制
-著剋制
-要剋制
-軍隊剋制
-空投佈雷
-火箭佈雷
-海灣佈雷
-空中佈雷
-海上佈雷
-佈雷的
-佈雷,
-佈雷、
-佈雷。
-佈雷;
-佈雷艦
-佈雷艇
-佈雷速度
-佈雷封鎖
+剋剝
+科尼亞克期
+馬斯垂克期
 滿拚自盡
 拚生盡死
 拚卻
 范文藤
 范文虎
 范文照
-發表
 乾重
-若干
 鈎心鬥角
-若干
-乾重
 全面包圍
 全面包裹
 機械系
 心理
 複分解
 鹰鵰
-叱咤903
-叱咤MY903
-叱咤My903
-叱咤樂壇
-叱咤咤
-叱咤叱咤叱咤咤
-叱咤叱叱咤
-正在叱咤
-空餘
-變髒
 天地志狼
 薴烯
-阿斯圖里亞斯
 雙折射
 心繫家
 心繫國
 心繫病
 心繫故
 心繫哪
-心繫中
 心繫英
 心繫美
 心繫日
 心繫夫
 心繫女
 心繫子
-心繫著
+繫鞋帶
+繫船
+繫着
 重回
 挑大樑
 扛大樑
 限制
 控制
 製取
-第四出局
 心臟
 肝臟
 脾臟
 肺臟
 腎臟
-參與
 浮誇
-星巴克
+誇人
+誇姣
+誇容
+誇毗
+誇麗
 于謙
 于寘
 淳于
 電子表格
 雪裡紅
 雪裡蕻
+樹林裡
+叢林裡
 森林裡
-日子裡
-故事裡
-領域裡
-時間裡
-深淵裡
-醫院裡
-春假裡
-暑假裡
-秋假裡
-寒假裡
-春天裡
-夏天裡
-秋天裡
-冬天裡
-春日裡
-夏日裡
-秋日裡
-冬日裡
+水裡
+子裡
+事裡
+域裡
+間裡
+淵裡
+院裡
+假裡
+天裡
+日裡
 嘴裡
 心裡
 皮裡陽秋
 裡面
 這裡
 中文裡
-洞裡
-界裡
+洞裡
+界裡
 眼睛裡
+百科裡
+歷史裡
+戲裡
+作品裡
+專輯裡
+年代裡
+棺材裡
+假里白
+天里村
+上天里
+天里昂
+人生天里
+白子里
+朴子里
+翁子里
+田子里
+部子里
+曹子里
+埔子里
+廍子里
+廓子里
+堡子里
+墨子里
+瑞城里
+金城里
+西湖里
+子里甲
+水里商工
+車里雅賓斯克
+漠裡
+集裡
+節目裡
+場裡
+世紀裡
+亞美尼亞曆
+注釋
+月面
+路面
+修杰楷
+修杰麟
+學裡
+獄裡
+館裡
+箱裡
+系列裡
+點裡
+點里程
+家裡
+忙裡偷閒
+夜晚裡
+參數裡
+集數裡
+人數裡
+總數裡
+代數裡
+函數裡
+素數裡
+質數裡
+自然數裡
+索馬里 # (及以下)避免里海=>裏海的轉換
+西西里
+騰格里
+阿里
+村里長
+峇里海
+里海崖
+里海茨
+里海大學
+孛里海
+布里海
+公里海
+地圖裡
+版圖裡
+配圖裡
+路圖裡
+線圖裡
+幅圖裡
+鏡圖裡
+從圖裡
+的圖裡
+圖裡的
+圖裡,
+深山裡
+冰山裡
+火山裡
+在山裡
+的山裡
+到山裡
+去山裡
+從山裡
+山裡的
+山裡有
+棉裡
+語裡
+方法裡
+語法裡
+看法裡
+憲法裡
+用法裡
+法裡,
 首發
 夸脫
 誰幹的
 字碼表
 電碼表
 科斗
-佔領
 灕水
-點裡
-這只是
 這只不
 這只容
 這只允
 這只採
-這只用
 有只是
 有只不
 有只容
 包括
 特别致
 分别致
-會上簽訂
-會上簽署
-周一 # (及以下)避免“周一齣版”的錯誤
-周二
-周三
-周四
-周五
-周六
 韶山沖
-總裁制
 于丹
 于樂
 于冕
 于風政
 于鳳桐
 于默奧
-于家堡
 于爾岑
-于默奧
 于貝爾
 于爾根
 于雙戈
 涂醒哲
 涂善妮
 涂敏恆
-總裁制
 故云
 強制作用
 鬱南
 西米谷
-一出生
-二出生
-三出生
-四出生
-五出生
-六出生
-七出生
-八出生
-九出生
-十出生
-一出版
-二出版
-三出版
-四出版
-五出版
-六出版
-七出版
-八出版
-九出版
-十出版
-一出刊
-二出刊
-三出刊
-四出刊
-五出刊
-六出刊
-七出刊
-八出刊
-九出刊
-十出刊
-一出逃
-二出逃
-三出逃
-四出逃
-五出逃
-六出逃
-七出逃
-八出逃
-九出逃
-十出逃
-一出口
-二出口
-三出口
-四出口
-五出口
-六出口
-七出口
-八出口
-九出口
-十出口
-一出祁山
-二出祁山
-三出祁山
-四出祁山
-五出祁山
-六出祁山
-七出祁山
-八出祁山
-九出祁山
-十出祁山
 鬱林
 饑荒
 免徵
-亞美尼亞曆
-百科裡
-歷史裡
-戲裡
-作品裡
-專輯裡
-年代裡
-棺材裡
-注釋
-月面
-路面
-修杰楷
-修杰麟
-學裡
-獄裡
-館裡
-箱裡
-系列裡
-村子裡
 艷后
 廢后
 妖后
 后街
 后羿
 后稷
-后座
+仙后座
+六樓后座
 后平路
 后安路
 后土
 伊里布
 劃入
 中庄子
-埔裏社撫墾局
+埔裏社
 懸掛
 僱傭
 四捨六入
 宿舍
+校舍
 會干擾
-代表
 高清愿
 瓷製
 竹製
 絲製
 莜麵
-劃入
 簡筑翎
 楊雅筑
 魔杰座
 杰威爾音樂
 彭于晏
 尸羅精舍
-索馬里 # (及以下)避免里海=>裏海的轉換
-西西里
-騰格里
-阿里
-村里長
 進制
 黃詩杰
-陳冲
 何杰
 劉佳怜
 于小惠
-于品海
 于耘婕
 于洋
 于澄
 于國治
 于楓
 于熙珍
-涂善妮
 邱于庭
 熊杰
 卜云吉
 于飛島
 代表
 水無怜奈
-傲遊 # 浏览器名
-夏于喬
 賭后
-后海灣
-立后綜
+山仔后
 甲后路
 劉芸后
 謝華后
 聖后
 陳有后
 許虬
-網遊
 狄志杰
 伊適杰
 于冠華
-于台煙
 于雲鶴
 于忠肅集
 于友澤
 于和偉
 于來山
-于樂
 于天龍
 于謹
 于榮光
 電波鐘
-余三勝
 掛名
 啟發式
 舞后
 7年
 8年
 9年
-0年
-1年
-2年
-3年
-4年
-5年
-6年
-7年
-8年
-9年
 〇年
 零年
 一年
 7周後
 8周後
 9周後
-0周後
-1周後
-2周後
-3周後
-4周後
-5周後
-6周後
-7周後
-8周後
-9周後
 零周後
 〇周後
 一周後
 于鬯
 于仲文
 于再清
+茅于軾
+張樂于張徐
+鮮于樞
+于寶軒
 于震
 於震前
 於震后
 划行
 划算
 總裁制
+仲裁制
+獨裁制
 恒生
 嚴云農
 手裏劍
-秦莊襄王
 伊東怜
 衛後莊公
-餘量
 並行
 郁郁青青
 協防
-對表格
-對表示
-對表達
-對表演
-對表明
 了然後
 戴表元
-張樂于張徐
 余力為
 葉叶琴
-万俟
 幾個
 澀谷區
-協調
-選手
 併發症
 併發重症
 併發模式
 併發型模式
-金色長髮
-紅色長髮
-一頭長髮
+色長髮
+頭長髮
 的長髮
-黑色長髮
-前天
-昨天
-今天
-明天
 後天
-數學家
-科學家
-物理學家
-化學家
-生物學家
-天文學家
+學家
 游離
-子晳
 紅后假說
 書面
 不只
 高涌泉
-請求
-考試
-測試
-筆試
-口試
-冰冷
 王田里
 后姓
-台州
 田庄英雄
 計劃
 抑制劑
+党姓
+党家
+种丹妮
+當當網
+縴繩
+佣金
+佣錢
+佣鈿
+回佣
+蕓薹
+宋王臺
+臺佟
+臺靜農
+改採
+林鵞峰
+沙羡
+最多只
+大多只
+至多只
+只影響
+測不準
+說不準
+對不準
+量不準
+準不準
+音不準
+預報不準
+時間不準
+不太準
+非常準
+很準
+萬曆
+永曆
+囓蟲
+勳勞
+勳績
+勳爵
+勳業
+授勳
+奇勳
+功勳
+蝎虎
+磨蝎
+鬥劍
+激鬥
+政鬥
+沈海蓉
+方志恒
+古蹟
+瀋撫
+賦范
+騰衝
+沖天
+豐臺
+陽穀
+蒸乾
+太醜
+御製
+合併
+聖人曆
+电影後
+封為后
+皮托管
+白面包青天
+天神之后
+栗栖溪
+羅馬曆
+羅馬歷史
+羅馬歷代
+你誇
+誇你
+誇我
+誇他
+誇她
+誇了
+被誇
+誇辯
+誇大
+誇誕
+誇官
+誇口
+誇誇其談
+誇海口
+誇獎
+誇強說會
+誇下海口
+誇詡
+誇張
+誇示
+誇飾
+誇勝道強
+誇說
+誇才
+誇耀
+矜誇
+誇能
+自誇
+誇稱
+誇讚
+更加注
+繼承制
+布穀鳥
+黎克特制
+筆桿
+袋桿
+槍桿
+秤桿
+兩桿
+桿菌
+桿秤
+桿槍
+四桿鐵筆
+徒杠
+杠梁
+杠轂
+杠人
+石杠
+墨瀋
+米瀋
+拾瀋
+乾物
+姦污
+託兒
+同人誌
+文學誌
+衝着
+確係
+乃係
+開山辟谷
+穀祿
+製衣
+巨製
+不捲
+漫捲
+捲地
+捲葉蛾
+捲尾猴
+捲積雲
+窗簾
+吉徵
+凶徵
+臟腑
+臟胸
+弄髒胸
+腸臟
+養臟
+膵臟
+驚慄
+支配慾
+利慾
+悽美
+滷煮
+滷蝦
+滷鴨
+滷鵝
+滷牛
+滷五花
+滷子
+滷料
+滷豆
+滷了
+滷的
+滷好
+打滷
+滷麵
+烤滷
+錦滷
+汤滷
+浸滷
+石鐘
+石鐘山
+花葯
+聚葯雄蕊
+遺蹟
+開山闢谷
+受僱
+僱請
+僱車
+僱船
+米糰
+謹愿
+瞎矇
+里舖
+喧譁
+譁眾
+譁囂
+譁然
+譁噪
+譁笑
+譁變
+鼓譟
+譟詐
+蕩氣
+木籤
+薝蔔
+斗牛星
+告劄
+點劄
+嚮慕
+儘自
+憑閑
+倚閑
+踰閑
+閑邪
+摺檯
+球檯
+櫃檯
+吧檯
+賭檯
+坐檯
+妝檯
+餐檯
+工作檯
+辦公檯
+檯面上
+上檯面
+牴觸
+牴牾
+角牴
+扼肮
+搤肮
+嫩薑
+酸薑
+薑啤
+鹹濕
+騰湧
+草蓆
+竹蓆
+藤蓆
+涼蓆
+灘蓆
+麻將蓆
+裏水鎮
+被廢後
+蒸製
+體徵
+綜合徵
+价川
+商標准許
+批准確定
+御嶽山
+兩齣
+進兩出
+幾進幾出
+十出生
+十出頭
+十出擊
+十出家
+十出祁山
+0齣
+0出現
+0出線
+第一齣
+第二齣
+第三齣
+第四齣
+第五齣
+第六齣
+第七齣
+第八齣
+第九齣
+第一出現
+第一出線
+第二出線
+第三出局
+第四出局
+第五出局
+這齣
+這出現
+這出乎
+這出人
+這出生
+這出世
+這出身
+這出色
+這出版
+這出道
+本齣戲
+整齣戲
+一齣戲
+三齣戲
+一齣好戲
+一齣電影
+首齣電影
+多齣電影
+整齣電影
+一齣劇
+整齣劇
+一齣悲劇
+一齣喜劇
+捨入
+舍入口
+繫上了
+繫上頭
+繫上紅
+繫上黑
+繫上絲
+繫上繩
+繫上安全
+上繫上
+被繫上
+繫上,
+繫上。
+亂發生
+亂發脾氣
+秀發村
+秀發動
+秀發表
+秀發布
+秀發現
+秀發生
+秀發起
+秀發展
\ No newline at end of file
index e6abb4e..4a3613b 100644 (file)
@@ -27,7 +27,6 @@
 弔架
 弔桶
 弔桿
-弔橋
 弔燈
 弔環
 弔籃
 饑餓
 饑不擇食
 饑荒
-憑藉
-藉故
-藉口
 藉端
-藉詞
 藉酒
 蛋捲
 行李捲
@@ -91,7 +86,6 @@
 獃氣
 獃子
 獃頭獃腦
-儘量
 希腊
 腊肉
 瞭如
 光採
 鍾錶
 複原
-參与
 浮夸
 剋日
 羡
 姦污
 併發
 衚衕
+轉檯
+檯子
+佣人
+佣工
+佣仆
+男佣
+女佣
+傢俱
+傢具
+華冑
+裔冑
+貴冑
+美髮
+癥狀
+癥候
+不準
+囓合
+囓齒類
+編製
+索麵
+專註
+鬥上
+古迹
+划了
+合并
+划出
+划到
+題籤
+克複
+意麵
+明裡
+華髮
+迴流
+採的
+複名
+看錶
+嚮應
+複電
+綵排
+綵帶
+綵樓
+綵牌樓
+綵球
+綵綢
+綵線
+綵船
+綵衣
+結綵
+戲綵娛親
+剪綵
+複檢
+黃曲霉
+佔有慾
+不佔
+佔上風
+佔下
+佔了
+佔位
+佔住
+佔佔
+佔便宜
+佔個
+佔優勢
+佔先
+佔光
+佔到
+佔去
+佔取
+佔在
+佔地
+佔多數
+佔好
+佔得
+佔掉
+佔據
+佔有
+佔滿
+佔為
+佔用
+佔畢
+佔盡
+佔線
+佔起
+佔過
+佔領
+佔頭籌
+佔高枝兒
+侵佔
+先佔
+分佔
+只佔
+強佔
+搶佔
+攻佔
+會佔
+照佔
+約佔
+連佔
+進佔
+還佔
+隱佔
+霸佔
+非佔不可
+鳩佔鵲巢
+占
+佔0
+佔1
+佔2
+佔3
+佔4
+佔5
+佔6
+佔7
+佔8
+佔9
+佔A
+佔B
+佔C
+佔D
+佔E
+佔F
+佔G
+佔H
+佔I
+佔J
+佔K
+佔L
+佔M
+佔N
+佔O
+佔P
+佔Q
+佔R
+佔S
+佔T
+佔U
+佔V
+佔W
+佔X
+佔Y
+佔Z
+佔〇
+佔一
+佔七
+佔三
+佔下風
+佔不佔
+佔不足
+佔世界
+佔中
+佔主
+佔九
+佔二
+佔五
+佔人便宜
+佔俄
+佔個位
+佔億
+佔優
+佔全
+佔兩
+佔八
+佔六
+佔分
+佔加
+佔劣
+佔北
+佔十
+佔千
+佔半
+佔南
+佔印
+佔台
+佔囁
+佔四
+佔國
+佔場
+佔壓
+佔多
+佔大
+佔小
+佔少
+佔局部
+佔屋
+佔山為
+佔市
+佔平均
+佔床
+佔座
+佔後
+佔德
+佔整
+佔新
+佔東
+佔查
+佔次
+佔比
+佔法
+佔澳
+佔率
+佔百
+佔網
+佔總
+佔缺
+佔美
+佔耕
+佔至多
+佔至少
+佔臺
+佔英
+佔萬
+佔葡
+佔蘇
+佔西
+佔資
+佔超過
+佔道
+佔零
+佔頭
+佔香
+佔馬
+俄佔
+圈佔
+地佔
+多佔
+奧佔
+寡佔
+將佔
+少佔
+已佔
+市佔
+徵佔
+德佔
+意佔
+所佔
+日佔
+法佔
+狂佔
+獨佔
+穩佔
+美佔
+義佔
+英佔
+葡佔
+西佔
+要佔
+費佔
+標準桿
+單杠
+杠子
+杠鈴
+經濟杠桿
+高低杠
+陞官
+姦汙
+興緻
+景緻
+別緻
+雅緻
+崑
+表
+錶
+小夥子
+夸父
+夸特
+夸脫
+心臟痲痹
+心臟麻痺
+悽涼
+悽悽
+悽豔
+悽切
+悽楚
+家裏
+利欲熏心
+遊離票
+遊離份子
+閑
+鍊鋼
+事迹
+痕迹
+遺迹
+僱員
+僱用
+霉素
+遊盪
+搖蕩
+激蕩
+動蕩
+跌蕩
+震蕩
+充饑
+儘力
+彈葯
+炸葯
+醫葯
+骯臟
+釐升
+蓆地
+晒
+窗檯
+和尚撞一天鍾
+製為
+裡布
+里布
+圖裡
+山裡
+複發
+照準
+四齣
+五齣
+六齣
+弔兒郎當
+髮小
+髮網
+修鍊
+麵線
+繫上
+清湯掛麵
+牛肉麵
+檯面
+庄
+複信
+複核
+三複
+來複
+匡複
+傾複
+墾複
+往複
+被複
+複仞年如
+複以百萬
+複位
+複合
+複員
+複壯
+複復
+複流
+複畝珍
+起複
+餘
\ No newline at end of file
index 5247637..6b7c77b 100755 (executable)
@@ -1,25 +1,4 @@
 #!/usr/bin/env bash
 set -e
-
-JSDUCK_MWVERSION=master
-if [[ "$1" == "--version" && "$2" != "" ]]
-then
-       JSDUCK_MWVERSION="$2"
-elif [[ "$*" != "" ]]
-then
-       FILENAME=$(basename $0)
-       echo "Usage: $FILENAME [--version <mediawiki version>]"
-       echo
-       exit 1
-fi
-
-MWCORE_DIR=$(cd $(dirname $0)/..; pwd)
-
-jsduck \
---config=$MWCORE_DIR/maintenance/jsduck/config.json \
---footer="Documentation for branch ($JSDUCK_MWVERSION) on {DATE} by {JSDUCK} {VERSION}." \
---processes 0
-
-echo 'JSDuck execution finished.'
-
-ln -s ../../resources $MWCORE_DIR/docs/js/modules
+cd $(dirname $0)/..
+jsduck
index b04639c..47866dc 100644 (file)
@@ -113,6 +113,7 @@ class RebuildLocalisationCache extends Maintenance {
                $total = count( $codes );
                $chunks = array_chunk( $codes, ceil( count( $codes ) / $threads ) );
                $pids = array();
+               $parentStatus = 0;
                foreach ( $chunks as $codes ) {
                        // Do not fork for only one thread
                        $pid = ( $threads > 1 ) ? pcntl_fork() : -1;
@@ -121,9 +122,8 @@ class RebuildLocalisationCache extends Maintenance {
                                // Child, reseed because there is no bug in PHP:
                                // http://bugs.php.net/bug.php?id=42465
                                mt_srand( getmypid() );
-                               $numRebuilt = $this->doRebuild( $codes, $lc, $force );
-                               // Abuse the exit value for the count of rebuild languages
-                               exit( $numRebuilt );
+                               $this->doRebuild( $codes, $lc, $force );
+                               exit( 0 );
                        } elseif ( $pid === -1 ) {
                                // Fork failed or one thread, do it serialized
                                $numRebuilt += $this->doRebuild( $codes, $lc, $force );
@@ -136,13 +136,20 @@ class RebuildLocalisationCache extends Maintenance {
                foreach ( $pids as $pid ) {
                        $status = 0;
                        pcntl_waitpid( $pid, $status );
-                       // Fetch the count from the return value
-                       $numRebuilt += pcntl_wexitstatus( $status );
+                       if ( pcntl_wexitstatus( $status ) ) {
+                               // Pass a fatal error code through to the caller
+                               $parentStatus = pcntl_wexitstatus( $status );
+                       }
                }
 
-               $this->output( "$numRebuilt languages rebuilt out of $total\n" );
-               if ( $numRebuilt === 0 ) {
-                       $this->output( "Use --force to rebuild the caches which are still fresh.\n" );
+               if ( !$pids ) {
+                       $this->output( "$numRebuilt languages rebuilt out of $total\n" );
+                       if ( $numRebuilt === 0 ) {
+                               $this->output( "Use --force to rebuild the caches which are still fresh.\n" );
+                       }
+               }
+               if ( $parentStatus ) {
+                       exit( $parentStatus );
                }
        }
 
index 862a983..2bc7510 100644 (file)
@@ -23,7 +23,7 @@
 require_once __DIR__ . '/Maintenance.php';
 
 /**
- * Maintenance script to dump the SiteStore as a static json file.
+ * Maintenance script to dump a SiteStore as a static json file.
  *
  * @ingroup Maintenance
  */
@@ -32,17 +32,17 @@ class RebuildSitesCache extends Maintenance {
        public function __construct() {
                parent::__construct();
 
-               $this->mDescription = "Dumps site store as json";
+               $this->mDescription = "Cache sites as json for file-based lookup.";
                $this->addOption( 'file', 'File to output the json to', false, true );
        }
 
        public function execute() {
-               $siteListFileCacheBuilder = new SiteListFileCacheBuilder(
-                       SiteSQLStore::newInstance(),
+               $sitesCacheFileBuilder = new SitesCacheFileBuilder(
+                       new DBSiteStore(),
                        $this->getCacheFile()
                );
 
-               $siteListFileCacheBuilder->build();
+               $sitesCacheFileBuilder->build();
        }
 
        /**
@@ -55,7 +55,7 @@ class RebuildSitesCache extends Maintenance {
                        $jsonFile = $this->getConfig()->get( 'SitesCacheFile' );
 
                        if ( $jsonFile === false ) {
-                               $this->error( 'Error: No sites cache file is set in configuration.', 1 );
+                               $this->error( 'Error: No file set in configuration for SitesCacheFile.', 1 );
                        }
                }
 
index 0c2f722..e1b6ac6 100644 (file)
@@ -36,42 +36,51 @@ class RefreshLinks extends Maintenance {
                $this->addOption( 'new-only', 'Only affect articles with just a single edit' );
                $this->addOption( 'redirects-only', 'Only fix redirects, not all links' );
                $this->addOption( 'old-redirects-only', 'Only fix redirects with no redirect table entry' );
-               $this->addOption( 'm', 'Maximum replication lag', false, true );
                $this->addOption( 'e', 'Last page id to refresh', false, true );
+               $this->addOption( 'dfn-chunk-size', 'Maximum number of existent IDs to check per ' .
+                       'query, default 100000', false, true );
                $this->addArg( 'start', 'Page_id to start from, default 1', false );
                $this->setBatchSize( 100 );
        }
 
        public function execute() {
-               $max = $this->getOption( 'm', 0 );
+               // Note that there is a difference between not specifying the start
+               // and end IDs and using the minimum and maximum values from the page
+               // table. In the latter case, deleteLinksFromNonexistent() will not
+               // delete entries for nonexistent IDs that fall outside the range.
+               $start = (int)$this->getArg( 0 ) ?: null;
+               $end = (int)$this->getOption( 'e' ) ?: null;
+               $dfnChunkSize = (int)$this->getOption( 'dfn-chunk-size', 100000 );
                if ( !$this->hasOption( 'dfn-only' ) ) {
-                       $start = $this->getArg( 0, 1 );
                        $new = $this->getOption( 'new-only', false );
-                       $end = $this->getOption( 'e', 0 );
                        $redir = $this->getOption( 'redirects-only', false );
                        $oldRedir = $this->getOption( 'old-redirects-only', false );
-                       $this->doRefreshLinks( $start, $new, $max, $end, $redir, $oldRedir );
+                       $this->doRefreshLinks( $start, $new, $end, $redir, $oldRedir );
+                       $this->deleteLinksFromNonexistent( null, null, $this->mBatchSize, $dfnChunkSize );
+               } else {
+                       $this->deleteLinksFromNonexistent( $start, $end, $this->mBatchSize, $dfnChunkSize );
                }
-               $this->deleteLinksFromNonexistent( $max, $this->mBatchSize );
        }
 
        /**
         * Do the actual link refreshing.
-        * @param int $start Page_id to start from
+        * @param int|null $start Page_id to start from
         * @param bool $newOnly Only do pages with 1 edit
-        * @param int $maxLag Max DB replication lag
-        * @param int $end Page_id to stop at
+        * @param int|null $end Page_id to stop at
         * @param bool $redirectsOnly Only fix redirects
         * @param bool $oldRedirectsOnly Only fix redirects without redirect entries
         */
-       private function doRefreshLinks( $start, $newOnly = false, $maxLag = false,
-               $end = 0, $redirectsOnly = false, $oldRedirectsOnly = false
+       private function doRefreshLinks( $start, $newOnly = false,
+               $end = null, $redirectsOnly = false, $oldRedirectsOnly = false
        ) {
                global $wgParser, $wgUseTidy;
 
                $reportingInterval = 100;
                $dbr = wfGetDB( DB_SLAVE );
-               $start = intval( $start );
+
+               if ( $start === null ) {
+                       $start = 1;
+               }
 
                // Give extensions a chance to optimize settings
                wfRunHooks( 'MaintenanceRefreshLinksInit', array( $this ) );
@@ -89,15 +98,10 @@ class RefreshLinks extends Maintenance {
 
                        $conds = array(
                                "page_is_redirect=1",
-                               "rd_from IS NULL"
+                               "rd_from IS NULL",
+                               self::intervalCond( $dbr, 'page_id', $start, $end ),
                        );
 
-                       if ( $end == 0 ) {
-                               $conds[] = "page_id >= $start";
-                       } else {
-                               $conds[] = "page_id BETWEEN $start AND $end";
-                       }
-
                        $res = $dbr->select(
                                array( 'page', 'redirect' ),
                                'page_id',
@@ -124,7 +128,8 @@ class RefreshLinks extends Maintenance {
                                array( 'page_id' ),
                                array(
                                        'page_is_new' => 1,
-                                       "page_id >= $start" ),
+                                       self::intervalCond( $dbr, 'page_id', $start, $end ),
+                               ),
                                __METHOD__
                        );
                        $num = $res->numRows();
@@ -253,19 +258,60 @@ class RefreshLinks extends Maintenance {
         * Removes non-existing links from pages from pagelinks, imagelinks,
         * categorylinks, templatelinks, externallinks, interwikilinks, langlinks and redirect tables.
         *
-        * @param int $maxLag
+        * @param int|null $start Page_id to start from
+        * @param int|null $end Page_id to stop at
         * @param int $batchSize The size of deletion batches
+        * @param int $chunkSize Maximum number of existent IDs to check per query
         *
         * @author Merlijn van Deen <valhallasw@arctus.nl>
         */
-       private function deleteLinksFromNonexistent( $maxLag = 0, $batchSize = 100 ) {
+       private function deleteLinksFromNonexistent( $start = null, $end = null, $batchSize = 100,
+               $chunkSize = 100000
+       ) {
                wfWaitForSlaves();
+               $this->output( "Deleting illegal entries from the links tables...\n" );
+               $dbr = wfGetDB( DB_SLAVE );
+               do {
+                       // Find the start of the next chunk. This is based only
+                       // on existent page_ids.
+                       $nextStart = $dbr->selectField(
+                               'page',
+                               'page_id',
+                               self::intervalCond( $dbr, 'page_id', $start, $end ),
+                               __METHOD__,
+                               array( 'ORDER BY' => 'page_id', 'OFFSET' => $chunkSize )
+                       );
 
-               $dbw = wfGetDB( DB_MASTER );
+                       if ( $nextStart !== false ) {
+                               // To find the end of the current chunk, subtract one.
+                               // This will serve to limit the number of rows scanned in
+                               // dfnCheckInterval(), per query, to at most the sum of
+                               // the chunk size and deletion batch size.
+                               $chunkEnd = $nextStart - 1;
+                       } else {
+                               // This is the last chunk. Check all page_ids up to $end.
+                               $chunkEnd = $end;
+                       }
+
+                       $fmtStart = $start !== null ? "[$start" : '(-INF';
+                       $fmtChunkEnd = $chunkEnd !== null ? "$chunkEnd]" : 'INF)';
+                       $this->output( "  Checking interval $fmtStart, $fmtChunkEnd\n" );
+                       $this->dfnCheckInterval( $start, $chunkEnd, $batchSize );
+
+                       $start = $nextStart;
 
-               $lb = wfGetLBFactory()->newMainLB();
-               $dbr = $lb->getConnection( DB_SLAVE );
-               $dbr->bufferResults( false );
+               } while ( $nextStart !== false );
+       }
+
+       /**
+        * @see RefreshLinks::deleteLinksFromNonexistent()
+        * @param int|null $start Page_id to start from
+        * @param int|null $end Page_id to stop at
+        * @param int $batchSize The size of deletion batches
+        */
+       private function dfnCheckInterval( $start = null, $end = null, $batchSize = 100 ) {
+               $dbw = wfGetDB( DB_MASTER );
+               $dbr = wfGetDB( DB_SLAVE );
 
                $linksTables = array( // table name => page_id field
                        'pagelinks' => 'pl_from',
@@ -280,40 +326,58 @@ class RefreshLinks extends Maintenance {
                );
 
                foreach ( $linksTables as $table => $field ) {
-                       $this->output( "Retrieving illegal entries from $table... " );
-
-                       // SELECT DISTINCT( $field ) FROM $table LEFT JOIN page ON $field=page_id WHERE page_id IS NULL;
-                       $results = $dbr->select(
-                               array( $table, 'page' ),
-                               $field,
-                               array( 'page_id' => null ),
-                               __METHOD__,
-                               'DISTINCT',
-                               array( 'page' => array( 'LEFT JOIN', "$field=page_id" ) )
-                       );
-
+                       $this->output( "    $table: 0" );
                        $counter = 0;
-                       $list = array();
-                       $this->output( "0.." );
-                       foreach ( $results as $row ) {
-                               $counter++;
-                               $list[] = $row->$field;
-                               if ( ( $counter % $batchSize ) == 0 ) {
+                       do {
+                               $ids = $dbr->selectFieldValues(
+                                       $table,
+                                       $field,
+                                       array(
+                                               self::intervalCond( $dbr, $field, $start, $end ),
+                                               "$field NOT IN ({$dbr->selectSQLText( 'page', 'page_id' )})",
+                                       ),
+                                       __METHOD__,
+                                       array( 'DISTINCT', 'ORDER BY' => $field, 'LIMIT' => $batchSize )
+                               );
+
+                               $numIds = count( $ids );
+                               if ( $numIds ) {
+                                       $counter += $numIds;
                                        wfWaitForSlaves();
-                                       $dbw->delete( $table, array( $field => $list ), __METHOD__ );
-
-                                       $this->output( $counter . ".." );
-                                       $list = array();
+                                       $dbw->delete( $table, array( $field => $ids ), __METHOD__ );
+                                       $this->output( ", $counter" );
+                                       $start = $ids[$numIds - 1] + 1;
                                }
-                       }
-                       $this->output( $counter );
-                       if ( count( $list ) > 0 ) {
-                               $dbw->delete( $table, array( $field => $list ), __METHOD__ );
-                       }
-                       $this->output( "\n" );
+
+                       } while ( $numIds >= $batchSize && ( $end === null || $start <= $end ) );
+
+                       $this->output( " deleted.\n" );
+
                        wfWaitForSlaves();
                }
-               $lb->closeAll();
+       }
+
+       /**
+        * Build a SQL expression for a closed interval (i.e. BETWEEN).
+        *
+        * By specifying a null $start or $end, it is also possible to create
+        * half-bounded or unbounded intervals using this function.
+        *
+        * @param IDatabase $db Database connection
+        * @param string $var Field name
+        * @param mixed $start First value to include or null
+        * @param mixed $end Last value to include or null
+        */
+       private static function intervalCond( IDatabase $db, $var, $start, $end ) {
+               if ( $start === null && $end === null ) {
+                       return "$var IS NOT NULL";
+               } elseif ( $end === null ) {
+                       return "$var >= {$db->addQuotes( $start )}";
+               } elseif ( $start === null ) {
+                       return "$var <= {$db->addQuotes( $end )}";
+               } else {
+                       return "$var BETWEEN {$db->addQuotes( $start )} AND {$db->addQuotes( $end )}";
+               }
        }
 }
 
index a9f7d8b..9e9ad32 100644 (file)
@@ -58,6 +58,9 @@ class ShowJobs extends Maintenance {
                                foreach ( $queue->getAllDelayedJobs() as $job ) {
                                        $this->output( $job->toString() . " status=delayed\n" );
                                }
+                               foreach ( $queue->getAllAbandonedJobs() as $job ) {
+                                       $this->output( $job->toString() . " status=abandoned\n" );
+                               }
                        }
                } elseif ( $this->hasOption( 'group' ) ) {
                        foreach ( $group->getQueueTypes() as $type ) {
index 5c0fd07..e173190 100644 (file)
@@ -59,7 +59,7 @@ class Sqlite {
                        'blob', // NULL type is omitted intentionally
                ) );
 
-               $db = new DatabaseSqliteStandalone( ':memory:' );
+               $db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
                try {
                        foreach ( $files as $file ) {
                                $err = $db->sourceFile( $file );
index edc9e14..7e02a4b 100644 (file)
@@ -81,7 +81,7 @@ class SqliteMaintenance extends Maintenance {
        }
 
        private function vacuum() {
-               $prevSize = filesize( $this->db->mDatabaseFile );
+               $prevSize = filesize( $this->db->getDbFilePath() );
                if ( $prevSize == 0 ) {
                        $this->error( "Can't vacuum an empty database.\n", true );
                }
@@ -89,7 +89,7 @@ class SqliteMaintenance extends Maintenance {
                $this->output( 'VACUUM: ' );
                if ( $this->db->query( 'VACUUM' ) ) {
                        clearstatcache();
-                       $newSize = filesize( $this->db->mDatabaseFile );
+                       $newSize = filesize( $this->db->getDbFilePath() );
                        $this->output( sprintf( "Database size was %d, now %d (%.1f%% reduction).\n",
                                $prevSize, $newSize, ( $prevSize - $newSize ) * 100.0 / $prevSize ) );
                } else {
@@ -115,7 +115,7 @@ class SqliteMaintenance extends Maintenance {
        private function backup( $fileName ) {
                $this->output( "Backing up database:\n   Locking..." );
                $this->db->query( 'BEGIN IMMEDIATE TRANSACTION', __METHOD__ );
-               $ourFile = $this->db->mDatabaseFile;
+               $ourFile = $this->db->getDbFilePath();
                $this->output( "   Copying database file $ourFile to $fileName... " );
                wfSuppressWarnings( false );
                if ( !copy( $ourFile, $fileName ) ) {
diff --git a/maintenance/sqlite/archives/patch-editsummary-length.sql b/maintenance/sqlite/archives/patch-editsummary-length.sql
new file mode 100644 (file)
index 0000000..f86b2ad
--- /dev/null
@@ -0,0 +1,65 @@
+CREATE TABLE /*_*/filearchive_tmp (
+  -- Unique row id
+  fa_id int NOT NULL PRIMARY KEY AUTO_INCREMENT,
+
+  -- Original base filename; key to image.img_name, page.page_title, etc
+  fa_name varchar(255) binary NOT NULL default '',
+
+  -- Filename of archived file, if an old revision
+  fa_archive_name varchar(255) binary default '',
+
+  -- Which storage bin (directory tree or object store) the file data
+  -- is stored in. Should be 'deleted' for files that have been deleted;
+  -- any other bin is not yet in use.
+  fa_storage_group varbinary(16),
+
+  -- SHA-1 of the file contents plus extension, used as a key for storage.
+  -- eg 8f8a562add37052a1848ff7771a2c515db94baa9.jpg
+  --
+  -- If NULL, the file was missing at deletion time or has been purged
+  -- from the archival storage.
+  fa_storage_key varbinary(64) default '',
+
+  -- Deletion information, if this file is deleted.
+  fa_deleted_user int,
+  fa_deleted_timestamp binary(14) default '',
+  fa_deleted_reason varbinary(767) default '',
+  -- Duped fields from image
+  fa_size int unsigned default 0,
+  fa_width int default 0,
+  fa_height int default 0,
+  fa_metadata mediumblob,
+  fa_bits int default 0,
+  fa_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
+  fa_major_mime ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart", "chemical") default "unknown",
+  fa_minor_mime varbinary(100) default "unknown",
+  fa_description varbinary(767),
+  fa_user int unsigned default 0,
+  fa_user_text varchar(255) binary,
+  fa_timestamp binary(14) default '',
+
+  -- Visibility of deleted revisions, bitfield
+  fa_deleted tinyint unsigned NOT NULL default 0,
+
+  -- sha1 hash of file content
+  fa_sha1 varbinary(32) NOT NULL default ''
+) /*$wgDBTableOptions*/;
+
+
+INSERT INTO /*_*/filearchive_tmp
+       SELECT fa_id, fa_name, fa_archive_name, fa_storage_group, fa_storage_key, fa_deleted_user, fa_deleted_timestamp,
+       fa_deleted_reason, fa_size, fa_width, fa_height, fa_metadata, fa_bits, fa_media_type, fa_major_mime,
+       fa_minor_mime, fa_description, fa_user, fa_user_text, fa_timestamp, fa_deleted, fa_sha1
+               FROM /*_*/filearchive;
+
+DROP TABLE /*_*/filearchive;
+
+ALTER TABLE /*_*/filearchive_tmp RENAME TO /*_*/filearchive;
+
+
+CREATE INDEX /*i*/fa_name ON /*_*/filearchive (fa_name, fa_timestamp);
+CREATE INDEX /*i*/fa_storage_group ON /*_*/filearchive (fa_storage_group, fa_storage_key);
+CREATE INDEX /*i*/fa_deleted_timestamp ON /*_*/filearchive (fa_deleted_timestamp);
+CREATE INDEX /*i*/fa_user_timestamp ON /*_*/filearchive (fa_user_text,fa_timestamp);
+CREATE INDEX /*i*/fa_sha1 ON /*_*/filearchive (fa_sha1(10));
+
index 4433502..bf93a23 100644 (file)
@@ -304,7 +304,7 @@ CREATE TABLE /*_*/revision (
   -- Text comment summarizing the change.
   -- This text is shown in the history and other changes lists,
   -- rendered in a subset of wiki markup by Linker::formatComment()
-  rev_comment tinyblob NOT NULL,
+  rev_comment varbinary(767) NOT NULL,
 
   -- Key to user.user_id of the user who made this edit.
   -- Stores 0 for anonymous edits and for some mass imports.
@@ -411,7 +411,7 @@ CREATE TABLE /*_*/archive (
   ar_text mediumblob NOT NULL,
 
   -- Basic revision stuff...
-  ar_comment tinyblob NOT NULL,
+  ar_comment varbinary(767) NOT NULL,
   ar_user int unsigned NOT NULL default 0,
   ar_user_text varchar(255) binary NOT NULL,
   ar_timestamp binary(14) NOT NULL default '',
@@ -748,7 +748,7 @@ CREATE TABLE /*_*/ipblocks (
   ipb_by_text varchar(255) binary NOT NULL default '',
 
   -- Text comment made by blocker.
-  ipb_reason tinyblob NOT NULL,
+  ipb_reason varbinary(767) NOT NULL,
 
   -- Creation (or refresh) date in standard YMDHMS form.
   -- IP blocks expire automatically.
@@ -846,7 +846,7 @@ CREATE TABLE /*_*/image (
 
   -- Description field as entered by the uploader.
   -- This is displayed in image upload history and logs.
-  img_description tinyblob NOT NULL,
+  img_description varbinary(767) NOT NULL,
 
   -- user_id and user_name of uploader.
   img_user int unsigned NOT NULL default 0,
@@ -888,7 +888,7 @@ CREATE TABLE /*_*/oldimage (
   oi_width int NOT NULL default 0,
   oi_height int NOT NULL default 0,
   oi_bits int NOT NULL default 0,
-  oi_description tinyblob NOT NULL,
+  oi_description varbinary(767) NOT NULL,
   oi_user int unsigned NOT NULL default 0,
   oi_user_text varchar(255) binary NOT NULL,
   oi_timestamp binary(14) NOT NULL default '',
@@ -936,7 +936,7 @@ CREATE TABLE /*_*/filearchive (
   -- Deletion information, if this file is deleted.
   fa_deleted_user int,
   fa_deleted_timestamp binary(14) default '',
-  fa_deleted_reason text,
+  fa_deleted_reason varbinary(767) default '',
 
   -- Duped fields from image
   fa_size int unsigned default 0,
@@ -947,7 +947,7 @@ CREATE TABLE /*_*/filearchive (
   fa_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
   fa_major_mime ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart", "chemical") default "unknown",
   fa_minor_mime varbinary(100) default "unknown",
-  fa_description tinyblob,
+  fa_description varbinary(767),
   fa_user int unsigned default 0,
   fa_user_text varchar(255) binary,
   fa_timestamp binary(14) default '',
@@ -1045,7 +1045,7 @@ CREATE TABLE /*_*/recentchanges (
   rc_title varchar(255) binary NOT NULL default '',
 
   -- as in revision...
-  rc_comment varchar(255) binary NOT NULL default '',
+  rc_comment varbinary(767) NOT NULL default '',
   rc_minor tinyint unsigned NOT NULL default 0,
 
   -- Edits by user accounts with the 'bot' rights key are
@@ -1253,7 +1253,7 @@ CREATE TABLE /*_*/logging (
   log_page int unsigned NULL,
 
   -- Freeform text. Interpreted as edit history comments.
-  log_comment varchar(255) NOT NULL default '',
+  log_comment varbinary(767) NOT NULL default '',
 
   -- miscellaneous parameters:
   -- LF separated list (old system) or serialized PHP array (new system)
@@ -1412,7 +1412,7 @@ CREATE TABLE /*_*/protected_titles (
   pt_namespace int NOT NULL,
   pt_title varchar(255) binary NOT NULL,
   pt_user int unsigned NOT NULL,
-  pt_reason tinyblob,
+  pt_reason varbinary(767),
   pt_timestamp binary(14) NOT NULL,
   pt_expiry varbinary(14) NOT NULL default '',
   pt_create_perm varbinary(60) NOT NULL
index 182a2c4..6e93011 100755 (executable)
@@ -151,7 +151,7 @@ class UpdateMediaWiki extends Maintenance {
 
                $this->output( "Going to run database updates for " . wfWikiID() . "\n" );
                if ( $db->getType() === 'sqlite' ) {
-                       $this->output( "Using SQLite file: '{$db->mDatabaseFile}'\n" );
+                       $this->output( "Using SQLite file: '{$db->getDbFilePath()}'\n" );
                }
                $this->output( "Depending on the size of your database this may take a while!\n" );
 
index 5758152..40b3dde 100644 (file)
@@ -38,7 +38,7 @@ Then add the following to the bottom of this file:
 class MyLocalSettingsGenerator extends LocalSettingsGenerator {
        function getText() {
                // Modify an existing setting
-               $this->values['wgResourceLoaderMaxQueryLength'] = 512;
+               $this->values['wgDefaultSkin'] = 'vector';
                // add a new setting
                $ls = parent::getText();
                return $ls . "\n\$wgUseTex = true;\n";
index 4ef12ba..933212c 100644 (file)
@@ -2,11 +2,15 @@
   "name": "mediawiki",
   "version": "0.0.0",
   "scripts": {
-    "test": "grunt test"
+    "test": "grunt test",
+    "doc": "jsduck",
+    "postdoc": "grunt copy:jsduck"
   },
   "devDependencies": {
     "grunt": "0.4.5",
+    "grunt-cli": "0.1.13",
     "grunt-banana-checker": "0.2.0",
+    "grunt-contrib-copy": "0.8.0",
     "grunt-contrib-jshint": "0.11.0",
     "grunt-contrib-watch": "0.6.1",
     "grunt-jscs": "1.5.0",
index 965c783..1ae76a0 100644 (file)
@@ -29,12 +29,19 @@ return array(
        /**
         * Special modules who have their own classes
         */
+       'startup' => array( 'class' => 'ResourceLoaderStartUpModule' ),
 
        // Scripts managed by the local wiki (stored in the MediaWiki namespace)
        'site' => array( 'class' => 'ResourceLoaderSiteModule' ),
-       'noscript' => array( 'class' => 'ResourceLoaderNoscriptModule' ),
-       'startup' => array( 'class' => 'ResourceLoaderStartUpModule' ),
-       'filepage' => array( 'class' => 'ResourceLoaderFilePageModule' ),
+       'noscript' => array(
+               'class' => 'ResourceLoaderWikiModule',
+               'styles' => array( 'MediaWiki:Noscript.css' ),
+               'group' => 'noscript',
+       ),
+       'filepage' => array(
+               'class' => 'ResourceLoaderWikiModule',
+               'styles' => array( 'MediaWiki:Filepage.css' ),
+       ),
        'user.groups' => array( 'class' => 'ResourceLoaderUserGroupsModule' ),
 
        // Scripts managed by the current user (stored in their user space)
@@ -178,7 +185,7 @@ return array(
                'styles' => 'resources/lib/jquery.chosen/chosen.css',
        ),
        'jquery.client' => array(
-               'scripts' => 'resources/src/jquery/jquery.client.js',
+               'scripts' => 'resources/lib/jquery.client/jquery.client.js',
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'jquery.color' => array(
@@ -765,8 +772,10 @@ return array(
        /* MediaWiki */
 
        'mediawiki' => array(
+               // Keep maintenance/jsduck/eg-iframe.html in sync
                'scripts' => array(
                        'resources/src/mediawiki/mediawiki.js',
+                       'resources/src/mediawiki/mediawiki.errorLogger.js',
                        'resources/src/mediawiki/mediawiki.startUp.js',
                ),
                'debugScripts' => 'resources/src/mediawiki/mediawiki.log.js',
@@ -776,15 +785,19 @@ return array(
        'mediawiki.apihelp' => array(
                'styles' => 'resources/src/mediawiki/mediawiki.apihelp.css',
                'targets' => array( 'desktop' ),
-               'dependencies' => array(
-                       'mediawiki.hlist',
-               ),
+               'dependencies' => 'mediawiki.hlist',
                'position' => 'top',
        ),
        'mediawiki.template' => array(
                'scripts' => 'resources/src/mediawiki/mediawiki.template.js',
                'targets' => array( 'desktop', 'mobile' ),
        ),
+       'mediawiki.template.mustache' => array(
+               'scripts' => array(
+                       'resources/lib/mustache/mustache.js',
+                       'resources/src/mediawiki/mediawiki.template.mustache.js',
+               ),
+       ),
        'mediawiki.apipretty' => array(
                'styles' => 'resources/src/mediawiki/mediawiki.apipretty.css',
                'targets' => array( 'desktop', 'mobile' ),
@@ -812,9 +825,12 @@ return array(
        ),
        'mediawiki.api.login' => array(
                'scripts' => 'resources/src/mediawiki.api/mediawiki.api.login.js',
-               'dependencies' => array(
-                       'mediawiki.api',
-               ),
+               'dependencies' => 'mediawiki.api',
+       ),
+       'mediawiki.api.options' => array(
+               'scripts' => 'resources/src/mediawiki.api/mediawiki.api.options.js',
+               'dependencies' => 'mediawiki.api',
+               'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.api.parse' => array(
                'scripts' => 'resources/src/mediawiki.api/mediawiki.api.parse.js',
@@ -834,6 +850,7 @@ return array(
                'scripts' => array(
                        'resources/src/mediawiki/mediawiki.confirmCloseWindow.js',
                ),
+               'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.debug' => array(
                'scripts' => array(
@@ -856,47 +873,63 @@ return array(
                'position' => 'bottom',
        ),
        'mediawiki.feedback' => array(
-               'templates' => array(
-                       'dialog.html' => 'resources/src/mediawiki/templates/dialog.html',
-               ),
                'scripts' => 'resources/src/mediawiki/mediawiki.feedback.js',
                'styles' => 'resources/src/mediawiki/mediawiki.feedback.css',
                'dependencies' => array(
                        'mediawiki.api.edit',
                        'mediawiki.Title',
-                       'mediawiki.jqueryMsg',
-                       'jquery.ui.dialog',
+                       'oojs-ui',
                ),
                'messages' => array(
+                       'feedback-adding',
+                       'feedback-back',
+                       'feedback-bugcheck',
+                       'feedback-dialog-intro',
+                       'feedback-external-bug-report-button',
+                       'feedback-bugnew',
                        'feedback-bugornote',
-                       'feedback-subject',
-                       'feedback-message',
                        'feedback-cancel',
-                       'feedback-submit',
-                       'feedback-adding',
+                       'feedback-close',
+                       'feedback-dialog-title',
+                       'feedback-error-title',
                        'feedback-error1',
                        'feedback-error2',
                        'feedback-error3',
+                       'feedback-message',
+                       'feedback-subject',
+                       'feedback-submit',
+                       'feedback-terms',
+                       'feedback-termsofuse',
                        'feedback-thanks',
-                       'feedback-close',
-                       'feedback-bugcheck',
-                       'feedback-bugnew',
+                       'feedback-thanks-title',
+                       'feedback-useragent'
                ),
        ),
-       'mediawiki.hidpi' => array(
-               'scripts' => 'resources/src/mediawiki/mediawiki.hidpi.js',
+
+       'mediawiki.filewarning' => array(
+               'scripts' => 'resources/src/mediawiki/mediawiki.filewarning.js',
+               'styles' => 'resources/src/mediawiki/mediawiki.filewarning.less',
                'dependencies' => array(
-                       'jquery.hidpi',
+                       'oojs-ui',
+               ),
+       ),
+
+       'mediawiki.helplink' => array(
+               'styles' => array(
+                       'resources/src/mediawiki/mediawiki.helplink.less',
                ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+       'mediawiki.hidpi' => array(
+               'scripts' => 'resources/src/mediawiki/mediawiki.hidpi.js',
+               'dependencies' => 'jquery.hidpi',
                'skipFunction' => 'resources/src/mediawiki.hidpi-skip.js',
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.hlist' => array(
                'styles' => 'resources/src/mediawiki/mediawiki.hlist.css',
                'scripts' => 'resources/src/mediawiki/mediawiki.hlist.js',
-               'dependencies' => array(
-                       'jquery.client',
-               ),
+               'dependencies' => 'jquery.client',
        ),
        'mediawiki.htmlform' => array(
                'scripts' => 'resources/src/mediawiki/mediawiki.htmlform.js',
@@ -928,9 +961,7 @@ return array(
                                => array( 'media' => 'print' ),
                ),
                'scripts' => 'resources/src/mediawiki/mediawiki.notification.js',
-               'dependencies' => array(
-                       'mediawiki.page.startup',
-               ),
+               'dependencies' => 'mediawiki.page.startup',
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.notify' => array(
@@ -957,14 +988,8 @@ return array(
                ),
        ),
        'mediawiki.sectionAnchor' => array(
-               'skinStyles' => array(
-                       'default' => array(
-                               'resources/src/mediawiki/mediawiki.sectionAnchor.css' =>
-                                       array( 'media' => 'screen'),
-                               'resources/src/mediawiki/mediawiki.sectionAnchor.hide.css' =>
-                                       array( 'media' => 'print' ),
-                       ),
-               ),
+               // Back-compat to hide it on cached pages (T18691; Ie9e334e973; 2015-03-17)
+               'styles' => 'resources/src/mediawiki/mediawiki.sectionAnchor.css',
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.Title' => array(
@@ -977,9 +1002,7 @@ return array(
        ),
        'mediawiki.toc' => array(
                'scripts' => 'resources/src/mediawiki/mediawiki.toc.js',
-               'dependencies' => array(
-                       'jquery.cookie',
-               ),
+               'dependencies' => 'jquery.cookie',
                'messages' => array( 'showtoc', 'hidetoc' ),
                'targets' => array( 'desktop', 'mobile' ),
        ),
@@ -1017,9 +1040,7 @@ return array(
        ),
        'mediawiki.cookie' => array(
                'scripts' => 'resources/src/mediawiki/mediawiki.cookie.js',
-               'dependencies' => array(
-                       'jquery.cookie',
-               ),
+               'dependencies' => 'jquery.cookie',
                'targets' => array( 'desktop', 'mobile' ),
        ),
        'mediawiki.toolbar' => array(
@@ -1066,10 +1087,19 @@ return array(
                        'mediawiki.jqueryMsg',
                ),
                'messages' => array(
+                       // Keep the uses message keys in sync with EditPage#setHeaders
+                       'creating',
+                       'editconflict',
+                       'editing',
+                       'editingcomment',
+                       'editingsection',
+                       'pagetitle',
                        'otherlanguages',
                        'tooltip-p-lang',
                        'summary-preview',
+                       'subject-preview',
                        'parentheses',
+                       'previewerrortext',
                ),
        ),
        'mediawiki.action.edit.stash' => array(
@@ -1132,9 +1162,7 @@ return array(
        ),
        'mediawiki.action.view.redirect' => array(
                'scripts' => 'resources/src/mediawiki.action/mediawiki.action.view.redirect.js',
-               'dependencies' => array(
-                       'jquery.client',
-               ),
+               'dependencies' => 'jquery.client',
                'position' => 'top',
        ),
        'mediawiki.action.view.redirectPage' => array(
@@ -1232,6 +1260,10 @@ return array(
 
        'mediawiki.language.names' => array( 'class' => 'ResourceLoaderLanguageNamesModule' ),
 
+       'mediawiki.language.specialCharacters' => array(
+               'class' => 'ResourceLoaderSpecialCharacterDataModule'
+       ),
+
        /* MediaWiki Libs */
 
        'mediawiki.libs.jpegmeta' => array(
@@ -1259,9 +1291,7 @@ return array(
        ),
        'mediawiki.page.startup' => array(
                'scripts' => 'resources/src/mediawiki.page/mediawiki.page.startup.js',
-               'dependencies' => array(
-                       'mediawiki.util',
-               ),
+               'dependencies' => 'mediawiki.util',
                'position' => 'top',
                'targets' => array( 'desktop', 'mobile' ),
        ),
@@ -1320,16 +1350,12 @@ return array(
        'mediawiki.special.block' => array(
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.block.js',
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.block.css',
-               'dependencies' => array(
-                       'mediawiki.util',
-               ),
+               'dependencies' => 'mediawiki.util',
        ),
        'mediawiki.special.changeemail' => array(
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.changeemail.js',
                'styles' => 'resources/src/mediawiki.special/mediawiki.special.changeemail.css',
-               'dependencies' => array(
-                       'mediawiki.util',
-               ),
+               'dependencies' => 'mediawiki.util',
                'messages' => array(
                        'email-address-validity-valid',
                        'email-address-validity-invalid',
@@ -1380,7 +1406,7 @@ return array(
        ),
        'mediawiki.special.recentchanges' => array(
                'scripts' => 'resources/src/mediawiki.special/mediawiki.special.recentchanges.js',
-               'dependencies' => array( 'mediawiki.special' ),
+               'dependencies' => 'mediawiki.special',
                'position' => 'top',
        ),
        'mediawiki.special.search' => array(
@@ -1488,9 +1514,7 @@ return array(
                        'colon-separator',
                        'javascripttest-pagetext-skins',
                ) ),
-               'dependencies' => array(
-                       'mediawiki.Uri',
-               ),
+               'dependencies' => 'mediawiki.Uri',
                'position' => 'top',
                'targets' => array( 'desktop', 'mobile' ),
        ),
@@ -1524,9 +1548,7 @@ return array(
        ),
        'mediawiki.legacy.protect' => array(
                'scripts' => 'resources/src/mediawiki.legacy/protect.js',
-               'dependencies' => array(
-                       'jquery.byteLimit',
-               ),
+               'dependencies' => 'jquery.byteLimit',
                'messages' => array( 'protect-unchain-permissions' )
        ),
        'mediawiki.legacy.shared' => array(
@@ -1542,9 +1564,7 @@ return array(
        ),
        'mediawiki.legacy.wikibits' => array(
                'scripts' => 'resources/src/mediawiki.legacy/wikibits.js',
-               'dependencies' => array(
-                       'mediawiki.util',
-               ),
+               'dependencies' => 'mediawiki.util',
                'position' => 'top',
        ),
 
@@ -1687,4 +1707,127 @@ return array(
                ),
                'targets' => array( 'desktop', 'mobile' ),
        ),
+
+       'oojs-ui.styles' => array(
+               'position' => 'top',
+               'skinStyles' => array(
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki.css',
+               ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+
+       // FIXME: This is a bit of a mess; T92551 requests fixing
+       'oojs-ui.styles.icons-alerts' => array(
+               'position' => 'top',
+               'skinStyles' => array(
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-alerts.css',
+               ),
+               'dependencies' => array( 'oojs-ui.styles' ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+       'oojs-ui.styles.icons-content' => array(
+               'position' => 'top',
+               'skinStyles' => array(
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-content.css',
+               ),
+               'dependencies' => array( 'oojs-ui.styles' ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+       'oojs-ui.styles.icons-editing-advanced' => array(
+               'position' => 'top',
+               'skinStyles' => array(
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-advanced.css',
+               ),
+               'dependencies' => array( 'oojs-ui.styles' ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+       'oojs-ui.styles.icons-editing-core' => array(
+               'position' => 'top',
+               'skinStyles' => array(
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-core.css',
+               ),
+               'dependencies' => array( 'oojs-ui.styles' ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+       'oojs-ui.styles.icons-editing-list' => array(
+               'position' => 'top',
+               'skinStyles' => array(
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-list.css',
+               ),
+               'dependencies' => array( 'oojs-ui.styles' ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+       'oojs-ui.styles.icons-editing-styling' => array(
+               'position' => 'top',
+               'skinStyles' => array(
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-styling.css',
+               ),
+               'dependencies' => array( 'oojs-ui.styles' ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+       'oojs-ui.styles.icons-interactions' => array(
+               'position' => 'top',
+               'skinStyles' => array(
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-interactions.css',
+               ),
+               'dependencies' => array( 'oojs-ui.styles' ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+       'oojs-ui.styles.icons-layout' => array(
+               'position' => 'top',
+               'skinStyles' => array(
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-layout.css',
+               ),
+               'dependencies' => array( 'oojs-ui.styles' ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+       'oojs-ui.styles.icons-location' => array(
+               'position' => 'top',
+               'skinStyles' => array(
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-location.css',
+               ),
+               'dependencies' => array( 'oojs-ui.styles' ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+       'oojs-ui.styles.icons-media' => array(
+               'position' => 'top',
+               'skinStyles' => array(
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-media.css',
+               ),
+               'dependencies' => array( 'oojs-ui.styles' ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+       'oojs-ui.styles.icons-moderation' => array(
+               'position' => 'top',
+               'skinStyles' => array(
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-moderation.css',
+               ),
+               'dependencies' => array( 'oojs-ui.styles' ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+       'oojs-ui.styles.icons-movement' => array(
+               'position' => 'top',
+               'skinStyles' => array(
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-movement.css',
+               ),
+               'dependencies' => array( 'oojs-ui.styles' ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+       'oojs-ui.styles.icons-user' => array(
+               'position' => 'top',
+               'skinStyles' => array(
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-user.css',
+               ),
+               'dependencies' => array( 'oojs-ui.styles' ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+       'oojs-ui.styles.icons-wikimedia' => array(
+               'position' => 'top',
+               'skinStyles' => array(
+                       'default' => 'resources/lib/oojs-ui/oojs-ui-mediawiki-icons-wikimedia.css',
+               ),
+               'dependencies' => array( 'oojs-ui.styles' ),
+               'targets' => array( 'desktop', 'mobile' ),
+       ),
+
 );
diff --git a/resources/lib/jquery.client/AUTHORS.txt b/resources/lib/jquery.client/AUTHORS.txt
new file mode 100644 (file)
index 0000000..9f186ca
--- /dev/null
@@ -0,0 +1,9 @@
+Trevor Parscal <trevorparscal@gmail.com>
+Timo Tijhof <krinklemail@gmail.com>
+Roan Kattouw <roan.kattouw@gmail.com>
+Derk-Jan Hartman <hartman.wiki@gmail.com>
+Bartosz Dziewoński <matma.rex@gmail.com>
+Rob Moen <rmoen@wikimedia.org>
+Ed Sanders <esanders@wikimedia.org>
+Alex Monk <krenair@gmail.com>
+James D. Forrester <jforrester@wikimedia.org>
diff --git a/resources/lib/jquery.client/LICENSE-MIT.txt b/resources/lib/jquery.client/LICENSE-MIT.txt
new file mode 100644 (file)
index 0000000..f149289
--- /dev/null
@@ -0,0 +1,20 @@
+Copyright 2010-2015 jquery-client maintainers and other contributors.
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/resources/lib/jquery.client/README.md b/resources/lib/jquery.client/README.md
new file mode 100644 (file)
index 0000000..02b5dd4
--- /dev/null
@@ -0,0 +1,6 @@
+[![Build Status](https://travis-ci.org/wikimedia/jquery-client.svg?branch=master)](https://travis-ci.org/wikimedia/jquery-client) [![npm](https://img.shields.io/npm/v/jquery-client.svg?style=flat)](https://www.npmjs.com/package/jquery-client)
+
+jQuery Client
+=================
+
+jQuery Client is a jQuery plugin for user-agent detection.
diff --git a/resources/lib/jquery.client/jquery.client.js b/resources/lib/jquery.client/jquery.client.js
new file mode 100644 (file)
index 0000000..1560c7d
--- /dev/null
@@ -0,0 +1,317 @@
+/*!
+ * jQuery Client v1.0.0
+ * https://www.mediawiki.org/wiki/JQuery_Client
+ *
+ * Copyright 2010-2015 jquery-client maintainers and other contributors.
+ * Released under the MIT license
+ * http://jquery-client.mit-license.org
+ */
+
+/**
+ * User-agent detection
+ *
+ * @class jQuery.client
+ * @singleton
+ */
+( function ( $ ) {
+
+       /**
+        * @private
+        * @property {Object} profileCache Keyed by userAgent string,
+        * value is the parsed $.client.profile object for that user agent.
+        */
+       var profileCache = {};
+
+       $.client = {
+
+               /**
+                * Get an object containing information about the client.
+                *
+                * @param {Object} [nav] An object with a 'userAgent' and 'platform' property.
+                *  Defaults to the global `navigator` object.
+                * @return {Object} The resulting client object will be in the following format:
+                *
+                *     {
+                *         'name': 'firefox',
+                *         'layout': 'gecko',
+                *         'layoutVersion': 20101026,
+                *         'platform': 'linux'
+                *         'version': '3.5.1',
+                *         'versionBase': '3',
+                *         'versionNumber': 3.5,
+                *     }
+                */
+               profile: function ( nav ) {
+                       /*jshint boss:true */
+
+                       if ( nav === undefined ) {
+                               nav = window.navigator;
+                       }
+
+                       // Use the cached version if possible
+                       if ( profileCache[ nav.userAgent + '|' + nav.platform ] !== undefined ) {
+                               return profileCache[ nav.userAgent + '|' + nav.platform ];
+                       }
+
+                       var
+                               versionNumber,
+                               key = nav.userAgent + '|' + nav.platform,
+
+                               // Configuration
+
+                               // Name of browsers or layout engines we don't recognize
+                               uk = 'unknown',
+                               // Generic version digit
+                               x = 'x',
+                               // Strings found in user agent strings that need to be conformed
+                               wildUserAgents = ['Opera', 'Navigator', 'Minefield', 'KHTML', 'Chrome', 'PLAYSTATION 3', 'Iceweasel'],
+                               // Translations for conforming user agent strings
+                               userAgentTranslations = [
+                                       // Tons of browsers lie about being something they are not
+                                       [/(Firefox|MSIE|KHTML,?\slike\sGecko|Konqueror)/, ''],
+                                       // Chrome lives in the shadow of Safari still
+                                       ['Chrome Safari', 'Chrome'],
+                                       // KHTML is the layout engine not the browser - LIES!
+                                       ['KHTML', 'Konqueror'],
+                                       // Firefox nightly builds
+                                       ['Minefield', 'Firefox'],
+                                       // This helps keep different versions consistent
+                                       ['Navigator', 'Netscape'],
+                                       // This prevents version extraction issues, otherwise translation would happen later
+                                       ['PLAYSTATION 3', 'PS3']
+                               ],
+                               // Strings which precede a version number in a user agent string - combined and used as
+                               // match 1 in version detection
+                               versionPrefixes = [
+                                       'camino', 'chrome', 'firefox', 'iceweasel', 'netscape', 'netscape6', 'opera', 'version', 'konqueror',
+                                       'lynx', 'msie', 'safari', 'ps3', 'android'
+                               ],
+                               // Used as matches 2, 3 and 4 in version extraction - 3 is used as actual version number
+                               versionSuffix = '(\\/|\\;?\\s|)([a-z0-9\\.\\+]*?)(\\;|dev|rel|\\)|\\s|$)',
+                               // Names of known browsers
+                               names = [
+                                       'camino', 'chrome', 'firefox', 'iceweasel', 'netscape', 'konqueror', 'lynx', 'msie', 'opera',
+                                       'safari', 'ipod', 'iphone', 'blackberry', 'ps3', 'rekonq', 'android'
+                               ],
+                               // Tanslations for conforming browser names
+                               nameTranslations = [],
+                               // Names of known layout engines
+                               layouts = ['gecko', 'konqueror', 'msie', 'trident', 'edge', 'opera', 'webkit'],
+                               // Translations for conforming layout names
+                               layoutTranslations = [ ['konqueror', 'khtml'], ['msie', 'trident'], ['opera', 'presto'] ],
+                               // Names of supported layout engines for version number
+                               layoutVersions = ['applewebkit', 'gecko', 'trident', 'edge'],
+                               // Names of known operating systems
+                               platforms = ['win', 'wow64', 'mac', 'linux', 'sunos', 'solaris', 'iphone'],
+                               // Translations for conforming operating system names
+                               platformTranslations = [ ['sunos', 'solaris'], ['wow64', 'win'] ],
+
+                               /**
+                                * Performs multiple replacements on a string
+                                * @ignore
+                                */
+                               translate = function ( source, translations ) {
+                                       var i;
+                                       for ( i = 0; i < translations.length; i++ ) {
+                                               source = source.replace( translations[i][0], translations[i][1] );
+                                       }
+                                       return source;
+                               },
+
+                               // Pre-processing
+
+                               ua = nav.userAgent,
+                               match,
+                               name = uk,
+                               layout = uk,
+                               layoutversion = uk,
+                               platform = uk,
+                               version = x;
+
+                       if ( match = new RegExp( '(' + wildUserAgents.join( '|' ) + ')' ).exec( ua ) ) {
+                               // Takes a userAgent string and translates given text into something we can more easily work with
+                               ua = translate( ua, userAgentTranslations );
+                       }
+                       // Everything will be in lowercase from now on
+                       ua = ua.toLowerCase();
+
+                       // Extraction
+
+                       if ( match = new RegExp( '(' + names.join( '|' ) + ')' ).exec( ua ) ) {
+                               name = translate( match[1], nameTranslations );
+                       }
+                       if ( match = new RegExp( '(' + layouts.join( '|' ) + ')' ).exec( ua ) ) {
+                               layout = translate( match[1], layoutTranslations );
+                       }
+                       if ( match = new RegExp( '(' + layoutVersions.join( '|' ) + ')\\\/(\\d+)').exec( ua ) ) {
+                               layoutversion = parseInt( match[2], 10 );
+                       }
+                       if ( match = new RegExp( '(' + platforms.join( '|' ) + ')' ).exec( nav.platform.toLowerCase() ) ) {
+                               platform = translate( match[1], platformTranslations );
+                       }
+                       if ( match = new RegExp( '(' + versionPrefixes.join( '|' ) + ')' + versionSuffix ).exec( ua ) ) {
+                               version = match[3];
+                       }
+
+                       // Edge Cases -- did I mention about how user agent string lie?
+
+                       // Decode Safari's crazy 400+ version numbers
+                       if ( name === 'safari' && version > 400 ) {
+                               version = '2.0';
+                       }
+                       // Expose Opera 10's lies about being Opera 9.8
+                       if ( name === 'opera' && version >= 9.8 ) {
+                               match = ua.match( /\bversion\/([0-9\.]*)/ );
+                               if ( match && match[1] ) {
+                                       version = match[1];
+                               } else {
+                                       version = '10';
+                               }
+                       }
+                       // And Opera 15's lies about being Chrome
+                       if ( name === 'chrome' && ( match = ua.match( /\bopr\/([0-9\.]*)/ ) ) ) {
+                               if ( match[1] ) {
+                                       name = 'opera';
+                                       version = match[1];
+                               }
+                       }
+                       // And IE 11's lies about being not being IE
+                       if ( layout === 'trident' && layoutversion >= 7 && ( match = ua.match( /\brv[ :\/]([0-9\.]*)/ ) ) ) {
+                               if ( match[1] ) {
+                                       name = 'msie';
+                                       version = match[1];
+                               }
+                       }
+                       // And IE 12's different lies about not being IE
+                       if ( name === 'chrome' && ( match = ua.match( /\bedge\/([0-9\.]*)/ ) ) ) {
+                               name = 'msie';
+                               version = match[1];
+                               layout = 'edge';
+                               layoutversion = parseInt( match[1], 10 );
+                       }
+                       // And Amazon Silk's lies about being Android on mobile or Safari on desktop
+                       if ( match = ua.match( /\bsilk\/([0-9.\-_]*)/ ) ) {
+                               if ( match[1] ) {
+                                       name = 'silk';
+                                       version = match[1];
+                               }
+                       }
+
+                       versionNumber = parseFloat( version, 10 ) || 0.0;
+
+                       // Caching
+
+                       return profileCache[ key  ] = {
+                               name: name,
+                               layout: layout,
+                               layoutVersion: layoutversion,
+                               platform: platform,
+                               version: version,
+                               versionBase: ( version !== x ? Math.floor( versionNumber ).toString() : x ),
+                               versionNumber: versionNumber
+                       };
+               },
+
+               /**
+                * Checks the current browser against a support map object.
+                *
+                * Version numbers passed as numeric values will be compared like numbers (1.2 > 1.11).
+                * Version numbers passed as string values will be compared using a simple component-wise
+                * algorithm, similar to PHP's version_compare ('1.2' < '1.11').
+                *
+                * A browser map is in the following format:
+                *
+                *     {
+                *         // Multiple rules with configurable operators
+                *         'msie': [['>=', 7], ['!=', 9]],
+                *         // Match no versions
+                *         'iphone': false,
+                *         // Match any version
+                *         'android': null
+                *     }
+                *
+                * It can optionally be split into ltr/rtl sections:
+                *
+                *     {
+                *         'ltr': {
+                *             'android': null,
+                *             'iphone': false
+                *         },
+                *         'rtl': {
+                *             'android': false,
+                *             // rules are not inherited from ltr
+                *             'iphone': false
+                *         }
+                *     }
+                *
+                * @param {Object} map Browser support map
+                * @param {Object} [profile] A client-profile object
+                * @param {boolean} [exactMatchOnly=false] Only return true if the browser is matched, otherwise
+                * returns true if the browser is not found.
+                *
+                * @return {boolean} The current browser is in the support map
+                */
+               test: function ( map, profile, exactMatchOnly ) {
+                       /*jshint evil:true */
+
+                       var conditions, dir, i, op, val, j, pieceVersion, pieceVal, compare;
+                       profile = $.isPlainObject( profile ) ? profile : $.client.profile();
+                       if ( map.ltr && map.rtl ) {
+                               dir = $( 'body' ).is( '.rtl' ) ? 'rtl' : 'ltr';
+                               map = map[dir];
+                       }
+                       // Check over each browser condition to determine if we are running in a compatible client
+                       if ( typeof map !== 'object' || map[profile.name] === undefined ) {
+                               // Not found, return true if exactMatchOnly not set, false otherwise
+                               return !exactMatchOnly;
+                       }
+                       conditions = map[profile.name];
+                       if ( conditions === false ) {
+                               // Match no versions
+                               return false;
+                       }
+                       if ( conditions === null ) {
+                               // Match all versions
+                               return true;
+                       }
+                       for ( i = 0; i < conditions.length; i++ ) {
+                               op = conditions[i][0];
+                               val = conditions[i][1];
+                               if ( typeof val === 'string' ) {
+                                       // Perform a component-wise comparison of versions, similar to PHP's version_compare
+                                       // but simpler. '1.11' is larger than '1.2'.
+                                       pieceVersion = profile.version.toString().split( '.' );
+                                       pieceVal = val.split( '.' );
+                                       // Extend with zeroes to equal length
+                                       while ( pieceVersion.length < pieceVal.length ) {
+                                               pieceVersion.push( '0' );
+                                       }
+                                       while ( pieceVal.length < pieceVersion.length ) {
+                                               pieceVal.push( '0' );
+                                       }
+                                       // Compare components
+                                       compare = 0;
+                                       for ( j = 0; j < pieceVersion.length; j++ ) {
+                                               if ( Number( pieceVersion[j] ) < Number( pieceVal[j] ) ) {
+                                                       compare = -1;
+                                                       break;
+                                               } else if ( Number( pieceVersion[j] ) > Number( pieceVal[j] ) ) {
+                                                       compare = 1;
+                                                       break;
+                                               }
+                                       }
+                                       // compare will be -1, 0 or 1, depending on comparison result
+                                       if ( !( eval( String( compare + op + '0' ) ) ) ) {
+                                               return false;
+                                       }
+                               } else if ( typeof val === 'number' ) {
+                                       if ( !( eval( 'profile.versionNumber' + op + val ) ) ) {
+                                               return false;
+                                       }
+                               }
+                       }
+
+                       return true;
+               }
+       };
+}( jQuery ) );
diff --git a/resources/lib/mustache/mustache.js b/resources/lib/mustache/mustache.js
new file mode 100644 (file)
index 0000000..dbc9823
--- /dev/null
@@ -0,0 +1,578 @@
+/*!
+ * mustache.js - Logic-less {{mustache}} templates with JavaScript
+ * http://github.com/janl/mustache.js
+ */
+
+/*global define: false*/
+
+(function (global, factory) {
+  if (typeof exports === "object" && exports) {
+    factory(exports); // CommonJS
+  } else if (typeof define === "function" && define.amd) {
+    define(['exports'], factory); // AMD
+  } else {
+    factory(global.Mustache = {}); // <script>
+  }
+}(this, function (mustache) {
+
+  var Object_toString = Object.prototype.toString;
+  var isArray = Array.isArray || function (object) {
+    return Object_toString.call(object) === '[object Array]';
+  };
+
+  function isFunction(object) {
+    return typeof object === 'function';
+  }
+
+  function escapeRegExp(string) {
+    return string.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
+  }
+
+  // Workaround for https://issues.apache.org/jira/browse/COUCHDB-577
+  // See https://github.com/janl/mustache.js/issues/189
+  var RegExp_test = RegExp.prototype.test;
+  function testRegExp(re, string) {
+    return RegExp_test.call(re, string);
+  }
+
+  var nonSpaceRe = /\S/;
+  function isWhitespace(string) {
+    return !testRegExp(nonSpaceRe, string);
+  }
+
+  var entityMap = {
+    "&": "&amp;",
+    "<": "&lt;",
+    ">": "&gt;",
+    '"': '&quot;',
+    "'": '&#39;',
+    "/": '&#x2F;'
+  };
+
+  function escapeHtml(string) {
+    return String(string).replace(/[&<>"'\/]/g, function (s) {
+      return entityMap[s];
+    });
+  }
+
+  var whiteRe = /\s*/;
+  var spaceRe = /\s+/;
+  var equalsRe = /\s*=/;
+  var curlyRe = /\s*\}/;
+  var tagRe = /#|\^|\/|>|\{|&|=|!/;
+
+  /**
+   * Breaks up the given `template` string into a tree of tokens. If the `tags`
+   * argument is given here it must be an array with two string values: the
+   * opening and closing tags used in the template (e.g. [ "<%", "%>" ]). Of
+   * course, the default is to use mustaches (i.e. mustache.tags).
+   *
+   * A token is an array with at least 4 elements. The first element is the
+   * mustache symbol that was used inside the tag, e.g. "#" or "&". If the tag
+   * did not contain a symbol (i.e. {{myValue}}) this element is "name". For
+   * all text that appears outside a symbol this element is "text".
+   *
+   * The second element of a token is its "value". For mustache tags this is
+   * whatever else was inside the tag besides the opening symbol. For text tokens
+   * this is the text itself.
+   *
+   * The third and fourth elements of the token are the start and end indices,
+   * respectively, of the token in the original template.
+   *
+   * Tokens that are the root node of a subtree contain two more elements: 1) an
+   * array of tokens in the subtree and 2) the index in the original template at
+   * which the closing tag for that section begins.
+   */
+  function parseTemplate(template, tags) {
+    if (!template)
+      return [];
+
+    var sections = [];     // Stack to hold section tokens
+    var tokens = [];       // Buffer to hold the tokens
+    var spaces = [];       // Indices of whitespace tokens on the current line
+    var hasTag = false;    // Is there a {{tag}} on the current line?
+    var nonSpace = false;  // Is there a non-space char on the current line?
+
+    // Strips all whitespace tokens array for the current line
+    // if there was a {{#tag}} on it and otherwise only space.
+    function stripSpace() {
+      if (hasTag && !nonSpace) {
+        while (spaces.length)
+          delete tokens[spaces.pop()];
+      } else {
+        spaces = [];
+      }
+
+      hasTag = false;
+      nonSpace = false;
+    }
+
+    var openingTagRe, closingTagRe, closingCurlyRe;
+    function compileTags(tags) {
+      if (typeof tags === 'string')
+        tags = tags.split(spaceRe, 2);
+
+      if (!isArray(tags) || tags.length !== 2)
+        throw new Error('Invalid tags: ' + tags);
+
+      openingTagRe = new RegExp(escapeRegExp(tags[0]) + '\\s*');
+      closingTagRe = new RegExp('\\s*' + escapeRegExp(tags[1]));
+      closingCurlyRe = new RegExp('\\s*' + escapeRegExp('}' + tags[1]));
+    }
+
+    compileTags(tags || mustache.tags);
+
+    var scanner = new Scanner(template);
+
+    var start, type, value, chr, token, openSection;
+    while (!scanner.eos()) {
+      start = scanner.pos;
+
+      // Match any text between tags.
+      value = scanner.scanUntil(openingTagRe);
+
+      if (value) {
+        for (var i = 0, valueLength = value.length; i < valueLength; ++i) {
+          chr = value.charAt(i);
+
+          if (isWhitespace(chr)) {
+            spaces.push(tokens.length);
+          } else {
+            nonSpace = true;
+          }
+
+          tokens.push([ 'text', chr, start, start + 1 ]);
+          start += 1;
+
+          // Check for whitespace on the current line.
+          if (chr === '\n')
+            stripSpace();
+        }
+      }
+
+      // Match the opening tag.
+      if (!scanner.scan(openingTagRe))
+        break;
+
+      hasTag = true;
+
+      // Get the tag type.
+      type = scanner.scan(tagRe) || 'name';
+      scanner.scan(whiteRe);
+
+      // Get the tag value.
+      if (type === '=') {
+        value = scanner.scanUntil(equalsRe);
+        scanner.scan(equalsRe);
+        scanner.scanUntil(closingTagRe);
+      } else if (type === '{') {
+        value = scanner.scanUntil(closingCurlyRe);
+        scanner.scan(curlyRe);
+        scanner.scanUntil(closingTagRe);
+        type = '&';
+      } else {
+        value = scanner.scanUntil(closingTagRe);
+      }
+
+      // Match the closing tag.
+      if (!scanner.scan(closingTagRe))
+        throw new Error('Unclosed tag at ' + scanner.pos);
+
+      token = [ type, value, start, scanner.pos ];
+      tokens.push(token);
+
+      if (type === '#' || type === '^') {
+        sections.push(token);
+      } else if (type === '/') {
+        // Check section nesting.
+        openSection = sections.pop();
+
+        if (!openSection)
+          throw new Error('Unopened section "' + value + '" at ' + start);
+
+        if (openSection[1] !== value)
+          throw new Error('Unclosed section "' + openSection[1] + '" at ' + start);
+      } else if (type === 'name' || type === '{' || type === '&') {
+        nonSpace = true;
+      } else if (type === '=') {
+        // Set the tags for the next time around.
+        compileTags(value);
+      }
+    }
+
+    // Make sure there are no open sections when we're done.
+    openSection = sections.pop();
+
+    if (openSection)
+      throw new Error('Unclosed section "' + openSection[1] + '" at ' + scanner.pos);
+
+    return nestTokens(squashTokens(tokens));
+  }
+
+  /**
+   * Combines the values of consecutive text tokens in the given `tokens` array
+   * to a single token.
+   */
+  function squashTokens(tokens) {
+    var squashedTokens = [];
+
+    var token, lastToken;
+    for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
+      token = tokens[i];
+
+      if (token) {
+        if (token[0] === 'text' && lastToken && lastToken[0] === 'text') {
+          lastToken[1] += token[1];
+          lastToken[3] = token[3];
+        } else {
+          squashedTokens.push(token);
+          lastToken = token;
+        }
+      }
+    }
+
+    return squashedTokens;
+  }
+
+  /**
+   * Forms the given array of `tokens` into a nested tree structure where
+   * tokens that represent a section have two additional items: 1) an array of
+   * all tokens that appear in that section and 2) the index in the original
+   * template that represents the end of that section.
+   */
+  function nestTokens(tokens) {
+    var nestedTokens = [];
+    var collector = nestedTokens;
+    var sections = [];
+
+    var token, section;
+    for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
+      token = tokens[i];
+
+      switch (token[0]) {
+      case '#':
+      case '^':
+        collector.push(token);
+        sections.push(token);
+        collector = token[4] = [];
+        break;
+      case '/':
+        section = sections.pop();
+        section[5] = token[2];
+        collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;
+        break;
+      default:
+        collector.push(token);
+      }
+    }
+
+    return nestedTokens;
+  }
+
+  /**
+   * A simple string scanner that is used by the template parser to find
+   * tokens in template strings.
+   */
+  function Scanner(string) {
+    this.string = string;
+    this.tail = string;
+    this.pos = 0;
+  }
+
+  /**
+   * Returns `true` if the tail is empty (end of string).
+   */
+  Scanner.prototype.eos = function () {
+    return this.tail === "";
+  };
+
+  /**
+   * Tries to match the given regular expression at the current position.
+   * Returns the matched text if it can match, the empty string otherwise.
+   */
+  Scanner.prototype.scan = function (re) {
+    var match = this.tail.match(re);
+
+    if (!match || match.index !== 0)
+      return '';
+
+    var string = match[0];
+
+    this.tail = this.tail.substring(string.length);
+    this.pos += string.length;
+
+    return string;
+  };
+
+  /**
+   * Skips all text until the given regular expression can be matched. Returns
+   * the skipped string, which is the entire tail if no match can be made.
+   */
+  Scanner.prototype.scanUntil = function (re) {
+    var index = this.tail.search(re), match;
+
+    switch (index) {
+    case -1:
+      match = this.tail;
+      this.tail = "";
+      break;
+    case 0:
+      match = "";
+      break;
+    default:
+      match = this.tail.substring(0, index);
+      this.tail = this.tail.substring(index);
+    }
+
+    this.pos += match.length;
+
+    return match;
+  };
+
+  /**
+   * Represents a rendering context by wrapping a view object and
+   * maintaining a reference to the parent context.
+   */
+  function Context(view, parentContext) {
+    this.view = view == null ? {} : view;
+    this.cache = { '.': this.view };
+    this.parent = parentContext;
+  }
+
+  /**
+   * Creates a new context using the given view with this context
+   * as the parent.
+   */
+  Context.prototype.push = function (view) {
+    return new Context(view, this);
+  };
+
+  /**
+   * Returns the value of the given name in this context, traversing
+   * up the context hierarchy if the value is absent in this context's view.
+   */
+  Context.prototype.lookup = function (name) {
+    var cache = this.cache;
+
+    var value;
+    if (name in cache) {
+      value = cache[name];
+    } else {
+      var context = this, names, index;
+
+      while (context) {
+        if (name.indexOf('.') > 0) {
+          value = context.view;
+          names = name.split('.');
+          index = 0;
+
+          while (value != null && index < names.length)
+            value = value[names[index++]];
+        } else if (typeof context.view == 'object') {
+          value = context.view[name];
+        }
+
+        if (value != null)
+          break;
+
+        context = context.parent;
+      }
+
+      cache[name] = value;
+    }
+
+    if (isFunction(value))
+      value = value.call(this.view);
+
+    return value;
+  };
+
+  /**
+   * A Writer knows how to take a stream of tokens and render them to a
+   * string, given a context. It also maintains a cache of templates to
+   * avoid the need to parse the same template twice.
+   */
+  function Writer() {
+    this.cache = {};
+  }
+
+  /**
+   * Clears all cached templates in this writer.
+   */
+  Writer.prototype.clearCache = function () {
+    this.cache = {};
+  };
+
+  /**
+   * Parses and caches the given `template` and returns the array of tokens
+   * that is generated from the parse.
+   */
+  Writer.prototype.parse = function (template, tags) {
+    var cache = this.cache;
+    var tokens = cache[template];
+
+    if (tokens == null)
+      tokens = cache[template] = parseTemplate(template, tags);
+
+    return tokens;
+  };
+
+  /**
+   * High-level method that is used to render the given `template` with
+   * the given `view`.
+   *
+   * The optional `partials` argument may be an object that contains the
+   * names and templates of partials that are used in the template. It may
+   * also be a function that is used to load partial templates on the fly
+   * that takes a single argument: the name of the partial.
+   */
+  Writer.prototype.render = function (template, view, partials) {
+    var tokens = this.parse(template);
+    var context = (view instanceof Context) ? view : new Context(view);
+    return this.renderTokens(tokens, context, partials, template);
+  };
+
+  /**
+   * Low-level method that renders the given array of `tokens` using
+   * the given `context` and `partials`.
+   *
+   * Note: The `originalTemplate` is only ever used to extract the portion
+   * of the original template that was contained in a higher-order section.
+   * If the template doesn't use higher-order sections, this argument may
+   * be omitted.
+   */
+  Writer.prototype.renderTokens = function (tokens, context, partials, originalTemplate) {
+    var buffer = '';
+
+    // This function is used to render an arbitrary template
+    // in the current context by higher-order sections.
+    var self = this;
+    function subRender(template) {
+      return self.render(template, context, partials);
+    }
+
+    var token, value;
+    for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {
+      token = tokens[i];
+
+      switch (token[0]) {
+      case '#':
+        value = context.lookup(token[1]);
+
+        if (!value)
+          continue;
+
+        if (isArray(value)) {
+          for (var j = 0, valueLength = value.length; j < valueLength; ++j) {
+            buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate);
+          }
+        } else if (typeof value === 'object' || typeof value === 'string') {
+          buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate);
+        } else if (isFunction(value)) {
+          if (typeof originalTemplate !== 'string')
+            throw new Error('Cannot use higher-order sections without the original template');
+
+          // Extract the portion of the original template that the section contains.
+          value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);
+
+          if (value != null)
+            buffer += value;
+        } else {
+          buffer += this.renderTokens(token[4], context, partials, originalTemplate);
+        }
+
+        break;
+      case '^':
+        value = context.lookup(token[1]);
+
+        // Use JavaScript's definition of falsy. Include empty arrays.
+        // See https://github.com/janl/mustache.js/issues/186
+        if (!value || (isArray(value) && value.length === 0))
+          buffer += this.renderTokens(token[4], context, partials, originalTemplate);
+
+        break;
+      case '>':
+        if (!partials)
+          continue;
+
+        value = isFunction(partials) ? partials(token[1]) : partials[token[1]];
+
+        if (value != null)
+          buffer += this.renderTokens(this.parse(value), context, partials, value);
+
+        break;
+      case '&':
+        value = context.lookup(token[1]);
+
+        if (value != null)
+          buffer += value;
+
+        break;
+      case 'name':
+        value = context.lookup(token[1]);
+
+        if (value != null)
+          buffer += mustache.escape(value);
+
+        break;
+      case 'text':
+        buffer += token[1];
+        break;
+      }
+    }
+
+    return buffer;
+  };
+
+  mustache.name = "mustache.js";
+  mustache.version = "0.8.2";
+  mustache.tags = [ "{{", "}}" ];
+
+  // All high-level mustache.* functions use this writer.
+  var defaultWriter = new Writer();
+
+  /**
+   * Clears all cached templates in the default writer.
+   */
+  mustache.clearCache = function () {
+    return defaultWriter.clearCache();
+  };
+
+  /**
+   * Parses and caches the given template in the default writer and returns the
+   * array of tokens it contains. Doing this ahead of time avoids the need to
+   * parse templates on the fly as they are rendered.
+   */
+  mustache.parse = function (template, tags) {
+    return defaultWriter.parse(template, tags);
+  };
+
+  /**
+   * Renders the `template` with the given `view` and `partials` using the
+   * default writer.
+   */
+  mustache.render = function (template, view, partials) {
+    return defaultWriter.render(template, view, partials);
+  };
+
+  // This is here for backwards compatibility with 0.4.x.
+  mustache.to_html = function (template, view, partials, send) {
+    var result = mustache.render(template, view, partials);
+
+    if (isFunction(send)) {
+      send(result);
+    } else {
+      return result;
+    }
+  };
+
+  // Export the escaping function so that the user may override it.
+  // See https://github.com/janl/mustache.js/issues/244
+  mustache.escape = escapeHtml;
+
+  // Export these mainly for testing, but also for advanced usage.
+  mustache.Scanner = Scanner;
+  mustache.Context = Context;
+  mustache.Writer = Writer;
+
+}));
index 5ce3666..6f79e37 100644 (file)
@@ -5,5 +5,15 @@
                ]
        },
        "ooui-outline-control-move-down": "Skuif item af",
-       "ooui-outline-control-move-up": "Skuif item op"
+       "ooui-outline-control-move-up": "Skuif item op",
+       "ooui-outline-control-remove": "Verwyder item",
+       "ooui-toolbar-more": "Meer",
+       "ooui-toolgroup-expand": "Meer",
+       "ooui-toolgroup-collapse": "Minder",
+       "ooui-dialog-message-accept": "Regso",
+       "ooui-dialog-message-reject": "Kanselleer",
+       "ooui-dialog-process-error": "Iets het verkeerd gegaan",
+       "ooui-dialog-process-dismiss": "Sluit",
+       "ooui-dialog-process-retry": "Probeer weer",
+       "ooui-dialog-process-continue": "Gaan voort"
 }
index b0ec803..7cfcfa2 100644 (file)
                        "Reza1615",
                        "Taha",
                        "درفش کاویانی",
-                       "Armin1392"
+                       "Armin1392",
+                       "Alirezaaa"
                ]
        },
        "ooui-outline-control-move-down": "انتقال مورد به پایین",
        "ooui-outline-control-move-up": "انتقال مورد به بالا",
        "ooui-outline-control-remove": "حذف مورد",
        "ooui-toolbar-more": "بیشتر",
+       "ooui-toolgroup-expand": "بیشتر",
+       "ooui-toolgroup-collapse": "کمتر",
        "ooui-dialog-message-accept": "تأیید",
        "ooui-dialog-message-reject": "لغو",
        "ooui-dialog-process-error": "مشکلی وجود دارد",
        "ooui-dialog-process-dismiss": "نپذیرفتن",
-       "ooui-dialog-process-retry": "دوباره امتحان کن"
+       "ooui-dialog-process-retry": "دوباره امتحان کن",
+       "ooui-dialog-process-continue": "ادامه"
 }
index 2c99bdd..3a4e145 100644 (file)
@@ -7,5 +7,14 @@
        },
        "ooui-outline-control-move-down": "Færa atriði niður",
        "ooui-outline-control-move-up": "Færa atriði upp",
-       "ooui-toolbar-more": "Fleira"
+       "ooui-outline-control-remove": "Fjarlægja atriði",
+       "ooui-toolbar-more": "Fleira",
+       "ooui-toolgroup-expand": "Fleira",
+       "ooui-toolgroup-collapse": "Færra",
+       "ooui-dialog-message-accept": "Í lagi",
+       "ooui-dialog-message-reject": "Hætta við",
+       "ooui-dialog-process-error": "Eitthvað mistókst",
+       "ooui-dialog-process-dismiss": "Loka",
+       "ooui-dialog-process-retry": "Reyna aftur",
+       "ooui-dialog-process-continue": "Halda áfram"
 }
index 9840319..1d7317b 100644 (file)
@@ -7,5 +7,13 @@
        "ooui-outline-control-move-down": "Элементті төмен жылжыту",
        "ooui-outline-control-move-up": "Элементті жоғары жылжыту",
        "ooui-outline-control-remove": "Элементті алып тастау",
-       "ooui-toolbar-more": "толығырақ"
+       "ooui-toolbar-more": "толығырақ",
+       "ooui-toolgroup-expand": "Тағы",
+       "ooui-toolgroup-collapse": "Азырақ",
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "Қажет емес",
+       "ooui-dialog-process-error": "Бірдеңеден қате кетті",
+       "ooui-dialog-process-dismiss": "Тоқтату",
+       "ooui-dialog-process-retry": "Қайта байқап көріңіз",
+       "ooui-dialog-process-continue": "Жалғастыру"
 }
index 0b89e37..b003e8c 100644 (file)
@@ -2,16 +2,20 @@
        "@metadata": {
                "authors": [
                        "Vikassy",
-                       "Nayvik"
+                       "Nayvik",
+                       "Omshivaprakash"
                ]
        },
-       "ooui-outline-control-move-down": "ವಸ್ತು ಕೆಲ್ಗೆ ಸ್ಥಲಾನ್ಥರಿಸು",
-       "ooui-outline-control-move-up": "ವಸ್ತು ಮೆಲೆ ಸ್ಥಲಾನ್ಥರಿಸು",
-       "ooui-outline-control-remove": "ವಸ್ತು ತೆಗೆ",
-       "ooui-toolbar-more": "ಹೆಚ್ಚು",
+       "ooui-outline-control-move-down": "ವಸ್ತುವನ್ನು ಕೆಳಗೆ ಸರಿಸು",
+       "ooui-outline-control-move-up": "ವಸ್ತುವನ್ನು ಮೇಲೆ ಸರಿಸು",
+       "ooui-outline-control-remove": "ವಸ್ತುವನ್ನು ತೆಗೆ",
+       "ooui-toolbar-more": "ಇನ್ನಷ್ಟು",
+       "ooui-toolgroup-expand": "ಇನ್ನಷ್ಟು",
+       "ooui-toolgroup-collapse": "ಕೆಲವೇ ಕೆಲವು",
        "ooui-dialog-message-accept": "ಸರಿ",
-       "ooui-dialog-message-reject": "ರದ್ದು",
+       "ooui-dialog-message-reject": "ರದ್ದುಮಾಡು",
        "ooui-dialog-process-error": "ಎನೋ ಎಡವಟ್ಟಾಗಿದೆ....",
        "ooui-dialog-process-dismiss": "ತೆಗೆದುಹಾಕು",
-       "ooui-dialog-process-retry": "ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ"
+       "ooui-dialog-process-retry": "ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ",
+       "ooui-dialog-process-continue": "ಮುಂದುವರೆಸು"
 }
index 1bec097..ef92e49 100644 (file)
@@ -7,5 +7,13 @@
        "ooui-outline-control-move-down": "Элементни тюбюне кёчюр",
        "ooui-outline-control-move-up": "Элементни башына кёчюр",
        "ooui-outline-control-remove": "Пунктну кетер",
-       "ooui-toolbar-more": "Энтда"
+       "ooui-toolbar-more": "Энтда",
+       "ooui-toolgroup-expand": "Энтда",
+       "ooui-toolgroup-collapse": "Артха",
+       "ooui-dialog-message-accept": "OK",
+       "ooui-dialog-message-reject": "Ызына ал",
+       "ooui-dialog-process-error": "Не эсе да табсыз кетди",
+       "ooui-dialog-process-dismiss": "Джаб",
+       "ooui-dialog-process-retry": "Энтда сынаб кёр",
+       "ooui-dialog-process-continue": "Бардыр"
 }
diff --git a/resources/lib/oojs-ui/i18n/ksh.json b/resources/lib/oojs-ui/i18n/ksh.json
new file mode 100644 (file)
index 0000000..c975e82
--- /dev/null
@@ -0,0 +1,19 @@
+{
+       "@metadata": {
+               "authors": [
+                       "Purodha"
+               ]
+       },
+       "ooui-outline-control-move-down": "Öm eine Plaz noh onge schiehbe",
+       "ooui-outline-control-move-up": "Öm eine Plaz noh bovve schiehbe",
+       "ooui-outline-control-remove": "Dä Plaz läddesch maache → fott domet!",
+       "ooui-toolbar-more": "Mih",
+       "ooui-toolgroup-expand": "Mih",
+       "ooui-toolgroup-collapse": "Winnijer",
+       "ooui-dialog-message-accept": "Lohß Jonn!",
+       "ooui-dialog-message-reject": "Ophühre",
+       "ooui-dialog-process-error": "Öhnsjädd es scheif jejange",
+       "ooui-dialog-process-dismiss": "Maach fott, ha_sch jelässe",
+       "ooui-dialog-process-retry": "Norr_ens versöhke",
+       "ooui-dialog-process-continue": "Wigger maache"
+}
index 8b73233..4ca5ab7 100644 (file)
        "ooui-outline-control-move-up": "वस्तुलाई माथि सार्ने",
        "ooui-outline-control-remove": "वस्तुलाई हटाउने",
        "ooui-toolbar-more": "थप",
+       "ooui-toolgroup-expand": "थप",
+       "ooui-toolgroup-collapse": "कम",
        "ooui-dialog-message-accept": "हुन्छ",
-       "ooui-dialog-message-reject": "रद्द गर्ने"
+       "ooui-dialog-message-reject": "रद्द गर्ने",
+       "ooui-dialog-process-dismiss": "खारेज गर्ने",
+       "ooui-dialog-process-retry": "पुन प्रयास गर्नुहोस",
+       "ooui-dialog-process-continue": "जारी राख्ने"
 }
index 7af5bc9..8c7a1e7 100644 (file)
@@ -4,7 +4,19 @@
                        "Amikeco",
                        "Babanwalia",
                        "Bouron",
-                       "Nasir8891"
+                       "Nasir8891",
+                       "Satdeep gill"
                ]
-       }
+       },
+       "ooui-outline-control-move-down": "ਨੀਚੇ ਲੈਕੇ ਜਾਓ",
+       "ooui-outline-control-move-up": "ਉੱਤੇ ਲੈਕੇ ਜਾਓ",
+       "ooui-toolbar-more": "ਹੋਰ",
+       "ooui-toolgroup-expand": "ਹੋਰ",
+       "ooui-toolgroup-collapse": "ਥੋੜੇ",
+       "ooui-dialog-message-accept": "ਠੀਕ ਹੈ",
+       "ooui-dialog-message-reject": "ਰੱਦ ਕਰੋ",
+       "ooui-dialog-process-error": "ਕੁਝ ਗਲਤ ਹੋ ਗਿਆ",
+       "ooui-dialog-process-dismiss": "ਰੱਦ ਕਰੋ",
+       "ooui-dialog-process-retry": "ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ",
+       "ooui-dialog-process-continue": "ਜਾਰੀ ਰੱਖੋ"
 }
index 82f7c6c..7b4d492 100644 (file)
@@ -8,11 +8,20 @@
                        "Rapsar",
                        "Talha Samil Cakir",
                        "TurkishStyles",
-                       "Sayginer"
+                       "Sayginer",
+                       "Meelo"
                ]
        },
        "ooui-outline-control-move-down": "Ögeyi aşağı taşı",
        "ooui-outline-control-move-up": "Ögeyi yukarı taşı",
-       "ooui-toolbar-more": "Daha fazla",
-       "ooui-dialog-process-retry": "Tekrar dene"
+       "ooui-outline-control-remove": "Ögeyi kaldır",
+       "ooui-toolbar-more": "Dahası",
+       "ooui-toolgroup-expand": "Dahası",
+       "ooui-toolgroup-collapse": "Daha az",
+       "ooui-dialog-message-accept": "Tamam",
+       "ooui-dialog-message-reject": "İptal",
+       "ooui-dialog-process-error": "Bir şeyler yanlış gitti",
+       "ooui-dialog-process-dismiss": "Kapat",
+       "ooui-dialog-process-retry": "Tekrar dene",
+       "ooui-dialog-process-continue": "Devam et"
 }
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-alerts.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-alerts.css
new file mode 100644 (file)
index 0000000..388fba8
--- /dev/null
@@ -0,0 +1,64 @@
+/*!
+ * OOjs UI v0.9.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-03-25T22:24:23Z
+ */
+.oo-ui-icon-bell {
+       background-image: url("themes/mediawiki/images/icons/bell.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bell.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bell.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bell.png");
+}
+.oo-ui-icon-bellOn {
+       background-image: url("themes/mediawiki/images/icons/bellOn-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bellOn-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bellOn-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bellOn-ltr.png");
+}
+.oo-ui-icon-eye {
+       background-image: url("themes/mediawiki/images/icons/eye.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/eye.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/eye.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/eye.png");
+}
+.oo-ui-icon-eyeClosed {
+       background-image: url("themes/mediawiki/images/icons/eyeClosed.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/eyeClosed.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/eyeClosed.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/eyeClosed.png");
+}
+.oo-ui-icon-message {
+       background-image: url("themes/mediawiki/images/icons/message-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/message-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/message-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/message-ltr.png");
+}
+.oo-ui-icon-signature {
+       background-image: url("themes/mediawiki/images/icons/signature-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/signature-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/signature-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/signature-ltr.png");
+}
+.oo-ui-icon-speechBubble {
+       background-image: url("themes/mediawiki/images/icons/speechBubble-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubble-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubble-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/speechBubble-ltr.png");
+}
+.oo-ui-icon-speechBubbleAdd {
+       background-image: url("themes/mediawiki/images/icons/speechBubbleAdd-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubbleAdd-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubbleAdd-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/speechBubbleAdd-ltr.png");
+}
+.oo-ui-icon-speechBubbles {
+       background-image: url("themes/mediawiki/images/icons/speechBubbles-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubbles-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/speechBubbles-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/speechBubbles-ltr.png");
+}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-content.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-content.css
new file mode 100644 (file)
index 0000000..9e7a72d
--- /dev/null
@@ -0,0 +1,76 @@
+/*!
+ * OOjs UI v0.9.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-03-25T22:24:23Z
+ */
+.oo-ui-icon-article {
+       background-image: url("themes/mediawiki/images/icons/article-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/article-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/article-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/article-ltr.png");
+}
+.oo-ui-icon-articleCheck {
+       background-image: url("themes/mediawiki/images/icons/articleCheck-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/articleCheck-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/articleCheck-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/articleCheck-ltr.png");
+}
+.oo-ui-icon-articleSearch {
+       background-image: url("themes/mediawiki/images/icons/articleSearch-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/articleSearch-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/articleSearch-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/articleSearch-ltr.png");
+}
+.oo-ui-icon-book {
+       background-image: url("themes/mediawiki/images/icons/book-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/book-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/book-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/book-ltr.png");
+}
+.oo-ui-icon-citeArticle {
+       background-image: url("themes/mediawiki/images/icons/citeArticle-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/citeArticle-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/citeArticle-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/citeArticle-ltr.png");
+}
+.oo-ui-icon-die {
+       background-image: url("themes/mediawiki/images/icons/die-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/die-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/die-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/die-ltr.png");
+}
+.oo-ui-icon-download {
+       background-image: url("themes/mediawiki/images/icons/download-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/download-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/download-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/download-ltr.png");
+}
+.oo-ui-icon-folderPlaceholder {
+       background-image: url("themes/mediawiki/images/icons/folderPlaceholder-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/folderPlaceholder-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/folderPlaceholder-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/folderPlaceholder-ltr.png");
+}
+.oo-ui-icon-journal {
+       background-image: url("themes/mediawiki/images/icons/journal-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/journal-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/journal-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/journal-ltr.png");
+}
+.oo-ui-icon-newspaper {
+       background-image: url("themes/mediawiki/images/icons/newspaper-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newspaper-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newspaper-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/newspaper-ltr.png");
+}
+.oo-ui-icon-upload {
+       background-image: url("themes/mediawiki/images/icons/upload-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/upload-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/upload-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/upload-ltr.png");
+}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-advanced.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-advanced.css
new file mode 100644 (file)
index 0000000..184344b
--- /dev/null
@@ -0,0 +1,70 @@
+/*!
+ * OOjs UI v0.9.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-03-25T22:24:23Z
+ */
+.oo-ui-icon-table {
+       background-image: url("themes/mediawiki/images/icons/table.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/table.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/table.png");
+}
+.oo-ui-icon-newline {
+       background-image: url("themes/mediawiki/images/icons/newline-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newline-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newline-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/newline-ltr.png");
+}
+.oo-ui-icon-redirect {
+       background-image: url("themes/mediawiki/images/icons/redirect-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/redirect-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/redirect-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/redirect-ltr.png");
+}
+.oo-ui-icon-noWikiText {
+       background-image: url("themes/mediawiki/images/icons/noWikiText-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/noWikiText-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/noWikiText-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/noWikiText-ltr.png");
+}
+.oo-ui-icon-puzzle {
+       background-image: url("themes/mediawiki/images/icons/puzzle-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/puzzle-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/puzzle-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/puzzle-ltr.png");
+}
+.oo-ui-icon-quotes {
+       background-image: url("themes/mediawiki/images/icons/quotes-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/quotes-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/quotes-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/quotes-ltr.png");
+}
+.oo-ui-icon-quotesAdd {
+       background-image: url("themes/mediawiki/images/icons/quotesAdd-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/quotesAdd-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/quotesAdd-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/quotesAdd-ltr.png");
+}
+.oo-ui-icon-templateAdd {
+       background-image: url("themes/mediawiki/images/icons/templateAdd-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/templateAdd-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/templateAdd-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/templateAdd-ltr.png");
+}
+.oo-ui-icon-translation {
+       background-image: url("themes/mediawiki/images/icons/translation-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/translation-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/translation-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/translation-ltr.png");
+}
+.oo-ui-icon-wikiText {
+       background-image: url("themes/mediawiki/images/icons/wikiText.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/wikiText.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/wikiText.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/wikiText.png");
+}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-core.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-core.css
new file mode 100644 (file)
index 0000000..bb9813a
--- /dev/null
@@ -0,0 +1,34 @@
+/*!
+ * OOjs UI v0.9.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-03-25T22:24:23Z
+ */
+.oo-ui-icon-edit {
+       background-image: url("themes/mediawiki/images/icons/edit-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/edit-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/edit-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/edit-ltr.png");
+}
+.oo-ui-icon-editLock {
+       background-image: url("themes/mediawiki/images/icons/editLock-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/editLock-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/editLock-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/editLock-ltr.png");
+}
+.oo-ui-icon-editUndo {
+       background-image: url("themes/mediawiki/images/icons/editUndo-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/editUndo-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/editUndo-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/editUndo-ltr.png");
+}
+.oo-ui-icon-link {
+       background-image: url("themes/mediawiki/images/icons/link-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/link-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/link-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/link-ltr.png");
+}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-list.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-list.css
new file mode 100644 (file)
index 0000000..bcf3849
--- /dev/null
@@ -0,0 +1,34 @@
+/*!
+ * OOjs UI v0.9.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-03-25T22:24:23Z
+ */
+.oo-ui-icon-indent {
+       background-image: url("themes/mediawiki/images/icons/indent-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/indent-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/indent-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/indent-ltr.png");
+}
+.oo-ui-icon-listBullet {
+       background-image: url("themes/mediawiki/images/icons/listBullet-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/listBullet-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/listBullet-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/listBullet-ltr.png");
+}
+.oo-ui-icon-listNumbered {
+       background-image: url("themes/mediawiki/images/icons/listNumbered-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/listNumbered-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/listNumbered-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/listNumbered-ltr.png");
+}
+.oo-ui-icon-outdent {
+       background-image: url("themes/mediawiki/images/icons/outdent-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/outdent-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/outdent-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/outdent-ltr.png");
+}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-styling.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-editing-styling.css
new file mode 100644 (file)
index 0000000..f0b350b
--- /dev/null
@@ -0,0 +1,34 @@
+/*!
+ * OOjs UI v0.9.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-03-25T22:24:23Z
+ */
+.oo-ui-icon-bigger {
+       background-image: url("themes/mediawiki/images/icons/bigger-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bigger-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bigger-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bigger-ltr.png");
+}
+.oo-ui-icon-smaller {
+       background-image: url("themes/mediawiki/images/icons/smaller-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/smaller-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/smaller-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/smaller-ltr.png");
+}
+.oo-ui-icon-subscript {
+       background-image: url("themes/mediawiki/images/icons/subscript-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/subscript-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/subscript-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/subscript-ltr.png");
+}
+.oo-ui-icon-superscript {
+       background-image: url("themes/mediawiki/images/icons/superscript-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/superscript-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/superscript-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/superscript-ltr.png");
+}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-interactions.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-interactions.css
new file mode 100644 (file)
index 0000000..ad042ee
--- /dev/null
@@ -0,0 +1,112 @@
+/*!
+ * OOjs UI v0.9.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-03-25T22:24:23Z
+ */
+.oo-ui-icon-beta {
+       background-image: url("themes/mediawiki/images/icons/beta.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/beta.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/beta.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/beta.png");
+}
+.oo-ui-icon-betaLaunch {
+       background-image: url("themes/mediawiki/images/icons/betaLaunch.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/betaLaunch.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/betaLaunch.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/betaLaunch.png");
+}
+.oo-ui-icon-bookmark {
+       background-image: url("themes/mediawiki/images/icons/bookmark-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bookmark-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/bookmark-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/bookmark-ltr.png");
+}
+.oo-ui-icon-browser {
+       background-image: url("themes/mediawiki/images/icons/browser-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/browser-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/browser-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/browser-ltr.png");
+}
+.oo-ui-icon-clock {
+       background-image: url("themes/mediawiki/images/icons/clock.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/clock.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/clock.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/clock.png");
+}
+.oo-ui-icon-closeInput {
+       background-image: url("themes/mediawiki/images/icons/closeInput.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/closeInput.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/closeInput.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/closeInput.png");
+}
+.oo-ui-icon-funnel {
+       background-image: url("themes/mediawiki/images/icons/funnel-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/funnel-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/funnel-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/funnel-ltr.png");
+}
+.oo-ui-icon-heart {
+       background-image: url("themes/mediawiki/images/icons/heart.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/heart.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/heart.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/heart.png");
+}
+.oo-ui-icon-key {
+       background-image: url("themes/mediawiki/images/icons/key-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/key-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/key-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/key-ltr.png");
+}
+.oo-ui-icon-keyboard {
+       background-image: url("themes/mediawiki/images/icons/keyboard-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/keyboard-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/keyboard-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/keyboard-ltr.png");
+}
+.oo-ui-icon-logOut {
+       background-image: url("themes/mediawiki/images/icons/logOut-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logOut-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logOut-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/logOut-ltr.png");
+}
+.oo-ui-icon-magnifyingGlass {
+       background-image: url("themes/mediawiki/images/icons/magnifyingGlass-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/magnifyingGlass-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/magnifyingGlass-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/magnifyingGlass-ltr.png");
+}
+.oo-ui-icon-newWindow {
+       background-image: url("themes/mediawiki/images/icons/newWindow-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newWindow-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/newWindow-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/newWindow-ltr.png");
+}
+.oo-ui-icon-printer {
+       background-image: url("themes/mediawiki/images/icons/printer-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/printer-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/printer-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/printer-ltr.png");
+}
+.oo-ui-icon-ribbonPrize {
+       background-image: url("themes/mediawiki/images/icons/ribbonPrize.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ribbonPrize.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ribbonPrize.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/ribbonPrize.png");
+}
+.oo-ui-icon-sun {
+       background-image: url("themes/mediawiki/images/icons/sun-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/sun-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/sun-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/sun-ltr.png");
+}
+.oo-ui-icon-watchlist {
+       background-image: url("themes/mediawiki/images/icons/watchlist-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/watchlist-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/watchlist-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/watchlist-ltr.png");
+}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-layout.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-layout.css
new file mode 100644 (file)
index 0000000..1e0846a
--- /dev/null
@@ -0,0 +1,34 @@
+/*!
+ * OOjs UI v0.9.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-03-25T22:24:23Z
+ */
+.oo-ui-icon-stripeFlow {
+       background-image: url("themes/mediawiki/images/icons/stripeFlow-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeFlow-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeFlow-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/stripeFlow-ltr.png");
+}
+.oo-ui-icon-stripeSideMenu {
+       background-image: url("themes/mediawiki/images/icons/stripeSideMenu.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeSideMenu.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeSideMenu.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/stripeSideMenu.png");
+}
+.oo-ui-icon-stripeSummary {
+       background-image: url("themes/mediawiki/images/icons/stripeSummary-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeSummary-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeSummary-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/stripeSummary-ltr.png");
+}
+.oo-ui-icon-stripeToC {
+       background-image: url("themes/mediawiki/images/icons/stripeToC-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeToC-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stripeToC-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/stripeToC-ltr.png");
+}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-location.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-location.css
new file mode 100644 (file)
index 0000000..74bd655
--- /dev/null
@@ -0,0 +1,34 @@
+/*!
+ * OOjs UI v0.9.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-03-25T22:24:23Z
+ */
+.oo-ui-icon-map {
+       background-image: url("themes/mediawiki/images/icons/map-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/map-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/map-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/map-ltr.png");
+}
+.oo-ui-icon-mapPin {
+       background-image: url("themes/mediawiki/images/icons/mapPin.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/mapPin.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/mapPin.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/mapPin.png");
+}
+.oo-ui-icon-mapPinAdd {
+       background-image: url("themes/mediawiki/images/icons/mapPinAdd-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/mapPinAdd-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/mapPinAdd-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/mapPinAdd-ltr.png");
+}
+.oo-ui-icon-wikitrail {
+       background-image: url("themes/mediawiki/images/icons/wikitrail-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/wikitrail-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/wikitrail-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/wikitrail-ltr.png");
+}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-media.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-media.css
new file mode 100644 (file)
index 0000000..0653745
--- /dev/null
@@ -0,0 +1,46 @@
+/*!
+ * OOjs UI v0.9.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-03-25T22:24:23Z
+ */
+.oo-ui-icon-image {
+       background-image: url("themes/mediawiki/images/icons/image-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/image-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/image-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/image-ltr.png");
+}
+.oo-ui-icon-imageAdd {
+       background-image: url("themes/mediawiki/images/icons/imageAdd-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/imageAdd-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/imageAdd-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/imageAdd-ltr.png");
+}
+.oo-ui-icon-imageLock {
+       background-image: url("themes/mediawiki/images/icons/imageLock-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/imageLock-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/imageLock-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/imageLock-ltr.png");
+}
+.oo-ui-icon-photoGallery {
+       background-image: url("themes/mediawiki/images/icons/photoGallery-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/photoGallery-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/photoGallery-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/photoGallery-ltr.png");
+}
+.oo-ui-icon-play {
+       background-image: url("themes/mediawiki/images/icons/play-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/play-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/play-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/play-ltr.png");
+}
+.oo-ui-icon-stop {
+       background-image: url("themes/mediawiki/images/icons/stop.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stop.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/stop.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/stop.png");
+}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-moderation.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-moderation.css
new file mode 100644 (file)
index 0000000..bf74367
--- /dev/null
@@ -0,0 +1,70 @@
+/*!
+ * OOjs UI v0.9.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-03-25T22:24:23Z
+ */
+.oo-ui-icon-block {
+       background-image: url("themes/mediawiki/images/icons/block.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/block.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/block.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/block.png");
+}
+.oo-ui-icon-blockUndo {
+       background-image: url("themes/mediawiki/images/icons/blockUndo-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/blockUndo-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/blockUndo-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/blockUndo-ltr.png");
+}
+.oo-ui-icon-flag {
+       background-image: url("themes/mediawiki/images/icons/flag-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/flag-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/flag-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/flag-ltr.png");
+}
+.oo-ui-icon-flagUndo {
+       background-image: url("themes/mediawiki/images/icons/flagUndo-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/flagUndo-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/flagUndo-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/flagUndo-ltr.png");
+}
+.oo-ui-icon-lock {
+       background-image: url("themes/mediawiki/images/icons/lock-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/lock-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/lock-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/lock-ltr.png");
+}
+.oo-ui-icon-star {
+       background-image: url("themes/mediawiki/images/icons/star.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/star.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/star.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/star.png");
+}
+.oo-ui-icon-trash {
+       background-image: url("themes/mediawiki/images/icons/trash.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/trash.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/trash.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/trash.png");
+}
+.oo-ui-icon-trashUndo {
+       background-image: url("themes/mediawiki/images/icons/trashUndo-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/trashUndo-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/trashUndo-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/trashUndo-ltr.png");
+}
+.oo-ui-icon-unLock {
+       background-image: url("themes/mediawiki/images/icons/unLock-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/unLock-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/unLock-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/unLock-ltr.png");
+}
+.oo-ui-icon-unStar {
+       background-image: url("themes/mediawiki/images/icons/unStar.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/unStar.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/unStar.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/unStar.png");
+}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-movement.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-movement.css
new file mode 100644 (file)
index 0000000..8ea1759
--- /dev/null
@@ -0,0 +1,64 @@
+/*!
+ * OOjs UI v0.9.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-03-25T22:24:23Z
+ */
+.oo-ui-icon-arrowNext {
+       background-image: url("themes/mediawiki/images/icons/arrow-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arrow-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arrow-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/arrow-ltr.png");
+}
+.oo-ui-icon-arrowLast {
+       background-image: url("themes/mediawiki/images/icons/arrow-rtl.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arrow-rtl.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arrow-rtl.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/arrow-rtl.png");
+}
+.oo-ui-icon-caretNext {
+       background-image: url("themes/mediawiki/images/icons/caret-rtl.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caret-rtl.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caret-rtl.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/caret-rtl.png");
+}
+.oo-ui-icon-caretLast {
+       background-image: url("themes/mediawiki/images/icons/caret-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caret-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caret-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/caret-ltr.png");
+}
+.oo-ui-icon-caretDown {
+       background-image: url("themes/mediawiki/images/icons/caretDown.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caretDown.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caretDown.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/caretDown.png");
+}
+.oo-ui-icon-caretUp {
+       background-image: url("themes/mediawiki/images/icons/caretUp.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caretUp.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/caretUp.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/caretUp.png");
+}
+.oo-ui-icon-downTriangle {
+       background-image: url("themes/mediawiki/images/icons/downTriangle.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/downTriangle.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/downTriangle.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/downTriangle.png");
+}
+.oo-ui-icon-move {
+       background-image: url("themes/mediawiki/images/icons/move.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/move.png");
+}
+.oo-ui-icon-upTriangle {
+       background-image: url("themes/mediawiki/images/icons/upTriangle.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/upTriangle.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/upTriangle.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/upTriangle.png");
+}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-user.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-user.css
new file mode 100644 (file)
index 0000000..f76c887
--- /dev/null
@@ -0,0 +1,34 @@
+/*!
+ * OOjs UI v0.9.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-03-25T22:24:23Z
+ */
+.oo-ui-icon-userActive {
+       background-image: url("themes/mediawiki/images/icons/userActive-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userActive-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userActive-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/userActive-ltr.png");
+}
+.oo-ui-icon-userAvatar {
+       background-image: url("themes/mediawiki/images/icons/userAvatar.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userAvatar.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userAvatar.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/userAvatar.png");
+}
+.oo-ui-icon-userInactive {
+       background-image: url("themes/mediawiki/images/icons/userInactive-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userInactive-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userInactive-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/userInactive-ltr.png");
+}
+.oo-ui-icon-userTalk {
+       background-image: url("themes/mediawiki/images/icons/userTalk-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userTalk-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/userTalk-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/userTalk-ltr.png");
+}
diff --git a/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-wikimedia.css b/resources/lib/oojs-ui/oojs-ui-mediawiki-icons-wikimedia.css
new file mode 100644 (file)
index 0000000..75a310f
--- /dev/null
@@ -0,0 +1,28 @@
+/*!
+ * OOjs UI v0.9.4
+ * https://www.mediawiki.org/wiki/OOjs_UI
+ *
+ * Copyright 2011–2015 OOjs Team and other contributors.
+ * Released under the MIT license
+ * http://oojs.mit-license.org
+ *
+ * Date: 2015-03-25T22:24:23Z
+ */
+.oo-ui-icon-logoCC {
+       background-image: url("themes/mediawiki/images/icons/logo-cc.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-cc.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-cc.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/logo-cc.png");
+}
+.oo-ui-icon-logoWikimediaCommons {
+       background-image: url("themes/mediawiki/images/icons/logo-wikimediaCommons.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-wikimediaCommons.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-wikimediaCommons.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/logo-wikimediaCommons.png");
+}
+.oo-ui-icon-logoWikipedia {
+       background-image: url("themes/mediawiki/images/icons/logo-wikipedia.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-wikipedia.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/logo-wikipedia.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/logo-wikipedia.png");
+}
index b70f20a..de9c822 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.8.1
+ * OOjs UI v0.9.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-02-26T02:10:42Z
+ * Date: 2015-03-25T22:24:23Z
  */
 .oo-ui-progressBarWidget-slide-frames from {
        margin-left: -40%;
@@ -70,6 +70,7 @@
        display: inline-block;
        vertical-align: middle;
        font: inherit;
+       white-space: nowrap;
        -webkit-touch-callout: none;
        -webkit-user-select: none;
           -moz-user-select: none;
        margin-left: 0;
 }
 .oo-ui-buttonElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-       margin-right: -0.75em;
-       margin-left: -0.75em;
+       width: 0.9375em;
+       height: 0.9375em;
 }
-.oo-ui-buttonElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
 .oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
-       margin-left: 0;
+       margin-left: 0.46875em;
 }
-.oo-ui-buttonElement.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
 .oo-ui-buttonElement.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-       width: 1.9em;
-       height: 1.9em;
+       width: 1.875em;
+       height: 1.875em;
 }
 .oo-ui-buttonElement-frameless > .oo-ui-buttonElement-button:focus {
        box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 0, 0, 0.2);
        margin-right: 0.25em;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #757575;
+       color: #555555;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        color: #444444;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-       color: #598ad1;
+       color: #347bff;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        color: #777777;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled > .oo-ui-buttonElement-button:active > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       color: #015ccc;
+       color: #2962cc;
        box-shadow: none;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-       color: #00c697;
+       color: #00af89;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-constructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        color: #777777;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:hover > .oo-ui-labelElement-label,
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button:focus > .oo-ui-labelElement-label {
-       color: #e81915;
+       color: #d11d13;
 }
 .oo-ui-buttonElement-frameless.oo-ui-widget-enabled.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
        color: #777777;
 }
 .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button {
        margin: 0.1em 0;
-       padding: 0.2em 0.8em;
+       padding: 0.5em 1em;
        border-radius: 2px;
        -webkit-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
           -moz-transition: background 0.1s ease-in-out, color 0.1s ease-in-out, box-shadow 0.1s ease-in-out;
 }
 .oo-ui-buttonElement-framed > input.oo-ui-buttonElement-button,
 .oo-ui-buttonElement-framed.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-labelElement-label {
-       line-height: 1.9em;
+       line-height: 1.2em;
 }
 .oo-ui-buttonElement-framed.oo-ui-iconElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-       margin-left: -0.5em;
-       margin-right: -0.5em;
+       margin-left: -0.7em;
+       margin-top: -0.7em;
+       position: relative;
+       top: 0.3em;
 }
 .oo-ui-buttonElement-framed.oo-ui-iconElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-iconElement-icon {
-       margin-left: -0.5em;
        margin-right: 0.3em;
 }
+.oo-ui-buttonElement-framed.oo-ui-indicatorElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
+       /* -0.5 - 0.475 */
+       margin-left: -0.005em;
+       margin-right: -0.005em;
+}
+.oo-ui-buttonElement-framed.oo-ui-indicatorElement.oo-ui-labelElement > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator,
+.oo-ui-buttonElement-framed.oo-ui-indicatorElement.oo-ui-iconElement:not( .oo-ui-labelElement ) > .oo-ui-buttonElement-button > .oo-ui-indicatorElement-indicator {
+       margin-left: 0.46875em;
+       margin-right: -0.275em;
+}
 .oo-ui-buttonElement-framed.oo-ui-widget-disabled > .oo-ui-buttonElement-button {
        color: #ffffff;
        background: #dddddd;
        border: 1px solid #dddddd;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {
-       color: #757575;
+       color: #555555;
        background-color: #ffffff;
-       border: solid 1px #cdcdcd;
+       border: 1px solid #cdcdcd;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover {
        box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
-       border-color: #aaaaaa;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:focus {
        box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2);
        color: #ffffff;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {
-       color: #0274ff;
+       color: #347bff;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 #015ccc, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-       border-bottom-color: #015ccc;
+       box-shadow: inset 0 -0.2em 0 0 #2962cc, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
+       border-bottom-color: #2962cc;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px #015ccc;
-       border-color: #015ccc;
+       box-shadow: inset 0 0 0 1px #2962cc;
+       border-color: #2962cc;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
-       color: #015ccc;
+       color: #2962cc;
        border-color: #d0d0d0;
        box-shadow: none;
 }
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {
        color: #ffffff;
-       background-color: #0274ff;
-       border-color: #0274ff;
+       background-color: #347bff;
+       border-color: #347bff;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover {
-       box-shadow: inset 0 -0.2em 0 0 #015ccc, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
-       border-bottom-color: #015ccc;
+       box-shadow: inset 0 -0.2em 0 0 #2962cc, 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
+       border-bottom-color: #2962cc;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:focus {
-       box-shadow: inset 0 0 0 1px #015ccc;
-       border-color: #015ccc;
+       box-shadow: inset 0 0 0 1px #2962cc;
+       border-color: #2962cc;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled .oo-ui-buttonElement-button:active,
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-pressed > .oo-ui-buttonElement-button {
        color: #ffffff;
-       background-color: #015ccc;
-       border-color: #015ccc;
+       background-color: #2962cc;
+       border-color: #2962cc;
        box-shadow: none;
 }
 .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive.oo-ui-widget-enabled.oo-ui-buttonElement-active > .oo-ui-buttonElement-button {
        display: block;
        background: rgba(0, 0, 0, 0.4);
 }
+.oo-ui-iconElement .oo-ui-iconElement-icon,
+.oo-ui-iconElement.oo-ui-iconElement-icon {
+       background-size: contain;
+       background-position: center center;
+}
+.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator,
+.oo-ui-indicatorElement.oo-ui-indicatorElement-indicator {
+       background-size: contain;
+       background-position: center center;
+}
 .oo-ui-lookupElement > .oo-ui-menuSelectWidget {
        z-index: 1;
        width: 100%;
        padding: 1.5em;
 }
 .oo-ui-bookletLayout-outlinePanel {
-       border-right: solid 1px #dddddd;
+       border-right: 1px solid #dddddd;
 }
 .oo-ui-bookletLayout-outlinePanel > .oo-ui-outlineControlsWidget {
        box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
        font-weight: bold;
 }
 .oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-labelElement-label {
-       padding-left: 1.75em;
-       line-height: 1.33em;
+       padding-left: 2em;
+       line-height: 1.8em;
 }
 .oo-ui-fieldsetLayout.oo-ui-iconElement > .oo-ui-iconElement-icon {
        left: 0;
        top: 0.25em;
-       width: 1.5em;
-       height: 1.5em;
+       width: 1.875em;
+       height: 1.875em;
 }
 .oo-ui-fieldsetLayout > .oo-ui-popupButtonWidget {
        margin-right: 0;
 .oo-ui-formLayout + .oo-ui-formLayout {
        margin-top: 2em;
 }
-.oo-ui-gridLayout {
-       position: absolute;
-       top: 0;
-       left: 0;
-       right: 0;
-       bottom: 0;
-}
 .oo-ui-menuLayout {
        position: absolute;
        top: 0;
        top: 0;
        right: 0;
 }
-.oo-ui-menuLayout-after .oo-ui-menuLayout-menu {
-       top: 0;
-       right: 0;
-       bottom: 0;
-}
-.oo-ui-menuLayout-bottom .oo-ui-menuLayout-menu {
-       right: 0;
-       bottom: 0;
-       left: 0;
-}
-.oo-ui-menuLayout-before .oo-ui-menuLayout-menu {
-       bottom: 0;
-       left: 0;
-       top: 0;
-}
 .oo-ui-menuLayout-top .oo-ui-menuLayout-content {
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
 }
+.oo-ui-menuLayout-after .oo-ui-menuLayout-menu {
+       top: 0;
+       right: 0;
+       bottom: 0;
+}
 .oo-ui-menuLayout-after .oo-ui-menuLayout-content {
        bottom: 0 !important;
        left: 0 !important;
        top: 0 !important;
 }
+.oo-ui-menuLayout-bottom .oo-ui-menuLayout-menu {
+       right: 0;
+       bottom: 0;
+       left: 0;
+}
 .oo-ui-menuLayout-bottom .oo-ui-menuLayout-content {
        left: 0 !important;
        top: 0 !important;
        right: 0 !important;
 }
+.oo-ui-menuLayout-before .oo-ui-menuLayout-menu {
+       bottom: 0;
+       left: 0;
+       top: 0;
+}
 .oo-ui-menuLayout-before .oo-ui-menuLayout-content {
        top: 0 !important;
        right: 0 !important;
 .oo-ui-panelLayout-padded {
        padding: 1.25em;
 }
+.oo-ui-panelLayout-framed {
+       border: 1px solid #aaaaaa;
+       border-radius: 0.2em;
+       box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
+}
 .oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
        display: block;
        position: relative;
        margin-left: 1.25em;
        font-size: 0.8em;
 }
+.oo-ui-toolGroupTool > .oo-ui-popupToolGroup {
+       margin: 0;
+}
+.oo-ui-toolGroupTool > .oo-ui-popupToolGroup > .oo-ui-popupToolGroup-handle {
+       height: 1.5em;
+       padding: 0.25em;
+}
+.oo-ui-toolGroupTool > .oo-ui-popupToolGroup > .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
+       height: 1.5em;
+       width: 1.5em;
+       opacity: 0.8;
+}
+.oo-ui-toolGroupTool > .oo-ui-popupToolGroup.oo-ui-labelElement > .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
+       line-height: 2.1em;
+}
 .oo-ui-toolGroup {
        display: inline-block;
        vertical-align: middle;
        background-position: center center;
        background-repeat: no-repeat;
 }
+.oo-ui-toolbar-narrow .oo-ui-toolGroup + .oo-ui-toolGroup {
+       margin-left: 0;
+}
 .oo-ui-toolGroup.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-tool-title {
        color: #000000;
 }
 .oo-ui-barToolGroup > .oo-ui-labelElement-label {
        display: none;
 }
-.oo-ui-barToolGroup .oo-ui-tool {
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool {
        display: inline-block;
        position: relative;
        vertical-align: top;
 }
-.oo-ui-barToolGroup .oo-ui-tool-link {
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link {
        display: block;
 }
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-iconElement-icon {
        display: block;
 }
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-tool-accel,
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-tool-title {
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-tool-accel,
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-tool-title {
        display: none;
 }
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-disabled > .oo-ui-tool-link {
        cursor: default;
 }
-.oo-ui-barToolGroup .oo-ui-tool-title,
-.oo-ui-barToolGroup .oo-ui-tool-accel {
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link > .oo-ui-tool-title,
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link > .oo-ui-tool-accel {
        display: none;
 }
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-link {
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link {
        cursor: pointer;
 }
-.oo-ui-barToolGroup .oo-ui-tool-link {
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link {
        height: 1.5em;
        padding: 0.25em;
 }
-.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
+.oo-ui-barToolGroup > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-iconElement-icon {
        height: 1.5em;
        width: 1.5em;
        opacity: 0.8;
 }
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool-active.oo-ui-widget-enabled {
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-tool-active.oo-ui-widget-enabled {
        background-color: #eeeeee;
 }
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-disabled > .oo-ui-tool-link .oo-ui-iconElement-icon {
        opacity: 0.2;
 }
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-iconElement-icon {
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-enabled > .oo-ui-tool-link .oo-ui-iconElement-icon {
        opacity: 0.8;
 }
-.oo-ui-barToolGroup.oo-ui-widget-enabled .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconElement-icon {
+.oo-ui-barToolGroup.oo-ui-widget-enabled > .oo-ui-toolGroup-tools > .oo-ui-tool.oo-ui-widget-enabled:hover > .oo-ui-tool-link .oo-ui-iconElement-icon {
        opacity: 1;
 }
-.oo-ui-barToolGroup.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconElement-icon {
+.oo-ui-barToolGroup.oo-ui-widget-disabled > .oo-ui-toolGroup-tools > .oo-ui-tool > .oo-ui-tool-link .oo-ui-iconElement-icon {
        opacity: 0.2;
 }
 .oo-ui-popupToolGroup {
        position: relative;
        height: 2em;
-       min-width: 2.5em;
+       min-width: 2em;
 }
 .oo-ui-popupToolGroup-handle {
        display: block;
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel:not(:empty) {
        padding-left: 3em;
 }
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup {
+       min-width: 1.5em;
+}
+.oo-ui-popupToolGroup.oo-ui-iconElement {
+       min-width: 2.5em;
+}
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-iconElement {
+       min-width: 2em;
+}
 .oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
        min-width: 3.5em;
 }
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-indicatorElement.oo-ui-iconElement {
+       min-width: 3em;
+}
 .oo-ui-popupToolGroup.oo-ui-labelElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
        line-height: 2.6em;
        font-size: 0.8em;
        margin: 0 1em;
 }
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-labelElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
+       margin: 0 0.5em;
+}
 .oo-ui-popupToolGroup.oo-ui-labelElement.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
        margin-left: 3em;
 }
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-labelElement.oo-ui-iconElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
+       margin-left: 2.5em;
+}
 .oo-ui-popupToolGroup.oo-ui-labelElement.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
        margin-right: 2.25em;
 }
-.oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator,
-.oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
-       top: 0;
-       width: 2em;
-       height: 2em;
-       opacity: 0.8;
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup.oo-ui-labelElement.oo-ui-indicatorElement .oo-ui-popupToolGroup-handle .oo-ui-labelElement-label {
+       margin-right: 1.75em;
 }
 .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
+       width: 0.75em;
+       height: 0.75em;
+       margin: 0.625em;
+       top: 0;
        right: 0;
 }
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup-handle .oo-ui-indicatorElement-indicator {
+       right: -0.25em;
+}
 .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
+       width: 1.5em;
+       height: 1.5em;
+       margin: 0.25em;
+       top: 0;
        left: 0.25em;
 }
+.oo-ui-toolbar-narrow .oo-ui-popupToolGroup-handle .oo-ui-iconElement-icon {
+       left: 0;
+}
 .oo-ui-popupToolGroup-header {
        line-height: 2.6em;
        font-size: 0.8em;
        top: 2em;
        background-color: white;
 }
+.oo-ui-popupToolGroup .oo-ui-tool-link {
+       padding: 0.25em 0 0.25em 0.25em;
+}
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
-       height: 2em;
-       width: 2em;
-       min-width: 2em;
+       height: 1.5em;
+       width: 1.5em;
+       min-width: 1.5em;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
-       padding-left: 0.25em;
+       padding-left: 0.5em;
 }
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-accel,
 .oo-ui-popupToolGroup .oo-ui-tool-link .oo-ui-tool-title {
        cursor: default;
 }
 .oo-ui-listToolGroup .oo-ui-tool {
-       padding: 0 0.5em 0 0.25em;
+       padding: 0 0.75em 0 0.25em;
 }
 .oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
        background-color: #eeeeee;
        box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.1);
 }
 .oo-ui-menuToolGroup {
-       border: solid 1px #cccccc;
+       border: 1px solid #cccccc;
        border-radius: 0.1em;
 }
 .oo-ui-menuToolGroup .oo-ui-tool {
 .oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
        min-width: 8em;
 }
+.oo-ui-toolbar-narrow .oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
+       min-width: 6.5em;
+}
 .oo-ui-menuToolGroup .oo-ui-toolGroup-tools {
        margin-left: -1px;
        padding: 0.25em 0 0.25em 0;
        border-color: #aaaaaa;
 }
 .oo-ui-menuToolGroup .oo-ui-tool {
-       padding: 0 0.75em 0 0.25em;
+       padding: 0 1em 0 0.25em;
 }
 .oo-ui-menuToolGroup .oo-ui-tool-link .oo-ui-iconElement-icon {
        background-image: none;
 }
 .oo-ui-toolbar-tools {
        display: inline;
+       white-space: nowrap;
+}
+.oo-ui-toolbar-narrow .oo-ui-toolbar-tools {
+       white-space: normal;
+}
+.oo-ui-toolbar-tools .oo-ui-tool {
+       white-space: normal;
 }
 .oo-ui-toolbar-tools,
 .oo-ui-toolbar-actions,
        pointer-events: none;
 }
 .oo-ui-toolbar-bar {
-       border-bottom: solid 4px rgba(0, 0, 0, 0.15);
+       border-bottom: 2px solid rgba(0, 0, 0, 0.15);
        background: #ffffff;
 }
 .oo-ui-toolbar-bar .oo-ui-toolbar-bar {
        background-color: #eeeeee;
 }
 .oo-ui-optionWidget .oo-ui-labelElement-label {
-       line-height: 1.5em;
+       line-height: 1.2em;
 }
 .oo-ui-selectWidget-depressed .oo-ui-optionWidget-selected,
 .oo-ui-selectWidget-pressed .oo-ui-optionWidget-pressed,
        background-repeat: no-repeat;
        background-position: center center;
 }
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon,
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
-       top: 50%;
-       width: 2em;
-       height: 2em;
-       margin-top: -1em;
+.oo-ui-decoratedOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
+.oo-ui-decoratedOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
+       top: 0;
+       height: 100%;
 }
-.oo-ui-decoratedOptionWidget .oo-ui-iconElement-icon {
+.oo-ui-decoratedOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
+       width: 1.875em;
        left: 0.5em;
 }
-.oo-ui-decoratedOptionWidget .oo-ui-indicatorElement-indicator {
+.oo-ui-decoratedOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
+       width: 0.9375em;
        right: 0.5em;
 }
 .oo-ui-buttonSelectWidget {
        display: inline-block;
        vertical-align: middle;
 }
-.oo-ui-buttonOptionWidget .oo-ui-buttonElement-button {
-       height: 1.9em;
-}
-.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-       height: 1.9em;
+.oo-ui-buttonOptionWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
        margin-top: 0;
 }
 .oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected,
        background-position: center center;
        background-repeat: no-repeat;
        line-height: 2.5em;
-       height: 1.9em;
-       width: 1.9em;
+       height: 1.875em;
+       width: 1.875em;
 }
 .oo-ui-iconWidget.oo-ui-widget-disabled {
        opacity: 0.2;
        background-position: center center;
        background-repeat: no-repeat;
        line-height: 2.5em;
-       height: 1.9em;
-       width: 1.9em;
+       height: 0.9375em;
+       width: 0.9375em;
+       margin: 0.46875em;
 }
 .oo-ui-indicatorWidget.oo-ui-widget-disabled {
        opacity: 0.2;
 }
 .oo-ui-progressBarWidget {
        max-width: 50em;
-       border: solid 1px #cccccc;
+       border: 1px solid #cccccc;
        border-radius: 0.1em;
        overflow: hidden;
 }
        overflow: hidden;
 }
 .oo-ui-popupWidget-popup {
-       border: solid 1px #aaaaaa;
+       border: 1px solid #aaaaaa;
        border-radius: 0.2em;
        background-color: #ffffff;
        box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
        height: 2.5em;
        padding: 0.5em;
        font-size: 1em;
-       font-family: sans-serif;
        -webkit-box-sizing: border-box;
           -moz-box-sizing: border-box;
                box-sizing: border-box;
-       border: solid 1px #cccccc;
+       border: 1px solid #cccccc;
 }
 .oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:hover,
 .oo-ui-dropdownInputWidget.oo-ui-widget-enabled select:focus {
        padding: 0.5em 0.5em 0.5em 0.9em;
        margin: 0;
        font-size: 1em;
-       font-family: sans-serif;
        background-color: #ffffff;
        color: black;
        border: solid 1px #cccccc;
-       box-shadow: inset 0 0 0 0 #0274ff;
+       box-shadow: inset 0 0 0 0 #347bff;
        border-radius: 0.1em;
        -webkit-transition: box-shadow 0.1s;
           -moz-transition: box-shadow 0.1s;
 .oo-ui-textInputWidget-icon {
        width: 2em;
 }
+.oo-ui-textInputWidget.oo-ui-widget-enabled input,
+.oo-ui-textInputWidget.oo-ui-widget-enabled textarea {
+       -webkit-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
+          -moz-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
+           -ms-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
+            -o-transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
+               transition: border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1) box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1);
+}
 .oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
 .oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
        outline: none;
-       border-color: #aaaaaa;
-       box-shadow: inset 0.4em 0 0 0 #0274ff;
+       border-color: #347bff;
+       box-shadow: inset 0 0 0 0.1em #347bff;
 }
 .oo-ui-textInputWidget.oo-ui-widget-enabled input[readonly],
 .oo-ui-textInputWidget.oo-ui-widget-enabled textarea[readonly] {
 }
 .oo-ui-textInputWidget.oo-ui-widget-enabled input[readonly]:focus,
 .oo-ui-textInputWidget.oo-ui-widget-enabled textarea[readonly]:focus {
-       box-shadow: inset 0.4em 0 0 0 #cccccc;
+       border-color: #cccccc;
+       box-shadow: inset 0 0 0 0.1em #cccccc;
 }
 .oo-ui-textInputWidget.oo-ui-widget-disabled input,
 .oo-ui-textInputWidget.oo-ui-widget-disabled textarea {
 }
 .oo-ui-textInputWidget.oo-ui-iconElement .oo-ui-iconElement-icon {
        left: 0.4em;
-       width: 2em;
+       width: 1.875em;
+       margin-left: 0.1em;
        height: 100%;
        background-position: right center;
 }
 .oo-ui-textInputWidget.oo-ui-indicatorElement input,
 .oo-ui-textInputWidget.oo-ui-indicatorElement textarea {
-       padding-right: 1.9em;
+       padding-right: 1.875em;
 }
 .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-       width: 1.6em;
+       width: 0.9375em;
+       margin: 0 0.775em;
        height: 100%;
-       background-position: left center;
 }
 .oo-ui-textInputWidget > .oo-ui-labelElement-label {
        padding: 0.4em;
        position: absolute;
        background: #ffffff;
        margin-top: -1px;
-       border: solid 1px #aaaaaa;
+       border: 1px solid #aaaaaa;
        border-radius: 0 0 0.2em 0.2em;
        padding-bottom: 0.25em;
        box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2), 0 0.1em 0 0 rgba(0, 0, 0, 0.2);
 }
 .oo-ui-dropdownWidget-handle {
        height: 2.5em;
-       border: solid 1px #cccccc;
+       border: 1px solid #cccccc;
        border-radius: 0.1em;
 }
 .oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator {
        line-height: 2.5em;
        margin: 0 1em;
 }
-.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator,
+.oo-ui-dropdownWidget-handle .oo-ui-indicatorElement-indicator {
+       top: 0;
+       width: 0.9375em;
+       height: 0.9375em;
+       margin: 0.775em;
+}
 .oo-ui-dropdownWidget-handle .oo-ui-iconElement-icon {
        top: 0;
-       width: 2.5em;
-       height: 2.5em;
+       width: 1.875em;
+       height: 1.875em;
+       margin: 0.3em;
 }
 .oo-ui-dropdownWidget:hover .oo-ui-dropdownWidget-handle {
        border-color: #aaaaaa;
 .oo-ui-comboBoxWidget .oo-ui-textInputWidget textarea {
        height: 2.35em;
 }
-.oo-ui-comboBoxWidget .oo-ui-textInputWidget.oo-ui-indicatorElement {
-       padding-right: 1.9em;
-}
-.oo-ui-comboBoxWidget .oo-ui-textInputWidget.oo-ui-indicatorElement .oo-ui-indicatorElement-indicator {
-       width: 1.9em;
-       background-position: center center;
-       border: solid 1px #cccccc;
-       border-left: none;
-       -webkit-box-sizing: border-box;
-          -moz-box-sizing: border-box;
-               box-sizing: border-box;
-}
 .oo-ui-searchWidget-query {
        position: absolute;
        top: 0;
 .oo-ui-searchWidget-query {
        height: 4em;
        padding: 0 1em;
-       border-bottom: solid 1px #cccccc;
+       border-bottom: 1px solid #cccccc;
 }
 .oo-ui-searchWidget-query .oo-ui-textInputWidget {
        margin: 0.75em 0;
 }
 .oo-ui-window {
        line-height: 1em;
+       background: transparent;
+       font-size: 0.8em;
 }
 .oo-ui-window-frame {
        -webkit-box-sizing: border-box;
        padding: 0;
        background: none;
 }
-.oo-ui-window-overlay,
-.oo-ui-window-inner-overlay {
+.oo-ui-window-overlay {
        position: absolute;
        top: 0;
        /* @noflip */
        left: 0;
 }
-.oo-ui-window,
-.oo-ui-window-isolated {
-       background: transparent;
-       font-family: sans-serif;
-       font-size: 0.8em;
-}
 .oo-ui-dialog-content > .oo-ui-window-head,
 .oo-ui-dialog-content > .oo-ui-window-body,
 .oo-ui-dialog-content > .oo-ui-window-foot {
        z-index: 1;
        bottom: 0;
 }
-.oo-ui-dialog-content > .oo-ui-window-inner-overlay {
-       z-index: 3;
-}
 .oo-ui-dialog-content > .oo-ui-window-body {
        outline: 1px solid #aaaaaa;
 }
        text-align: left;
 }
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget {
-       border-right: solid 1px #e5e5e5;
+       border-right: 1px solid #e5e5e5;
 }
 .oo-ui-messageDialog-actions-horizontal .oo-ui-actionWidget:last-child {
        border-right-width: 0;
 }
 .oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget {
-       border-bottom: solid 1px #e5e5e5;
+       border-bottom: 1px solid #e5e5e5;
 }
 .oo-ui-messageDialog-actions-vertical .oo-ui-actionWidget:last-child {
        border-bottom-width: 0;
 }
 .oo-ui-processDialog-location {
        padding: 0.75em 0;
-       height: 1.9em;
+       height: 1.875em;
        cursor: default;
        text-align: center;
 }
 .oo-ui-processDialog-title {
        font-weight: bold;
-       line-height: 1.9em;
+       line-height: 1.875em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-buttonElement-button {
-       min-width: 1.9em;
-       min-height: 1.9em;
+       min-width: 1.875em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget .oo-ui-labelElement-label,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget .oo-ui-labelElement-label,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget .oo-ui-labelElement-label {
-       line-height: 1.9em;
+       line-height: 1.875em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-iconElement .oo-ui-iconElement-icon,
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-other .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
-       padding: 0 1em;
        vertical-align: middle;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget:hover,
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed {
-       margin: 0.75em;
+       margin: 0.6em;
 }
 .oo-ui-processDialog-actions-safe .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button,
 .oo-ui-processDialog-actions-primary .oo-ui-actionWidget.oo-ui-buttonElement-framed .oo-ui-buttonElement-button {
        text-align: left;
        margin: 1em;
        padding: 1em;
-       border: solid 1px #ff9e9e;
+       border: 1px solid #ff9e9e;
        background-color: #fff7f7;
        border-radius: 0.25em;
 }
                transform: scale(1);
 }
 .oo-ui-windowManager-modal.oo-ui-windowManager-floating > .oo-ui-dialog > .oo-ui-window-frame {
-       border: solid 1px #aaaaaa;
+       border: 1px solid #aaaaaa;
        border-radius: 0.2em;
        box-shadow: inset 0 -0.2em 0 0 rgba(0, 0, 0, 0.2);
 }
        background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/alert.svg");
        background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/alert.png");
 }
+.oo-ui-image-warning .oo-ui-icon-alert,
+.oo-ui-image-warning.oo-ui-icon-alert {
+       background-image: url("themes/mediawiki/images/icons/alert-warning.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/alert-warning.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/alert-warning.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/alert-warning.png");
+}
 .oo-ui-image-invert .oo-ui-icon-alert,
 .oo-ui-image-invert.oo-ui-icon-alert {
        background-image: url("themes/mediawiki/images/icons/alert-invert.png");
        background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-constructive.svg");
        background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check-constructive.png");
 }
+.oo-ui-image-progressive .oo-ui-icon-check,
+.oo-ui-image-progressive.oo-ui-icon-check {
+       background-image: url("themes/mediawiki/images/icons/check-progressive.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-progressive.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-progressive.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check-progressive.png");
+}
 .oo-ui-image-invert .oo-ui-icon-check,
 .oo-ui-image-invert.oo-ui-icon-check {
        background-image: url("themes/mediawiki/images/icons/check-invert.png");
        background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/check-invert.svg");
        background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/check-invert.png");
 }
+.oo-ui-icon-circle {
+       background-image: url("themes/mediawiki/images/icons/circle.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/circle.png");
+}
+.oo-ui-image-constructive .oo-ui-icon-circle,
+.oo-ui-image-constructive.oo-ui-icon-circle {
+       background-image: url("themes/mediawiki/images/icons/circle-constructive.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-constructive.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-constructive.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/circle-constructive.png");
+}
+.oo-ui-image-invert .oo-ui-icon-circle,
+.oo-ui-image-invert.oo-ui-icon-circle {
+       background-image: url("themes/mediawiki/images/icons/circle-invert.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-invert.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-invert.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/circle-invert.png");
+}
 .oo-ui-icon-clear {
        background-image: url("themes/mediawiki/images/icons/clear.png");
        background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/clear.svg");
        background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/clear-invert.png");
 }
 .oo-ui-icon-close {
-       background-image: url("themes/mediawiki/images/icons/close.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/close.png");
+       background-image: url("themes/mediawiki/images/icons/close-ltr.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close-ltr.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close-ltr.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/close-ltr.png");
 }
 .oo-ui-image-invert .oo-ui-icon-close,
 .oo-ui-image-invert.oo-ui-icon-close {
-       background-image: url("themes/mediawiki/images/icons/close-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/close-invert.png");
+       background-image: url("themes/mediawiki/images/icons/close-ltr-invert.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close-ltr-invert.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/close-ltr-invert.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/close-ltr-invert.png");
 }
 .oo-ui-icon-code {
        background-image: url("themes/mediawiki/images/icons/code.png");
        background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/comment-invert.svg");
        background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/comment-invert.png");
 }
+.oo-ui-icon-ellipsis {
+       background-image: url("themes/mediawiki/images/icons/ellipsis.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ellipsis.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ellipsis.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/ellipsis.png");
+}
+.oo-ui-image-invert .oo-ui-icon-ellipsis,
+.oo-ui-image-invert.oo-ui-icon-ellipsis {
+       background-image: url("themes/mediawiki/images/icons/ellipsis-invert.png");
+       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ellipsis-invert.svg");
+       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/ellipsis-invert.svg");
+       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/ellipsis-invert.png");
+}
 .oo-ui-icon-expand {
        background-image: url("themes/mediawiki/images/icons/expand.png");
        background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/expand.svg");
        background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/info-invert.svg");
        background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/info-invert.png");
 }
-.oo-ui-icon-link {
-       background-image: url("themes/mediawiki/images/icons/link.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/link.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/link.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/link.png");
-}
-.oo-ui-image-invert .oo-ui-icon-link,
-.oo-ui-image-invert.oo-ui-icon-link {
-       background-image: url("themes/mediawiki/images/icons/link-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/link-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/link-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/link-invert.png");
-}
-.oo-ui-icon-lock {
-       background-image: url("themes/mediawiki/images/icons/lock.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/lock.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/lock.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/lock.png");
-}
-.oo-ui-image-invert .oo-ui-icon-lock,
-.oo-ui-image-invert.oo-ui-icon-lock {
-       background-image: url("themes/mediawiki/images/icons/lock-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/lock-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/lock-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/lock-invert.png");
-}
 .oo-ui-icon-menu {
        background-image: url("themes/mediawiki/images/icons/menu.png");
        background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/menu.svg");
        background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/move-rtl-invert.svg");
        background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/move-rtl-invert.png");
 }
-.oo-ui-icon-circle {
-       background-image: url("themes/mediawiki/images/icons/circle.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/circle.png");
-}
-.oo-ui-image-constructive .oo-ui-icon-circle,
-.oo-ui-image-constructive.oo-ui-icon-circle {
-       background-image: url("themes/mediawiki/images/icons/circle-constructive.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-constructive.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-constructive.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/circle-constructive.png");
-}
-.oo-ui-image-invert .oo-ui-icon-circle,
-.oo-ui-image-invert.oo-ui-icon-circle {
-       background-image: url("themes/mediawiki/images/icons/circle-invert.png");
-       background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-invert.svg");
-       background-image:         linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/circle-invert.svg");
-       background-image:      -o-linear-gradient(transparent, transparent), url("themes/mediawiki/images/icons/circle-invert.png");
-}
 .oo-ui-icon-redo {
        background-image: url("themes/mediawiki/images/icons/arched-arrow-ltr.png");
        background-image: -webkit-linear-gradient(transparent, transparent), /* @embed */ url("themes/mediawiki/images/icons/arched-arrow-ltr.svg");
index e387364..9a9aa6d 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.8.1
+ * OOjs UI v0.9.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-02-26T02:10:32Z
+ * Date: 2015-03-25T22:24:05Z
  */
 /**
  * @class
@@ -32,6 +32,7 @@ OO.ui.MediaWikiTheme.prototype.getElementClasses = function ( element ) {
        // Parent method
        var variant,
                variants = {
+                       warning: false,
                        invert: false,
                        progressive: false,
                        constructive: false,
@@ -47,6 +48,7 @@ OO.ui.MediaWikiTheme.prototype.getElementClasses = function ( element ) {
                        variants.progressive = element.hasFlag( 'progressive' );
                        variants.constructive = element.hasFlag( 'constructive' );
                        variants.destructive = element.hasFlag( 'destructive' );
+                       variants.warning = element.hasFlag( 'warning' );
                }
        }
 
index b4593d6..56ff6fa 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.8.1
+ * OOjs UI v0.9.4
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-02-26T02:10:32Z
+ * Date: 2015-03-25T22:24:05Z
  */
 ( function ( OO ) {
 
@@ -117,6 +117,21 @@ OO.ui.contains = function ( containers, contained, matchContainers ) {
        return false;
 };
 
+/**
+ * Reconstitute a JavaScript object corresponding to a widget created by
+ * the PHP implementation.
+ *
+ * This is an alias for `OO.ui.Element.static.infuse()`.
+ *
+ * @param {string|HTMLElement|jQuery} idOrNode
+ *   A DOM id (if a string) or node for the widget to infuse.
+ * @return {OO.ui.Element}
+ *   The `OO.ui.Element` corresponding to this (infusable) document node.
+ */
+OO.ui.infuse = function ( idOrNode ) {
+       return OO.ui.Element.static.infuse( idOrNode );
+};
+
 ( function () {
        /**
         * Message store for the default implementation of OO.ui.msg
@@ -305,66 +320,74 @@ OO.ui.PendingElement.prototype.popPending = function () {
 };
 
 /**
- * ActionSets manage the behavior of the {@link OO.ui.ActionWidget Action widgets} that comprise them.
+ * ActionSets manage the behavior of the {@link OO.ui.ActionWidget action widgets} that comprise them.
  * Actions can be made available for specific contexts (modes) and circumstances
- * (abilities). Please see the [OOjs UI documentation on MediaWiki][1] for more information.
+ * (abilities). Action sets are primarily used with {@link OO.ui.Dialog Dialogs}.
+ *
+ * ActionSets contain two types of actions:
+ *
+ * - Special: Special actions are the first visible actions with special flags, such as 'safe' and 'primary', the default special flags. Additional special flags can be configured in subclasses with the static #specialFlags property.
+ * - Other: Other actions include all non-special visible actions.
+ *
+ * Please see the [OOjs UI documentation on MediaWiki][1] for more information.
  *
  *     @example
  *     // Example: An action set used in a process dialog
- *     function ProcessDialog( config ) {
- *         ProcessDialog.super.call( this, config );
+ *     function MyProcessDialog( config ) {
+ *         MyProcessDialog.super.call( this, config );
  *     }
- *     OO.inheritClass( ProcessDialog, OO.ui.ProcessDialog );
- *     ProcessDialog.static.title = 'An action set in a process dialog';
+ *     OO.inheritClass( MyProcessDialog, OO.ui.ProcessDialog );
+ *     MyProcessDialog.static.title = 'An action set in a process dialog';
  *     // An action set that uses modes ('edit' and 'help' mode, in this example).
- *     ProcessDialog.static.actions = [
- *        { action: 'continue', modes: 'edit', label: 'Continue', flags: [ 'primary', 'constructive' ] },
- *        { action: 'help', modes: 'edit', label: 'Help' },
- *        { modes: 'edit', label: 'Cancel', flags: 'safe' },
- *        { action: 'back', modes: 'help', label: 'Back', flags: 'safe' }
+ *     MyProcessDialog.static.actions = [
+ *         { action: 'continue', modes: 'edit', label: 'Continue', flags: [ 'primary', 'constructive' ] },
+ *         { action: 'help', modes: 'edit', label: 'Help' },
+ *         { modes: 'edit', label: 'Cancel', flags: 'safe' },
+ *         { action: 'back', modes: 'help', label: 'Back', flags: 'safe' }
  *     ];
  *
- *     ProcessDialog.prototype.initialize = function () {
- *         ProcessDialog.super.prototype.initialize.apply( this, arguments );
+ *     MyProcessDialog.prototype.initialize = function () {
+ *         MyProcessDialog.super.prototype.initialize.apply( this, arguments );
  *         this.panel1 = new OO.ui.PanelLayout( { padded: true, expanded: false } );
- *         this.panel1.$element.append( '<p>This dialog uses an action set (continue, help, cancel, back) configured with modes. This is edit mode. Click \'help\' to see help mode. </p>' );
+ *         this.panel1.$element.append( '<p>This dialog uses an action set (continue, help, cancel, back) configured with modes. This is edit mode. Click \'help\' to see help mode.</p>' );
  *         this.panel2 = new OO.ui.PanelLayout( { padded: true, expanded: false } );
- *         this.panel2.$element.append( '<p>This is help mode. Only the \'back\' action widget is configured to be visible here. Click \'back\' to return to \'edit\' mode</p>' );
- *         this.stackLayout= new OO.ui.StackLayout( {
+ *         this.panel2.$element.append( '<p>This is help mode. Only the \'back\' action widget is configured to be visible here. Click \'back\' to return to \'edit\' mode.</p>' );
+ *         this.stackLayout = new OO.ui.StackLayout( {
  *             items: [ this.panel1, this.panel2 ]
- *         });
+ *         } );
  *         this.$body.append( this.stackLayout.$element );
  *     };
- *     ProcessDialog.prototype.getSetupProcess = function ( data ) {
- *         return ProcessDialog.super.prototype.getSetupProcess.call( this, data )
- *         .next( function () {
- *         this.actions.setMode('edit');
- *         }, this );
+ *     MyProcessDialog.prototype.getSetupProcess = function ( data ) {
+ *         return MyProcessDialog.super.prototype.getSetupProcess.call( this, data )
+ *             .next( function () {
+ *                 this.actions.setMode( 'edit' );
+ *             }, this );
  *     };
- *     ProcessDialog.prototype.getActionProcess = function ( action ) {
+ *     MyProcessDialog.prototype.getActionProcess = function ( action ) {
  *         if ( action === 'help' ) {
  *             this.actions.setMode( 'help' );
  *             this.stackLayout.setItem( this.panel2 );
- *             } else if ( action === 'back' ) {
+ *         } else if ( action === 'back' ) {
  *             this.actions.setMode( 'edit' );
  *             this.stackLayout.setItem( this.panel1 );
- *             } else if ( action === 'continue' ) {
+ *         } else if ( action === 'continue' ) {
  *             var dialog = this;
  *             return new OO.ui.Process( function () {
  *                 dialog.close();
  *             } );
  *         }
- *         return ProcessDialog.super.prototype.getActionProcess.call( this, action );
+ *         return MyProcessDialog.super.prototype.getActionProcess.call( this, action );
  *     };
- *     ProcessDialog.prototype.getBodyHeight = function () {
+ *     MyProcessDialog.prototype.getBodyHeight = function () {
  *         return this.panel1.$element.outerHeight( true );
  *     };
  *     var windowManager = new OO.ui.WindowManager();
  *     $( 'body' ).append( windowManager.$element );
- *     var processDialog = new ProcessDialog({
- *        size: 'medium'});
- *     windowManager.addWindows( [ processDialog ] );
- *     windowManager.openWindow( processDialog );
+ *     var dialog = new MyProcessDialog( {
+ *         size: 'medium'
+ *     } );
+ *     windowManager.addWindows( [ dialog ] );
+ *     windowManager.openWindow( dialog );
  *
  * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Windows/Process_Dialogs#Action_sets
  *
@@ -421,26 +444,43 @@ OO.ui.ActionSet.static.specialFlags = [ 'safe', 'primary' ];
 
 /**
  * @event click
+ *
+ * A 'click' event is emitted when an action is clicked.
+ *
  * @param {OO.ui.ActionWidget} action Action that was clicked
  */
 
 /**
  * @event resize
+ *
+ * A 'resize' event is emitted when an action widget is resized.
+ *
  * @param {OO.ui.ActionWidget} action Action that was resized
  */
 
 /**
  * @event add
+ *
+ * An 'add' event is emitted when actions are {@link #method-add added} to the action set.
+ *
  * @param {OO.ui.ActionWidget[]} added Actions added
  */
 
 /**
  * @event remove
+ *
+ * A 'remove' event is emitted when actions are {@link #method-remove removed}
+ *  or {@link #clear cleared}.
+ *
  * @param {OO.ui.ActionWidget[]} added Actions removed
  */
 
 /**
  * @event change
+ *
+ * A 'change' event is emitted when actions are {@link #method-add added}, {@link #clear cleared},
+ * or {@link #method-remove removed} from the action set or when the {@link #setMode mode} is changed.
+ *
  */
 
 /* Methods */
@@ -461,7 +501,7 @@ OO.ui.ActionSet.prototype.onActionChange = function () {
 };
 
 /**
- * Check if a action is one of the special actions.
+ * Check if an action is one of the special actions.
  *
  * @param {OO.ui.ActionWidget} action Action to check
  * @return {boolean} Action is special
@@ -479,15 +519,16 @@ OO.ui.ActionSet.prototype.isSpecial = function ( action ) {
 };
 
 /**
- * Get actions.
+ * Get action widgets based on the specified filter: ‘actions’, ‘flags’, ‘modes’, ‘visible’,
+ *  or ‘disabled’.
  *
  * @param {Object} [filters] Filters to use, omit to get all actions
- * @param {string|string[]} [filters.actions] Actions that actions must have
- * @param {string|string[]} [filters.flags] Flags that actions must have
- * @param {string|string[]} [filters.modes] Modes that actions must have
- * @param {boolean} [filters.visible] Actions must be visible
- * @param {boolean} [filters.disabled] Actions must be disabled
- * @return {OO.ui.ActionWidget[]} Actions matching all criteria
+ * @param {string|string[]} [filters.actions] Actions that action widgets must have
+ * @param {string|string[]} [filters.flags] Flags that action widgets must have (e.g., 'safe')
+ * @param {string|string[]} [filters.modes] Modes that action widgets must have
+ * @param {boolean} [filters.visible] Action widgets must be visible
+ * @param {boolean} [filters.disabled] Action widgets must be disabled
+ * @return {OO.ui.ActionWidget[]} Action widgets matching all criteria
  */
 OO.ui.ActionSet.prototype.get = function ( filters ) {
        var i, len, list, category, actions, index, match, matches;
@@ -539,12 +580,12 @@ OO.ui.ActionSet.prototype.get = function ( filters ) {
 };
 
 /**
- * Get special actions.
+ * Get 'special' actions.
  *
- * Special actions are the first visible actions with special flags, such as 'safe' and 'primary'.
- * Special flags can be configured by changing #static-specialFlags in a subclass.
+ * Special actions are the first visible action widgets with special flags, such as 'safe' and 'primary'.
+ * Special flags can be configured in subclasses by changing the static #specialFlags property.
  *
- * @return {OO.ui.ActionWidget|null} Safe action
+ * @return {OO.ui.ActionWidget[]|null} 'Special' action widgets.
  */
 OO.ui.ActionSet.prototype.getSpecial = function () {
        this.organize();
@@ -552,11 +593,11 @@ OO.ui.ActionSet.prototype.getSpecial = function () {
 };
 
 /**
- * Get other actions.
+ * Get 'other' actions.
  *
- * Other actions include all non-special visible actions.
+ * Other actions include all non-special visible action widgets.
  *
- * @return {OO.ui.ActionWidget[]} Other actions
+ * @return {OO.ui.ActionWidget[]} 'Other' action widgets
  */
 OO.ui.ActionSet.prototype.getOthers = function () {
        this.organize();
@@ -564,12 +605,11 @@ OO.ui.ActionSet.prototype.getOthers = function () {
 };
 
 /**
- * Toggle actions based on their modes.
+ * Set the mode  (e.g., ‘edit’ or ‘view’). Only {@link OO.ui.ActionWidget#modes actions} configured
+ * to be available in the specified mode will be made visible. All other actions will be hidden.
  *
- * Unlike calling toggle on actions with matching flags, this will enforce mutually exclusive
- * visibility; matching actions will be shown, non-matching actions will be hidden.
- *
- * @param {string} mode Mode actions must have
+ * @param {string} mode The mode. Only actions configured to be available in the specified
+ *  mode will be made visible.
  * @chainable
  * @fires toggle
  * @fires change
@@ -591,12 +631,14 @@ OO.ui.ActionSet.prototype.setMode = function ( mode ) {
 };
 
 /**
- * Change which actions are able to be performed.
+ * Set the abilities of the specified actions.
  *
- * Actions with matching actions will be disabled/enabled. Other actions will not be changed.
+ * Action widgets that are configured with the specified actions will be enabled
+ * or disabled based on the boolean values specified in the `actions`
+ * parameter.
  *
- * @param {Object.<string,boolean>} actions List of abilities, keyed by action name, values
- *   indicate actions are able to be performed
+ * @param {Object.<string,boolean>} actions A list keyed by action name with boolean
+ *  values that indicate whether or not the action should be enabled.
  * @chainable
  */
 OO.ui.ActionSet.prototype.setAbilities = function ( actions ) {
@@ -617,9 +659,9 @@ OO.ui.ActionSet.prototype.setAbilities = function ( actions ) {
  * Executes a function once per action.
  *
  * When making changes to multiple actions, use this method instead of iterating over the actions
- * manually to defer emitting a change event until after all actions have been changed.
+ * manually to defer emitting a #change event until after all actions have been changed.
  *
- * @param {Object|null} actions Filters to use for which actions to iterate over; see #get
+ * @param {Object|null} actions Filters to use to determine which actions to iterate over; see #get
  * @param {Function} callback Callback to run for each action; callback is invoked with three
  *   arguments: the action, the action's index, the list of actions being iterated over
  * @chainable
@@ -637,9 +679,9 @@ OO.ui.ActionSet.prototype.forEach = function ( filter, callback ) {
 };
 
 /**
- * Add actions.
+ * Add action widgets to the action set.
  *
- * @param {OO.ui.ActionWidget[]} actions Actions to add
+ * @param {OO.ui.ActionWidget[]} actions Action widgets to add
  * @chainable
  * @fires add
  * @fires change
@@ -666,9 +708,11 @@ OO.ui.ActionSet.prototype.add = function ( actions ) {
 };
 
 /**
- * Remove actions.
+ * Remove action widgets from the set.
+ *
+ * To remove all actions, you may wish to use the #clear method instead.
  *
- * @param {OO.ui.ActionWidget[]} actions Actions to remove
+ * @param {OO.ui.ActionWidget[]} actions Action widgets to remove
  * @chainable
  * @fires remove
  * @fires change
@@ -694,7 +738,9 @@ OO.ui.ActionSet.prototype.remove = function ( actions ) {
 };
 
 /**
- * Remove all actions.
+ * Remove all action widets from the set.
+ *
+ * To remove only specified actions, use the {@link #method-remove remove} method instead.
  *
  * @chainable
  * @fires remove
@@ -867,6 +913,103 @@ OO.ui.Element.static.tagName = 'div';
 
 /* Static Methods */
 
+/**
+ * Reconstitute a JavaScript object corresponding to a widget created
+ * by the PHP implementation.
+ *
+ * @param {string|HTMLElement|jQuery} idOrNode
+ *   A DOM id (if a string) or node for the widget to infuse.
+ * @return {OO.ui.Element}
+ *   The `OO.ui.Element` corresponding to this (infusable) document node.
+ *   For `Tag` objects emitted on the HTML side (used occasionally for content)
+ *   the value returned is a newly-created Element wrapping around the existing
+ *   DOM node.
+ */
+OO.ui.Element.static.infuse = function ( idOrNode ) {
+       var obj = OO.ui.Element.static.unsafeInfuse( idOrNode, true );
+       // Verify that the type matches up.
+       // FIXME: uncomment after T89721 is fixed (see T90929)
+       /*
+       if ( !( obj instanceof this['class'] ) ) {
+               throw new Error( 'Infusion type mismatch!' );
+       }
+       */
+       return obj;
+};
+
+/**
+ * Implementation helper for `infuse`; skips the type check and has an
+ * extra property so that only the top-level invocation touches the DOM.
+ * @private
+ * @param {string|HTMLElement|jQuery} idOrNode
+ * @param {boolean} top True only for top-level invocation.
+ * @return {OO.ui.Element}
+ */
+OO.ui.Element.static.unsafeInfuse = function ( idOrNode, top ) {
+       // look for a cached result of a previous infusion.
+       var id, $elem, data, cls, obj;
+       if ( typeof idOrNode === 'string' ) {
+               id = idOrNode;
+               $elem = $( document.getElementById( id ) );
+       } else {
+               $elem = $( idOrNode );
+               id = $elem.attr( 'id' );
+       }
+       data = $elem.data( 'ooui-infused' );
+       if ( data ) {
+               // cached!
+               if ( data === true ) {
+                       throw new Error( 'Circular dependency! ' + id );
+               }
+               return data;
+       }
+       if ( !$elem.length ) {
+               throw new Error( 'Widget not found: ' + id );
+       }
+       data = $elem.attr( 'data-ooui' );
+       if ( !data ) {
+               throw new Error( 'No infusion data found: ' + id );
+       }
+       try {
+               data = $.parseJSON( data );
+       } catch ( _ ) {
+               data = null;
+       }
+       if ( !( data && data._ ) ) {
+               throw new Error( 'No valid infusion data found: ' + id );
+       }
+       if ( data._ === 'Tag' ) {
+               // Special case: this is a raw Tag; wrap existing node, don't rebuild.
+               return new OO.ui.Element( { $element: $elem } );
+       }
+       cls = OO.ui[data._];
+       if ( !cls ) {
+               throw new Error( 'Unknown widget type: ' + id );
+       }
+       $elem.data( 'ooui-infused', true ); // prevent loops
+       data.id = id; // implicit
+       data = OO.copy( data, null, function deserialize( value ) {
+               if ( OO.isPlainObject( value ) ) {
+                       if ( value.tag ) {
+                               return OO.ui.Element.static.unsafeInfuse( value.tag, false );
+                       }
+                       if ( value.html ) {
+                               return new OO.ui.HtmlSnippet( value.html );
+                       }
+               }
+       } );
+       // jscs:disable requireCapitalizedConstructors
+       obj = new cls( data ); // rebuild widget
+       // now replace old DOM with this new DOM.
+       if ( top ) {
+               $elem.replaceWith( obj.$element );
+       }
+       obj.$element.data( 'ooui-infused', obj );
+       // set the 'data-ooui' attribute so we can identify infused widgets
+       obj.$element.attr( 'data-ooui', '' );
+       return obj;
+};
+
 /**
  * Get a jQuery function within a specific document.
  *
@@ -1431,7 +1574,11 @@ OO.ui.Element.prototype.scrollElementIntoView = function ( config ) {
 };
 
 /**
- * Container for elements.
+ * Layouts are containers for elements and are used to arrange other widgets of arbitrary type in a way
+ * that is centrally controlled and can be updated dynamically. Layouts can be, and usually are, combined.
+ * See {@link OO.ui.FieldsetLayout FieldsetLayout}, {@link OO.ui.FieldLayout FieldLayout}, {@link OO.ui.FormLayout FormLayout},
+ * {@link OO.ui.PanelLayout PanelLayout}, {@link OO.ui.StackLayout StackLayout}, {@link OO.ui.PageLayout PageLayout},
+ * and {@link OO.ui.BookletLayout BookletLayout} for more information and examples.
  *
  * @abstract
  * @class
@@ -1472,7 +1619,8 @@ OO.mixinClass( OO.ui.Layout, OO.EventEmitter );
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {boolean} [disabled=false] Disable
+ * @cfg {boolean} [disabled=false] Disable the widget. Disabled widgets cannot be used and their
+ *  appearance reflects this state.
  */
 OO.ui.Widget = function OoUiWidget( config ) {
        // Initialize config
@@ -1502,11 +1650,17 @@ OO.mixinClass( OO.ui.Widget, OO.EventEmitter );
 
 /**
  * @event disable
+ *
+ * A 'disable' event is emitted when a widget is disabled.
+ *
  * @param {boolean} disabled Widget is disabled
  */
 
 /**
  * @event toggle
+ *
+ * A 'toggle' event is emitted when the visibility of the widget changes.
+ *
  * @param {boolean} visible Widget is visible
  */
 
@@ -1515,16 +1669,16 @@ OO.mixinClass( OO.ui.Widget, OO.EventEmitter );
 /**
  * Check if the widget is disabled.
  *
- * @return {boolean} Button is disabled
+ * @return {boolean} Widget is disabled
  */
 OO.ui.Widget.prototype.isDisabled = function () {
        return this.disabled;
 };
 
 /**
- * Set the disabled state of the widget.
+ * Set the 'disabled' state of the widget.
  *
- * This should probably change the widgets' appearance and prevent it from being used.
+ * When a widget is disabled, it cannot be used and its appearance is updated to reflect this state.
  *
  * @param {boolean} disabled Disable widget
  * @chainable
@@ -1598,8 +1752,8 @@ OO.ui.Widget.prototype.updateDisabled = function () {
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {string} [size] Symbolic name of dialog size, `small`, `medium`, `large`, `larger` or
- *  `full`; omit to use #static-size
+ * @cfg {string} [size] Symbolic name of the dialog size: `small`, `medium`, `large`, `larger` or
+ *  `full`.  If omitted, the value of the {@link #static-size static size} property will be used.
  */
 OO.ui.Window = function OoUiWindow( config ) {
        // Configuration initialization
@@ -1646,9 +1800,9 @@ OO.mixinClass( OO.ui.Window, OO.EventEmitter );
 /* Static Properties */
 
 /**
- * Symbolic name of size.
+ * Symbolic name of the window size: `small`, `medium`, `large`, `larger` or `full`.
  *
- * Size is used if no size is configured during construction.
+ * The static size is used if no #size is configured during construction.
  *
  * @static
  * @inheritable
@@ -1661,6 +1815,7 @@ OO.ui.Window.static.size = 'medium';
 /**
  * Handle mouse down events.
  *
+ * @private
  * @param {jQuery.Event} e Mouse down event
  */
 OO.ui.Window.prototype.onMouseDown = function ( e ) {
@@ -1671,7 +1826,7 @@ OO.ui.Window.prototype.onMouseDown = function ( e ) {
 };
 
 /**
- * Check if window has been initialized.
+ * Check if the window has been initialized.
  *
  * Initialization occurs when a window is added to a manager.
  *
@@ -1682,7 +1837,7 @@ OO.ui.Window.prototype.isInitialized = function () {
 };
 
 /**
- * Check if window is visible.
+ * Check if the window is visible.
  *
  * @return {boolean} Window is visible
  */
@@ -1691,9 +1846,10 @@ OO.ui.Window.prototype.isVisible = function () {
 };
 
 /**
- * Check if window is opening.
+ * Check if the window is opening.
  *
- * This is a wrapper around OO.ui.WindowManager#isOpening.
+ * This method is a wrapper around the window manager's {@link OO.ui.WindowManager#isOpening isOpening}
+ * method.
  *
  * @return {boolean} Window is opening
  */
@@ -1702,9 +1858,9 @@ OO.ui.Window.prototype.isOpening = function () {
 };
 
 /**
- * Check if window is closing.
+ * Check if the window is closing.
  *
- * This is a wrapper around OO.ui.WindowManager#isClosing.
+ * This method is a wrapper around the window manager's {@link OO.ui.WindowManager#isClosing isClosing} method.
  *
  * @return {boolean} Window is closing
  */
@@ -1713,9 +1869,9 @@ OO.ui.Window.prototype.isClosing = function () {
 };
 
 /**
- * Check if window is opened.
+ * Check if the window is opened.
  *
- * This is a wrapper around OO.ui.WindowManager#isOpened.
+ * This method is a wrapper around the window manager's {@link OO.ui.WindowManager#isOpened isOpened} method.
  *
  * @return {boolean} Window is opened
  */
@@ -1726,6 +1882,9 @@ OO.ui.Window.prototype.isOpened = function () {
 /**
  * Get the window manager.
  *
+ * All windows must be attached to a window manager, which is used to open
+ * and close the window and control its presentation.
+ *
  * @return {OO.ui.WindowManager} Manager of window
  */
 OO.ui.Window.prototype.getManager = function () {
@@ -1733,9 +1892,9 @@ OO.ui.Window.prototype.getManager = function () {
 };
 
 /**
- * Get the window size.
+ * Get the symbolic name of the window size (e.g., `small` or `medium`).
  *
- * @return {string} Symbolic size name, e.g. `small`, `medium`, `large`, `larger`, `full`
+ * @return {string} Symbolic name of the size: `small`, `medium`, `large`, `larger`, `full`
  */
 OO.ui.Window.prototype.getSize = function () {
        return this.size;
@@ -1765,9 +1924,16 @@ OO.ui.Window.prototype.withoutSizeTransitions = function ( callback ) {
 };
 
 /**
- * Get the height of the dialog contents.
+ * Get the height of the full window contents (i.e., the window head, body and foot together).
+ *
+ * What consistitutes the head, body, and foot varies depending on the window type.
+ * A {@link OO.ui.MessageDialog message dialog} displays a title and message in its body,
+ * and any actions in the foot. A {@link OO.ui.ProcessDialog process dialog} displays a title
+ * and special actions in the head, and dialog content in the body.
  *
- * @return {number} Content height
+ * To get just the height of the dialog body, use the #getBodyHeight method.
+ *
+ * @return {number} The height of the window contents (the dialog head, body and foot) in pixels
  */
 OO.ui.Window.prototype.getContentHeight = function () {
        var bodyHeight,
@@ -1797,34 +1963,42 @@ OO.ui.Window.prototype.getContentHeight = function () {
 };
 
 /**
- * Get the height of the dialog contents.
+ * Get the height of the window body.
+ *
+ * To get the height of the full window contents (the window body, head, and foot together),
+ * use #getContentHeight.
  *
- * When this function is called, the dialog will temporarily have been resized
+ * When this function is called, the window will temporarily have been resized
  * to height=1px, so .scrollHeight measurements can be taken accurately.
  *
- * @return {number} Height of content
+ * @return {number} Height of the window body in pixels
  */
 OO.ui.Window.prototype.getBodyHeight = function () {
        return this.$body[ 0 ].scrollHeight;
 };
 
 /**
- * Get the directionality of the frame
+ * Get the directionality of the frame (right-to-left or left-to-right).
  *
- * @return {string} Directionality, 'ltr' or 'rtl'
+ * @return {string} Directionality: `'ltr'` or `'rtl'`
  */
 OO.ui.Window.prototype.getDir = function () {
        return this.dir;
 };
 
 /**
- * Get a process for setting up a window for use.
+ * Get the 'setup' process.
  *
- * Each time the window is opened this process will set it up for use in a particular context, based
- * on the `data` argument.
+ * The setup process is used to set up a window for use in a particular context,
+ * based on the `data` argument. This method is called during the opening phase of the window’s
+ * lifecycle.
  *
- * When you override this method, you can add additional setup steps to the process the parent
- * method provides using the 'first' and 'next' methods.
+ * Override this method to add additional steps to the ‘setup’ process the parent method provides
+ * using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next} methods
+ * of OO.ui.Process.
+ *
+ * To add window content that persists between openings, you may wish to use the #initialize method
+ * instead.
  *
  * @abstract
  * @param {Object} [data] Window opening data
@@ -1835,30 +2009,34 @@ OO.ui.Window.prototype.getSetupProcess = function () {
 };
 
 /**
- * Get a process for readying a window for use.
+ * Get the ‘ready’ process.
  *
- * Each time the window is open and setup, this process will ready it up for use in a particular
- * context, based on the `data` argument.
+ * The ready process is used to ready a window for use in a particular
+ * context, based on the `data` argument. This method is called during the opening phase of
+ * the window’s lifecycle, after the window has been {@link #getSetupProcess setup}.
  *
- * When you override this method, you can add additional setup steps to the process the parent
- * method provides using the 'first' and 'next' methods.
+ * Override this method to add additional steps to the ‘ready’ process the parent method
+ * provides using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next}
+ * methods of OO.ui.Process.
  *
  * @abstract
  * @param {Object} [data] Window opening data
- * @return {OO.ui.Process} Setup process
+ * @return {OO.ui.Process} Ready process
  */
 OO.ui.Window.prototype.getReadyProcess = function () {
        return new OO.ui.Process();
 };
 
 /**
- * Get a process for holding a window from use.
+ * Get the 'hold' process.
  *
- * Each time the window is closed, this process will hold it from use in a particular context, based
- * on the `data` argument.
+ * The hold proccess is used to keep a window from being used in a particular context,
+ * based on the `data` argument. This method is called during the closing phase of the window’s
+ * lifecycle.
  *
- * When you override this method, you can add additional setup steps to the process the parent
- * method provides using the 'first' and 'next' methods.
+ * Override this method to add additional steps to the 'hold' process the parent method provides
+ * using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next} methods
+ * of OO.ui.Process.
  *
  * @abstract
  * @param {Object} [data] Window closing data
@@ -1869,13 +2047,15 @@ OO.ui.Window.prototype.getHoldProcess = function () {
 };
 
 /**
- * Get a process for tearing down a window after use.
+ * Get the ‘teardown’ process.
  *
- * Each time the window is closed this process will tear it down and do something with the user's
- * interactions within the window, based on the `data` argument.
+ * The teardown process is used to teardown a window after use. During teardown,
+ * user interactions within the window are conveyed and the window is closed, based on the `data`
+ * argument. This method is called during the closing phase of the window’s lifecycle.
  *
- * When you override this method, you can add additional teardown steps to the process the parent
- * method provides using the 'first' and 'next' methods.
+ * Override this method to add additional steps to the ‘teardown’ process the parent method provides
+ * using the {@link OO.ui.Process#first first} and {@link OO.ui.Process#next next} methods
+ * of OO.ui.Process.
  *
  * @abstract
  * @param {Object} [data] Window closing data
@@ -1891,7 +2071,7 @@ OO.ui.Window.prototype.getTeardownProcess = function () {
  * This will cause the window to initialize. Calling it more than once will cause an error.
  *
  * @param {OO.ui.WindowManager} manager Manager for this window
- * @throws {Error} If called more than once
+ * @throws {Error} An error is thrown if the method is called more than once
  * @chainable
  */
 OO.ui.Window.prototype.setManager = function ( manager ) {
@@ -1906,9 +2086,10 @@ OO.ui.Window.prototype.setManager = function ( manager ) {
 };
 
 /**
- * Set the window size.
+ * Set the window size by symbolic name (e.g., 'small' or 'medium')
  *
- * @param {string} size Symbolic size name, e.g. 'small', 'medium', 'large', 'full'
+ * @param {string} size Symbolic name of size: `small`, `medium`, `large`, `larger` or
+ *  `full`
  * @chainable
  */
 OO.ui.Window.prototype.setSize = function ( size ) {
@@ -1920,7 +2101,7 @@ OO.ui.Window.prototype.setSize = function ( size ) {
 /**
  * Update the window size.
  *
- * @throws {Error} If not attached to a manager
+ * @throws {Error} An error is thrown if the window is not attached to a window manager
  * @chainable
  */
 OO.ui.Window.prototype.updateSize = function () {
@@ -1934,9 +2115,10 @@ OO.ui.Window.prototype.updateSize = function () {
 };
 
 /**
- * Set window dimensions.
+ * Set window dimensions. This method is called by the {@link OO.ui.WindowManager window manager}
+ * when the window is opening. In general, setDimensions should not be called directly.
  *
- * Properties are applied to the frame container.
+ * To set the size of the window, use the #setSize method.
  *
  * @param {Object} dim CSS dimension properties
  * @param {string|number} [dim.width] Width
@@ -1979,11 +2161,12 @@ OO.ui.Window.prototype.setDimensions = function ( dim ) {
 /**
  * Initialize window contents.
  *
- * The first time the window is opened, #initialize is called so that changes to the window that
- * will persist between openings can be made. See #getSetupProcess for a way to make changes each
- * time the window opens.
+ * Before the window is opened for the first time, #initialize is called so that content that
+ * persists between openings can be added to the window.
  *
- * @throws {Error} If not attached to a manager
+ * To set up a window with new content each time the window opens, use #getSetupProcess.
+ *
+ * @throws {Error} An error is thrown if the window is not attached to a window manager
  * @chainable
  */
 OO.ui.Window.prototype.initialize = function () {
@@ -1995,7 +2178,6 @@ OO.ui.Window.prototype.initialize = function () {
        this.$head = $( '<div>' );
        this.$body = $( '<div>' );
        this.$foot = $( '<div>' );
-       this.$innerOverlay = $( '<div>' );
        this.dir = OO.ui.Element.static.getDir( this.$content ) || 'ltr';
        this.$document = $( this.getElementDocument() );
 
@@ -2006,22 +2188,24 @@ OO.ui.Window.prototype.initialize = function () {
        this.$head.addClass( 'oo-ui-window-head' );
        this.$body.addClass( 'oo-ui-window-body' );
        this.$foot.addClass( 'oo-ui-window-foot' );
-       this.$innerOverlay.addClass( 'oo-ui-window-inner-overlay' );
-       this.$content.append( this.$head, this.$body, this.$foot, this.$innerOverlay );
+       this.$content.append( this.$head, this.$body, this.$foot );
 
        return this;
 };
 
 /**
- * Open window.
+ * Open the window.
+ *
+ * This method is a wrapper around a call to the window manager’s {@link OO.ui.WindowManager#openWindow openWindow}
+ * method, which returns a promise resolved when the window is done opening.
  *
- * This is a wrapper around calling {@link OO.ui.WindowManager#openWindow} on the window manager.
- * To do something each time the window opens, use #getSetupProcess or #getReadyProcess.
+ * To customize the window each time it opens, use #getSetupProcess or #getReadyProcess.
  *
  * @param {Object} [data] Window opening data
- * @return {jQuery.Promise} Promise resolved when window is opened; when the promise is resolved the
- *   first argument will be a promise which will be resolved when the window begins closing
- * @throws {Error} If not attached to a manager
+ * @return {jQuery.Promise} Promise resolved with a value when the window is opened, or rejected
+ *  if the window fails to open. When the promise is resolved successfully, the first argument of the
+ *  value is a new promise, which is resolved when the window begins closing.
+ * @throws {Error} An error is thrown if the window is not attached to a window manager
  */
 OO.ui.Window.prototype.open = function ( data ) {
        if ( !this.manager ) {
@@ -2032,14 +2216,19 @@ OO.ui.Window.prototype.open = function ( data ) {
 };
 
 /**
- * Close window.
+ * Close the window.
  *
- * This is a wrapper around calling OO.ui.WindowManager#closeWindow on the window manager.
- * To do something each time the window closes, use #getHoldProcess or #getTeardownProcess.
+ * This method is a wrapper around a call to the window
+ * manager’s {@link OO.ui.WindowManager#closeWindow closeWindow} method,
+ * which returns a closing promise resolved when the window is done closing.
+ *
+ * The window's #getHoldProcess and #getTeardownProcess methods are called during the closing
+ * phase of the window’s lifecycle and can be used to specify closing behavior each time
+ * the window closes.
  *
  * @param {Object} [data] Window closing data
  * @return {jQuery.Promise} Promise resolved when window is closed
- * @throws {Error} If not attached to a manager
+ * @throws {Error} An error is thrown if the window is not attached to a window manager
  */
 OO.ui.Window.prototype.close = function ( data ) {
        if ( !this.manager ) {
@@ -2228,6 +2417,11 @@ OO.mixinClass( OO.ui.Dialog, OO.ui.PendingElement );
 /**
  * Symbolic name of dialog.
  *
+ * The dialog class must have a symbolic name in order to be registered with OO.Factory.
+ * Please see the [OOjs UI documentation on MediaWiki] [3] for more information.
+ *
+ * [3]: https://www.mediawiki.org/wiki/OOjs_UI/Windows/Window_managers
+ *
  * @abstract
  * @static
  * @inheritable
@@ -2236,26 +2430,35 @@ OO.mixinClass( OO.ui.Dialog, OO.ui.PendingElement );
 OO.ui.Dialog.static.name = '';
 
 /**
- * Dialog title.
+ * The dialog title.
+ *
+ * The title can be specified as a plaintext string, a {@link OO.ui.LabelElement Label} node, or a function
+ * that will produce a Label node or string. The title can also be specified with data passed to the
+ * constructor (see #getSetupProcess). In this case, the static value will be overriden.
  *
  * @abstract
  * @static
  * @inheritable
- * @property {jQuery|string|Function} Label nodes, text or a function that returns nodes or text
+ * @property {jQuery|string|Function}
  */
 OO.ui.Dialog.static.title = '';
 
 /**
- * List of OO.ui.ActionWidget configuration options.
+ * An array of configured {@link OO.ui.ActionWidget action widgets}.
+ *
+ * Actions can also be specified with data passed to the constructor (see #getSetupProcess). In this case, the static
+ * value will be overriden.
+ *
+ * [2]: https://www.mediawiki.org/wiki/OOjs_UI/Windows/Process_Dialogs#Action_sets
  *
  * @static
- * inheritable
+ * @inheritable
  * @property {Object[]}
  */
 OO.ui.Dialog.static.actions = [];
 
 /**
- * Close dialog when the escape key is pressed.
+ * Close the dialog when the 'Esc' key is pressed.
  *
  * @static
  * @abstract
@@ -2269,6 +2472,7 @@ OO.ui.Dialog.static.escapable = true;
 /**
  * Handle frame document key down events.
  *
+ * @private
  * @param {jQuery.Event} e Key down event
  */
 OO.ui.Dialog.prototype.onDocumentKeyDown = function ( e ) {
@@ -2282,6 +2486,7 @@ OO.ui.Dialog.prototype.onDocumentKeyDown = function ( e ) {
 /**
  * Handle action resized events.
  *
+ * @private
  * @param {OO.ui.ActionWidget} action Action that was resized
  */
 OO.ui.Dialog.prototype.onActionResize = function () {
@@ -2291,17 +2496,19 @@ OO.ui.Dialog.prototype.onActionResize = function () {
 /**
  * Handle action click events.
  *
+ * @private
  * @param {OO.ui.ActionWidget} action Action that was clicked
  */
 OO.ui.Dialog.prototype.onActionClick = function ( action ) {
        if ( !this.isPending() ) {
-               this.currentAction = action;
                this.executeAction( action.getAction() );
        }
 };
 
 /**
  * Handle actions change event.
+ *
+ * @private
  */
 OO.ui.Dialog.prototype.onActionsChange = function () {
        this.detachActions();
@@ -2311,7 +2518,7 @@ OO.ui.Dialog.prototype.onActionsChange = function () {
 };
 
 /**
- * Get set of actions.
+ * Get the set of actions used by the dialog.
  *
  * @return {OO.ui.ActionSet}
  */
@@ -2322,8 +2529,9 @@ OO.ui.Dialog.prototype.getActions = function () {
 /**
  * Get a process for taking action.
  *
- * When you override this method, you can add additional accept steps to the process the parent
- * method provides using the 'first' and 'next' methods.
+ * When you override this method, you can create a new OO.ui.Process and return it, or add additional
+ * accept steps to the process the parent method provides using the {@link OO.ui.Process#first 'first'}
+ * and {@link OO.ui.Process#next 'next'} methods of OO.ui.Process.
  *
  * @abstract
  * @param {string} [action] Symbolic name of action
@@ -2344,9 +2552,10 @@ OO.ui.Dialog.prototype.getActionProcess = function ( action ) {
  * @inheritdoc
  *
  * @param {Object} [data] Dialog opening data
- * @param {jQuery|string|Function|null} [data.title] Dialog title, omit to use #static-title
- * @param {Object[]} [data.actions] List of OO.ui.ActionWidget configuration options for each
- *   action item, omit to use #static-actions
+ * @param {jQuery|string|Function|null} [data.title] Dialog title, omit to use
+ *  the {@link #static-title static title}
+ * @param {Object[]} [data.actions] List of configuration options for each
+ *   {@link OO.ui.ActionWidget action widget}, omit to use {@link #static-actions static actions}.
  */
 OO.ui.Dialog.prototype.getSetupProcess = function ( data ) {
        data = data || {};
@@ -2354,20 +2563,13 @@ OO.ui.Dialog.prototype.getSetupProcess = function ( data ) {
        // Parent method
        return OO.ui.Dialog.super.prototype.getSetupProcess.call( this, data )
                .next( function () {
-                       var i, len,
-                               items = [],
-                               config = this.constructor.static,
+                       var config = this.constructor.static,
                                actions = data.actions !== undefined ? data.actions : config.actions;
 
                        this.title.setLabel(
                                data.title !== undefined ? data.title : this.constructor.static.title
                        );
-                       for ( i = 0, len = actions.length; i < len; i++ ) {
-                               items.push(
-                                       new OO.ui.ActionWidget( actions[ i ] )
-                               );
-                       }
-                       this.actions.add( items );
+                       this.actions.add( this.getActionWidgets( actions ) );
 
                        if ( this.constructor.static.escapable ) {
                                this.$document.on( 'keydown', this.onDocumentKeyDownHandler );
@@ -2406,8 +2608,26 @@ OO.ui.Dialog.prototype.initialize = function () {
        this.setPendingElement( this.$head );
 };
 
+/**
+ * Get action widgets from a list of configs
+ *
+ * @param {Object[]} actions Action widget configs
+ * @return {OO.ui.ActionWidget[]} Action widgets
+ */
+OO.ui.Dialog.prototype.getActionWidgets = function ( actions ) {
+       var i, len, widgets = [];
+       for ( i = 0, len = actions.length; i < len; i++ ) {
+               widgets.push(
+                       new OO.ui.ActionWidget( actions[ i ] )
+               );
+       }
+       return widgets;
+};
+
 /**
  * Attach action actions.
+ *
+ * @protected
  */
 OO.ui.Dialog.prototype.attachActions = function () {
        // Remember the list of potentially attached actions
@@ -2417,6 +2637,7 @@ OO.ui.Dialog.prototype.attachActions = function () {
 /**
  * Detach action actions.
  *
+ * @protected
  * @chainable
  */
 OO.ui.Dialog.prototype.detachActions = function () {
@@ -2437,6 +2658,7 @@ OO.ui.Dialog.prototype.detachActions = function () {
  */
 OO.ui.Dialog.prototype.executeAction = function ( action ) {
        this.pushPending();
+       this.currentAction = action;
        return this.getActionProcess( action ).execute()
                .always( this.popPending.bind( this ) );
 };
@@ -2493,6 +2715,8 @@ OO.ui.Dialog.prototype.executeAction = function ( action ) {
  * @constructor
  * @param {Object} [config] Configuration options
  * @cfg {OO.Factory} [factory] Window factory to use for automatic instantiation
+ *  Note that window classes that are instantiated with a factory must have
+ *  a {@link OO.ui.Dialog#static-name static name} property that specifies a symbolic name.
  * @cfg {boolean} [modal=true] Prevent interaction outside the dialog
  */
 OO.ui.WindowManager = function OoUiWindowManager( config ) {
@@ -2515,6 +2739,7 @@ OO.ui.WindowManager = function OoUiWindowManager( config ) {
        this.preparingToOpen = null;
        this.preparingToClose = null;
        this.currentWindow = null;
+       this.globalEvents = false;
        this.$ariaHidden = null;
        this.onWindowResizeTimeout = null;
        this.onWindowResizeHandler = this.onWindowResize.bind( this );
@@ -2534,34 +2759,30 @@ OO.mixinClass( OO.ui.WindowManager, OO.EventEmitter );
 /* Events */
 
 /**
- * Window is opening.
- *
- * Fired when the window begins to be opened.
+ * An 'opening' event is emitted when the window begins to be opened.
  *
  * @event opening
  * @param {OO.ui.Window} win Window that's being opened
- * @param {jQuery.Promise} opening Promise resolved when window is opened; when the promise is
- *   resolved the first argument will be a promise which will be resolved when the window begins
- *   closing, the second argument will be the opening data; progress notifications will be fired on
- *   the promise for `setup` and `ready` when those processes are completed respectively.
+ * @param {jQuery.Promise} opening An `opening` promise resolved with a value when the window is opened successfully.
+ *  When the `opening` promise is resolved, the first argument of the value is an 'opened' promise, the second argument
+ *  is the opening data. The `opening` promise emits `setup` and `ready` notifications when those processes are complete.
  * @param {Object} data Window opening data
  */
 
 /**
- * Window is closing.
- *
- * Fired when the window begins to be closed.
+ * A 'closing' event is emitted when the window begins to be closed.
  *
  * @event closing
  * @param {OO.ui.Window} win Window that's being closed
- * @param {jQuery.Promise} opening Promise resolved when window is closed; when the promise
- *   is resolved the first argument will be a the closing data; progress notifications will be fired
- *   on the promise for `hold` and `teardown` when those processes are completed respectively.
+ * @param {jQuery.Promise} closing A `closing` promise is resolved with a value when the window
+ *  is closed successfully. The promise emits `hold` and `teardown` notifications when those
+ *  processes are complete. When the `closing` promise is resolved, the first argument of its value
+ *  is the closing data.
  * @param {Object} data Window closing data
  */
 
 /**
- * Window was resized.
+ * A 'resize' event is emitted when a window is resized.
  *
  * @event resize
  * @param {OO.ui.Window} win Window that was resized
@@ -2570,7 +2791,7 @@ OO.mixinClass( OO.ui.WindowManager, OO.EventEmitter );
 /* Static Properties */
 
 /**
- * Map of symbolic size names and CSS properties.
+ * Map of the symbolic name of each window size and its CSS properties.
  *
  * @static
  * @inheritable
@@ -2597,9 +2818,9 @@ OO.ui.WindowManager.static.sizes = {
 };
 
 /**
- * Symbolic name of default size.
+ * Symbolic name of the default window size.
  *
- * Default size is used if the window's requested size is not recognized.
+ * The default size is used if the window's requested size is not recognized.
  *
  * @static
  * @inheritable
@@ -2612,6 +2833,7 @@ OO.ui.WindowManager.static.defaultSize = 'medium';
 /**
  * Handle window resize events.
  *
+ * @private
  * @param {jQuery.Event} e Window resize event
  */
 OO.ui.WindowManager.prototype.onWindowResize = function () {
@@ -2622,6 +2844,7 @@ OO.ui.WindowManager.prototype.onWindowResize = function () {
 /**
  * Handle window resize events.
  *
+ * @private
  * @param {jQuery.Event} e Window resize event
  */
 OO.ui.WindowManager.prototype.afterWindowResize = function () {
@@ -2676,7 +2899,7 @@ OO.ui.WindowManager.prototype.hasWindow = function ( win ) {
 };
 
 /**
- * Get the number of milliseconds to wait between beginning opening and executing setup process.
+ * Get the number of milliseconds to wait after opening begins before executing the ‘setup’ process.
  *
  * @param {OO.ui.Window} win Window being opened
  * @param {Object} [data] Window opening data
@@ -2687,7 +2910,7 @@ OO.ui.WindowManager.prototype.getSetupDelay = function () {
 };
 
 /**
- * Get the number of milliseconds to wait between finishing setup and executing ready process.
+ * Get the number of milliseconds to wait after setup has finished before executing the ‘ready’ process.
  *
  * @param {OO.ui.Window} win Window being opened
  * @param {Object} [data] Window opening data
@@ -2698,7 +2921,7 @@ OO.ui.WindowManager.prototype.getReadyDelay = function () {
 };
 
 /**
- * Get the number of milliseconds to wait between beginning closing and executing hold process.
+ * Get the number of milliseconds to wait after closing has begun before executing the 'hold' process.
  *
  * @param {OO.ui.Window} win Window being closed
  * @param {Object} [data] Window closing data
@@ -2709,7 +2932,8 @@ OO.ui.WindowManager.prototype.getHoldDelay = function () {
 };
 
 /**
- * Get the number of milliseconds to wait between finishing hold and executing teardown process.
+ * Get the number of milliseconds to wait after the ‘hold’ process has finished before
+ * executing the ‘teardown’ process.
  *
  * @param {OO.ui.Window} win Window being closed
  * @param {Object} [data] Window closing data
@@ -2720,14 +2944,17 @@ OO.ui.WindowManager.prototype.getTeardownDelay = function () {
 };
 
 /**
- * Get managed window by symbolic name.
+ * Get a window by its symbolic name.
  *
- * If window is not yet instantiated, it will be instantiated and added automatically.
+ * If the window is not yet instantiated and its symbolic name is recognized by a factory, it will be
+ * instantiated and added to the window manager automatically. Please see the [OOjs UI documentation on MediaWiki][3]
+ * for more information about using factories.
+ * [3]: https://www.mediawiki.org/wiki/OOjs_UI/Windows/Window_managers
  *
- * @param {string} name Symbolic window name
+ * @param {string} name Symbolic name of the window
  * @return {jQuery.Promise} Promise resolved with matching window, or rejected with an OO.ui.Error
- * @throws {Error} If the symbolic name is unrecognized by the factory
- * @throws {Error} If the symbolic name unrecognized as a managed window
+ * @throws {Error} An error is thrown if the symbolic name is not recognized by the factory.
+ * @throws {Error} An error is thrown if the named window is not recognized as a managed window.
  */
 OO.ui.WindowManager.prototype.getWindow = function ( name ) {
        var deferred = $.Deferred(),
@@ -2740,7 +2967,7 @@ OO.ui.WindowManager.prototype.getWindow = function ( name ) {
                                        'Cannot auto-instantiate window: symbolic name is unrecognized by the factory'
                                ) );
                        } else {
-                               win = this.factory.create( name, this );
+                               win = this.factory.create( name );
                                this.addWindows( [ win ] );
                                deferred.resolve( win );
                        }
@@ -2770,8 +2997,8 @@ OO.ui.WindowManager.prototype.getCurrentWindow = function () {
  *
  * @param {OO.ui.Window|string} win Window object or symbolic name of window to open
  * @param {Object} [data] Window opening data
- * @return {jQuery.Promise} Promise resolved when window is done opening; see {@link #event-opening}
- *   for more details about the `opening` promise
+ * @return {jQuery.Promise} An `opening` promise resolved when the window is done opening.
+ *  See {@link #event-opening 'opening' event}  for more information about `opening` promises.
  * @fires opening
  */
 OO.ui.WindowManager.prototype.openWindow = function ( win, data ) {
@@ -2835,9 +3062,9 @@ OO.ui.WindowManager.prototype.openWindow = function ( win, data ) {
  *
  * @param {OO.ui.Window|string} win Window object or symbolic name of window to close
  * @param {Object} [data] Window closing data
- * @return {jQuery.Promise} Promise resolved when window is done closing; see {@link #event-closing}
- *   for more details about the `closing` promise
- * @throws {Error} If no window by that name is being managed
+ * @return {jQuery.Promise} A `closing` promise resolved when the window is done closing.
+ *  See {@link #event-closing 'closing' event} for more information about closing promises.
+ * @throws {Error} An error is thrown if the window is not managed by the window manager.
  * @fires closing
  */
 OO.ui.WindowManager.prototype.closeWindow = function ( win, data ) {
@@ -2903,11 +3130,16 @@ OO.ui.WindowManager.prototype.closeWindow = function ( win, data ) {
 };
 
 /**
- * Add windows.
+ * Add windows to the window manager.
  *
- * @param {Object.<string,OO.ui.Window>|OO.ui.Window[]} windows Windows to add
- * @throws {Error} If one of the windows being added without an explicit symbolic name does not have
- *   a statically configured symbolic name
+ * Windows can be added by reference, symbolic name, or explicitly defined symbolic names.
+ * See the [OOjs ui documentation on MediaWiki] [2] for examples.
+ * [2]: https://www.mediawiki.org/wiki/OOjs_UI/Windows/Window_managers
+ *
+ * @param {Object.<string,OO.ui.Window>|OO.ui.Window[]} windows An array of window objects specified
+ *  by reference, symbolic name, or explicitly defined symbolic names.
+ * @throws {Error} An error is thrown if a window is added by symbolic name, but has neither an
+ *  explicit nor a statically configured symbolic name.
  */
 OO.ui.WindowManager.prototype.addWindows = function ( windows ) {
        var i, len, win, name, list;
@@ -2936,13 +3168,15 @@ OO.ui.WindowManager.prototype.addWindows = function ( windows ) {
 };
 
 /**
- * Remove windows.
+ * Remove the specified windows from the windows manager.
  *
- * Windows will be closed before they are removed.
+ * Windows will be closed before they are removed. If you wish to remove all windows, you may wish to use
+ * the #clearWindows method instead. If you no longer need the window manager and want to ensure that it no
+ * longer listens to events, use the #destroy method.
  *
  * @param {string[]} names Symbolic names of windows to remove
  * @return {jQuery.Promise} Promise resolved when window is closed and removed
- * @throws {Error} If windows being removed are not being managed
+ * @throws {Error} An error is thrown if the named windows are not managed by the window manager.
  */
 OO.ui.WindowManager.prototype.removeWindows = function ( names ) {
        var i, len, win, name, cleanupWindow,
@@ -2967,9 +3201,11 @@ OO.ui.WindowManager.prototype.removeWindows = function ( names ) {
 };
 
 /**
- * Remove all windows.
+ * Remove all windows from the window manager.
  *
- * Windows will be closed before they are removed.
+ * Windows will be closed before they are removed. Note that the window manager, though not in use, will still
+ * listen to events. If the window manager will not be used again, you may wish to use the #destroy method instead.
+ * To remove just a subset of windows, use the #removeWindows method.
  *
  * @return {jQuery.Promise} Promise resolved when all windows are closed and removed
  */
@@ -2978,7 +3214,7 @@ OO.ui.WindowManager.prototype.clearWindows = function () {
 };
 
 /**
- * Set dialog size.
+ * Set dialog size. In general, this method should not be called directly.
  *
  * Fullscreen mode will be used if the dialog is too wide to fit in the screen.
  *
@@ -3013,19 +3249,34 @@ OO.ui.WindowManager.prototype.updateWindowSize = function ( win ) {
 /**
  * Bind or unbind global events for scrolling.
  *
+ * @private
  * @param {boolean} [on] Bind global events
  * @chainable
  */
 OO.ui.WindowManager.prototype.toggleGlobalEvents = function ( on ) {
        on = on === undefined ? !!this.globalEvents : !!on;
 
+       var scrollWidth, bodyMargin,
+               $body = $( this.getElementDocument().body ),
+               // We could have multiple window managers open so only modify
+               // the body css at the bottom of the stack
+               stackDepth = $body.data( 'windowManagerGlobalEvents' ) || 0 ;
+
        if ( on ) {
                if ( !this.globalEvents ) {
                        $( this.getElementWindow() ).on( {
                                // Start listening for top-level window dimension changes
                                'orientationchange resize': this.onWindowResizeHandler
                        } );
-                       $( this.getElementDocument().body ).css( 'overflow', 'hidden' );
+                       if ( stackDepth === 0 ) {
+                               scrollWidth = window.innerWidth - document.documentElement.clientWidth;
+                               bodyMargin = parseFloat( $body.css( 'margin-right' ) ) || 0;
+                               $body.css( {
+                                       overflow: 'hidden',
+                                       'margin-right': bodyMargin + scrollWidth
+                               } );
+                       }
+                       stackDepth++;
                        this.globalEvents = true;
                }
        } else if ( this.globalEvents ) {
@@ -3033,9 +3284,16 @@ OO.ui.WindowManager.prototype.toggleGlobalEvents = function ( on ) {
                        // Stop listening for top-level window dimension changes
                        'orientationchange resize': this.onWindowResizeHandler
                } );
-               $( this.getElementDocument().body ).css( 'overflow', '' );
+               stackDepth--;
+               if ( stackDepth === 0 ) {
+                       $body.css( {
+                               overflow: '',
+                               'margin-right': ''
+                       } );
+               }
                this.globalEvents = false;
        }
+       $body.data( 'windowManagerGlobalEvents', stackDepth );
 
        return this;
 };
@@ -3043,6 +3301,7 @@ OO.ui.WindowManager.prototype.toggleGlobalEvents = function ( on ) {
 /**
  * Toggle screen reader visibility of content other than the window manager.
  *
+ * @private
  * @param {boolean} [isolate] Make only the window manager visible to screen readers
  * @chainable
  */
@@ -3067,7 +3326,11 @@ OO.ui.WindowManager.prototype.toggleAriaIsolation = function ( isolate ) {
 };
 
 /**
- * Destroy window manager.
+ * Destroy the window manager.
+ *
+ * Destroying the window manager ensures that it will no longer listen to events. If you would like to
+ * continue using the window manager, but wish to remove all windows from it, use the #clearWindows method
+ * instead.
  */
 OO.ui.WindowManager.prototype.destroy = function () {
        this.toggleGlobalEvents( false );
@@ -3175,84 +3438,6 @@ OO.ui.HtmlSnippet.prototype.toString = function () {
        return this.content;
 };
 
-/**
- * Reconstitute a JavaScript object corresponding to a widget created
- * by the PHP implementation.
- *
- * @member OO.ui
- * @param {string|HTMLElement|jQuery} idOrNode
- *   A DOM id (if a string) or node for the widget to infuse.
- * @return {OO.ui.Element}
- *   The `OO.ui.Element` corresponding to this (infusable) document node.
- *   For `Tag` objects emitted on the HTML side (used occasionally for content)
- *   the value returned is a newly-created Element wrapping around the existing
- *   DOM node.
- */
-OO.ui.infuse = function ( idOrNode, dontReplace ) {
-       // look for a cached result of a previous infusion.
-       var id, $elem, data, cls, obj;
-       if ( typeof idOrNode === 'string' ) {
-               id = idOrNode;
-               $elem = $( document.getElementById( id ) );
-       } else {
-               $elem = $( idOrNode );
-               id = $elem.attr( 'id' );
-       }
-       data = $elem.data( 'ooui-infused' );
-       if ( data ) {
-               // cached!
-               if ( data === true ) {
-                       throw new Error( 'Circular dependency! ' + id );
-               }
-               return data;
-       }
-       if ( !$elem.length ) {
-               throw new Error( 'Widget not found: ' + id );
-       }
-       data = $elem.attr( 'data-ooui' );
-       if ( !data ) {
-               throw new Error( 'No infusion data found: ' + id );
-       }
-       try {
-               data = $.parseJSON( data );
-       } catch ( _ ) {
-               data = null;
-       }
-       if ( !( data && data._ ) ) {
-               throw new Error( 'No valid infusion data found: ' + id );
-       }
-       if ( data._ === 'Tag' ) {
-               // Special case: this is a raw Tag; wrap existing node, don't rebuild.
-               return new OO.ui.Element( { $element: $elem } );
-       }
-       cls = OO.ui[data._];
-       if ( !cls ) {
-               throw new Error( 'Unknown widget type: ' + id );
-       }
-       $elem.data( 'ooui-infused', true ); // prevent loops
-       data.id = id; // implicit
-       data = OO.copy( data, null, function deserialize( value ) {
-               if ( OO.isPlainObject( value ) ) {
-                       if ( value.tag ) {
-                               return OO.ui.infuse( value.tag, 'rebuilding' );
-                       }
-                       if ( value.html ) {
-                               return new OO.ui.HtmlSnippet( value.html );
-                       }
-               }
-       } );
-       // jscs:disable requireCapitalizedConstructors
-       obj = new cls( data ); // rebuild widget
-       // now replace old DOM with this new DOM.
-       if ( !dontReplace ) {
-               $elem.replaceWith( obj.$element );
-       }
-       obj.$element.data( 'ooui-infused', obj );
-       // set the 'data-ooui' attribute so we can identify infused widgets
-       obj.$element.attr( 'data-ooui', '' );
-       return obj;
-};
-
 /**
  * A list of functions, called in sequence.
  *
@@ -3630,20 +3815,20 @@ OO.ui.Theme.prototype.updateElementClasses = function ( element ) {
  *     // TabIndexedElement is mixed into the ButtonWidget class
  *     // to provide a tabIndex property.
  *     var button1 = new OO.ui.ButtonWidget( {
- *         label : 'fourth',
- *         tabIndex : 4
+ *         label: 'fourth',
+ *         tabIndex: 4
  *     } );
  *     var button2 = new OO.ui.ButtonWidget( {
- *         label : 'second',
- *         tabIndex : 2
+ *         label: 'second',
+ *         tabIndex: 2
  *     } );
  *     var button3 = new OO.ui.ButtonWidget( {
- *         label : 'third',
- *         tabIndex : 3
+ *         label: 'third',
+ *         tabIndex: 3
  *     } );
  *     var button4 = new OO.ui.ButtonWidget( {
- *         label : 'first',
- *         tabIndex : 1
+ *         label: 'first',
+ *         tabIndex: 1
  *     } );
  *     $( 'body' ).append( button1.$element, button2.$element, button3.$element, button4.$element );
  *
@@ -3652,9 +3837,12 @@ OO.ui.Theme.prototype.updateElementClasses = function ( element ) {
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {jQuery} [$tabIndexed] tabIndexed node, assigned to #$tabIndexed, omit to use #$element
- * @cfg {number|null} [tabIndex=0] Tab index value. Use 0 to use default ordering, use -1 to
- *  prevent tab focusing, use null to suppress the `tabindex` attribute.
+ * @cfg {jQuery} [$tabIndexed] The element that should use the tabindex functionality. By default,
+ *  the functionality is applied to the element created by the class ($element). If a different element is specified, the tabindex
+ *  functionality will be applied to it instead.
+ * @cfg {number|null} [tabIndex=0] Number that specifies the element’s position in the tab-navigation
+ *  order (e.g., 1 for the first focusable element). Use 0 to use the default navigation order; use -1
+ *  to remove the element from the tab-navigation flow.
  */
 OO.ui.TabIndexedElement = function OoUiTabIndexedElement( config ) {
        // Configuration initialization
@@ -3679,11 +3867,13 @@ OO.initClass( OO.ui.TabIndexedElement );
 /* Methods */
 
 /**
- * Set the element with `tabindex` attribute.
+ * Set the element that should use the tabindex functionality.
  *
- * If an element is already set, it will be cleaned up before setting up the new element.
+ * This method is used to retarget a tabindex mixin so that its functionality applies
+ * to the specified element. If an element is currently using the functionality, the mixin’s
+ * effect on that element is removed before the new element is set up.
  *
- * @param {jQuery} $tabIndexed Element to set tab index on
+ * @param {jQuery} $tabIndexed Element that should use the tabindex functionality
  * @chainable
  */
 OO.ui.TabIndexedElement.prototype.setTabIndexedElement = function ( $tabIndexed ) {
@@ -3697,9 +3887,9 @@ OO.ui.TabIndexedElement.prototype.setTabIndexedElement = function ( $tabIndexed
 };
 
 /**
- * Set tab index value.
+ * Set the value of the tabindex.
  *
- * @param {number|null} tabIndex Tab index value or null for no tab index
+ * @param {number|null} tabIndex Tabindex value, or `null` for no tabindex
  * @chainable
  */
 OO.ui.TabIndexedElement.prototype.setTabIndex = function ( tabIndex ) {
@@ -3717,6 +3907,7 @@ OO.ui.TabIndexedElement.prototype.setTabIndex = function ( tabIndex ) {
  * Update the `tabindex` attribute, in case of changes to tab index or
  * disabled state.
  *
+ * @private
  * @chainable
  */
 OO.ui.TabIndexedElement.prototype.updateTabIndex = function () {
@@ -3746,9 +3937,9 @@ OO.ui.TabIndexedElement.prototype.onDisable = function () {
 };
 
 /**
- * Get tab index value.
+ * Get the value of the tabindex.
  *
- * @return {number|null} Tab index value
+ * @return {number|null} Tabindex value
  */
 OO.ui.TabIndexedElement.prototype.getTabIndex = function () {
        return this.tabIndex;
@@ -3765,8 +3956,9 @@ OO.ui.TabIndexedElement.prototype.getTabIndex = function () {
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {jQuery} [$button] Button node, assigned to #$button, omit to use a generated `<a>`
- * @cfg {boolean} [framed=true] Render button with a frame
+ * @cfg {jQuery} [$button] The button element created by the class.
+ *  If this configuration is omitted, the button element will use a generated `<a>`.
+ * @cfg {boolean} [framed=true] Render the button with a frame
  * @cfg {string} [accessKey] Button's access key
  */
 OO.ui.ButtonElement = function OoUiButtonElement( config ) {
@@ -3774,7 +3966,7 @@ OO.ui.ButtonElement = function OoUiButtonElement( config ) {
        config = config || {};
 
        // Properties
-       this.$button = config.$button || $( '<a>' );
+       this.$button = null;
        this.framed = null;
        this.accessKey = null;
        this.active = false;
@@ -3789,7 +3981,7 @@ OO.ui.ButtonElement = function OoUiButtonElement( config ) {
        this.$element.addClass( 'oo-ui-buttonElement' );
        this.toggleFramed( config.framed === undefined || config.framed );
        this.setAccessKey( config.accessKey );
-       this.setButtonElement( this.$button );
+       this.setButtonElement( config.$button || $( '<a>' ) );
 };
 
 /* Setup */
@@ -3801,6 +3993,11 @@ OO.initClass( OO.ui.ButtonElement );
 /**
  * Cancel mouse down events.
  *
+ * This property is usually set to `true` to prevent the focus from changing when the button is clicked.
+ * Classes such as {@link OO.ui.DraggableElement DraggableElement} and {@link OO.ui.ButtonOptionWidget ButtonOptionWidget}
+ * use a value of `false` so that dragging behavior is possible and mousedown events can be handled by a
+ * parent widget.
+ *
  * @static
  * @inheritable
  * @property {boolean}
@@ -3810,6 +4007,8 @@ OO.ui.ButtonElement.static.cancelButtonMouseDownEvents = true;
 /* Events */
 
 /**
+ * A 'click' event is emitted when the button element is clicked.
+ *
  * @event click
  */
 
@@ -3818,7 +4017,9 @@ OO.ui.ButtonElement.static.cancelButtonMouseDownEvents = true;
 /**
  * Set the button element.
  *
- * If an element is already set, it will be cleaned up before setting up the new element.
+ * This method is used to retarget a button mixin so that its functionality applies to
+ * the specified button element instead of the one created by the class. If a button element
+ * is already set, the method will remove the mixin’s effect on that element.
  *
  * @param {jQuery} $button Element to use as button
  */
@@ -3936,8 +4137,8 @@ OO.ui.ButtonElement.prototype.onKeyUp = function ( e ) {
 OO.ui.ButtonElement.prototype.onKeyPress = function ( e ) {
        if ( !this.isDisabled() && ( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER ) ) {
                this.emit( 'click' );
+               return false;
        }
-       return false;
 };
 
 /**
@@ -3950,7 +4151,7 @@ OO.ui.ButtonElement.prototype.isFramed = function () {
 };
 
 /**
- * Toggle frame.
+ * Render the button with or without a frame. Omit the `framed` parameter to toggle the button frame on and off.
  *
  * @param {boolean} [framed] Make button framed, omit to toggle
  * @chainable
@@ -3969,7 +4170,7 @@ OO.ui.ButtonElement.prototype.toggleFramed = function ( framed ) {
 };
 
 /**
- * Set access key.
+ * Set the button's access key.
  *
  * @param {string} accessKey Button's access key, use empty string to remove
  * @chainable
@@ -3992,7 +4193,11 @@ OO.ui.ButtonElement.prototype.setAccessKey = function ( accessKey ) {
 };
 
 /**
- * Set active state.
+ * Set the button to its 'active' state.
+ *
+ * The active state occurs when a {@link OO.ui.ButtonOptionWidget ButtonOptionWidget} or
+ * a {@link OO.ui.ToggleButtonWidget ToggleButtonWidget} is pressed. This method does nothing
+ * for other button types.
  *
  * @param {boolean} [value] Make button active
  * @chainable
@@ -4015,7 +4220,8 @@ OO.ui.ButtonElement.prototype.setActive = function ( value ) {
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {jQuery} [$group] Container node, assigned to #$group, omit to use a generated `<div>`
+ * @cfg {jQuery} [$group] The container element created by the class. If this configuration
+ *  is omitted, the group element will use a generated `<div>`.
  */
 OO.ui.GroupElement = function OoUiGroupElement( config ) {
        // Configuration initialization
@@ -4049,7 +4255,7 @@ OO.ui.GroupElement.prototype.setGroupElement = function ( $group ) {
 };
 
 /**
- * Check if there are no items.
+ * Check if a group contains no items.
  *
  * @return {boolean} Group is empty
  */
@@ -4058,9 +4264,13 @@ OO.ui.GroupElement.prototype.isEmpty = function () {
 };
 
 /**
- * Get items.
+ * Get all items in the group.
+ *
+ * The method returns an array of item references (e.g., [button1, button2, button3]) and is useful
+ * when synchronizing groups of items, or whenever the references are required (e.g., when removing items
+ * from a group).
  *
- * @return {OO.ui.Element[]} Items
+ * @return {OO.ui.Element[]} An array of items.
  */
 OO.ui.GroupElement.prototype.getItems = function () {
        return this.items.slice( 0 );
@@ -4069,7 +4279,8 @@ OO.ui.GroupElement.prototype.getItems = function () {
 /**
  * Get an item by its data.
  *
- * Data is compared by a hash of its value. Only the first item with matching data will be returned.
+ * Only the first item with matching data will be returned. To return all matching items,
+ * use the #getItemsFromData method.
  *
  * @param {Object} data Item data to search for
  * @return {OO.ui.Element|null} Item with equivalent data, `null` if none exists
@@ -4091,7 +4302,7 @@ OO.ui.GroupElement.prototype.getItemFromData = function ( data ) {
 /**
  * Get items by their data.
  *
- * Data is compared by a hash of its value. All items with matching data will be returned.
+ * All items with matching data will be returned. To return only the first match, use the #getItemFromData method instead.
  *
  * @param {Object} data Item data to search for
  * @return {OO.ui.Element[]} Items with equivalent data
@@ -4112,15 +4323,18 @@ OO.ui.GroupElement.prototype.getItemsFromData = function ( data ) {
 };
 
 /**
- * Add an aggregate item event.
+ * Aggregate the events emitted by the group.
  *
- * Aggregated events are listened to on each item and then emitted by the group under a new name,
- * and with an additional leading parameter containing the item that emitted the original event.
- * Other arguments that were emitted from the original event are passed through.
+ * When events are aggregated, the group will listen to all contained items for the event,
+ * and then emit the event under a new name. The new event will contain an additional leading
+ * parameter containing the item that emitted the original event. Other arguments emitted from
+ * the original event are passed through.
  *
- * @param {Object.<string,string|null>} events Aggregate events emitted by group, keyed by item
- *   event, use null value to remove aggregation
- * @throws {Error} If aggregation already exists
+ * @param {Object.<string,string|null>} events An object keyed by the name of the event that should be
+ *  aggregated  (e.g., ‘click’) and the value of the new name to use (e.g., ‘groupClick’).
+ *  A `null` value will remove aggregated events.
+
+ * @throws {Error} An error is thrown if aggregation already exists.
  */
 OO.ui.GroupElement.prototype.aggregate = function ( events ) {
        var i, len, item, add, remove, itemEvent, groupEvent;
@@ -4165,12 +4379,13 @@ OO.ui.GroupElement.prototype.aggregate = function ( events ) {
 };
 
 /**
- * Add items.
+ * Add items to the group.
  *
- * Adding an existing item will move it.
+ * Items will be added to the end of the group array unless the optional `index` parameter specifies
+ * a different insertion point. Adding an existing item will move it to the end of the array or the point specified by the `index`.
  *
- * @param {OO.ui.Element[]} items Items
- * @param {number} [index] Index to insert items at
+ * @param {OO.ui.Element[]} items An array of items to add to the group
+ * @param {number} [index] Index of the insertion point
  * @chainable
  */
 OO.ui.GroupElement.prototype.addItems = function ( items, index ) {
@@ -4216,11 +4431,12 @@ OO.ui.GroupElement.prototype.addItems = function ( items, index ) {
 };
 
 /**
- * Remove items.
+ * Remove the specified items from a group.
  *
- * Items will be detached, not removed, so they can be used later.
+ * Removed items are detached (not removed) from the DOM so that they may be reused.
+ * To remove all items from a group, you may wish to use the #clearItems method instead.
  *
- * @param {OO.ui.Element[]} items Items to remove
+ * @param {OO.ui.Element[]} items An array of items to remove
  * @chainable
  */
 OO.ui.GroupElement.prototype.removeItems = function ( items ) {
@@ -4251,9 +4467,10 @@ OO.ui.GroupElement.prototype.removeItems = function ( items ) {
 };
 
 /**
- * Clear all items.
+ * Clear all items from the group.
  *
- * Items will be detached, not removed, so they can be used later.
+ * Cleared items are detached from the DOM, not removed, so that they may be reused.
+ * To remove only a subset of items from a group, use the #removeItems method.
  *
  * @chainable
  */
@@ -4431,11 +4648,14 @@ OO.ui.DraggableElement.prototype.getIndex = function () {
  *
  * @abstract
  * @class
+ * @mixins OO.ui.GroupElement
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {jQuery} [$group] Container node, assigned to #$group, omit to use a generated `<div>`
- * @cfg {string} [orientation] Item orientation, 'horizontal' or 'vertical'. Defaults to 'vertical'
+ * @cfg {string} [orientation] Item orientation: 'horizontal' or 'vertical'. The orientation
+ *  should match the layout of the items. Items displayed in a single row
+ *  or in several rows should use horizontal orientation. The vertical orientation should only be
+ *  used when the items are displayed in a single column. Defaults to 'vertical'
  */
 OO.ui.DraggableGroupElement = function OoUiDraggableGroupElement( config ) {
        // Configuration initialization
@@ -4486,6 +4706,8 @@ OO.mixinClass( OO.ui.DraggableGroupElement, OO.ui.GroupElement );
 /* Events */
 
 /**
+ * A 'reorder' event is emitted when the order of items in the group changes.
+ *
  * @event reorder
  * @param {OO.ui.DraggableElement} item Reordered item
  * @param {number} [newIndex] New index for the item
@@ -4495,6 +4717,8 @@ OO.mixinClass( OO.ui.DraggableGroupElement, OO.ui.GroupElement );
 
 /**
  * Respond to item drag start event
+ *
+ * @private
  * @param {OO.ui.DraggableElement} item Dragged item
  */
 OO.ui.DraggableGroupElement.prototype.onItemDragStart = function ( item ) {
@@ -4523,6 +4747,8 @@ OO.ui.DraggableGroupElement.prototype.onItemDragStart = function ( item ) {
 
 /**
  * Respond to item drag end event
+ *
+ * @private
  */
 OO.ui.DraggableGroupElement.prototype.onItemDragEnd = function () {
        this.unsetDragItem();
@@ -4531,6 +4757,8 @@ OO.ui.DraggableGroupElement.prototype.onItemDragEnd = function () {
 
 /**
  * Handle drop event and switch the order of the items accordingly
+ *
+ * @private
  * @param {OO.ui.DraggableElement} item Dropped item
  * @fires reorder
  */
@@ -4555,6 +4783,8 @@ OO.ui.DraggableGroupElement.prototype.onItemDrop = function ( item ) {
 
 /**
  * Handle dragleave event.
+ *
+ * @private
  */
 OO.ui.DraggableGroupElement.prototype.onDragLeave = function () {
        // This means the item was dragged outside the widget
@@ -4565,6 +4795,8 @@ OO.ui.DraggableGroupElement.prototype.onDragLeave = function () {
 
 /**
  * Respond to dragover event
+ *
+ * @private
  * @param {jQuery.Event} event Event details
  */
 OO.ui.DraggableGroupElement.prototype.onDragOver = function ( e ) {
@@ -4636,6 +4868,7 @@ OO.ui.DraggableGroupElement.prototype.onDragOver = function ( e ) {
 
 /**
  * Set a dragged item
+ *
  * @param {OO.ui.DraggableElement} item Dragged item
  */
 OO.ui.DraggableGroupElement.prototype.setDragItem = function ( item ) {
@@ -4653,15 +4886,17 @@ OO.ui.DraggableGroupElement.prototype.unsetDragItem = function () {
 };
 
 /**
- * Get the current dragged item
- * @return {OO.ui.DraggableElement|null} item Dragged item or null if no item is dragged
+ * Get the item that is currently being dragged.
+ *
+ * @return {OO.ui.DraggableElement|null} The currently dragged item, or `null` if no item is being dragged
  */
 OO.ui.DraggableGroupElement.prototype.getDragItem = function () {
        return this.dragItem;
 };
 
 /**
- * Check if there's an item being dragged.
+ * Check if an item in the group is currently being dragged.
+ *
  * @return {Boolean} Item is being dragged
  */
 OO.ui.DraggableGroupElement.prototype.isDragging = function () {
@@ -4951,9 +5186,9 @@ OO.ui.IndicatorElement.prototype.setIndicatorElement = function ( $indicator ) {
 };
 
 /**
- * Set indicator name.
+ * Set the indicator by its symbolic name: ‘alert’, ‘down’, ‘next’, ‘previous’, ‘required’, ‘up’. Use `null` to remove the indicator.
  *
- * @param {string|null} indicator Symbolic name of indicator to use or null for no indicator
+ * @param {string|null} indicator Symbolic name of indicator, or `null` for no indicator
  * @chainable
  */
 OO.ui.IndicatorElement.prototype.setIndicator = function ( indicator ) {
@@ -4978,10 +5213,12 @@ OO.ui.IndicatorElement.prototype.setIndicator = function ( indicator ) {
 };
 
 /**
- * Set indicator title.
+ * Set the indicator title.
+ *
+ * The title is displayed when a user moves the mouse over the indicator.
  *
- * @param {string|Function|null} indicator Indicator title text, a function that returns text or
- *   null for no indicator title
+ * @param {string|Function|null} indicator Indicator title text, a function that returns text, or
+ *   `null` for no indicator title
  * @chainable
  */
 OO.ui.IndicatorElement.prototype.setIndicatorTitle = function ( indicatorTitle ) {
@@ -5004,7 +5241,7 @@ OO.ui.IndicatorElement.prototype.setIndicatorTitle = function ( indicatorTitle )
 };
 
 /**
- * Get indicator name.
+ * Get the symbolic name of the indicator (e.g., ‘alert’ or  ‘down’).
  *
  * @return {string} Symbolic name of indicator
  */
@@ -5013,7 +5250,9 @@ OO.ui.IndicatorElement.prototype.getIndicator = function () {
 };
 
 /**
- * Get indicator title.
+ * Get the indicator title.
+ *
+ * The title is displayed when a user moves the mouse over the indicator.
  *
  * @return {string} Indicator title text
  */
@@ -5175,19 +5414,28 @@ OO.ui.LabelElement.prototype.setLabelContent = function ( label ) {
 };
 
 /**
- * Mixin that adds a menu showing suggested values for a OO.ui.TextInputWidget.
+ * LookupElement is a mixin that creates a {@link OO.ui.TextInputMenuSelectWidget menu} of suggested values for
+ * a {@link OO.ui.TextInputWidget text input widget}. Suggested values are based on the characters the user types
+ * into the text input field and, in general, the menu is only displayed when the user types. If a suggested value is chosen
+ * from the lookup menu, that value becomes the value of the input field.
+ *
+ * Note that a new menu of suggested items is displayed when a value is chosen from the lookup menu. If this is
+ * not the desired behavior, disable lookup menus with the #setLookupsDisabled method, then set the value, then
+ * re-enable lookups.
  *
- * Subclasses that set the value of #lookupInput from #onLookupMenuItemChoose should
- * be aware that this will cause new suggestions to be looked up for the new value. If this is
- * not desired, disable lookups with #setLookupsDisabled, then set the value, then re-enable lookups.
+ * See the [OOjs UI demos][1] for an example.
+ *
+ * [1]: https://tools.wmflabs.org/oojs-ui/oojs-ui/demos/index.html#widgets-apex-vector-ltr
  *
  * @class
  * @abstract
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {jQuery} [$overlay] Overlay for dropdown; defaults to relative positioning
- * @cfg {jQuery} [$container=this.$element] Element to render menu under
+ * @cfg {jQuery} [$overlay] Overlay for the lookup menu; defaults to relative positioning
+ * @cfg {jQuery} [$container=this.$element] The container element. The lookup menu is rendered beneath the specified element.
+ * @cfg {boolean} [allowSuggestionsWhenEmpty=false] Request and display a lookup menu when the text input is empty.
+ *  By default, the lookup menu is not generated and displayed until the user begins to type.
  */
 OO.ui.LookupElement = function OoUiLookupElement( config ) {
        // Configuration initialization
@@ -5200,6 +5448,9 @@ OO.ui.LookupElement = function OoUiLookupElement( config ) {
                input: this,
                $container: config.$container
        } );
+
+       this.allowSuggestionsWhenEmpty = config.allowSuggestionsWhenEmpty || false;
+
        this.lookupCache = {};
        this.lookupQuery = null;
        this.lookupRequest = null;
@@ -5229,6 +5480,7 @@ OO.ui.LookupElement = function OoUiLookupElement( config ) {
 /**
  * Handle input focus event.
  *
+ * @protected
  * @param {jQuery.Event} e Input focus event
  */
 OO.ui.LookupElement.prototype.onLookupInputFocus = function () {
@@ -5239,6 +5491,7 @@ OO.ui.LookupElement.prototype.onLookupInputFocus = function () {
 /**
  * Handle input blur event.
  *
+ * @protected
  * @param {jQuery.Event} e Input blur event
  */
 OO.ui.LookupElement.prototype.onLookupInputBlur = function () {
@@ -5249,6 +5502,7 @@ OO.ui.LookupElement.prototype.onLookupInputBlur = function () {
 /**
  * Handle input mouse down event.
  *
+ * @protected
  * @param {jQuery.Event} e Input mouse down event
  */
 OO.ui.LookupElement.prototype.onLookupInputMouseDown = function () {
@@ -5264,6 +5518,7 @@ OO.ui.LookupElement.prototype.onLookupInputMouseDown = function () {
 /**
  * Handle input change event.
  *
+ * @protected
  * @param {string} value New input value
  */
 OO.ui.LookupElement.prototype.onLookupInputChange = function () {
@@ -5275,6 +5530,7 @@ OO.ui.LookupElement.prototype.onLookupInputChange = function () {
 /**
  * Handle the lookup menu being shown/hidden.
  *
+ * @protected
  * @param {boolean} visible Whether the lookup menu is now visible.
  */
 OO.ui.LookupElement.prototype.onLookupMenuToggle = function ( visible ) {
@@ -5290,6 +5546,7 @@ OO.ui.LookupElement.prototype.onLookupMenuToggle = function ( visible ) {
 /**
  * Handle menu item 'choose' event, updating the text input value to the value of the clicked item.
  *
+ * @protected
  * @param {OO.ui.MenuOptionWidget|null} item Selected item
  */
 OO.ui.LookupElement.prototype.onLookupMenuItemChoose = function ( item ) {
@@ -5301,6 +5558,7 @@ OO.ui.LookupElement.prototype.onLookupMenuItemChoose = function ( item ) {
 /**
  * Get lookup menu.
  *
+ * @private
  * @return {OO.ui.TextInputMenuSelectWidget}
  */
 OO.ui.LookupElement.prototype.getLookupMenu = function () {
@@ -5321,6 +5579,7 @@ OO.ui.LookupElement.prototype.setLookupsDisabled = function ( disabled ) {
 /**
  * Open the menu. If there are no entries in the menu, this does nothing.
  *
+ * @private
  * @chainable
  */
 OO.ui.LookupElement.prototype.openLookupMenu = function () {
@@ -5333,6 +5592,7 @@ OO.ui.LookupElement.prototype.openLookupMenu = function () {
 /**
  * Close the menu, empty it, and abort any pending request.
  *
+ * @private
  * @chainable
  */
 OO.ui.LookupElement.prototype.closeLookupMenu = function () {
@@ -5348,6 +5608,7 @@ OO.ui.LookupElement.prototype.closeLookupMenu = function () {
  *
  * If lookups have been disabled with #setLookupsDisabled, this function does nothing.
  *
+ * @private
  * @chainable
  */
 OO.ui.LookupElement.prototype.populateLookupMenu = function () {
@@ -5358,8 +5619,8 @@ OO.ui.LookupElement.prototype.populateLookupMenu = function () {
                return;
        }
 
-       // If the input is empty, clear the menu
-       if ( value === '' ) {
+       // If the input is empty, clear the menu, unless suggestions when empty are allowed.
+       if ( !this.allowSuggestionsWhenEmpty && value === '' ) {
                this.closeLookupMenu();
        // Skip population if there is already a request pending for the current value
        } else if ( value !== this.lookupQuery ) {
@@ -5386,6 +5647,7 @@ OO.ui.LookupElement.prototype.populateLookupMenu = function () {
 /**
  * Select and highlight the first selectable item in the menu.
  *
+ * @private
  * @chainable
  */
 OO.ui.LookupElement.prototype.initializeLookupMenuSelection = function () {
@@ -5398,6 +5660,7 @@ OO.ui.LookupElement.prototype.initializeLookupMenuSelection = function () {
 /**
  * Get lookup menu items for the current query.
  *
+ * @private
  * @return {jQuery.Promise} Promise object which will be passed menu items as the first argument of
  *   the done event. If the request was aborted to make way for a subsequent request, this promise
  *   will not be rejected: it will remain pending forever.
@@ -5425,13 +5688,13 @@ OO.ui.LookupElement.prototype.getLookupMenuItems = function () {
                                // for that request.
                                widget.popPending();
                        } )
-                       .done( function ( data ) {
+                       .done( function ( response ) {
                                // If this is an old request (and aborting it somehow caused it to still succeed),
                                // ignore its success completely
                                if ( ourRequest === widget.lookupRequest ) {
                                        widget.lookupQuery = null;
                                        widget.lookupRequest = null;
-                                       widget.lookupCache[ value ] = widget.getLookupCacheDataFromResponse( data );
+                                       widget.lookupCache[ value ] = widget.getLookupCacheDataFromResponse( response );
                                        deferred.resolve( widget.getLookupMenuOptionsFromData( widget.lookupCache[ value ] ) );
                                }
                        } )
@@ -5450,6 +5713,8 @@ OO.ui.LookupElement.prototype.getLookupMenuItems = function () {
 
 /**
  * Abort the currently pending lookup request, if any.
+ *
+ * @private
  */
 OO.ui.LookupElement.prototype.abortLookupRequest = function () {
        var oldRequest = this.lookupRequest;
@@ -5465,6 +5730,7 @@ OO.ui.LookupElement.prototype.abortLookupRequest = function () {
 /**
  * Get a new request object of the current lookup query value.
  *
+ * @protected
  * @abstract
  * @return {jQuery.Promise} jQuery AJAX object, or promise object with an .abort() method
  */
@@ -5479,8 +5745,9 @@ OO.ui.LookupElement.prototype.getLookupRequest = function () {
  * The return value of this function will be cached, and any further queries for the given value
  * will use the cache rather than doing API requests.
  *
+ * @protected
  * @abstract
- * @param {Mixed} data Response from server
+ * @param {Mixed} response Response from server
  * @return {Mixed} Cached result data
  */
 OO.ui.LookupElement.prototype.getLookupCacheDataFromResponse = function () {
@@ -5492,6 +5759,7 @@ OO.ui.LookupElement.prototype.getLookupCacheDataFromResponse = function () {
  * Get a list of menu option widgets from the (possibly cached) data returned by
  * #getLookupCacheDataFromResponse.
  *
+ * @protected
  * @abstract
  * @param {Mixed} data Cached result data, usually an array
  * @return {OO.ui.MenuOptionWidget[]} Menu items
@@ -5502,7 +5770,10 @@ OO.ui.LookupElement.prototype.getLookupMenuOptionsFromData = function () {
 };
 
 /**
- * Element containing an OO.ui.PopupWidget object.
+ * PopupElement is mixed into other classes to generate a {@link OO.ui.PopupWidget popup widget}.
+ * A popup is a container for content. It is overlaid and positioned absolutely. By default, each
+ * popup has an anchor, which is an arrow-like protrusion that points toward the popup’s origin.
+ * See {@link OO.ui.PopupWidget PopupWidget} for an example.
  *
  * @abstract
  * @class
@@ -5548,6 +5819,24 @@ OO.ui.PopupElement.prototype.getPopup = function () {
  * - **destructive**: Destructive styling is applied to convey that the widget will remove something.
  * - **constructive**: Constructive styling is applied to convey that the widget will create something.
  *
+ * The flags affect the appearance of the buttons:
+ *
+ *     @example
+ *     // FlaggedElement is mixed into ButtonWidget to provide styling flags
+ *     var button1 = new OO.ui.ButtonWidget( {
+ *         label: 'Constructive',
+ *         flags: 'constructive'
+ *     } );
+ *     var button2 = new OO.ui.ButtonWidget( {
+ *         label: 'Destructive',
+ *         flags: 'destructive'
+ *     } );
+ *     var button3 = new OO.ui.ButtonWidget( {
+ *         label: 'Progressive',
+ *         flags: 'progressive'
+ *     } );
+ *     $( 'body' ).append( button1.$element, button2.$element, button3.$element );
+ *
  * {@link OO.ui.ActionWidget ActionWidgets}, which are a special kind of button that execute an action, use these flags: **primary** and **safe**.
  * Please see the [OOjs UI documentation on MediaWiki] [1] for more information.
  *
@@ -5561,7 +5850,9 @@ OO.ui.PopupElement.prototype.getPopup = function () {
  * @cfg {string|string[]} [flags] The name or names of the flags (e.g., 'constructive' or 'primary') to apply.
  *  Please see the [OOjs UI documentation on MediaWiki] [2] for more information about available flags.
  *  [2]: https://www.mediawiki.org/wiki/OOjs_UI/Elements/Flagged
- * @cfg {jQuery} [$flagged] Flagged node, assigned to $flagged, omit to use $element
+ * @cfg {jQuery} [$flagged] The flagged element. By default,
+ *  the flagged functionality is applied to the element created by the class ($element).
+ *  If a different element is specified, the flagged functionality will be applied to it instead.
  */
 OO.ui.FlaggedElement = function OoUiFlaggedElement( config ) {
        // Configuration initialization
@@ -5593,9 +5884,10 @@ OO.ui.FlaggedElement = function OoUiFlaggedElement( config ) {
 /**
  * Set the flagged element.
  *
- * If an element is already set, it will be cleaned up before setting up the new element.
+ * This method is used to retarget a flagged mixin so that its functionality applies to the specified element.
+ * If an element is already set, the method will remove the mixin’s effect on that element.
  *
- * @param {jQuery} $flagged Element to add flags to
+ * @param {jQuery} $flagged Element that should be flagged
  */
 OO.ui.FlaggedElement.prototype.setFlaggedElement = function ( $flagged ) {
        var classNames = Object.keys( this.flags ).map( function ( flag ) {
@@ -5610,10 +5902,10 @@ OO.ui.FlaggedElement.prototype.setFlaggedElement = function ( $flagged ) {
 };
 
 /**
- * Check if a flag is set.
+ * Check if the specified flag is set.
  *
  * @param {string} flag Name of flag
- * @return {boolean} Has flag
+ * @return {boolean} The flag is set
  */
 OO.ui.FlaggedElement.prototype.hasFlag = function ( flag ) {
        return flag in this.flags;
@@ -5660,8 +5952,9 @@ OO.ui.FlaggedElement.prototype.clearFlags = function () {
 /**
  * Add one or more flags.
  *
- * @param {string|string[]|Object.<string, boolean>} flags One or more flags to add, or an object
- *  keyed by flag name containing boolean set/remove instructions.
+ * @param {string|string[]|Object.<string, boolean>} flags A flag name, an array of flag names,
+ *  or an object keyed by flag name with a boolean value that indicates whether the flag should
+ *  be added (`true`) or removed (`false`).
  * @chainable
  * @fires flag
  */
@@ -5732,8 +6025,8 @@ OO.ui.FlaggedElement.prototype.setFlags = function ( flags ) {
  *     // TitledElement provides a 'title' attribute to the
  *     // ButtonWidget class
  *     var button = new OO.ui.ButtonWidget( {
- *         label : 'Button with Title',
- *         title : 'I am a button'
+ *         label: 'Button with Title',
+ *         title: 'I am a button'
  *     } );
  *     $( 'body' ).append( button.$element );
  *
@@ -5746,7 +6039,7 @@ OO.ui.FlaggedElement.prototype.setFlags = function ( flags ) {
  *  If this config is omitted, the title functionality is applied to $element, the
  *  element created by the class.
  * @cfg {string|Function} [title] The title text or a function that returns text. If
- *  this config is omitted, the value of the static `title` property is used.
+ *  this config is omitted, the value of the {@link #static-title static title} property is used.
  */
 OO.ui.TitledElement = function OoUiTitledElement( config ) {
        // Configuration initialization
@@ -5782,9 +6075,10 @@ OO.ui.TitledElement.static.title = null;
 /**
  * Set the titled element.
  *
- * If an element is already set, it will be cleaned up before setting up the new element.
+ * This method is used to retarget a titledElement mixin so that its functionality applies to the specified element.
+ * If an element is already set, the mixin’s effect on that element is removed before the new element is set up.
  *
- * @param {jQuery} $titled Element to set title on
+ * @param {jQuery} $titled Element that should use the 'titled' functionality
  */
 OO.ui.TitledElement.prototype.setTitledElement = function ( $titled ) {
        if ( this.$titled ) {
@@ -5800,7 +6094,7 @@ OO.ui.TitledElement.prototype.setTitledElement = function ( $titled ) {
 /**
  * Set title.
  *
- * @param {string|Function|null} title Title text, a function that returns text or null for no title
+ * @param {string|Function|null} title Title text, a function that returns text, or `null` for no title
  * @chainable
  */
 OO.ui.TitledElement.prototype.setTitle = function ( title ) {
@@ -6343,11 +6637,12 @@ OO.ui.Toolbar = function OoUiToolbar( toolFactory, toolGroupFactory, config ) {
        this.$bar = $( '<div>' );
        this.$actions = $( '<div>' );
        this.initialized = false;
+       this.onWindowResizeHandler = this.onWindowResize.bind( this );
 
        // Events
        this.$element
                .add( this.$bar ).add( this.$group ).add( this.$actions )
-               .on( 'mousedown touchstart', this.onPointerDown.bind( this ) );
+               .on( 'mousedown', this.onPointerDown.bind( this ) );
 
        // Initialization
        this.$group.addClass( 'oo-ui-toolbar-tools' );
@@ -6402,12 +6697,28 @@ OO.ui.Toolbar.prototype.onPointerDown = function ( e ) {
        }
 };
 
+/**
+ * Handle window resize event.
+ *
+ * @private
+ * @param {jQuery.Event} e Window resize event
+ */
+OO.ui.Toolbar.prototype.onWindowResize = function () {
+       this.$element.toggleClass(
+               'oo-ui-toolbar-narrow',
+               this.$bar.width() <= this.narrowThreshold
+       );
+};
+
 /**
  * Sets up handles and preloads required information for the toolbar to work.
  * This must be called after it is attached to a visible document and before doing anything else.
  */
 OO.ui.Toolbar.prototype.initialize = function () {
        this.initialized = true;
+       this.narrowThreshold = this.$group.width() + this.$actions.width();
+       $( this.getElementWindow() ).on( 'resize', this.onWindowResizeHandler );
+       this.onWindowResize();
 };
 
 /**
@@ -6474,6 +6785,7 @@ OO.ui.Toolbar.prototype.reset = function () {
  * Call this whenever you are done using a toolbar.
  */
 OO.ui.Toolbar.prototype.destroy = function () {
+       $( this.getElementWindow() ).off( 'resize', this.onWindowResizeHandler );
        this.reset();
        this.$element.remove();
 };
@@ -6569,8 +6881,8 @@ OO.ui.ToolGroup = function OoUiToolGroup( toolbar, config ) {
 
        // Events
        this.$element.on( {
-               'mousedown touchstart': this.onPointerDown.bind( this ),
-               'mouseup touchend': this.onPointerUp.bind( this ),
+               mousedown: this.onPointerDown.bind( this ),
+               mouseup: this.onPointerUp.bind( this ),
                mouseover: this.onMouseOver.bind( this ),
                mouseout: this.onMouseOut.bind( this )
        } );
@@ -6660,8 +6972,7 @@ OO.ui.ToolGroup.prototype.updateDisabled = function () {
  * @param {jQuery.Event} e Mouse down event
  */
 OO.ui.ToolGroup.prototype.onPointerDown = function ( e ) {
-       // e.which is 0 for touch events, 1 for left mouse button
-       if ( !this.isDisabled() && e.which <= 1 ) {
+       if ( !this.isDisabled() && e.which === 1 ) {
                this.pressed = this.getTargetTool( e );
                if ( this.pressed ) {
                        this.pressed.setActive( true );
@@ -6693,8 +7004,7 @@ OO.ui.ToolGroup.prototype.onCapturedMouseUp = function ( e ) {
 OO.ui.ToolGroup.prototype.onPointerUp = function ( e ) {
        var tool = this.getTargetTool( e );
 
-       // e.which is 0 for touch events, 1 for left mouse button
-       if ( !this.isDisabled() && e.which <= 1 && this.pressed && this.pressed === tool ) {
+       if ( !this.isDisabled() && e.which === 1 && this.pressed && this.pressed === tool ) {
                this.pressed.onSelect();
        }
 
@@ -6794,6 +7104,9 @@ OO.ui.ToolGroup.prototype.populate = function () {
                        // Tool is available or is already in this group
                        ( this.toolbar.isToolAvailable( name ) || this.tools[ name ] )
                ) {
+                       // Hack to prevent infinite recursion via ToolGroupTool. We need to reserve the tool before
+                       // creating it, but we can't call reserveTool() yet because we haven't created the tool.
+                       this.toolbar.tools[ name ] = true;
                        tool = this.tools[ name ];
                        if ( !tool ) {
                                // Auto-initialize tools on first use
@@ -6846,11 +7159,39 @@ OO.ui.ToolGroup.prototype.destroy = function () {
 };
 
 /**
- * Dialog for showing a message.
+ * MessageDialogs display a confirmation or alert message. By default, the rendered dialog box
+ * consists of a header that contains the dialog title, a body with the message, and a footer that
+ * contains any {@link OO.ui.ActionWidget action widgets}. The MessageDialog class is the only type
+ * of {@link OO.ui.Dialog dialog} that is usually instantiated directly.
+ *
+ * There are two basic types of message dialogs, confirmation and alert:
+ *
+ * - **confirmation**: the dialog title describes what a progressive action will do and the message provides
+ *  more details about the consequences.
+ * - **alert**: the dialog title describes which event occurred and the message provides more information
+ *  about why the event occurred.
  *
- * User interface:
- * - Registers two actions by default (safe and primary).
- * - Renders action widgets in the footer.
+ * The MessageDialog class specifies two actions: ‘accept’, the primary
+ * action (e.g., ‘ok’) and ‘reject,’ the safe action (e.g., ‘cancel’). Both will close the window,
+ * passing along the selected action.
+ *
+ * For more information and examples, please see the [OOjs UI documentation on MediaWiki][1].
+ *
+ *     @example
+ *     // Example: Creating and opening a message dialog window.
+ *     var messageDialog = new OO.ui.MessageDialog();
+ *
+ *     // Create and append a window manager.
+ *     var windowManager = new OO.ui.WindowManager();
+ *     $( 'body' ).append( windowManager.$element );
+ *     windowManager.addWindows( [ messageDialog ] );
+ *     // Open the window.
+ *     windowManager.openWindow( messageDialog, {
+ *         title: 'Basic message dialog',
+ *         message: 'This is the message'
+ *     } );
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Windows/Message_Dialogs
  *
  * @class
  * @extends OO.ui.Dialog
@@ -6884,21 +7225,23 @@ OO.ui.MessageDialog.static.verbose = false;
 /**
  * Dialog title.
  *
- * A confirmation dialog's title should describe what the progressive action will do. An alert
- * dialog's title should describe what event occurred.
+ * The title of a confirmation dialog describes what a progressive action will do. The
+ * title of an alert dialog describes which event occurred.
  *
  * @static
- * inheritable
+ * @inheritable
  * @property {jQuery|string|Function|null}
  */
 OO.ui.MessageDialog.static.title = null;
 
 /**
- * A confirmation dialog's message should describe the consequences of the progressive action. An
- * alert dialog's message should describe why the event occurred.
+ * The message displayed in the dialog body.
+ *
+ * A confirmation message describes the consequences of a progressive action. An alert
+ * message describes why an event occurred.
  *
  * @static
- * inheritable
+ * @inheritable
  * @property {jQuery|string|Function|null}
  */
 OO.ui.MessageDialog.static.message = null;
@@ -6934,6 +7277,8 @@ OO.ui.MessageDialog.prototype.onActionResize = function ( action ) {
 
 /**
  * Handle window resized events.
+ *
+ * @private
  */
 OO.ui.MessageDialog.prototype.onResize = function () {
        var dialog = this;
@@ -6947,6 +7292,8 @@ OO.ui.MessageDialog.prototype.onResize = function () {
 /**
  * Toggle action layout between vertical and horizontal.
  *
+ *
+ * @private
  * @param {boolean} [value] Layout actions vertically, omit to toggle
  * @chainable
  */
@@ -7110,6 +7457,8 @@ OO.ui.MessageDialog.prototype.attachActions = function () {
  * Fit action actions into columns or rows.
  *
  * Columns will be used if all labels can fit without overflow, otherwise rows will be used.
+ *
+ * @private
  */
 OO.ui.MessageDialog.prototype.fitActions = function () {
        var i, len, action,
@@ -7136,23 +7485,57 @@ OO.ui.MessageDialog.prototype.fitActions = function () {
 };
 
 /**
- * Navigation dialog window.
+ * ProcessDialog windows encapsulate a {@link OO.ui.Process process} and all of the code necessary
+ * to complete it. If the process terminates with an error, a customizable {@link OO.ui.Error error
+ * interface} alerts users to the trouble, permitting the user to dismiss the error and try again when
+ * relevant. The ProcessDialog class is always extended and customized with the actions and content
+ * required for each process.
+ *
+ * The process dialog box consists of a header that visually represents the ‘working’ state of long
+ * processes with an animation. The header contains the dialog title as well as
+ * two {@link OO.ui.ActionWidget action widgets}:  a ‘safe’ action on the left (e.g., ‘Cancel’) and
+ * a ‘primary’ action on the right (e.g., ‘Done’).
+ *
+ * Like other windows, the process dialog is managed by a {@link OO.ui.WindowManager window manager}.
+ * Please see the [OOjs UI documentation on MediaWiki][1] for more information and examples.
+ *
+ *     @example
+ *     // Example: Creating and opening a process dialog window.
+ *     function MyProcessDialog( config ) {
+ *         MyProcessDialog.super.call( this, config );
+ *     }
+ *     OO.inheritClass( MyProcessDialog, OO.ui.ProcessDialog );
+ *
+ *     MyProcessDialog.static.title = 'Process dialog';
+ *     MyProcessDialog.static.actions = [
+ *         { action: 'save', label: 'Done', flags: 'primary' },
+ *         { label: 'Cancel', flags: 'safe' }
+ *     ];
  *
- * Logic:
- * - Show and hide errors.
- * - Retry an action.
+ *     MyProcessDialog.prototype.initialize = function () {
+ *         MyProcessDialog.super.prototype.initialize.apply( this, arguments );
+ *         this.content = new OO.ui.PanelLayout( { $: this.$, padded: true, expanded: false } );
+ *         this.content.$element.append( '<p>This is a process dialog window. The header contains the title and two buttons: \'Cancel\' (a safe action) on the left and \'Done\' (a primary action)  on the right.</p>' );
+ *         this.$body.append( this.content.$element );
+ *     };
+ *     MyProcessDialog.prototype.getActionProcess = function ( action ) {
+ *         var dialog = this;
+ *         if ( action ) {
+ *             return new OO.ui.Process( function () {
+ *                 dialog.close( { action: action } );
+ *             } );
+ *         }
+ *         return MyProcessDialog.super.prototype.getActionProcess.call( this, action );
+ *     };
+ *
+ *     var windowManager = new OO.ui.WindowManager();
+ *     $( 'body' ).append( windowManager.$element );
  *
- * User interface:
- * - Renders header with dialog title and one action widget on either side
- *   (a 'safe' button on the left, and a 'primary' button on the right, both of
- *   which close the dialog).
- * - Displays any action widgets in the footer (none by default).
- * - Ability to dismiss errors.
+ *     var dialog = new MyProcessDialog();
+ *     windowManager.addWindows( [ dialog ] );
+ *     windowManager.openWindow( dialog );
  *
- * Subclass responsibilities:
- * - Register a 'safe' action.
- * - Register a 'primary' action.
- * - Add content to the dialog.
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Windows/Process_Dialogs
  *
  * @abstract
  * @class
@@ -7179,6 +7562,8 @@ OO.inheritClass( OO.ui.ProcessDialog, OO.ui.Dialog );
  * Handle dismiss button click events.
  *
  * Hides errors.
+ *
+ * @private
  */
 OO.ui.ProcessDialog.prototype.onDismissErrorButtonClick = function () {
        this.hideErrors();
@@ -7188,10 +7573,12 @@ OO.ui.ProcessDialog.prototype.onDismissErrorButtonClick = function () {
  * Handle retry button click events.
  *
  * Hides errors and then tries again.
+ *
+ * @private
  */
 OO.ui.ProcessDialog.prototype.onRetryButtonClick = function () {
        this.hideErrors();
-       this.executeAction( this.currentAction.getAction() );
+       this.executeAction( this.currentAction );
 };
 
 /**
@@ -7252,6 +7639,19 @@ OO.ui.ProcessDialog.prototype.initialize = function () {
        this.$foot.append( this.$otherActions );
 };
 
+/**
+ * @inheritdoc
+ */
+OO.ui.ProcessDialog.prototype.getActionWidgets = function ( actions ) {
+       var i, len, widgets = [];
+       for ( i = 0, len = actions.length; i < len; i++ ) {
+               widgets.push(
+                       new OO.ui.ActionWidget( $.extend( { framed: true }, actions[ i ] ) )
+               );
+       }
+       return widgets;
+};
+
 /**
  * @inheritdoc
  */
@@ -7265,16 +7665,13 @@ OO.ui.ProcessDialog.prototype.attachActions = function () {
        others = this.actions.getOthers();
        if ( special.primary ) {
                this.$primaryActions.append( special.primary.$element );
-               special.primary.toggleFramed( true );
        }
        for ( i = 0, len = others.length; i < len; i++ ) {
                other = others[ i ];
                this.$otherActions.append( other.$element );
-               other.toggleFramed( true );
        }
        if ( special.safe ) {
                this.$safeActions.append( special.safe.$element );
-               special.safe.toggleFramed( true );
        }
 
        this.fitLabel();
@@ -7285,13 +7682,17 @@ OO.ui.ProcessDialog.prototype.attachActions = function () {
  * @inheritdoc
  */
 OO.ui.ProcessDialog.prototype.executeAction = function ( action ) {
-       OO.ui.ProcessDialog.super.prototype.executeAction.call( this, action )
-               .fail( this.showErrors.bind( this ) );
+       var process = this;
+       return OO.ui.ProcessDialog.super.prototype.executeAction.call( this, action )
+               .fail( function ( errors ) {
+                       process.showErrors( errors || [] );
+               } );
 };
 
 /**
  * Fit label between actions.
  *
+ * @private
  * @chainable
  */
 OO.ui.ProcessDialog.prototype.fitLabel = function () {
@@ -7307,11 +7708,13 @@ OO.ui.ProcessDialog.prototype.fitLabel = function () {
 /**
  * Handle errors that occurred during accept or reject processes.
  *
+ * @private
  * @param {OO.ui.Error[]} errors Errors to be handled
  */
 OO.ui.ProcessDialog.prototype.showErrors = function ( errors ) {
-       var i, len, $item,
+       var i, len, $item, actions,
                items = [],
+               abilities = {},
                recoverable = true,
                warning = false;
 
@@ -7329,9 +7732,15 @@ OO.ui.ProcessDialog.prototype.showErrors = function ( errors ) {
        }
        this.$errorItems = $( items );
        if ( recoverable ) {
-               this.retryButton.clearFlags().setFlags( this.currentAction.getFlags() );
+               abilities[this.currentAction] = true;
+               // Copy the flags from the first matching action
+               actions = this.actions.get( { actions: this.currentAction } );
+               if ( actions.length ) {
+                       this.retryButton.clearFlags().setFlags( actions[0].getFlags() );
+               }
        } else {
-               this.currentAction.setDisabled( true );
+               abilities[this.currentAction] = false;
+               this.actions.setAbilities( abilities );
        }
        if ( warning ) {
                this.retryButton.setLabel( OO.ui.msg( 'ooui-dialog-process-continue' ) );
@@ -7345,11 +7754,27 @@ OO.ui.ProcessDialog.prototype.showErrors = function ( errors ) {
 
 /**
  * Hide errors.
+ *
+ * @private
  */
 OO.ui.ProcessDialog.prototype.hideErrors = function () {
        this.$errors.addClass( 'oo-ui-element-hidden' );
-       this.$errorItems.remove();
-       this.$errorItems = null;
+       if ( this.$errorItems ) {
+               this.$errorItems.remove();
+               this.$errorItems = null;
+       }
+};
+
+/**
+ * @inheritdoc
+ */
+OO.ui.ProcessDialog.prototype.getTeardownProcess = function ( data ) {
+       // Parent method
+       return OO.ui.ProcessDialog.super.prototype.getTeardownProcess.call( this, data )
+               .first( function () {
+                       // Make sure to hide errors
+                       this.hideErrors();
+               }, this );
 };
 
 /**
@@ -7359,14 +7784,14 @@ OO.ui.ProcessDialog.prototype.hideErrors = function () {
  * Field layouts can be configured with help text and/or labels. Labels are aligned in one of four ways:
  *
  * - **left**: The label is placed before the field-widget and aligned with the left margin.
- *             A left-alignment is used for forms with many fields.
+ *   A left-alignment is used for forms with many fields.
  * - **right**: The label is placed before the field-widget and aligned to the right margin.
- *              A right-alignment is used for long but familiar forms which users tab through,
- *              verifying the current field with a quick glance at the label.
+ *   A right-alignment is used for long but familiar forms which users tab through,
+ *   verifying the current field with a quick glance at the label.
  * - **top**: The label is placed above the field-widget. A top-alignment is used for brief forms
- *            that users fill out from top to bottom.
+ *   that users fill out from top to bottom.
  * - **inline**: The label is placed after the field-widget and aligned to the left.
                An inline-alignment is best used with checkboxes or radio buttons.
*   An inline-alignment is best used with checkboxes or radio buttons.
  *
  * Help text is accessed via a help icon that appears in the upper right corner of the rendered field layout.
  * Please see the [OOjs UI documentation on MediaWiki] [1] for examples and more information.
@@ -7379,8 +7804,9 @@ OO.ui.ProcessDialog.prototype.hideErrors = function () {
  * @constructor
  * @param {OO.ui.Widget} fieldWidget Field widget
  * @param {Object} [config] Configuration options
- * @cfg {string} [align='left'] Alignment mode, either 'left', 'right', 'top' or 'inline'
- * @cfg {string} [help] Explanatory text shown as a '?' icon.
+ * @cfg {string} [align='left'] Alignment of the label: 'left', 'right', 'top' or 'inline'
+ * @cfg {string} [help] Help text. When help text is specified, a help icon will appear
+ *  in the upper-right corner of the rendered field.
  */
 OO.ui.FieldLayout = function OoUiFieldLayout( fieldWidget, config ) {
        // Allow passing positional parameters inside the config object
@@ -7451,6 +7877,7 @@ OO.mixinClass( OO.ui.FieldLayout, OO.ui.LabelElement );
 /**
  * Handle field disable events.
  *
+ * @private
  * @param {boolean} value Field is disabled
  */
 OO.ui.FieldLayout.prototype.onFieldDisable = function ( value ) {
@@ -7460,6 +7887,7 @@ OO.ui.FieldLayout.prototype.onFieldDisable = function ( value ) {
 /**
  * Handle label mouse click events.
  *
+ * @private
  * @param {jQuery.Event} e Mouse click event
  */
 OO.ui.FieldLayout.prototype.onLabelClick = function () {
@@ -7468,7 +7896,7 @@ OO.ui.FieldLayout.prototype.onLabelClick = function () {
 };
 
 /**
- * Get the field.
+ * Get the widget contained by the field.
  *
  * @return {OO.ui.Widget} Field widget
  */
@@ -7537,9 +7965,6 @@ OO.ui.ActionFieldLayout = function OoUiActionFieldLayout( fieldWidget, buttonWid
        // Parent constructor
        OO.ui.ActionFieldLayout.super.call( this, fieldWidget, config );
 
-       // Mixin constructors
-       OO.ui.LabelElement.call( this, config );
-
        // Properties
        this.fieldWidget = fieldWidget;
        this.buttonWidget = buttonWidget;
@@ -7559,9 +7984,36 @@ OO.ui.ActionFieldLayout = function OoUiActionFieldLayout( fieldWidget, buttonWid
 OO.inheritClass( OO.ui.ActionFieldLayout, OO.ui.FieldLayout );
 
 /**
- * Layout made of a fieldset and optional legend.
+ * FieldsetLayouts are composed of one or more {@link OO.ui.FieldLayout FieldLayouts},
+ * which each contain an individual widget and, optionally, a label. Each Fieldset can be
+ * configured with a label as well. For more information and examples,
+ * please see the [OOjs UI documentation on MediaWiki][1].
+ *
+ *     @example
+ *     // Example of a fieldset layout
+ *     var input1 = new OO.ui.TextInputWidget( {
+ *         placeholder: 'A text input field'
+ *     } );
+ *
+ *     var input2 = new OO.ui.TextInputWidget( {
+ *         placeholder: 'A text input field'
+ *     } );
  *
- * Just add OO.ui.FieldLayout items.
+ *     var fieldset = new OO.ui.FieldsetLayout( {
+ *         label: 'Example of a fieldset layout'
+ *     } );
+ *
+ *     fieldset.addItems( [
+ *         new OO.ui.FieldLayout( input1, {
+ *             label: 'Field One'
+ *         } ),
+ *         new OO.ui.FieldLayout( input2, {
+ *             label: 'Field Two'
+ *         } )
+ *     ] );
+ *     $( 'body' ).append( fieldset.$element );
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Layouts/Fields_and_Fieldsets
  *
  * @class
  * @extends OO.ui.Layout
@@ -7571,7 +8023,7 @@ OO.inheritClass( OO.ui.ActionFieldLayout, OO.ui.FieldLayout );
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {OO.ui.FieldLayout[]} [items] Items to add
+ * @cfg {OO.ui.FieldLayout[]} [items] An array of fields to add to the fieldset. See OO.ui.FieldLayout for more information about fields.
  */
 OO.ui.FieldsetLayout = function OoUiFieldsetLayout( config ) {
        // Configuration initialization
@@ -7619,7 +8071,43 @@ OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.LabelElement );
 OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.GroupElement );
 
 /**
- * Layout with an HTML form.
+ * FormLayouts are used to wrap {@link OO.ui.FieldsetLayout FieldsetLayouts} when you intend to use browser-based
+ * form submission for the fields instead of handling them in JavaScript. Form layouts can be configured with an
+ * HTML form action, an encoding type, and a method using the #action, #enctype, and #method configs, respectively.
+ *
+ *     @example
+ *     // Example of a form layout that wraps a fieldset layout
+ *     var input1 = new OO.ui.TextInputWidget( {
+ *         placeholder: 'Username'
+ *     } );
+ *     var input2 = new OO.ui.TextInputWidget( {
+ *         placeholder: 'Password',
+ *         type: 'password'
+ *     } );
+ *     var submit = new OO.ui.ButtonInputWidget( {
+ *         label: 'Submit'
+ *     } );
+ *
+ *     var fieldset = new OO.ui.FieldsetLayout( {
+ *         label: 'A form layout'
+ *     } );
+ *     fieldset.addItems( [
+ *         new OO.ui.FieldLayout( input1, {
+ *             label: 'Username',
+ *             align: 'top'
+ *         } ),
+ *         new OO.ui.FieldLayout( input2, {
+ *             label: 'Password',
+ *             align: 'top'
+ *         } ),
+ *         new OO.ui.FieldLayout( submit )
+ *     ] );
+ *     var form = new OO.ui.FormLayout( {
+ *         items: [ fieldset ],
+ *         action: '/api/formhandler',
+ *         method: 'get'
+ *     } )
+ *     $( 'body' ).append( form.$element );
  *
  * @class
  * @extends OO.ui.Layout
@@ -7630,7 +8118,7 @@ OO.mixinClass( OO.ui.FieldsetLayout, OO.ui.GroupElement );
  * @cfg {string} [method] HTML form `method` attribute
  * @cfg {string} [action] HTML form `action` attribute
  * @cfg {string} [enctype] HTML form `enctype` attribute
- * @cfg {OO.ui.FieldsetLayout[]} [items] Items to add
+ * @cfg {OO.ui.FieldsetLayout[]} [items] Fieldset layouts to add to the form layout.
  */
 OO.ui.FormLayout = function OoUiFormLayout( config ) {
        // Configuration initialization
@@ -7666,11 +8154,9 @@ OO.mixinClass( OO.ui.FormLayout, OO.ui.GroupElement );
 /* Events */
 
 /**
- * The HTML form was submitted. If the submission is handled, call `e.preventDefault()` to prevent
- * HTML form submission.
+ * A 'submit' event is emitted when the form is submitted.
  *
  * @event submit
- * @param {jQuery.Event} e Submit event
  */
 
 /* Static Properties */
@@ -7682,175 +8168,13 @@ OO.ui.FormLayout.static.tagName = 'form';
 /**
  * Handle form submit events.
  *
+ * @private
  * @param {jQuery.Event} e Submit event
  * @fires submit
  */
-OO.ui.FormLayout.prototype.onFormSubmit = function ( e ) {
-       this.emit( 'submit', e );
-};
-
-/**
- * Layout made of proportionally sized columns and rows.
- *
- * @class
- * @extends OO.ui.Layout
- * @deprecated Use OO.ui.MenuLayout or plain CSS instead.
- *
- * @constructor
- * @param {OO.ui.PanelLayout[]} panels Panels in the grid
- * @param {Object} [config] Configuration options
- * @cfg {number[]} [widths] Widths of columns as ratios
- * @cfg {number[]} [heights] Heights of rows as ratios
- */
-OO.ui.GridLayout = function OoUiGridLayout( panels, config ) {
-       // Allow passing positional parameters inside the config object
-       if ( OO.isPlainObject( panels ) && config === undefined ) {
-               config = panels;
-               panels = config.panels;
-       }
-
-       var i, len, widths;
-
-       // Configuration initialization
-       config = config || {};
-
-       // Parent constructor
-       OO.ui.GridLayout.super.call( this, config );
-
-       // Properties
-       this.panels = [];
-       this.widths = [];
-       this.heights = [];
-
-       // Initialization
-       this.$element.addClass( 'oo-ui-gridLayout' );
-       for ( i = 0, len = panels.length; i < len; i++ ) {
-               this.panels.push( panels[ i ] );
-               this.$element.append( panels[ i ].$element );
-       }
-       if ( config.widths || config.heights ) {
-               this.layout( config.widths || [ 1 ], config.heights || [ 1 ] );
-       } else {
-               // Arrange in columns by default
-               widths = this.panels.map( function () { return 1; } );
-               this.layout( widths, [ 1 ] );
-       }
-};
-
-/* Setup */
-
-OO.inheritClass( OO.ui.GridLayout, OO.ui.Layout );
-
-/* Events */
-
-/**
- * @event layout
- */
-
-/**
- * @event update
- */
-
-/* Methods */
-
-/**
- * Set grid dimensions.
- *
- * @param {number[]} widths Widths of columns as ratios
- * @param {number[]} heights Heights of rows as ratios
- * @fires layout
- * @throws {Error} If grid is not large enough to fit all panels
- */
-OO.ui.GridLayout.prototype.layout = function ( widths, heights ) {
-       var x, y,
-               xd = 0,
-               yd = 0,
-               cols = widths.length,
-               rows = heights.length;
-
-       // Verify grid is big enough to fit panels
-       if ( cols * rows < this.panels.length ) {
-               throw new Error( 'Grid is not large enough to fit ' + this.panels.length + 'panels' );
-       }
-
-       // Sum up denominators
-       for ( x = 0; x < cols; x++ ) {
-               xd += widths[ x ];
-       }
-       for ( y = 0; y < rows; y++ ) {
-               yd += heights[ y ];
-       }
-       // Store factors
-       this.widths = [];
-       this.heights = [];
-       for ( x = 0; x < cols; x++ ) {
-               this.widths[ x ] = widths[ x ] / xd;
-       }
-       for ( y = 0; y < rows; y++ ) {
-               this.heights[ y ] = heights[ y ] / yd;
-       }
-       // Synchronize view
-       this.update();
-       this.emit( 'layout' );
-};
-
-/**
- * Update panel positions and sizes.
- *
- * @fires update
- */
-OO.ui.GridLayout.prototype.update = function () {
-       var x, y, panel, width, height, dimensions,
-               i = 0,
-               top = 0,
-               left = 0,
-               cols = this.widths.length,
-               rows = this.heights.length;
-
-       for ( y = 0; y < rows; y++ ) {
-               height = this.heights[ y ];
-               for ( x = 0; x < cols; x++ ) {
-                       width = this.widths[ x ];
-                       panel = this.panels[ i ];
-                       dimensions = {
-                               width: ( width * 100 ) + '%',
-                               height: ( height * 100 ) + '%',
-                               top: ( top * 100 ) + '%'
-                       };
-                       // If RTL, reverse:
-                       if ( OO.ui.Element.static.getDir( document ) === 'rtl' ) {
-                               dimensions.right = ( left * 100 ) + '%';
-                       } else {
-                               dimensions.left = ( left * 100 ) + '%';
-                       }
-                       // HACK: Work around IE bug by setting visibility: hidden; if width or height is zero
-                       if ( width === 0 || height === 0 ) {
-                               dimensions.visibility = 'hidden';
-                       } else {
-                               dimensions.visibility = '';
-                       }
-                       panel.$element.css( dimensions );
-                       i++;
-                       left += width;
-               }
-               top += height;
-               left = 0;
-       }
-
-       this.emit( 'update' );
-};
-
-/**
- * Get a panel at a given position.
- *
- * The x and y position is affected by the current grid layout.
- *
- * @param {number} x Horizontal position
- * @param {number} y Vertical position
- * @return {OO.ui.PanelLayout} The panel at the given position
- */
-OO.ui.GridLayout.prototype.getPanel = function ( x, y ) {
-       return this.panels[ ( x * this.widths.length ) + y ];
+OO.ui.FormLayout.prototype.onFormSubmit = function () {
+       this.emit( 'submit' );
+       return false;
 };
 
 /**
@@ -8499,7 +8823,18 @@ OO.ui.BookletLayout.prototype.selectFirstSelectablePage = function () {
 };
 
 /**
- * Layout that expands to cover the entire area of its parent, with optional scrolling and padding.
+ * PanelLayouts expand to cover the entire area of their parent. They can be configured with scrolling, padding,
+ * and a frame, and are often used together with {@link OO.ui.StackLayout StackLayouts}.
+ *
+ *     @example
+ *     // Example of a panel layout
+ *     var panel = new OO.ui.PanelLayout( {
+ *         expanded: false,
+ *         framed: true,
+ *         padded: true,
+ *         $content: $( '<p>A panel layout with padding and a frame.</p>' )
+ *     } );
+ *     $( 'body' ).append( panel.$element );
  *
  * @class
  * @extends OO.ui.Layout
@@ -8507,15 +8842,17 @@ OO.ui.BookletLayout.prototype.selectFirstSelectablePage = function () {
  * @constructor
  * @param {Object} [config] Configuration options
  * @cfg {boolean} [scrollable=false] Allow vertical scrolling
- * @cfg {boolean} [padded=false] Pad the content from the edges
- * @cfg {boolean} [expanded=true] Expand size to fill the entire parent element
+ * @cfg {boolean} [padded=false] Add padding between the content and the edges of the panel.
+ * @cfg {boolean} [expanded=true] Expand the panel to fill the entire parent element.
+ * @cfg {boolean} [framed=false] Render the panel with a frame to visually separate it from outside content.
  */
 OO.ui.PanelLayout = function OoUiPanelLayout( config ) {
        // Configuration initialization
        config = $.extend( {
                scrollable: false,
                padded: false,
-               expanded: true
+               expanded: true,
+               framed: false
        }, config );
 
        // Parent constructor
@@ -8532,6 +8869,9 @@ OO.ui.PanelLayout = function OoUiPanelLayout( config ) {
        if ( config.expanded ) {
                this.$element.addClass( 'oo-ui-panelLayout-expanded' );
        }
+       if ( config.framed ) {
+               this.$element.addClass( 'oo-ui-panelLayout-framed' );
+       }
 };
 
 /* Setup */
@@ -8927,8 +9267,8 @@ OO.ui.PopupToolGroup = function OoUiPopupToolGroup( toolbar, config ) {
 
        // Events
        this.$handle.on( {
-               'mousedown touchstart': this.onHandlePointerDown.bind( this ),
-               'mouseup touchend': this.onHandlePointerUp.bind( this )
+               mousedown: this.onHandlePointerDown.bind( this ),
+               mouseup: this.onHandlePointerUp.bind( this )
        } );
 
        // Initialization
@@ -8993,10 +9333,8 @@ OO.ui.PopupToolGroup.prototype.onBlur = function ( e ) {
  * @inheritdoc
  */
 OO.ui.PopupToolGroup.prototype.onPointerUp = function ( e ) {
-       // e.which is 0 for touch events, 1 for left mouse button
        // Only close toolgroup when a tool was actually selected
-       // FIXME: this duplicates logic from the parent class
-       if ( !this.isDisabled() && e.which <= 1 && this.pressed && this.pressed === this.getTargetTool( e ) ) {
+       if ( !this.isDisabled() && e.which === 1 && this.pressed && this.pressed === this.getTargetTool( e ) ) {
                this.setActive( false );
        }
        return OO.ui.PopupToolGroup.super.prototype.onPointerUp.call( this, e );
@@ -9017,8 +9355,7 @@ OO.ui.PopupToolGroup.prototype.onHandlePointerUp = function () {
  * @param {jQuery.Event} e Mouse down event
  */
 OO.ui.PopupToolGroup.prototype.onHandlePointerDown = function ( e ) {
-       // e.which is 0 for touch events, 1 for left mouse button
-       if ( !this.isDisabled() && e.which <= 1 ) {
+       if ( !this.isDisabled() && e.which === 1 ) {
                this.setActive( !this.active );
        }
        return false;
@@ -9261,18 +9598,18 @@ OO.ui.MenuToolGroup.prototype.onUpdateState = function () {
  * @mixins OO.ui.PopupElement
  *
  * @constructor
- * @param {OO.ui.Toolbar} toolbar
+ * @param {OO.ui.ToolGroup} toolGroup
  * @param {Object} [config] Configuration options
  */
-OO.ui.PopupTool = function OoUiPopupTool( toolbar, config ) {
+OO.ui.PopupTool = function OoUiPopupTool( toolGroup, config ) {
        // Allow passing positional parameters inside the config object
-       if ( OO.isPlainObject( toolbar ) && config === undefined ) {
-               config = toolbar;
-               toolbar = config.toolbar;
+       if ( OO.isPlainObject( toolGroup ) && config === undefined ) {
+               config = toolGroup;
+               toolGroup = config.toolGroup;
        }
 
        // Parent constructor
-       OO.ui.PopupTool.super.call( this, toolbar, config );
+       OO.ui.PopupTool.super.call( this, toolGroup, config );
 
        // Mixin constructors
        OO.ui.PopupElement.call( this, config );
@@ -9313,27 +9650,112 @@ OO.ui.PopupTool.prototype.onUpdateState = function () {
 };
 
 /**
- * Mixin for OO.ui.Widget subclasses to provide OO.ui.GroupElement.
- *
- * Use together with OO.ui.ItemWidget to make disabled state inheritable.
+ * Tool that has a tool group inside. This is a bad workaround for the lack of proper hierarchical
+ * menus in toolbars (T74159).
  *
  * @abstract
  * @class
- * @extends OO.ui.GroupElement
+ * @extends OO.ui.Tool
  *
  * @constructor
+ * @param {OO.ui.ToolGroup} toolGroup
  * @param {Object} [config] Configuration options
  */
-OO.ui.GroupWidget = function OoUiGroupWidget( config ) {
+OO.ui.ToolGroupTool = function OoUiToolGroupTool( toolGroup, config ) {
+       // Allow passing positional parameters inside the config object
+       if ( OO.isPlainObject( toolGroup ) && config === undefined ) {
+               config = toolGroup;
+               toolGroup = config.toolGroup;
+       }
+
        // Parent constructor
-       OO.ui.GroupWidget.super.call( this, config );
+       OO.ui.ToolGroupTool.super.call( this, toolGroup, config );
+
+       // Properties
+       this.innerToolGroup = this.createGroup( this.constructor.static.groupConfig );
+
+       // Initialization
+       this.$link.remove();
+       this.$element
+               .addClass( 'oo-ui-toolGroupTool' )
+               .append( this.innerToolGroup.$element );
 };
 
 /* Setup */
 
-OO.inheritClass( OO.ui.GroupWidget, OO.ui.GroupElement );
+OO.inheritClass( OO.ui.ToolGroupTool, OO.ui.Tool );
 
-/* Methods */
+/* Static Properties */
+
+/**
+ * Tool group configuration. See OO.ui.Toolbar#setup for the accepted values.
+ *
+ * @property {Object.<string,Array>}
+ */
+OO.ui.ToolGroupTool.static.groupConfig = {};
+
+/* Methods */
+
+/**
+ * Handle the tool being selected.
+ *
+ * @inheritdoc
+ */
+OO.ui.ToolGroupTool.prototype.onSelect = function () {
+       this.innerToolGroup.setActive( !this.innerToolGroup.active );
+       return false;
+};
+
+/**
+ * Handle the toolbar state being updated.
+ *
+ * @inheritdoc
+ */
+OO.ui.ToolGroupTool.prototype.onUpdateState = function () {
+       this.setActive( false );
+};
+
+/**
+ * Build a OO.ui.ToolGroup from the configuration.
+ *
+ * @param {Object.<string,Array>} group Tool group configuration. See OO.ui.Toolbar#setup for the
+ *   accepted values.
+ * @return {OO.ui.ListToolGroup}
+ */
+OO.ui.ToolGroupTool.prototype.createGroup = function ( group ) {
+       if ( group.include === '*' ) {
+               // Apply defaults to catch-all groups
+               if ( group.label === undefined ) {
+                       group.label = OO.ui.msg( 'ooui-toolbar-more' );
+               }
+       }
+
+       return this.toolbar.getToolGroupFactory().create( 'list', this.toolbar, group );
+};
+
+/**
+ * Mixin for OO.ui.Widget subclasses to provide OO.ui.GroupElement.
+ *
+ * Use together with OO.ui.ItemWidget to make disabled state inheritable.
+ *
+ * @private
+ * @abstract
+ * @class
+ * @extends OO.ui.GroupElement
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+OO.ui.GroupWidget = function OoUiGroupWidget( config ) {
+       // Parent constructor
+       OO.ui.GroupWidget.super.call( this, config );
+};
+
+/* Setup */
+
+OO.inheritClass( OO.ui.GroupWidget, OO.ui.GroupElement );
+
+/* Methods */
 
 /**
  * Set the disabled state of the widget.
@@ -9368,6 +9790,7 @@ OO.ui.GroupWidget.prototype.setDisabled = function ( disabled ) {
  *
  * Use together with OO.ui.GroupWidget to make disabled state inheritable.
  *
+ * @private
  * @abstract
  * @class
  *
@@ -9409,327 +9832,9 @@ OO.ui.ItemWidget.prototype.setElementGroup = function ( group ) {
 };
 
 /**
- * Mixin that adds a menu showing suggested values for a text input.
- *
- * Subclasses must handle `select` and `choose` events on #lookupMenu to make use of selections.
- *
- * Subclasses that set the value of #lookupInput from their `choose` or `select` handler should
- * be aware that this will cause new suggestions to be looked up for the new value. If this is
- * not desired, disable lookups with #setLookupsDisabled, then set the value, then re-enable lookups.
- *
- * @class
- * @abstract
- * @deprecated Use OO.ui.LookupElement instead.
- *
- * @constructor
- * @param {OO.ui.TextInputWidget} input Input widget
- * @param {Object} [config] Configuration options
- * @cfg {jQuery} [$overlay] Overlay for dropdown; defaults to relative positioning
- * @cfg {jQuery} [$container=input.$element] Element to render menu under
- */
-OO.ui.LookupInputWidget = function OoUiLookupInputWidget( input, config ) {
-       // Allow passing positional parameters inside the config object
-       if ( OO.isPlainObject( input ) && config === undefined ) {
-               config = input;
-               input = config.input;
-       }
-
-       // Configuration initialization
-       config = config || {};
-
-       // Properties
-       this.lookupInput = input;
-       this.$overlay = config.$overlay || this.$element;
-       this.lookupMenu = new OO.ui.TextInputMenuSelectWidget( this, {
-               input: this.lookupInput,
-               $container: config.$container
-       } );
-       this.lookupCache = {};
-       this.lookupQuery = null;
-       this.lookupRequest = null;
-       this.lookupsDisabled = false;
-       this.lookupInputFocused = false;
-
-       // Events
-       this.lookupInput.$input.on( {
-               focus: this.onLookupInputFocus.bind( this ),
-               blur: this.onLookupInputBlur.bind( this ),
-               mousedown: this.onLookupInputMouseDown.bind( this )
-       } );
-       this.lookupInput.connect( this, { change: 'onLookupInputChange' } );
-       this.lookupMenu.connect( this, { toggle: 'onLookupMenuToggle' } );
-
-       // Initialization
-       this.$element.addClass( 'oo-ui-lookupWidget' );
-       this.lookupMenu.$element.addClass( 'oo-ui-lookupWidget-menu' );
-       this.$overlay.append( this.lookupMenu.$element );
-};
-
-/* Methods */
-
-/**
- * Handle input focus event.
- *
- * @param {jQuery.Event} e Input focus event
- */
-OO.ui.LookupInputWidget.prototype.onLookupInputFocus = function () {
-       this.lookupInputFocused = true;
-       this.populateLookupMenu();
-};
-
-/**
- * Handle input blur event.
- *
- * @param {jQuery.Event} e Input blur event
- */
-OO.ui.LookupInputWidget.prototype.onLookupInputBlur = function () {
-       this.closeLookupMenu();
-       this.lookupInputFocused = false;
-};
-
-/**
- * Handle input mouse down event.
- *
- * @param {jQuery.Event} e Input mouse down event
- */
-OO.ui.LookupInputWidget.prototype.onLookupInputMouseDown = function () {
-       // Only open the menu if the input was already focused.
-       // This way we allow the user to open the menu again after closing it with Esc
-       // by clicking in the input. Opening (and populating) the menu when initially
-       // clicking into the input is handled by the focus handler.
-       if ( this.lookupInputFocused && !this.lookupMenu.isVisible() ) {
-               this.populateLookupMenu();
-       }
-};
-
-/**
- * Handle input change event.
- *
- * @param {string} value New input value
- */
-OO.ui.LookupInputWidget.prototype.onLookupInputChange = function () {
-       if ( this.lookupInputFocused ) {
-               this.populateLookupMenu();
-       }
-};
-
-/**
- * Handle the lookup menu being shown/hidden.
- * @param {boolean} visible Whether the lookup menu is now visible.
- */
-OO.ui.LookupInputWidget.prototype.onLookupMenuToggle = function ( visible ) {
-       if ( !visible ) {
-               // When the menu is hidden, abort any active request and clear the menu.
-               // This has to be done here in addition to closeLookupMenu(), because
-               // MenuSelectWidget will close itself when the user presses Esc.
-               this.abortLookupRequest();
-               this.lookupMenu.clearItems();
-       }
-};
-
-/**
- * Get lookup menu.
- *
- * @return {OO.ui.TextInputMenuSelectWidget}
- */
-OO.ui.LookupInputWidget.prototype.getLookupMenu = function () {
-       return this.lookupMenu;
-};
-
-/**
- * Disable or re-enable lookups.
- *
- * When lookups are disabled, calls to #populateLookupMenu will be ignored.
- *
- * @param {boolean} disabled Disable lookups
- */
-OO.ui.LookupInputWidget.prototype.setLookupsDisabled = function ( disabled ) {
-       this.lookupsDisabled = !!disabled;
-};
-
-/**
- * Open the menu. If there are no entries in the menu, this does nothing.
- *
- * @chainable
- */
-OO.ui.LookupInputWidget.prototype.openLookupMenu = function () {
-       if ( !this.lookupMenu.isEmpty() ) {
-               this.lookupMenu.toggle( true );
-       }
-       return this;
-};
-
-/**
- * Close the menu, empty it, and abort any pending request.
- *
- * @chainable
- */
-OO.ui.LookupInputWidget.prototype.closeLookupMenu = function () {
-       this.lookupMenu.toggle( false );
-       this.abortLookupRequest();
-       this.lookupMenu.clearItems();
-       return this;
-};
-
-/**
- * Request menu items based on the input's current value, and when they arrive,
- * populate the menu with these items and show the menu.
- *
- * If lookups have been disabled with #setLookupsDisabled, this function does nothing.
- *
- * @chainable
- */
-OO.ui.LookupInputWidget.prototype.populateLookupMenu = function () {
-       var widget = this,
-               value = this.lookupInput.getValue();
-
-       if ( this.lookupsDisabled ) {
-               return;
-       }
-
-       // If the input is empty, clear the menu
-       if ( value === '' ) {
-               this.closeLookupMenu();
-       // Skip population if there is already a request pending for the current value
-       } else if ( value !== this.lookupQuery ) {
-               this.getLookupMenuItems()
-                       .done( function ( items ) {
-                               widget.lookupMenu.clearItems();
-                               if ( items.length ) {
-                                       widget.lookupMenu
-                                               .addItems( items )
-                                               .toggle( true );
-                                       widget.initializeLookupMenuSelection();
-                               } else {
-                                       widget.lookupMenu.toggle( false );
-                               }
-                       } )
-                       .fail( function () {
-                               widget.lookupMenu.clearItems();
-                       } );
-       }
-
-       return this;
-};
-
-/**
- * Select and highlight the first selectable item in the menu.
- *
- * @chainable
- */
-OO.ui.LookupInputWidget.prototype.initializeLookupMenuSelection = function () {
-       if ( !this.lookupMenu.getSelectedItem() ) {
-               this.lookupMenu.selectItem( this.lookupMenu.getFirstSelectableItem() );
-       }
-       this.lookupMenu.highlightItem( this.lookupMenu.getSelectedItem() );
-};
-
-/**
- * Get lookup menu items for the current query.
- *
- * @return {jQuery.Promise} Promise object which will be passed menu items as the first argument
- * of the done event. If the request was aborted to make way for a subsequent request,
- * this promise will not be rejected: it will remain pending forever.
- */
-OO.ui.LookupInputWidget.prototype.getLookupMenuItems = function () {
-       var widget = this,
-               value = this.lookupInput.getValue(),
-               deferred = $.Deferred(),
-               ourRequest;
-
-       this.abortLookupRequest();
-       if ( Object.prototype.hasOwnProperty.call( this.lookupCache, value ) ) {
-               deferred.resolve( this.getLookupMenuItemsFromData( this.lookupCache[ value ] ) );
-       } else {
-               this.lookupInput.pushPending();
-               this.lookupQuery = value;
-               ourRequest = this.lookupRequest = this.getLookupRequest();
-               ourRequest
-                       .always( function () {
-                               // We need to pop pending even if this is an old request, otherwise
-                               // the widget will remain pending forever.
-                               // TODO: this assumes that an aborted request will fail or succeed soon after
-                               // being aborted, or at least eventually. It would be nice if we could popPending()
-                               // at abort time, but only if we knew that we hadn't already called popPending()
-                               // for that request.
-                               widget.lookupInput.popPending();
-                       } )
-                       .done( function ( data ) {
-                               // If this is an old request (and aborting it somehow caused it to still succeed),
-                               // ignore its success completely
-                               if ( ourRequest === widget.lookupRequest ) {
-                                       widget.lookupQuery = null;
-                                       widget.lookupRequest = null;
-                                       widget.lookupCache[ value ] = widget.getLookupCacheItemFromData( data );
-                                       deferred.resolve( widget.getLookupMenuItemsFromData( widget.lookupCache[ value ] ) );
-                               }
-                       } )
-                       .fail( function () {
-                               // If this is an old request (or a request failing because it's being aborted),
-                               // ignore its failure completely
-                               if ( ourRequest === widget.lookupRequest ) {
-                                       widget.lookupQuery = null;
-                                       widget.lookupRequest = null;
-                                       deferred.reject();
-                               }
-                       } );
-       }
-       return deferred.promise();
-};
-
-/**
- * Abort the currently pending lookup request, if any.
- */
-OO.ui.LookupInputWidget.prototype.abortLookupRequest = function () {
-       var oldRequest = this.lookupRequest;
-       if ( oldRequest ) {
-               // First unset this.lookupRequest to the fail handler will notice
-               // that the request is no longer current
-               this.lookupRequest = null;
-               this.lookupQuery = null;
-               oldRequest.abort();
-       }
-};
-
-/**
- * Get a new request object of the current lookup query value.
- *
- * @abstract
- * @return {jQuery.Promise} jQuery AJAX object, or promise object with an .abort() method
- */
-OO.ui.LookupInputWidget.prototype.getLookupRequest = function () {
-       // Stub, implemented in subclass
-       return null;
-};
-
-/**
- * Get a list of menu item widgets from the data stored by the lookup request's done handler.
- *
- * @abstract
- * @param {Mixed} data Cached result data, usually an array
- * @return {OO.ui.MenuOptionWidget[]} Menu items
- */
-OO.ui.LookupInputWidget.prototype.getLookupMenuItemsFromData = function () {
-       // Stub, implemented in subclass
-       return [];
-};
-
-/**
- * Get lookup cache item from server response data.
- *
- * @abstract
- * @param {Mixed} data Response from server
- * @return {Mixed} Cached result data
- */
-OO.ui.LookupInputWidget.prototype.getLookupCacheItemFromData = function () {
-       // Stub, implemented in subclass
-       return [];
-};
-
-/**
- * Set of controls for an OO.ui.OutlineSelectWidget.
- *
+ * OutlineControlsWidget is a set of controls for an {@link OO.ui.OutlineSelectWidget outline select widget}.
  * Controls include moving items up and down, removing items, and adding different kinds of items.
+ * ####Currently, this class is only used by {@link OO.ui.BookletLayout BookletLayouts}.####
  *
  * @class
  * @extends OO.ui.Widget
@@ -9739,6 +9844,9 @@ OO.ui.LookupInputWidget.prototype.getLookupCacheItemFromData = function () {
  * @constructor
  * @param {OO.ui.OutlineSelectWidget} outline Outline to control
  * @param {Object} [config] Configuration options
+ * @cfg {Object} [abilities] List of abilties
+ * @cfg {boolean} [abilities.move=true] Allow moving movable items
+ * @cfg {boolean} [abilities.remove=true] Allow removing removable items
  */
 OO.ui.OutlineControlsWidget = function OoUiOutlineControlsWidget( outline, config ) {
        // Allow passing positional parameters inside the config object
@@ -9775,6 +9883,7 @@ OO.ui.OutlineControlsWidget = function OoUiOutlineControlsWidget( outline, confi
                icon: 'remove',
                title: OO.ui.msg( 'ooui-outline-control-remove' )
        } );
+       this.abilities = { move: true, remove: true };
 
        // Events
        outline.connect( this, {
@@ -9793,6 +9902,7 @@ OO.ui.OutlineControlsWidget = function OoUiOutlineControlsWidget( outline, confi
                .addClass( 'oo-ui-outlineControlsWidget-movers' )
                .append( this.removeButton.$element, this.upButton.$element, this.downButton.$element );
        this.$element.append( this.$icon, this.$group, this.$movers );
+       this.setAbilities( config.abilities || {} );
 };
 
 /* Setup */
@@ -9812,17 +9922,38 @@ OO.mixinClass( OO.ui.OutlineControlsWidget, OO.ui.IconElement );
  * @event remove
  */
 
-/* Methods */
+/* Methods */
+
+/**
+ * Set abilities.
+ *
+ * @param {Object} abilities List of abilties
+ * @param {boolean} [abilities.move] Allow moving movable items
+ * @param {boolean} [abilities.remove] Allow removing removable items
+ */
+OO.ui.OutlineControlsWidget.prototype.setAbilities = function ( abilities ) {
+       var ability;
+
+       for ( ability in this.abilities ) {
+               if ( abilities[ability] !== undefined ) {
+                       this.abilities[ability] = !!abilities[ability];
+               }
+       }
+
+       this.onOutlineChange();
+};
 
 /**
+ *
+ * @private
  * Handle outline change events.
  */
 OO.ui.OutlineControlsWidget.prototype.onOutlineChange = function () {
        var i, len, firstMovable, lastMovable,
                items = this.outline.getItems(),
                selectedItem = this.outline.getSelectedItem(),
-               movable = selectedItem && selectedItem.isMovable(),
-               removable = selectedItem && selectedItem.isRemovable();
+               movable = this.abilities.move && selectedItem && selectedItem.isMovable(),
+               removable = this.abilities.remove && selectedItem && selectedItem.isRemovable();
 
        if ( movable ) {
                i = -1;
@@ -9847,14 +9978,16 @@ OO.ui.OutlineControlsWidget.prototype.onOutlineChange = function () {
 };
 
 /**
- * Mixin for widgets with a boolean on/off state.
+ * ToggleWidget is mixed into other classes to create widgets with an on/off state.
+ * Please see OO.ui.ToggleButtonWidget and OO.ui.ToggleSwitchWidget for examples.
  *
  * @abstract
  * @class
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {boolean} [value=false] Initial value
+ * @cfg {boolean} [value=false] The toggle’s initial on/off state.
+ *  By default, the toggle is in the 'off' state.
  */
 OO.ui.ToggleWidget = function OoUiToggleWidget( config ) {
        // Configuration initialization
@@ -9872,24 +10005,27 @@ OO.ui.ToggleWidget = function OoUiToggleWidget( config ) {
 
 /**
  * @event change
- * @param {boolean} value Changed value
+ *
+ * A change event is emitted when the on/off state of the toggle changes.
+ *
+ * @param {boolean} value Value representing the new state of the toggle
  */
 
 /* Methods */
 
 /**
- * Get the value of the toggle.
+ * Get the value representing the toggle’s state.
  *
- * @return {boolean}
+ * @return {boolean} The on/off state of the toggle
  */
 OO.ui.ToggleWidget.prototype.getValue = function () {
        return this.value;
 };
 
 /**
- * Set the value of the toggle.
+ * Set the state of the toggle: `true` for 'on', `false' for 'off'.
  *
- * @param {boolean} value New value
+ * @param {boolean} value The state of the toggle
  * @fires change
  * @chainable
  */
@@ -9913,21 +10049,21 @@ OO.ui.ToggleWidget.prototype.setValue = function ( value ) {
  *     @example
  *     // Example: A ButtonGroupWidget with two buttons
  *     var button1 = new OO.ui.PopupButtonWidget( {
- *         label : 'Select a category',
- *         icon : 'menu',
- *         popup : {
+ *         label: 'Select a category',
+ *         icon: 'menu',
+ *         popup: {
  *             $content: $( '<p>List of categories...</p>' ),
  *             padded: true,
  *             align: 'left'
  *         }
  *     } );
  *     var button2 = new OO.ui.ButtonWidget( {
- *         label : 'Add item'
+ *         label: 'Add item'
  *     });
  *     var buttonGroup = new OO.ui.ButtonGroupWidget( {
  *         items: [button1, button2]
  *     } );
- *     $('body').append(buttonGroup.$element);
+ *     $( 'body' ).append( buttonGroup.$element );
  *
  * @class
  * @extends OO.ui.Widget
@@ -9970,9 +10106,9 @@ OO.mixinClass( OO.ui.ButtonGroupWidget, OO.ui.GroupElement );
  *     @example
  *     // A button widget
  *     var button = new OO.ui.ButtonWidget( {
- *         label : 'Button with Icon',
- *         icon : 'remove',
- *         iconTitle : 'Remove'
+ *         label: 'Button with Icon',
+ *         icon: 'remove',
+ *         iconTitle: 'Remove'
  *     } );
  *     $( 'body' ).append( button.$element );
  *
@@ -10178,7 +10314,10 @@ OO.ui.ButtonWidget.prototype.setNoFollow = function ( noFollow ) {
 /**
  * An ActionWidget is a {@link OO.ui.ButtonWidget button widget} that executes an action.
  * Action widgets are used with OO.ui.ActionSet, which manages the behavior and availability
- * of the actions. Please see the [OOjs UI documentation on MediaWiki] [1] for more information
+ * of the actions.
+ *
+ * Both actions and action sets are primarily used with {@link OO.ui.Dialog Dialogs}.
+ * Please see the [OOjs UI documentation on MediaWiki] [1] for more information
  * and examples.
  *
  * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Windows/Process_Dialogs#Action_sets
@@ -10189,9 +10328,11 @@ OO.ui.ButtonWidget.prototype.setNoFollow = function ( noFollow ) {
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {string} [action] Symbolic action name
- * @cfg {string[]} [modes] Symbolic mode names
- * @cfg {boolean} [framed=false] Render button with a frame
+ * @cfg {string} [action] Symbolic name of the action (e.g., ‘continue’ or ‘cancel’).
+ * @cfg {string[]} [modes] Symbolic names of the modes (e.g., ‘edit’ or ‘read’) in which the action
+ *  should be made available. See the action set's {@link OO.ui.ActionSet#setMode setMode} method
+ *  for more information about setting modes.
+ * @cfg {boolean} [framed=false] Render the action button with a frame
  */
 OO.ui.ActionWidget = function OoUiActionWidget( config ) {
        // Configuration initialization
@@ -10221,23 +10362,25 @@ OO.mixinClass( OO.ui.ActionWidget, OO.ui.PendingElement );
 /* Events */
 
 /**
+ * A resize event is emitted when the size of the widget changes.
+ *
  * @event resize
  */
 
 /* Methods */
 
 /**
- * Check if action is available in a certain mode.
+ * Check if the action is configured to be available in the specified `mode`.
  *
  * @param {string} mode Name of mode
- * @return {boolean} Has mode
+ * @return {boolean} The action is configured with the mode
  */
 OO.ui.ActionWidget.prototype.hasMode = function ( mode ) {
        return this.modes.indexOf( mode ) !== -1;
 };
 
 /**
- * Get symbolic action name.
+ * Get the symbolic name of the action (e.g., ‘continue’ or ‘cancel’).
  *
  * @return {string}
  */
@@ -10246,9 +10389,13 @@ OO.ui.ActionWidget.prototype.getAction = function () {
 };
 
 /**
- * Get symbolic action name.
+ * Get the symbolic name of the mode or modes for which the action is configured to be available.
  *
- * @return {string}
+ * The current mode is set with the action set's {@link OO.ui.ActionSet#setMode setMode} method.
+ * Only actions that are configured to be avaiable in the current mode will be visible. All other actions
+ * are hidden.
+ *
+ * @return {string[]}
  */
 OO.ui.ActionWidget.prototype.getModes = function () {
        return this.modes.slice();
@@ -10257,6 +10404,7 @@ OO.ui.ActionWidget.prototype.getModes = function () {
 /**
  * Emit a resize event if the size has changed.
  *
+ * @private
  * @chainable
  */
 OO.ui.ActionWidget.prototype.propagateResize = function () {
@@ -10321,7 +10469,7 @@ OO.ui.ActionWidget.prototype.clearFlags = function () {
 };
 
 /**
- * Toggle visibility of button.
+ * Toggle the visibility of the action button.
  *
  * @param {boolean} [show] Show button, omit to toggle visibility
  * @chainable
@@ -10393,7 +10541,26 @@ OO.ui.PopupButtonWidget.prototype.onAction = function () {
 };
 
 /**
- * Button that toggles on and off.
+ * ToggleButtons are buttons that have a state (‘on’ or ‘off’) that is represented by a
+ * Boolean value. Like other {@link OO.ui.ButtonWidget buttons}, toggle buttons can be
+ * configured with {@link OO.ui.IconElement icons}, {@link OO.ui.IndicatorElement indicators},
+ * {@link OO.ui.TitledElement titles}, {@link OO.ui.FlaggedElement styling flags},
+ * and {@link OO.ui.LabelElement labels}. Please see
+ * the [OOjs UI documentation][1] on MediaWiki for more information.
+ *
+ *     @example
+ *     // Toggle buttons in the 'off' and 'on' state.
+ *     var toggleButton1 = new OO.ui.ToggleButtonWidget( {
+ *         label: 'Toggle Button off'
+ *     } );
+ *     var toggleButton2 = new OO.ui.ToggleButtonWidget( {
+ *         label: 'Toggle Button on',
+ *         value: true
+ *     } );
+ *     // Append the buttons to the DOM.
+ *     $( 'body' ).append( toggleButton1.$element, toggleButton2.$element );
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Buttons_and_Switches#Toggle_buttons
  *
  * @class
  * @extends OO.ui.ButtonWidget
@@ -10401,7 +10568,8 @@ OO.ui.PopupButtonWidget.prototype.onAction = function () {
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {boolean} [value=false] Initial value
+ * @cfg {boolean} [value=false] The toggle button’s initial on/off
+ *  state. By default, the button is in the 'off' state.
  */
 OO.ui.ToggleButtonWidget = function OoUiToggleButtonWidget( config ) {
        // Configuration initialization
@@ -10428,6 +10596,8 @@ OO.mixinClass( OO.ui.ToggleButtonWidget, OO.ui.ToggleWidget );
 /* Methods */
 
 /**
+ *
+ * @private
  * Handle the button action being triggered.
  */
 OO.ui.ToggleButtonWidget.prototype.onAction = function () {
@@ -10457,7 +10627,7 @@ OO.ui.ToggleButtonWidget.prototype.setValue = function ( value ) {
  *
  *     @example
  *     // Example: A DropdownWidget with a menu that contains three options
- *     var dropDown=new OO.ui.DropdownWidget( {
+ *     var dropDown = new OO.ui.DropdownWidget( {
  *         label: 'Dropdown menu: Select a menu option',
  *         menu: {
  *             items: [
@@ -10477,7 +10647,7 @@ OO.ui.ToggleButtonWidget.prototype.setValue = function ( value ) {
  *         }
  *     } );
  *
- *     $('body').append(dropDown.$element);
+ *     $( 'body' ).append( dropDown.$element );
  *
  * For more information, please see the [OOjs UI documentation on MediaWiki] [1].
  *
@@ -10596,8 +10766,8 @@ OO.ui.DropdownWidget.prototype.onClick = function ( e ) {
 OO.ui.DropdownWidget.prototype.onKeyPress = function ( e ) {
        if ( !this.isDisabled() && ( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER ) ) {
                this.menu.toggle();
+               return false;
        }
-       return false;
 };
 
 /**
@@ -10607,15 +10777,15 @@ OO.ui.DropdownWidget.prototype.onKeyPress = function ( e ) {
  *
  *     @example
  *     // An icon widget with a label
- *     var myIcon = new OO.ui.IconWidget({
+ *     var myIcon = new OO.ui.IconWidget( {
  *         icon: 'help',
  *         iconTitle: 'Help'
- *      });
+ *      } );
  *      // Create a label.
- *      var iconLabel = new OO.ui.LabelWidget({
+ *      var iconLabel = new OO.ui.LabelWidget( {
  *          label: 'Help'
- *      });
- *      $('body').append(myIcon.$element, iconLabel.$element);
+ *      } );
+ *      $( 'body' ).append( myIcon.$element, iconLabel.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Icons,_Indicators,_and_Labels#Icons
  *
@@ -10653,9 +10823,24 @@ OO.mixinClass( OO.ui.IconWidget, OO.ui.TitledElement );
 OO.ui.IconWidget.static.tagName = 'span';
 
 /**
- * Indicator widget.
+ * IndicatorWidgets create indicators, which are small graphics that are generally used to draw
+ * attention to the status of an item or to clarify the function of a control. For a list of
+ * indicators included in the library, please see the [OOjs UI documentation on MediaWiki][1].
+ *
+ *     @example
+ *     // Example of an indicator widget
+ *     var indicator1 = new OO.ui.IndicatorWidget( {
+ *         indicator: 'alert'
+ *     } );
  *
- * See OO.ui.IndicatorElement for more information.
+ *     // Create a fieldset layout to add a label
+ *     var fieldset = new OO.ui.FieldsetLayout();
+ *     fieldset.addItems( [
+ *         new OO.ui.FieldLayout( indicator1, { label: 'An alert indicator:' } )
+ *     ] );
+ *     $( 'body' ).append( fieldset.$element );
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Icons,_Indicators,_and_Labels#Indicators
  *
  * @class
  * @extends OO.ui.Widget
@@ -10706,9 +10891,10 @@ OO.ui.IndicatorWidget.static.tagName = 'span';
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {string} [name=''] HTML input name
- * @cfg {string} [value=''] Input value
- * @cfg {Function} [inputFilter] Filter function to apply to the input. Takes a string argument and returns a string.
+ * @cfg {string} [name=''] The value of the input’s HTML `name` attribute.
+ * @cfg {string} [value=''] The value of the input.
+ * @cfg {Function} [inputFilter] The name of an input filter function. Input filters modify the value of an input
+ *  before it is accepted.
  */
 OO.ui.InputWidget = function OoUiInputWidget( config ) {
        // Configuration initialization
@@ -10747,6 +10933,9 @@ OO.mixinClass( OO.ui.InputWidget, OO.ui.TabIndexedElement );
 
 /**
  * @event change
+ *
+ * A change event is emitted when the value of the input changes.
+ *
  * @param {string} value
  */
 
@@ -10769,6 +10958,7 @@ OO.ui.InputWidget.prototype.getInputElement = function () {
 /**
  * Handle potentially value-changing events.
  *
+ * @private
  * @param {jQuery.Event} e Key down, mouse up, cut, paste, change, input, or select event
  */
 OO.ui.InputWidget.prototype.onEdit = function () {
@@ -10797,9 +10987,10 @@ OO.ui.InputWidget.prototype.getValue = function () {
 };
 
 /**
- * Sets the direction of the current input, either RTL or LTR
+ * Set the direction of the input, either RTL (right-to-left) or LTR (left-to-right).
  *
  * @param {boolean} isRTL
+ * Direction is right-to-left
  */
 OO.ui.InputWidget.prototype.setRTL = function ( isRTL ) {
        this.$input.prop( 'dir', isRTL ? 'rtl' : 'ltr' );
@@ -10846,13 +11037,16 @@ OO.ui.InputWidget.prototype.cleanUpValue = function ( value ) {
 };
 
 /**
- * Simulate the behavior of clicking on a label bound to this input.
+ * Simulate the behavior of clicking on a label bound to this input. This method is only called by
+ * {@link OO.ui.LabelWidget LabelWidget} and {@link OO.ui.FieldLayout FieldLayout}. It should not be
+ * called directly.
  */
 OO.ui.InputWidget.prototype.simulateLabelClick = function () {
        if ( !this.isDisabled() ) {
-               if ( this.$input.is( ':checkbox,:radio' ) ) {
+               if ( this.$input.is( ':checkbox, :radio' ) ) {
                        this.$input.click();
-               } else if ( this.$input.is( ':input' ) ) {
+               }
+               if ( this.$input.is( ':input' ) ) {
                        this.$input[ 0 ].focus();
                }
        }
@@ -10918,11 +11112,11 @@ OO.ui.InputWidget.prototype.blur = function () {
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {string} [type='button'] HTML tag `type` attribute, may be 'button', 'submit' or 'reset'
- * @cfg {boolean} [useInputTag=false] Whether to use `<input/>` rather than `<button/>`. Only useful
- *  if you need IE 6 support in a form with multiple buttons. If you use this option, icons and
- *  indicators will not be displayed, it won't be possible to have a non-plaintext label, and it
- *  won't be possible to set a value (which will internally become identical to the label).
+ * @cfg {string} [type='button'] The value of the HTML `'type'` attribute: 'button', 'submit' or 'reset'.
+ * @cfg {boolean} [useInputTag=false] Use an `<input/>` tag instead of a `<button/>` tag, the default.
+ *  Widgets configured to be an `<input/>` do not support {@link #icon icons} and {@link #indicator indicators},
+ *  non-plaintext {@link #label labels}, or {@link #value values}. In general, useInputTag should only
+ *  be set to `true` when there’s need to support IE6 in a form with multiple buttons.
  */
 OO.ui.ButtonInputWidget = function OoUiButtonInputWidget( config ) {
        // Configuration initialization
@@ -10930,7 +11124,6 @@ OO.ui.ButtonInputWidget = function OoUiButtonInputWidget( config ) {
 
        // Properties (must be set before parent constructor, which calls #setValue)
        this.useInputTag = config.useInputTag;
-       this.type = config.type;
 
        // Parent constructor
        OO.ui.ButtonInputWidget.super.call( this, config );
@@ -10974,10 +11167,10 @@ OO.ui.ButtonInputWidget.prototype.getInputElement = function ( config ) {
 /**
  * Set label value.
  *
- * Overridden to support setting the 'value' of `<input/>` elements.
+ * If #useInputTag is `true`, the label is set as the `value` of the `<input/>` tag.
  *
- * @param {jQuery|string|Function|null} label Label nodes; text; a function that returns nodes or
- *  text; or null for no label
+ * @param {jQuery|string|Function|null} label Label nodes, text, a function that returns nodes or
+ *  text, or `null` for no label
  * @chainable
  */
 OO.ui.ButtonInputWidget.prototype.setLabel = function ( label ) {
@@ -11002,7 +11195,8 @@ OO.ui.ButtonInputWidget.prototype.setLabel = function ( label ) {
 /**
  * Set the value of the input.
  *
- * Overridden to disable for `<input/>` elements, which have value identical to the label.
+ * This method is disabled for button inputs configured as {@link #useInputTag <input/> tags}, as
+ * they do not support {@link #value values}.
  *
  * @param {string} value New value
  * @chainable
@@ -11015,26 +11209,43 @@ OO.ui.ButtonInputWidget.prototype.setValue = function ( value ) {
 };
 
 /**
- * @inheritdoc
- */
-OO.ui.ButtonInputWidget.prototype.onClick = function ( e ) {
-       var ret = OO.ui.ButtonElement.prototype.onClick.call( this, e );
-       if ( this.type === 'submit' ) {
-               // Never prevent default action (form submission)
-               return true;
-       }
-       return ret;
-};
-
-/**
- * Checkbox input widget.
+ * CheckboxInputWidgets, like HTML checkboxes, can be selected and/or configured with a value.
+ *  Note that these {@link OO.ui.InputWidget input widgets} are best laid out
+ * in {@link OO.ui.FieldLayout field layouts} that use the {@link OO.ui.FieldLayout#align inline}
+ * alignment. For more information, please see the [OOjs UI documentation on MediaWiki][1].
+ *
+ *     @example
+ *     // An example of selected, unselected, and disabled checkbox inputs
+ *     var checkbox1=new OO.ui.CheckboxInputWidget( {
+ *          value: 'a',
+ *          selected: true
+ *     } );
+ *     var checkbox2=new OO.ui.CheckboxInputWidget( {
+ *         value: 'b'
+ *     } );
+ *     var checkbox3=new OO.ui.CheckboxInputWidget( {
+ *         value:'c',
+ *         disabled: true
+ *     } );
+ *     // Create a fieldset layout with fields for each checkbox.
+ *     var fieldset = new OO.ui.FieldsetLayout( {
+ *         label: 'Checkboxes'
+ *     } );
+ *     fieldset.addItems( [
+ *         new OO.ui.FieldLayout( checkbox1, { label: 'Selected checkbox', align: 'inline' } ),
+ *         new OO.ui.FieldLayout( checkbox2, { label: 'Unselected checkbox', align: 'inline' } ),
+ *         new OO.ui.FieldLayout( checkbox3, { label: 'Disabled checkbox', align: 'inline' } ),
+ *     ] );
+ *     $( 'body' ).append( fieldset.$element );
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Inputs
  *
  * @class
  * @extends OO.ui.InputWidget
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {boolean} [selected=false] Whether the checkbox is initially selected
+ * @cfg {boolean} [selected=false] Select the checkbox initially. By default, the checkbox is not selected.
  */
 OO.ui.CheckboxInputWidget = function OoUiCheckboxInputWidget( config ) {
        // Configuration initialization
@@ -11078,7 +11289,7 @@ OO.ui.CheckboxInputWidget.prototype.onEdit = function () {
 /**
  * Set selection state of this checkbox.
  *
- * @param {boolean} state Whether the checkbox is selected
+ * @param {boolean} state `true` for selected
  * @chainable
  */
 OO.ui.CheckboxInputWidget.prototype.setSelected = function ( state ) {
@@ -11107,8 +11318,24 @@ OO.ui.CheckboxInputWidget.prototype.isSelected = function () {
 };
 
 /**
- * A OO.ui.DropdownWidget synchronized with a `<input type=hidden>` for form submission. Intended to
- * be used within a OO.ui.FormLayout.
+ * DropdownInputWidget is a {@link OO.ui.DropdownWidget DropdownWidget} intended to be used
+ * within a {@link OO.ui.FormLayout form}. The selected value is synchronized with the value
+ * of  a hidden HTML `input` tag. Please see the [OOjs UI documentation on MediaWiki][1] for
+ * more information about input widgets.
+ *
+ *     @example
+ *     // Example: A DropdownInputWidget with three options
+ *     var dropDown = new OO.ui.DropdownInputWidget( {
+ *         label: 'Dropdown menu: Select a menu option',
+ *         options: [
+ *             { data: 'a', label: 'First' } ,
+ *             { data: 'b', label: 'Second'} ,
+ *             { data: 'c', label: 'Third' }
+ *         ]
+ *     } );
+ *     $( 'body' ).append( dropDown.$element );
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Inputs
  *
  * @class
  * @extends OO.ui.InputWidget
@@ -11154,6 +11381,7 @@ OO.ui.DropdownInputWidget.prototype.getInputElement = function () {
 /**
  * Handles menu select events.
  *
+ * @private
  * @param {OO.ui.MenuOptionWidget} item Selected menu item
  */
 OO.ui.DropdownInputWidget.prototype.onMenuSelect = function ( item ) {
@@ -11231,17 +11459,43 @@ OO.ui.DropdownInputWidget.prototype.blur = function () {
 };
 
 /**
- * Radio input widget.
+ * RadioInputWidget creates a single radio button. Because radio buttons are usually used as a set,
+ * in most cases you will want to use a {@link OO.ui.RadioSelectWidget radio select}
+ * with {@link OO.ui.RadioOptionWidget radio options} instead of this class. For more information,
+ * please see the [OOjs UI documentation on MediaWiki][1].
+ *
+ *     @example
+ *     // An example of selected, unselected, and disabled radio inputs
+ *     var radio1 = new OO.ui.RadioInputWidget( {
+ *         value: 'a',
+ *         selected: true
+ *     } );
+ *     var radio2 = new OO.ui.RadioInputWidget( {
+ *         value: 'b'
+ *     } );
+ *     var radio3 = new OO.ui.RadioInputWidget( {
+ *         value: 'c',
+ *         disabled: true
+ *     } );
+ *     // Create a fieldset layout with fields for each radio button.
+ *     var fieldset = new OO.ui.FieldsetLayout( {
+ *         label: 'Radio inputs'
+ *     } );
+ *     fieldset.addItems( [
+ *         new OO.ui.FieldLayout( radio1, { label: 'Selected', align: 'inline' } ),
+ *         new OO.ui.FieldLayout( radio2, { label: 'Unselected', align: 'inline' } ),
+ *         new OO.ui.FieldLayout( radio3, { label: 'Disabled', align: 'inline' } ),
+ *     ] );
+ *     $( 'body' ).append( fieldset.$element );
  *
- * Radio buttons only make sense as a set, and you probably want to use the OO.ui.RadioSelectWidget
- * class instead of using this class directly.
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Inputs
  *
  * @class
  * @extends OO.ui.InputWidget
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {boolean} [selected=false] Whether the radio button is initially selected
+ * @cfg {boolean} [selected=false] Select the radio button initially. By default, the radio button is not selected.
  */
 OO.ui.RadioInputWidget = function OoUiRadioInputWidget( config ) {
        // Configuration initialization
@@ -11279,7 +11533,7 @@ OO.ui.RadioInputWidget.prototype.onEdit = function () {
 /**
  * Set selection state of this radio button.
  *
- * @param {boolean} state Whether the button is selected
+ * @param {boolean} state `true` for selected
  * @chainable
  */
 OO.ui.RadioInputWidget.prototype.setSelected = function ( state ) {
@@ -11298,7 +11552,21 @@ OO.ui.RadioInputWidget.prototype.isSelected = function () {
 };
 
 /**
- * Input widget with a text field.
+ * TextInputWidgets, like HTML text inputs, can be configured with options that customize the
+ * size of the field as well as its presentation. In addition, these widgets can be configured
+ * with {@link OO.ui.IconElement icons}, {@link OO.ui.IndicatorElement indicators}, an optional
+ * validation-pattern (used to determine if an input value is valid or not) and an input filter,
+ * which modifies incoming values rather than validating them.
+ * Please see the [OOjs UI documentation on MediaWiki] [1] for more information and examples.
+ *
+ *     @example
+ *     // Example of a text input widget
+ *     var textInput = new OO.ui.TextInputWidget( {
+ *         value: 'Text input'
+ *     } )
+ *     $( 'body' ).append( textInput.$element );
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Inputs
  *
  * @class
  * @extends OO.ui.InputWidget
@@ -11309,19 +11577,22 @@ OO.ui.RadioInputWidget.prototype.isSelected = function () {
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {string} [type='text'] HTML tag `type` attribute
+ * @cfg {string} [type='text'] The value of the HTML `type` attribute
  * @cfg {string} [placeholder] Placeholder text
- * @cfg {boolean} [autofocus=false] Ask the browser to focus this widget, using the 'autofocus' HTML
- *  attribute
- * @cfg {boolean} [readOnly=false] Prevent changes
- * @cfg {number} [maxLength] Maximum allowed number of characters to input
+ * @cfg {boolean} [autofocus=false] Use an HTML `autofocus` attribute to
+ *  instruct the browser to focus this widget.
+ * @cfg {boolean} [readOnly=false] Prevent changes to the value of the text input.
+ * @cfg {number} [maxLength] Maximum number of characters allowed in the input.
  * @cfg {boolean} [multiline=false] Allow multiple lines of text
- * @cfg {boolean} [autosize=false] Automatically resize to fit content
- * @cfg {boolean} [maxRows=10] Maximum number of rows to make visible when autosizing
- * @cfg {string} [labelPosition='after'] Label position, 'before' or 'after'
+ * @cfg {boolean} [autosize=false] Automatically resize the text input to fit its content.
+ *  Use the #maxRows config to specify a maximum number of displayed rows.
+ * @cfg {boolean} [maxRows=10] Maximum number of rows to display when #autosize is set to true.
+ * @cfg {string} [labelPosition='after'] The position of the inline label relative to that of
+ *  the value or placeholder text: `'before'` or `'after'`
  * @cfg {boolean} [required=false] Mark the field as required
- * @cfg {RegExp|string} [validate] Regular expression to validate against (or symbolic name referencing
- *  one, see #static-validationPatterns)
+ * @cfg {RegExp|string} [validate] Validation pattern, either a regular expression or the
+ *  symbolic name of a pattern defined by the class: 'non-empty' (the value cannot be an empty string)
+ *  or 'integer' (the value must contain only numbers).
  */
 OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
        // Configuration initialization
@@ -11364,7 +11635,9 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
                keypress: this.onKeyPress.bind( this ),
                blur: this.setValidityFlag.bind( this )
        } );
-       this.$element.on( 'DOMNodeInsertedIntoDocument', this.onElementAttach.bind( this ) );
+       this.$input.one( {
+               focus: this.onElementAttach.bind( this )
+       } );
        this.$icon.on( 'mousedown', this.onIconMouseDown.bind( this ) );
        this.$indicator.on( 'mousedown', this.onIndicatorMouseDown.bind( this ) );
        this.on( 'labelChange', this.updatePosition.bind( this ) );
@@ -11386,6 +11659,9 @@ OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
        if ( config.required ) {
                this.$input.attr( 'required', 'true' );
        }
+       if ( this.label || config.autosize ) {
+               this.installParentChangeDetector();
+       }
 };
 
 /* Setup */
@@ -11406,41 +11682,25 @@ OO.ui.TextInputWidget.static.validationPatterns = {
 /* Events */
 
 /**
- * User presses enter inside the text box.
+ * An `enter` event is emitted when the user presses 'enter' inside the text box.
  *
- * Not called if input is multiline.
+ * Not emitted if the input is multiline.
  *
  * @event enter
  */
 
-/**
- * User clicks the icon.
- *
- * @deprecated Fundamentally not accessible. Make the icon focusable, associate a label or tooltip,
- *  and handle click/keypress events on it manually.
- * @event icon
- */
-
-/**
- * User clicks the indicator.
- *
- * @deprecated Fundamentally not accessible. Make the indicator focusable, associate a label or
- *  tooltip, and handle click/keypress events on it manually.
- * @event indicator
- */
-
 /* Methods */
 
 /**
  * Handle icon mouse down events.
  *
+ * @private
  * @param {jQuery.Event} e Mouse down event
  * @fires icon
  */
 OO.ui.TextInputWidget.prototype.onIconMouseDown = function ( e ) {
        if ( e.which === 1 ) {
                this.$input[ 0 ].focus();
-               this.emit( 'icon' );
                return false;
        }
 };
@@ -11448,13 +11708,13 @@ OO.ui.TextInputWidget.prototype.onIconMouseDown = function ( e ) {
 /**
  * Handle indicator mouse down events.
  *
+ * @private
  * @param {jQuery.Event} e Mouse down event
  * @fires indicator
  */
 OO.ui.TextInputWidget.prototype.onIndicatorMouseDown = function ( e ) {
        if ( e.which === 1 ) {
                this.$input[ 0 ].focus();
-               this.emit( 'indicator' );
                return false;
        }
 };
@@ -11462,6 +11722,7 @@ OO.ui.TextInputWidget.prototype.onIndicatorMouseDown = function ( e ) {
 /**
  * Handle key press events.
  *
+ * @private
  * @param {jQuery.Event} e Key press event
  * @fires enter If enter key is pressed and input is not multiline
  */
@@ -11474,6 +11735,7 @@ OO.ui.TextInputWidget.prototype.onKeyPress = function ( e ) {
 /**
  * Handle element attach events.
  *
+ * @private
  * @param {jQuery.Event} e Element attach event
  */
 OO.ui.TextInputWidget.prototype.onElementAttach = function () {
@@ -11506,7 +11768,7 @@ OO.ui.TextInputWidget.prototype.setValue = function ( value ) {
 };
 
 /**
- * Check if the widget is read-only.
+ * Check if the input is {@link #readOnly read-only}.
  *
  * @return {boolean}
  */
@@ -11515,9 +11777,7 @@ OO.ui.TextInputWidget.prototype.isReadOnly = function () {
 };
 
 /**
- * Set the read-only state of the widget.
- *
- * This should probably change the widget's appearance and prevent it from being used.
+ * Set the {@link #readOnly read-only} state of the input.
  *
  * @param {boolean} state Make input read-only
  * @chainable
@@ -11528,10 +11788,79 @@ OO.ui.TextInputWidget.prototype.setReadOnly = function ( state ) {
        return this;
 };
 
+/**
+ * Support function for making #onElementAttach work across browsers.
+ *
+ * This whole function could be replaced with one line of code using the DOMNodeInsertedIntoDocument
+ * event, but it's not supported by Firefox and allegedly deprecated, so we only use it as fallback.
+ *
+ * Due to MutationObserver performance woes, #onElementAttach is only somewhat reliably called the
+ * first time that the element gets attached to the documented.
+ */
+OO.ui.TextInputWidget.prototype.installParentChangeDetector = function () {
+       var mutationObserver, onRemove, topmostNode, fakeParentNode,
+               MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver,
+               widget = this;
+
+       if ( MutationObserver ) {
+               // The new way. If only it wasn't so ugly.
+
+               if ( this.$element.closest( 'html' ).length ) {
+                       // Widget is attached already, do nothing. This breaks the functionality of this function when
+                       // the widget is detached and reattached. Alas, doing this correctly with MutationObserver
+                       // would require observation of the whole document, which would hurt performance of other,
+                       // more important code.
+                       return;
+               }
+
+               // Find topmost node in the tree
+               topmostNode = this.$element[0];
+               while ( topmostNode.parentNode ) {
+                       topmostNode = topmostNode.parentNode;
+               }
+
+               // We have no way to detect the $element being attached somewhere without observing the entire
+               // DOM with subtree modifications, which would hurt performance. So we cheat: we hook to the
+               // parent node of $element, and instead detect when $element is removed from it (and thus
+               // probably attached somewhere else). If there is no parent, we create a "fake" one. If it
+               // doesn't get attached, we end up back here and create the parent.
+
+               mutationObserver = new MutationObserver( function ( mutations ) {
+                       var i, j, removedNodes;
+                       for ( i = 0; i < mutations.length; i++ ) {
+                               removedNodes = mutations[ i ].removedNodes;
+                               for ( j = 0; j < removedNodes.length; j++ ) {
+                                       if ( removedNodes[ j ] === topmostNode ) {
+                                               setTimeout( onRemove, 0 );
+                                               return;
+                                       }
+                               }
+                       }
+               } );
+
+               onRemove = function () {
+                       // If the node was attached somewhere else, report it
+                       if ( widget.$element.closest( 'html' ).length ) {
+                               widget.onElementAttach();
+                       }
+                       mutationObserver.disconnect();
+                       widget.installParentChangeDetector();
+               };
+
+               // Create a fake parent and observe it
+               fakeParentNode = $( '<div>' ).append( this.$element )[0];
+               mutationObserver.observe( fakeParentNode, { childList: true } );
+       } else {
+               // Using the DOMNodeInsertedIntoDocument event is much nicer and less magical, and works for
+               // detachment and reattachment, but it's not supported by Firefox and allegedly deprecated.
+               this.$element.on( 'DOMNodeInsertedIntoDocument', this.onElementAttach.bind( this ) );
+       }
+};
+
 /**
  * Automatically adjust the size of the text input.
  *
- * This only affects multi-line inputs that are auto-sized.
+ * This only affects #multiline inputs that are {@link #autosize autosized}.
  *
  * @chainable
  */
@@ -11590,7 +11919,7 @@ OO.ui.TextInputWidget.prototype.getInputElement = function ( config ) {
 };
 
 /**
- * Check if input supports multiple lines.
+ * Check if the input supports multiple lines.
  *
  * @return {boolean}
  */
@@ -11599,7 +11928,7 @@ OO.ui.TextInputWidget.prototype.isMultiline = function () {
 };
 
 /**
- * Check if input automatically adjusts its size.
+ * Check if the input automatically adjusts its size.
  *
  * @return {boolean}
  */
@@ -11608,7 +11937,7 @@ OO.ui.TextInputWidget.prototype.isAutosizing = function () {
 };
 
 /**
- * Select the contents of the input.
+ * Select the entire text of the input.
  *
  * @chainable
  */
@@ -11618,9 +11947,14 @@ OO.ui.TextInputWidget.prototype.select = function () {
 };
 
 /**
- * Sets the validation pattern to use.
- * @param {RegExp|string|null} validate Regular expression (or symbolic name referencing
- *  one, see #static-validationPatterns)
+ * Set the validation pattern.
+ *
+ * The validation pattern is either a regular expression or the symbolic name of a pattern
+ * defined by the class: 'non-empty' (the value cannot be an empty string) or 'integer' (the
+ * value must contain only numbers).
+ *
+ * @param {RegExp|string|null} validate Regular expression or the symbolic name of a
+ *  pattern (either ‘integer’ or ‘non-empty’) defined by the class.
  */
 OO.ui.TextInputWidget.prototype.setValidation = function ( validate ) {
        if ( validate instanceof RegExp ) {
@@ -11641,17 +11975,19 @@ OO.ui.TextInputWidget.prototype.setValidityFlag = function () {
 };
 
 /**
- * Returns whether or not the current value is considered valid, according to the
- * supplied validation pattern.
+ * Check if a value is valid.
+ *
+ * This method returns a promise that resolves with a boolean `true` if the current value is
+ * considered valid according to the supplied {@link #validate validation pattern}.
  *
- * @return {jQuery.Deferred}
+ * @return {jQuery.Deferred} A promise that resolves to a boolean `true` if the value is valid.
  */
 OO.ui.TextInputWidget.prototype.isValid = function () {
        return $.Deferred().resolve( !!this.getValue().match( this.validate ) ).promise();
 };
 
 /**
- * Set the position of the inline label.
+ * Set the position of the inline label relative to that of the value: `‘before’` or `‘after’`.
  *
  * @param {string} labelPosition Label position, 'before' or 'after'
  * @chainable
@@ -11673,6 +12009,10 @@ OO.ui.TextInputWidget.prototype.setPosition =
 /**
  * Update the position of the inline label.
  *
+ * This method is called by #setLabelPosition, and can also be called on its own if
+ * something causes the label to be mispositioned.
+ *
+ *
  * @chainable
  */
 OO.ui.TextInputWidget.prototype.updatePosition = function () {
@@ -11692,6 +12032,7 @@ OO.ui.TextInputWidget.prototype.updatePosition = function () {
 /**
  * Position the label by setting the correct padding on the input.
  *
+ * @private
  * @chainable
  */
 OO.ui.TextInputWidget.prototype.positionLabel = function () {
@@ -11720,7 +12061,50 @@ OO.ui.TextInputWidget.prototype.positionLabel = function () {
 };
 
 /**
- * Text input with a menu of optional values.
+ * ComboBoxWidgets combine a {@link OO.ui.TextInputWidget text input} (where a value
+ * can be entered manually) and a {@link OO.ui.MenuSelectWidget menu of options} (from which
+ * a value can be chosen instead). Users can choose options from the combo box in one of two ways:
+ *
+ * - by typing a value in the text input field. If the value exactly matches the value of a menu
+ *   option, that option will appear to be selected.
+ * - by choosing a value from the menu. The value of the chosen option will then appear in the text
+ *   input field.
+ *
+ * For more information about menus and options, please see the [OOjs UI documentation on MediaWiki][1].
+ *
+ *     @example
+ *     // Example: A ComboBoxWidget.
+ *     var comboBox = new OO.ui.ComboBoxWidget( {
+ *         label: 'ComboBoxWidget',
+ *         input: { value: 'Option One' },
+ *         menu: {
+ *             items: [
+ *                 new OO.ui.MenuOptionWidget( {
+ *                     data: 'Option 1',
+ *                     label: 'Option One'
+ *                 } ),
+ *                 new OO.ui.MenuOptionWidget( {
+ *                     data: 'Option 2',
+ *                     label: 'Option Two'
+ *                 } ),
+ *                 new OO.ui.MenuOptionWidget( {
+ *                     data: 'Option 3',
+ *                     label: 'Option Three'
+ *                 } ),
+ *                 new OO.ui.MenuOptionWidget( {
+ *                     data: 'Option 4',
+ *                     label: 'Option Four'
+ *                 } ),
+ *                 new OO.ui.MenuOptionWidget( {
+ *                     data: 'Option 5',
+ *                     label: 'Option Five'
+ *                 } )
+ *             ]
+ *         }
+ *     } );
+ *     $( 'body' ).append( comboBox.$element );
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Selects_and_Options#Menu_selects_and_options
  *
  * @class
  * @extends OO.ui.Widget
@@ -11728,9 +12112,11 @@ OO.ui.TextInputWidget.prototype.positionLabel = function () {
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {Object} [menu] Configuration options to pass to menu widget
- * @cfg {Object} [input] Configuration options to pass to input widget
- * @cfg {jQuery} [$overlay] Overlay layer; defaults to relative positioning
+ * @cfg {Object} [menu] Configuration options to pass to the {@link OO.ui.MenuSelectWidget menu select widget}.
+ * @cfg {Object} [input] Configuration options to pass to the {@link OO.ui.TextInputWidget text input widget}.
+ * @cfg {jQuery} [$overlay] Render the menu into a separate layer. This configuration is useful in cases where
+ *  the expanded menu is larger than its containing `<div>`. The specified overlay layer is usually on top of the
+ *  containing `<div>` and has a larger area. By default, the menu uses relative positioning.
  */
 OO.ui.ComboBoxWidget = function OoUiComboBoxWidget( config ) {
        // Configuration initialization
@@ -11807,6 +12193,7 @@ OO.ui.ComboBoxWidget.prototype.getMenu = function () {
 /**
  * Handle input change events.
  *
+ * @private
  * @param {string} value New value
  */
 OO.ui.ComboBoxWidget.prototype.onInputChange = function ( value ) {
@@ -11825,6 +12212,8 @@ OO.ui.ComboBoxWidget.prototype.onInputChange = function ( value ) {
 /**
  * Handle mouse click events.
  *
+ *
+ * @private
  * @param {jQuery.Event} e Mouse click event
  */
 OO.ui.ComboBoxWidget.prototype.onClick = function ( e ) {
@@ -11838,18 +12227,22 @@ OO.ui.ComboBoxWidget.prototype.onClick = function ( e ) {
 /**
  * Handle key press events.
  *
+ *
+ * @private
  * @param {jQuery.Event} e Key press event
  */
 OO.ui.ComboBoxWidget.prototype.onKeyPress = function ( e ) {
        if ( !this.isDisabled() && ( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER ) ) {
                this.menu.toggle();
                this.input.$input[ 0 ].focus();
+               return false;
        }
-       return false;
 };
 
 /**
  * Handle input enter events.
+ *
+ * @private
  */
 OO.ui.ComboBoxWidget.prototype.onInputEnter = function () {
        if ( !this.isDisabled() ) {
@@ -11860,6 +12253,7 @@ OO.ui.ComboBoxWidget.prototype.onInputEnter = function () {
 /**
  * Handle menu choose events.
  *
+ * @private
  * @param {OO.ui.OptionWidget} item Chosen item
  */
 OO.ui.ComboBoxWidget.prototype.onMenuChoose = function ( item ) {
@@ -11870,6 +12264,8 @@ OO.ui.ComboBoxWidget.prototype.onMenuChoose = function ( item ) {
 
 /**
  * Handle menu item change events.
+ *
+ * @private
  */
 OO.ui.ComboBoxWidget.prototype.onMenuItemsChange = function () {
        var match = this.menu.getItemFromData( this.input.getValue() );
@@ -11898,7 +12294,34 @@ OO.ui.ComboBoxWidget.prototype.setDisabled = function ( disabled ) {
 };
 
 /**
- * Label widget.
+ * LabelWidgets help identify the function of interface elements. Each LabelWidget can
+ * be configured with a `label` option that is set to a string, a label node, or a function:
+ *
+ * - String: a plaintext string
+ * - jQuery selection: a jQuery selection, used for anything other than a plaintext label, e.g., a
+ *   label that includes a link or special styling, such as a gray color or additional graphical elements.
+ * - Function: a function that will produce a string in the future. Functions are used
+ *   in cases where the value of the label is not currently defined.
+ *
+ * In addition, the LabelWidget can be associated with an {@link OO.ui.InputWidget input widget}, which
+ * will come into focus when the label is clicked.
+ *
+ *     @example
+ *     // Examples of LabelWidgets
+ *     var label1 = new OO.ui.LabelWidget( {
+ *         label: 'plaintext label'
+ *     } );
+ *     var label2 = new OO.ui.LabelWidget( {
+ *         label: $( '<a href="default.html">jQuery label</a>' )
+ *     } );
+ *     // Create a fieldset layout with fields for each example
+ *     var fieldset = new OO.ui.FieldsetLayout();
+ *     fieldset.addItems( [
+ *         new OO.ui.FieldLayout( label1 ),
+ *         new OO.ui.FieldLayout( label2 )
+ *     ] );
+ *     $( 'body' ).append( fieldset.$element );
+ *
  *
  * @class
  * @extends OO.ui.Widget
@@ -11906,7 +12329,8 @@ OO.ui.ComboBoxWidget.prototype.setDisabled = function ( disabled ) {
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {OO.ui.InputWidget} [input] Input widget this label is for
+ * @cfg {OO.ui.InputWidget} [input] {@link OO.ui.InputWidget Input widget} that uses the label.
+ *  Clicking the label will focus the specified input field.
  */
 OO.ui.LabelWidget = function OoUiLabelWidget( config ) {
        // Configuration initialization
@@ -11946,6 +12370,7 @@ OO.ui.LabelWidget.static.tagName = 'span';
 /**
  * Handles label mouse click events.
  *
+ * @private
  * @param {jQuery.Event} e Mouse click event
  */
 OO.ui.LabelWidget.prototype.onClick = function () {
@@ -12132,9 +12557,31 @@ OO.ui.OptionWidget.prototype.setPressed = function ( state ) {
 };
 
 /**
- * Option widget with an option icon and indicator.
+ * DecoratedOptionWidgets are {@link OO.ui.OptionWidget options} that can be configured
+ * with an {@link OO.ui.IconElement icon} and/or {@link OO.ui.IndicatorElement indicator}.
+ * This class is used with OO.ui.SelectWidget to create a selection of mutually exclusive
+ * options. For more information about options and selects, please see the
+ * [OOjs UI documentation on MediaWiki][1].
+ *
+ *     @example
+ *     // Decorated options in a select widget
+ *     var select = new OO.ui.SelectWidget( {
+ *         items: [
+ *             new OO.ui.DecoratedOptionWidget( {
+ *                 data: 'a',
+ *                 label: 'Option with icon',
+ *                 icon: 'help'
+ *             } ),
+ *             new OO.ui.DecoratedOptionWidget( {
+ *                 data: 'b',
+ *                 label: 'Option with indicator',
+ *                 indicator: 'next'
+ *             } )
+ *         ]
+ *     } );
+ *     $( 'body' ).append( select.$element );
  *
- * Use together with OO.ui.SelectWidget.
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Selects_and_Options
  *
  * @class
  * @extends OO.ui.OptionWidget
@@ -12328,7 +12775,36 @@ OO.inheritClass( OO.ui.MenuOptionWidget, OO.ui.DecoratedOptionWidget );
 OO.ui.MenuOptionWidget.static.scrollIntoViewOnSelect = true;
 
 /**
- * Section to group one or more items in a OO.ui.MenuSelectWidget.
+ * MenuSectionOptionWidgets are used inside {@link OO.ui.MenuSelectWidget menu select widgets} to group one or more related
+ * {@link OO.ui.MenuOptionWidget menu options}. MenuSectionOptionWidgets cannot be highlighted or selected.
+ *
+ *     @example
+ *     var myDropdown = new OO.ui.DropdownWidget( {
+ *         menu: {
+ *             items: [
+ *                 new OO.ui.MenuSectionOptionWidget( {
+ *                     label: 'Dogs'
+ *                 } ),
+ *                 new OO.ui.MenuOptionWidget( {
+ *                     data: 'corgi',
+ *                     label: 'Welsh Corgi'
+ *                 } ),
+ *                 new OO.ui.MenuOptionWidget( {
+ *                     data: 'poodle',
+ *                     label: 'Standard Poodle'
+ *                 } ),
+ *                 new OO.ui.MenuSectionOptionWidget( {
+ *                     label: 'Cats'
+ *                 } ),
+ *                 new OO.ui.MenuOptionWidget( {
+ *                     data: 'lion',
+ *                     label: 'Lion'
+ *                 } )
+ *             ]
+ *         }
+ *     } );
+ *     $( 'body' ).append( myDropdown.$element );
+ *
  *
  * @class
  * @extends OO.ui.DecoratedOptionWidget
@@ -12482,7 +12958,23 @@ OO.ui.OutlineOptionWidget.prototype.setLevel = function ( level ) {
 };
 
 /**
- * Container for content that is overlaid and positioned absolutely.
+ * PopupWidget is a container for content. The popup is overlaid and positioned absolutely.
+ * By default, each popup has an anchor that points toward its origin.
+ * Please see the [OOjs UI documentation on Mediawiki] [1] for more information and examples.
+ *
+ *     @example
+ *     // A popup widget.
+ *     var popup = new OO.ui.PopupWidget( {
+ *         $content: $( '<p>Hi there!</p>' ),
+ *         padded: true,
+ *         width: 300
+ *     } );
+ *
+ *     $( 'body' ).append( popup.$element );
+ *     // To display the popup, toggle the visibility to 'true'.
+ *     popup.toggle( true );
+ *
+ * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Popups
  *
  * @class
  * @extends OO.ui.Widget
@@ -12491,16 +12983,24 @@ OO.ui.OutlineOptionWidget.prototype.setLevel = function ( level ) {
  * @constructor
  * @param {Object} [config] Configuration options
  * @cfg {number} [width=320] Width of popup in pixels
- * @cfg {number} [height] Height of popup, omit to use automatic height
+ * @cfg {number} [height] Height of popup in pixels. Omit to use the automatic height.
  * @cfg {boolean} [anchor=true] Show anchor pointing to origin of popup
- * @cfg {string} [align='center'] Alignment of popup to origin
- * @cfg {jQuery} [$container] Container to prevent popup from rendering outside of
- * @cfg {number} [containerPadding=10] How much padding to keep between popup and container
+ * @cfg {string} [align='center'] Alignment of the popup: `center`, `left`, or `right`.
+ *  If the popup is right-aligned, the right edge of the popup is aligned to the anchor.
+ *  For left-aligned popups, the left edge is aligned to the anchor.
+ * @cfg {jQuery} [$container] Constrain the popup to the boundaries of the specified container.
+ *  See the [OOjs UI docs on MediaWiki][3] for an example.
+ *  [3]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Popups#containerExample
+ * @cfg {number} [containerPadding=10] Padding between the popup and its container, specified as a number of pixels.
  * @cfg {jQuery} [$content] Content to append to the popup's body
- * @cfg {boolean} [autoClose=false] Popup auto-closes when it loses focus
- * @cfg {jQuery} [$autoCloseIgnore] Elements to not auto close when clicked
- * @cfg {boolean} [head] Show label and close button at the top
- * @cfg {boolean} [padded] Add padding to the body
+ * @cfg {boolean} [autoClose=false] Automatically close the popup when it loses focus.
+ * @cfg {jQuery} [$autoCloseIgnore] Elements that will not close the popup when clicked.
+ *  This config option is only relevant if #autoClose is set to `true`. See the [OOjs UI docs on MediaWiki][2]
+ *  for an example.
+ *  [2]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Popups#autocloseExample
+ * @cfg {boolean} [head] Show a popup header that contains a #label (if specified) and close
+ *  button.
+ * @cfg {boolean} [padded] Add padding to the popup's body
  */
 OO.ui.PopupWidget = function OoUiPopupWidget( config ) {
        // Configuration initialization
@@ -12532,6 +13032,7 @@ OO.ui.PopupWidget = function OoUiPopupWidget( config ) {
        this.align = config.align || 'center';
        this.closeButton = new OO.ui.ButtonWidget( { framed: false, icon: 'close' } );
        this.onMouseDownHandler = this.onMouseDown.bind( this );
+       this.onDocumentKeyDownHandler = this.onDocumentKeyDown.bind( this );
 
        // Events
        this.closeButton.connect( this, { click: 'onCloseButtonClick' } );
@@ -12578,7 +13079,8 @@ OO.mixinClass( OO.ui.PopupWidget, OO.ui.ClippableElement );
 /**
  * Handles mouse down events.
  *
- * @param {jQuery.Event} e Mouse down event
+ * @private
+ * @param {MouseEvent} e Mouse down event
  */
 OO.ui.PopupWidget.prototype.onMouseDown = function ( e ) {
        if (
@@ -12592,6 +13094,8 @@ OO.ui.PopupWidget.prototype.onMouseDown = function ( e ) {
 
 /**
  * Bind mouse down listener.
+ *
+ * @private
  */
 OO.ui.PopupWidget.prototype.bindMouseDownListener = function () {
        // Capture clicks outside popup
@@ -12600,6 +13104,8 @@ OO.ui.PopupWidget.prototype.bindMouseDownListener = function () {
 
 /**
  * Handles close button click events.
+ *
+ * @private
  */
 OO.ui.PopupWidget.prototype.onCloseButtonClick = function () {
        if ( this.isVisible() ) {
@@ -12609,13 +13115,50 @@ OO.ui.PopupWidget.prototype.onCloseButtonClick = function () {
 
 /**
  * Unbind mouse down listener.
+ *
+ * @private
  */
 OO.ui.PopupWidget.prototype.unbindMouseDownListener = function () {
        this.getElementWindow().removeEventListener( 'mousedown', this.onMouseDownHandler, true );
 };
 
 /**
- * Set whether to show a anchor.
+ * Handles key down events.
+ *
+ * @private
+ * @param {KeyboardEvent} e Key down event
+ */
+OO.ui.PopupWidget.prototype.onDocumentKeyDown = function ( e ) {
+       if (
+               e.which === OO.ui.Keys.ESCAPE &&
+               this.isVisible()
+       ) {
+               this.toggle( false );
+               e.preventDefault();
+               e.stopPropagation();
+       }
+};
+
+/**
+ * Bind key down listener.
+ *
+ * @private
+ */
+OO.ui.PopupWidget.prototype.bindKeyDownListener = function () {
+       this.getElementWindow().addEventListener( 'keydown', this.onDocumentKeyDownHandler, true );
+};
+
+/**
+ * Unbind key down listener.
+ *
+ * @private
+ */
+OO.ui.PopupWidget.prototype.unbindKeyDownListener = function () {
+       this.getElementWindow().removeEventListener( 'keydown', this.onDocumentKeyDownHandler, true );
+};
+
+/**
+ * Show, hide, or toggle the visibility of the anchor.
  *
  * @param {boolean} [show] Show anchor, omit to toggle
  */
@@ -12633,9 +13176,9 @@ OO.ui.PopupWidget.prototype.toggleAnchor = function ( show ) {
 };
 
 /**
- * Check if showing a anchor.
+ * Check if the anchor is visible.
  *
- * @return {boolean} anchor is visible
+ * @return {boolean} Anchor is visible
  */
 OO.ui.PopupWidget.prototype.hasAnchor = function () {
        return this.anchor;
@@ -12656,6 +13199,7 @@ OO.ui.PopupWidget.prototype.toggle = function ( show ) {
                if ( show ) {
                        if ( this.autoClose ) {
                                this.bindMouseDownListener();
+                               this.bindKeyDownListener();
                        }
                        this.updateDimensions();
                        this.toggleClipping( true );
@@ -12663,6 +13207,7 @@ OO.ui.PopupWidget.prototype.toggle = function ( show ) {
                        this.toggleClipping( false );
                        if ( this.autoClose ) {
                                this.unbindMouseDownListener();
+                               this.unbindKeyDownListener();
                        }
                }
        }
@@ -12675,8 +13220,8 @@ OO.ui.PopupWidget.prototype.toggle = function ( show ) {
  *
  * Changing the size may also change the popup's position depending on the alignment.
  *
- * @param {number} width Width
- * @param {number} height Height
+ * @param {number} width Width in pixels
+ * @param {number} height Height in pixels
  * @param {boolean} [transition=false] Use a smooth transition
  * @chainable
  */
@@ -12771,14 +13316,40 @@ OO.ui.PopupWidget.prototype.updateDimensions = function ( transition ) {
 };
 
 /**
- * Progress bar widget.
+ * Progress bars visually display the status of an operation, such as a download,
+ * and can be either determinate or indeterminate:
+ *
+ * - **determinate** process bars show the percent of an operation that is complete.
+ *
+ * - **indeterminate** process bars use a visual display of motion to indicate that an operation
+ *   is taking place. Because the extent of an indeterminate operation is unknown, the bar does
+ *   not use percentages.
+ *
+ * The value of the `progress` configuration determines whether the bar is determinate or indeterminate.
+ *
+ *     @example
+ *     // Examples of determinate and indeterminate progress bars.
+ *     var progressBar1 = new OO.ui.ProgressBarWidget( {
+ *         progress: 33
+ *     } );
+ *     var progressBar2 = new OO.ui.ProgressBarWidget();
+ *
+ *     // Create a FieldsetLayout to layout progress bars
+ *     var fieldset = new OO.ui.FieldsetLayout;
+ *     fieldset.addItems( [
+ *        new OO.ui.FieldLayout( progressBar1, {label: 'Determinate', align: 'top'}),
+ *        new OO.ui.FieldLayout( progressBar2, {label: 'Indeterminate', align: 'top'})
+ *     ] );
+ *     $( 'body' ).append( fieldset.$element );
  *
  * @class
  * @extends OO.ui.Widget
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {number|boolean} [progress=false] Initial progress percent or false for indeterminate
+ * @cfg {number|boolean} [progress=false] The type of progress bar (determinate or indeterminate).
+ *  To create a determinate progress bar, specify a number that reflects the initial percent complete.
+ *  By default, the progress bar is indeterminate.
  */
 OO.ui.ProgressBarWidget = function OoUiProgressBarWidget( config ) {
        // Configuration initialization
@@ -12815,18 +13386,18 @@ OO.ui.ProgressBarWidget.static.tagName = 'div';
 /* Methods */
 
 /**
- * Get progress percent
+ * Get the percent of the progress that has been completed. Indeterminate progresses will return `false`.
  *
- * @return {number} Progress percent
+ * @return {number|boolean} Progress percent
  */
 OO.ui.ProgressBarWidget.prototype.getProgress = function () {
        return this.progress;
 };
 
 /**
- * Set progress percent
+ * Set the percent of the process completed or `false` for an indeterminate process.
  *
- * @param {number|boolean} progress Progress percent or false for indeterminate
+ * @param {number|boolean} progress Progress percent or `false` for indeterminate
  */
 OO.ui.ProgressBarWidget.prototype.setProgress = function ( progress ) {
        this.progress = progress;
@@ -12842,10 +13413,16 @@ OO.ui.ProgressBarWidget.prototype.setProgress = function ( progress ) {
 };
 
 /**
- * Search widget.
+ * SearchWidgets combine a {@link OO.ui.TextInputWidget text input field}, where users can type a search query,
+ * and a {@link OO.ui.TextInputMenuSelectWidget menu} of search results, which is displayed beneath the query
+ * field. Unlike {@link OO.ui.LookupElement lookup menus}, search result menus are always visible to the user.
+ * Users can choose an item from the menu or type a query into the text field to search for a matching result item.
+ * In general, search widgets are used inside a separate {@link OO.ui.Dialog dialog} window.
+ *
+ * Each time the query is changed, the search result menu is cleared and repopulated. Please see
+ * the [OOjs UI demos][1] for an example.
  *
- * Search widgets combine a query input, placed above, and a results selection widget, placed below.
- * Results are cleared and populated each time the query is changed.
+ * [1]: https://tools.wmflabs.org/oojs-ui/oojs-ui/demos/#dialogs-mediawiki-vector-ltr
  *
  * @class
  * @extends OO.ui.Widget
@@ -12902,11 +13479,19 @@ OO.inheritClass( OO.ui.SearchWidget, OO.ui.Widget );
 /* Events */
 
 /**
+ * A 'highlight' event is emitted when an item is highlighted. The highlight indicates which
+ * item will be selected. When a user mouses over a menu item, it is highlighted. If a search
+ * string is typed into the query field instead, the first menu item that matches the query
+ * will be highlighted.
+
  * @event highlight
  * @param {Object|null} item Item data or null if no item is highlighted
  */
 
 /**
+ * A 'select' event is emitted when an item is selected. A menu item is selected when it is clicked,
+ * or when a user types a search query, a menu result is highlighted, and the user presses enter.
+ *
  * @event select
  * @param {Object|null} item Item data or null if no item is selected
  */
@@ -12916,6 +13501,7 @@ OO.inheritClass( OO.ui.SearchWidget, OO.ui.Widget );
 /**
  * Handle query key down events.
  *
+ * @private
  * @param {jQuery.Event} e Key down event
  */
 OO.ui.SearchWidget.prototype.onQueryKeydown = function ( e ) {
@@ -12938,6 +13524,7 @@ OO.ui.SearchWidget.prototype.onQueryKeydown = function ( e ) {
  *
  * Clears existing results. Subclasses should repopulate items according to new query.
  *
+ * @private
  * @param {string} value New value
  */
 OO.ui.SearchWidget.prototype.onQueryChange = function () {
@@ -12950,6 +13537,7 @@ OO.ui.SearchWidget.prototype.onQueryChange = function () {
  *
  * Selects highlighted item.
  *
+ * @private
  * @param {string} value New value
  */
 OO.ui.SearchWidget.prototype.onQueryEnter = function () {
@@ -12960,6 +13548,7 @@ OO.ui.SearchWidget.prototype.onQueryEnter = function () {
 /**
  * Handle select widget highlight events.
  *
+ * @private
  * @param {OO.ui.OptionWidget} item Highlighted item
  * @fires highlight
  */
@@ -12970,6 +13559,7 @@ OO.ui.SearchWidget.prototype.onResultsHighlight = function ( item ) {
 /**
  * Handle select widget select events.
  *
+ * @private
  * @param {OO.ui.OptionWidget} item Selected item
  * @fires select
  */
@@ -12987,9 +13577,9 @@ OO.ui.SearchWidget.prototype.getQuery = function () {
 };
 
 /**
- * Get the results list.
+ * Get the search results menu.
  *
- * @return {OO.ui.SelectWidget} Select list
+ * @return {OO.ui.SelectWidget} Menu of search results
  */
 OO.ui.SearchWidget.prototype.getResults = function () {
        return this.results;
@@ -13001,9 +13591,28 @@ OO.ui.SearchWidget.prototype.getResults = function () {
  * {@link OO.ui.RadioSelectWidget radio selects}, and {@link OO.ui.MenuSelectWidget
  * menu selects}.
  *
- * This class should be used together with OO.ui.OptionWidget.
+ * This class should be used together with OO.ui.OptionWidget or OO.ui.DecoratedOptionWidget. For more
+ * information, please see the [OOjs UI documentation on MediaWiki][1].
  *
- * For more information, please see the [OOjs UI documentation on MediaWiki][1].
+ *     @example
+ *     // Example of a select widget with three options
+ *     var select = new OO.ui.SelectWidget( {
+ *         items: [
+ *             new OO.ui.OptionWidget( {
+ *                 data: 'a',
+ *                 label: 'Option One',
+ *             } ),
+ *             new OO.ui.OptionWidget( {
+ *                 data: 'b',
+ *                 label: 'Option Two',
+ *             } ),
+ *             new OO.ui.OptionWidget( {
+ *                 data: 'c',
+ *                 label: 'Option Three',
+ *             } )
+ *         ]
+ *     } );
+ *     $( 'body' ).append( select.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Selects_and_Options
  *
@@ -13088,6 +13697,7 @@ OO.mixinClass( OO.ui.SelectWidget, OO.ui.GroupWidget );
 
 /**
  * @event choose
+ * A `choose` event is emitted when an item is chosen with the #chooseItem method.
  * @param {OO.ui.OptionWidget|null} item Chosen item
  */
 
@@ -13285,6 +13895,8 @@ OO.ui.SelectWidget.prototype.onKeyDown = function ( e ) {
 
 /**
  * Bind key down listener.
+ *
+ * @protected
  */
 OO.ui.SelectWidget.prototype.bindKeyDownListener = function () {
        this.getElementWindow().addEventListener( 'keydown', this.onKeyDownHandler, true );
@@ -13292,6 +13904,8 @@ OO.ui.SelectWidget.prototype.bindKeyDownListener = function () {
 
 /**
  * Unbind key down listener.
+ *
+ * @protected
  */
 OO.ui.SelectWidget.prototype.unbindKeyDownListener = function () {
        this.getElementWindow().removeEventListener( 'keydown', this.onKeyDownHandler, true );
@@ -13347,6 +13961,10 @@ OO.ui.SelectWidget.prototype.getHighlightedItem = function () {
 /**
  * Toggle pressed state.
  *
+ * Press is a state that occurs when a user mouses down on an item, but
+ * has not yet let go of the mouse. The item may appear selected, but it will not be selected
+ * until the user releases the mouse.
+ *
  * @param {boolean} pressed An option is being pressed
  */
 OO.ui.SelectWidget.prototype.togglePressed = function ( pressed ) {
@@ -13416,6 +14034,10 @@ OO.ui.SelectWidget.prototype.selectItem = function ( item ) {
 /**
  * Press an item.
  *
+ * Press is a state that occurs when a user mouses down on an item, but has not
+ * yet let go of the mouse. The item may appear selected, but it will not be selected until the user
+ * releases the mouse.
+ *
  * @param {OO.ui.OptionWidget} [item] Item to press, omit to depress all
  * @fires press
  * @chainable
@@ -13441,8 +14063,12 @@ OO.ui.SelectWidget.prototype.pressItem = function ( item ) {
 /**
  * Choose an item.
  *
- * Identical to #selectItem, but may vary in subclasses that want to take additional action when
- * an item is selected using the keyboard or mouse.
+ * Note that ‘choose’ should never be modified programmatically. A user can choose
+ * an option with the keyboard or mouse and it becomes selected. To select an item programmatically,
+ * use the #selectItem method.
+ *
+ * This method is identical to #selectItem, but may vary in subclasses that take additional action
+ * when users choose an item with the keyboard or mouse.
  *
  * @param {OO.ui.OptionWidget} item Item to choose
  * @fires choose
@@ -13589,25 +14215,25 @@ OO.ui.SelectWidget.prototype.clearItems = function () {
  *     var option1 = new OO.ui.ButtonOptionWidget( {
  *         data: 1,
  *         label: 'Option 1',
- *         title:'Button option 1'
+ *         title: 'Button option 1'
  *     } );
  *
  *     var option2 = new OO.ui.ButtonOptionWidget( {
  *         data: 2,
  *         label: 'Option 2',
- *         title:'Button option 2'
+ *         title: 'Button option 2'
  *     } );
  *
  *     var option3 = new OO.ui.ButtonOptionWidget( {
  *         data: 3,
  *         label: 'Option 3',
- *         title:'Button option 3'
+ *         title: 'Button option 3'
  *     } );
  *
  *     var buttonSelect=new OO.ui.ButtonSelectWidget( {
- *         items: [option1, option2, option3]
+ *         items: [ option1, option2, option3 ]
  *     } );
- *     $('body').append(buttonSelect.$element);
+ *     $( 'body' ).append( buttonSelect.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Selects_and_Options
  *
@@ -13659,13 +14285,13 @@ OO.mixinClass( OO.ui.ButtonSelectWidget, OO.ui.TabIndexedElement );
  *     } );
  *
  *     var radioSelect=new OO.ui.RadioSelectWidget( {
- *         items: [option1, option2]
+ *         items: [ option1, option2 ]
  *      } );
  *
  *     // Select 'option 1' using the RadioSelectWidget's selectItem() method.
  *     radioSelect.selectItem( option1 );
  *
- *     $('body').append(radioSelect.$element);
+ *     $( 'body' ).append( radioSelect.$element );
  *
  * [1]: https://www.mediawiki.org/wiki/OOjs_UI/Widgets/Selects_and_Options
 
@@ -13701,9 +14327,10 @@ OO.mixinClass( OO.ui.RadioSelectWidget, OO.ui.TabIndexedElement );
 
 /**
  * MenuSelectWidget is a {@link OO.ui.SelectWidget select widget} that contains options and
- * is used together with OO.ui.MenuOptionWidget. See {@link OO.ui.DropdownWidget DropdownWidget} and
- * {@link OO.ui.ComboBoxWidget ComboBoxWidget} for examples of interfaces that contain menus.
- * MenuSelectWidgets themselves are not designed to be instantiated directly, rather subclassed
+ * is used together with OO.ui.MenuOptionWidget. It is designed be used as part of another widget.
+ * See {@link OO.ui.DropdownWidget DropdownWidget}, {@link OO.ui.ComboBoxWidget ComboBoxWidget},
+ * and {@link OO.ui.LookupElement LookupElement} for examples of widgets that contain menus.
+ * MenuSelectWidgets themselves are not instantiated directly, rather subclassed
  * and customized to be opened, closed, and displayed as needed.
  *
  * By default, menus are clipped to the visible viewport and are not visible when a user presses the
@@ -13725,9 +14352,12 @@ OO.mixinClass( OO.ui.RadioSelectWidget, OO.ui.TabIndexedElement );
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {OO.ui.TextInputWidget} [input] Input to bind keyboard handlers to
- * @cfg {OO.ui.Widget} [widget] Widget to bind mouse handlers to
- * @cfg {boolean} [autoHide=true] Hide the menu when the mouse is pressed outside the menu
+ * @cfg {OO.ui.TextInputWidget} [input] Text input used to implement option highlighting for menu items that match
+ *  the text the user types. This config is used by {@link OO.ui.ComboBoxWidget ComboBoxWidget}
+ *  and {@link OO.ui.LookupElement LookupElement}
+ * @cfg {OO.ui.Widget} [widget] Widget associated with the menu’s active state. If the user clicks the mouse
+ *  anywhere on the page outside of this widget, the menu is hidden.
+ * @cfg {boolean} [autoHide=true] Hide the menu when the mouse is pressed outside the menu.
  */
 OO.ui.MenuSelectWidget = function OoUiMenuSelectWidget( config ) {
        // Configuration initialization
@@ -13839,8 +14469,10 @@ OO.ui.MenuSelectWidget.prototype.unbindKeyDownListener = function () {
 /**
  * Choose an item.
  *
- * This will close the menu, unlike #selectItem which only changes selection.
+ * When a user chooses an item, the menu is closed.
  *
+ * Note that ‘choose’ should never be modified programmatically. A user can choose an option with the keyboard
+ * or mouse and it becomes selected. To select an item programmatically, use the #selectItem method.
  * @param {OO.ui.OptionWidget} item Item to choose
  * @chainable
  */
@@ -13949,10 +14581,10 @@ OO.ui.MenuSelectWidget.prototype.toggle = function ( visible ) {
 };
 
 /**
- * Menu for a text input widget.
- *
- * This menu is specially designed to be positioned beneath a text input widget. The menu's position
- * is automatically calculated and maintained when the menu is toggled or the window is resized.
+ * TextInputMenuSelectWidget is a menu that is specially designed to be positioned beneath
+ * a {@link OO.ui.TextInputWidget text input} field. The menu's position is automatically
+ * calculated and maintained when the menu is toggled or the window is resized.
+ * See OO.ui.ComboBoxWidget for an example of a widget that uses this class.
  *
  * @class
  * @extends OO.ui.MenuSelectWidget
@@ -13993,6 +14625,7 @@ OO.inheritClass( OO.ui.TextInputMenuSelectWidget, OO.ui.MenuSelectWidget );
 /**
  * Handle window resize event.
  *
+ * @private
  * @param {jQuery.Event} e Window resize event
  */
 OO.ui.TextInputMenuSelectWidget.prototype.onWindowResize = function () {
@@ -14032,6 +14665,7 @@ OO.ui.TextInputMenuSelectWidget.prototype.toggle = function ( visible ) {
 /**
  * Position the menu.
  *
+ * @private
  * @chainable
  */
 OO.ui.TextInputMenuSelectWidget.prototype.position = function () {
@@ -14051,9 +14685,10 @@ OO.ui.TextInputMenuSelectWidget.prototype.position = function () {
 };
 
 /**
- * Structured list of items.
+ * OutlineSelectWidget is a structured list that contains {@link OO.ui.OutlineOptionWidget outline options}
+ * A set of controls can be provided with an {@link OO.ui.OutlineControlsWidget outline controls} widget.
  *
- * Use with OO.ui.OutlineOptionWidget.
+ * ####Currently, this class is only used by {@link OO.ui.BookletLayout BookletLayouts}.####
  *
  * @class
  * @extends OO.ui.SelectWidget
@@ -14085,7 +14720,26 @@ OO.inheritClass( OO.ui.OutlineSelectWidget, OO.ui.SelectWidget );
 OO.mixinClass( OO.ui.OutlineSelectWidget, OO.ui.TabIndexedElement );
 
 /**
- * Switch that slides on and off.
+ * ToggleSwitches are switches that slide on and off. Their state is represented by a Boolean
+ * value (`true` for ‘on’, and `false` otherwise, the default). The ‘off’ state is represented
+ * visually by a slider in the leftmost position.
+ *
+ *     @example
+ *     // Toggle switches in the 'off' and 'on' position.
+ *     var toggleSwitch1 = new OO.ui.ToggleSwitchWidget();
+ *     var toggleSwitch2 = new OO.ui.ToggleSwitchWidget( {
+ *         value: true
+ *     } );
+ *
+ *     // Create a FieldsetLayout to layout and label switches
+ *     var fieldset = new OO.ui.FieldsetLayout( {
+ *        label: 'Toggle switches'
+ *     } );
+ *     fieldset.addItems( [
+ *         new OO.ui.FieldLayout( toggleSwitch1, { label: 'Off', align: 'top' } ),
+ *         new OO.ui.FieldLayout( toggleSwitch2, { label: 'On', align: 'top' } )
+ *     ] );
+ *     $( 'body' ).append( fieldset.$element );
  *
  * @class
  * @extends OO.ui.Widget
@@ -14094,7 +14748,8 @@ OO.mixinClass( OO.ui.OutlineSelectWidget, OO.ui.TabIndexedElement );
  *
  * @constructor
  * @param {Object} [config] Configuration options
- * @cfg {boolean} [value=false] Initial value
+ * @cfg {boolean} [value=false] The toggle switch’s initial on/off state.
+ *  By default, the toggle switch is in the 'off' position.
  */
 OO.ui.ToggleSwitchWidget = function OoUiToggleSwitchWidget( config ) {
        // Parent constructor
@@ -14137,6 +14792,7 @@ OO.mixinClass( OO.ui.ToggleSwitchWidget, OO.ui.TabIndexedElement );
 /**
  * Handle mouse click events.
  *
+ * @private
  * @param {jQuery.Event} e Mouse click event
  */
 OO.ui.ToggleSwitchWidget.prototype.onClick = function ( e ) {
@@ -14149,13 +14805,14 @@ OO.ui.ToggleSwitchWidget.prototype.onClick = function ( e ) {
 /**
  * Handle key press events.
  *
+ * @private
  * @param {jQuery.Event} e Key press event
  */
 OO.ui.ToggleSwitchWidget.prototype.onKeyPress = function ( e ) {
        if ( !this.isDisabled() && ( e.which === OO.ui.Keys.SPACE || e.which === OO.ui.Keys.ENTER ) ) {
                this.setValue( !this.value );
+               return false;
        }
-       return false;
 };
 
 }( OO ) );
index 53d6441..c65a5c1 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-constructive.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/add-constructive.png differ
index cfbb6d8..0d37afa 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #00C697 }</style>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #00AF89 }</style>
     <g id="add">
         <path id="plus" d="M13 8h-2v3h-3v2h3v3h2v-3h3v-2h-3z"/>
     </g>
index e074515..733c3f9 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced-invert.png differ
index c3e43d1..fe3dc5b 100644 (file)
@@ -1,6 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
-    <g id="settings">
-        <path id="gear" d="M20.869 13.476c.079-.482.131-.972.131-1.476s-.052-.994-.131-1.476l-2.463-.259c-.149-.556-.367-1.082-.648-1.57l1.558-1.924c-.576-.806-1.281-1.511-2.087-2.087l-1.924 1.558c-.488-.281-1.015-.499-1.57-.648l-.259-2.463c-.482-.079-.972-.131-1.476-.131s-.994.052-1.476.131l-.259 2.463c-.555.149-1.081.367-1.57.648l-1.924-1.557c-.805.576-1.51 1.281-2.086 2.086l1.558 1.924c-.281.488-.499 1.015-.648 1.57l-2.463.259c-.08.482-.132.972-.132 1.476s.052.994.131 1.476l2.463.259c.149.556.367 1.082.648 1.57l-1.558 1.924c.576.806 1.281 1.511 2.087 2.087l1.924-1.558c.488.281 1.015.499 1.57.648l.259 2.463c.482.079.972.131 1.476.131s.994-.052 1.476-.131l.259-2.463c.556-.149 1.082-.367 1.57-.648l1.924 1.558c.806-.576 1.511-1.281 2.087-2.087l-1.558-1.924c.281-.488.499-1.015.648-1.57l2.463-.259zm-8.869 2.522c-2.209 0-3.998-1.789-3.998-3.998s1.789-3.998 3.998-3.998 3.998 1.789 3.998 3.998-1.789 3.998-3.998 3.998z"/>
-    </g>
+    <path d="M20 14.5v-2.9l-1.8-.3c-.1-.4-.3-.8-.6-1.4l1.1-1.5-2.1-2.1-1.5 1.1c-.5-.3-1-.5-1.4-.6l-.2-1.8h-2.9l-.3 1.8c-.5.1-.9.3-1.4.6l-1.5-1.1-2.1 2.1 1 1.5c-.3.5-.4.9-.6 1.4l-1.7.2v2.9l1.8.3c.1.5.3.9.6 1.4l-1 1.5 2.1 2.1 1.5-1c.4.2.9.4 1.4.6l.3 1.8h3l.3-1.8c.5-.1.9-.3 1.4-.6l1.5 1.1 2.1-2.1-1.1-1.5c.3-.5.5-1 .6-1.4l1.5-.3zm-8 1.5c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3z"/>
 </svg>
index 514ff1d..7dab898 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/advanced.png differ
index 201b4d7..b4629bf 100644 (file)
@@ -1,6 +1,4 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <g id="settings">
-        <path id="gear" d="M20.869 13.476c.079-.482.131-.972.131-1.476s-.052-.994-.131-1.476l-2.463-.259c-.149-.556-.367-1.082-.648-1.57l1.558-1.924c-.576-.806-1.281-1.511-2.087-2.087l-1.924 1.558c-.488-.281-1.015-.499-1.57-.648l-.259-2.463c-.482-.079-.972-.131-1.476-.131s-.994.052-1.476.131l-.259 2.463c-.555.149-1.081.367-1.57.648l-1.924-1.557c-.805.576-1.51 1.281-2.086 2.086l1.558 1.924c-.281.488-.499 1.015-.648 1.57l-2.463.259c-.08.482-.132.972-.132 1.476s.052.994.131 1.476l2.463.259c.149.556.367 1.082.648 1.57l-1.558 1.924c.576.806 1.281 1.511 2.087 2.087l1.924-1.558c.488.281 1.015.499 1.57.648l.259 2.463c.482.079.972.131 1.476.131s.994-.052 1.476-.131l.259-2.463c.556-.149 1.082-.367 1.57-.648l1.924 1.558c.806-.576 1.511-1.281 2.087-2.087l-1.558-1.924c.281-.488.499-1.015.648-1.57l2.463-.259zm-8.869 2.522c-2.209 0-3.998-1.789-3.998-3.998s1.789-3.998 3.998-3.998 3.998 1.789 3.998 3.998-1.789 3.998-3.998 3.998z"/>
-    </g>
+    <path d="M20 14.5v-2.9l-1.8-.3c-.1-.4-.3-.8-.6-1.4l1.1-1.5-2.1-2.1-1.5 1.1c-.5-.3-1-.5-1.4-.6l-.2-1.8h-2.9l-.3 1.8c-.5.1-.9.3-1.4.6l-1.5-1.1-2.1 2.1 1 1.5c-.3.5-.4.9-.6 1.4l-1.7.2v2.9l1.8.3c.1.5.3.9.6 1.4l-1 1.5 2.1 2.1 1.5-1c.4.2.9.4 1.4.6l.3 1.8h3l.3-1.8c.5-.1.9-.3 1.4-.6l1.5 1.1 2.1-2.1-1.1-1.5c.3-.5.5-1 .6-1.4l1.5-.3zm-8 1.5c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3z"/>
 </svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/alert-warning.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/alert-warning.png
new file mode 100644 (file)
index 0000000..fcf98c5
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/alert-warning.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/alert-warning.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/alert-warning.svg
new file mode 100644 (file)
index 0000000..6928cab
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FF5D00 }</style>
+    <g id="alert">
+        <path id="point" d="M11 16h2v2h-2z"/>
+        <path id="stroke" d="M13.516 10h-3l.484 5h2z"/>
+        <path id="triangle" d="M12.017 5.974l7.519 13.026h-15.04l7.521-13.026m0-2.474c-.544 0-1.088.357-1.5 1.071l-7.985 13.831c-.825 1.429-.15 2.598 1.5 2.598h15.968c1.65 0 2.325-1.169 1.5-2.599l-7.983-13.829c-.413-.715-.956-1.072-1.5-1.072z"/>
+    </g>
+</svg>
index 8a07140..c6cbec1 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arched-arrow-ltr-invert.png differ
index 1874597..75b23b4 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
-    <g id="arched-arrow-ltr">
-        <path id="arrow" d="M19.925 14.937l-2.391-6.901-1.48 2.329c-.964-.845-2.699-1.85-5.513-1.823-4.887.046-6.524 4.244-6.524 4.244s2.753-2.639 6.925-1.949c1.729.286 3.007 1.206 3.675 1.791l-1.474 2.319 6.782-.01z"/>
+    <g id="arched-arrow-rtl">
+        <path id="arrow" d="M13.401 8.542c-2.814-.027-4.549.978-5.513 1.823l-1.48-2.329-2.391 6.901 6.782.009-1.474-2.319c.668-.584 1.945-1.504 3.675-1.791 4.172-.69 6.925 1.949 6.925 1.949s-1.637-4.197-6.524-4.243z"/>
     </g>
 </svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr.png
new file mode 100644 (file)
index 0000000..8bef0a5
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-ltr.svg
new file mode 100644 (file)
index 0000000..b07621e
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g4">
+        <path d="M16 12h-10c-1.7 0-3 1.3-3 3h13v3l5-4.5-5-4.5v3z" id="path6"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl.png
new file mode 100644 (file)
index 0000000..26e3e69
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/arrow-rtl.svg
new file mode 100644 (file)
index 0000000..a018928
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M8 12h10c1.7 0 3 1.3 3 3h-13v3l-5-4.5 5-4.5v3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr.png
new file mode 100644 (file)
index 0000000..99dd638
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-ltr.svg
new file mode 100644 (file)
index 0000000..b719946
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M12 10h4v-5h-4v5zm-5 2h9v-1h-9v1zm0 2h9v-1h-9v1zm0 2h9v-1h-9v1zm4-9h-4v1h4v-1zm0 2h-4v1h4v-1zm0-4h-4v1h4v-1zm-6-2h13v16h-10c-1.7 0-3-1.3-3-3v-13z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl.png
new file mode 100644 (file)
index 0000000..e5e47aa
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/article-rtl.svg
new file mode 100644 (file)
index 0000000..f14dfbd
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g16">
+        <path d="M11 10h-4v-5h4v5zm5 2h-9v-1h9v1zm0 2h-9v-1h9v1zm0 2h-9v-1h9v1zm-4-9h4v1h-4v-1zm0 2h4v1h-4v-1zm0-4h4v1h-4v-1zm6-2h-13v16h10c1.7 0 3-1.3 3-3v-13z" id="path18"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr.png
new file mode 100644 (file)
index 0000000..a7c76b8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-ltr.svg
new file mode 100644 (file)
index 0000000..7711971
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <g>
+            <path d="M21 11l-6 7-4-4-1 1 5 5 7-8z"/>
+        </g>
+        <path d="M17 14v-11h-13v13c0 1.7 1.3 3 3 3h5l-3-3h-3v-1h2.6l1-1h-3.6v-1h9v1h-2l1 1h2l1-1zm-11-9h4v1h-4v-1zm0 2h4v1h-4v-1zm0 2h4v1h-4v-1zm9 3h-9v-1h9v1zm-4-2v-5h4v5h-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl.png
new file mode 100644 (file)
index 0000000..314b8eb
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleCheck-rtl.svg
new file mode 100644 (file)
index 0000000..771b3ff
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g28">
+        <g id="g30">
+            <path d="M5 11l6 7 4-4 1 1-5 5-7-8z" id="path32"/>
+        </g>
+        <path d="M9 14v-11h13v13c0 1.7-1.3 3-3 3h-5l3-3h3v-1h-2.6l-1-1h3.6v-1h-9v1h2l-1 1h-2l-1-1zm11-9h-4v1h4v-1zm0 2h-4v1h4v-1zm0 2h-4v1h4v-1zm-9 3h9v-1h-9v1zm4-2v-5h-4v5h4z" id="path34"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr.png
new file mode 100644 (file)
index 0000000..93f8624
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-ltr.svg
new file mode 100644 (file)
index 0000000..e54c0c4
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M19.1 18.5c.6-.7.9-1.5.9-2.5 0-2.2-1.8-4-4-4s-4 1.8-4 4 1.8 4 4 4c.7 0 1.3-.1 1.8-.4l2.7 2.7 1.1-1.1-2.5-2.7zm-3.1-.3c-1.2 0-2.2-1-2.2-2.3 0-1.2 1-2.2 2.2-2.2 1.2 0 2.3 1 2.3 2.2-.1 1.3-1.1 2.3-2.3 2.3zm-4.2-5.2c.3-.4.6-.7 1-1h-5.8v-1h9s1.2 0 2 .6v-8.6h-13v13c0 1.7 1.3 3 3 3h3.8c-.6-.8-1-1.9-1-3h-3.8v-1h3.9l.3-1h-4.2v-1h4.8zm.2-8h4v5h-4v-5zm-5 0h4v1h-4v-1zm0 2h4v1h-4v-1zm0 2h4v1h-4v-1z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl.png
new file mode 100644 (file)
index 0000000..7cf4ac8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/articleSearch-rtl.svg
new file mode 100644 (file)
index 0000000..31134f1
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g44">
+        <path d="M7.5 18.5c-.6-.7-.9-1.5-.9-2.5 0-2.2 1.8-4 4-4s4 1.8 4 4-1.8 4-4 4c-.7 0-1.3-.1-1.8-.4l-2.7 2.7-1.1-1.1 2.5-2.7zm3.1-.3c1.2 0 2.2-1 2.2-2.3 0-1.2-1-2.2-2.2-2.2-1.2 0-2.3 1-2.3 2.2.1 1.3 1.1 2.3 2.3 2.3zm4.2-5.2c-.3-.4-.6-.7-1-1h5.8v-1h-9s-1.2 0-2 .6v-8.6h13v13c0 1.7-1.3 3-3 3h-3.8c.6-.8 1-1.9 1-3h3.8v-1h-3.9l-.3-1h4.2v-1h-4.8zm-.2-8h-4v5h4v-5zm5 0h-4v1h4v-1zm0 2h-4v1h4v-1zm0 2h-4v1h4v-1z" id="path46"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bell.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bell.png
new file mode 100644 (file)
index 0000000..948443f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bell.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bell.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bell.svg
new file mode 100644 (file)
index 0000000..df08800
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M17.5 14v-5c0-3-2.3-5-5.5-5s-5.5 2-5.5 5v5c0 2 0 3-2 3v1h15v-1c-2 0-2-1-2-3zm-5.5 6h-3c0 1 1.6 2 3 2s3-1 3-2h-3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr.png
new file mode 100644 (file)
index 0000000..4450e69
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-ltr.svg
new file mode 100644 (file)
index 0000000..f419e79
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M17.8 14.7l1.7-4.7c1-2.8-.5-5.5-3.5-6.6s-5.9 0-6.9 2.8l-1.7 4.7c-.7 1.9-1 2.8-2.9 2.1l-.3 1 14.1 5.1.3-.9c-1.9-.7-1.5-1.6-.8-3.5zm-5.8 5.1l-2.8-1c-.3.9.8 2.4 2.1 2.9s3.2.1 3.5-.9l-2.8-1z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl.png
new file mode 100644 (file)
index 0000000..b236b99
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bellOn-rtl.svg
new file mode 100644 (file)
index 0000000..e4c3a3f
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M6.209 14.7l-1.7-4.7c-1-2.8.5-5.5 3.5-6.6 3-1.1 5.9 0 6.9 2.8l1.7 4.7c.7 1.9 1 2.8 2.9 2.1l.3 1-14.1 5.1-.3-.9c1.9-.7 1.5-1.6.8-3.5zm5.8 5.1l2.8-1c.3.9-.8 2.4-2.1 2.9s-3.2.1-3.5-.9l2.8-1z" id="path56"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/beta.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/beta.png
new file mode 100644 (file)
index 0000000..ef3e20a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/beta.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/beta.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/beta.svg
new file mode 100644 (file)
index 0000000..51a5c78
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm4 12l-3-2-1 4-1-4-3 2 2-3-4-1 4-1-2-3 3 2 1-4 1 4 3-2-2 3 4 1-4 1 2 3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.png
new file mode 100644 (file)
index 0000000..f1e48ac
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/betaLaunch.svg
new file mode 100644 (file)
index 0000000..a693b59
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M15.3 14.7c.8-3.8-.6-10.7-3.3-10.7-2.7 0-4.2 6.7-3.4 10.5l-1.6 3.5h2.7l.3 1h4c.2-.3.1-.5.3-1h2.7l-1.7-3.3zm-3.3-4.7c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm2 10c0 1.1-2 2-2 2s-2-.9-2-2"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr.png
new file mode 100644 (file)
index 0000000..b1c13a2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-ltr.svg
new file mode 100644 (file)
index 0000000..94ec670
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+  <path d="M12.666 6h-1.372l-4.48 12h1.705l1.494-4h3.999l1.508 4h1.666l-4.52-12zm-2.28 7l1.617-4.333 1.634 4.333h-3.251z" id="a"/>
+  <g id="up">
+    <path id="arrow" d="M15.5 9h7l-3.5-6z"/>
+  </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl.png
new file mode 100644 (file)
index 0000000..052ae37
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bigger-rtl.svg
new file mode 100644 (file)
index 0000000..b2a6c13
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+  <path d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z" id="a"/>
+  <g id="up">
+    <path id="arrow" d="M1.5 9h7L5 3z"/>
+  </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/block.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/block.png
new file mode 100644 (file)
index 0000000..181dace
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/block.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/block.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/block.svg
new file mode 100644 (file)
index 0000000..0ddd1d4
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm5 9h-10v-2h10v2z" id="path4"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.png
new file mode 100644 (file)
index 0000000..76e0db4
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-ltr.svg
new file mode 100644 (file)
index 0000000..3d9cfd7
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g66">
+        <path d="M17 11v2h-2l3.6 3.6c.9-1.3 1.4-2.9 1.4-4.6 0-4.4-3.6-8-8-8-1.7 0-3.3.5-4.6 1.4l5.6 5.6h4zm-13-7l-1 1 2.4 2.4c-.9 1.3-1.4 2.9-1.4 4.6 0 4.4 3.6 8 8 8 1.7 0 3.3-.5 4.6-1.4l2.4 2.4 1-1-16-16zm3 9v-2h2l2 2h-4z" id="path68"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.png
new file mode 100644 (file)
index 0000000..e31809e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/blockUndo-rtl.svg
new file mode 100644 (file)
index 0000000..8f80759
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g66">
+        <path d="M7 11v2h2l-3.6 3.6c-.9-1.3-1.4-2.9-1.4-4.6 0-4.4 3.6-8 8-8 1.7 0 3.3.5 4.6 1.4l-5.6 5.6h-4zm13-7l1 1-2.4 2.4c.9 1.3 1.4 2.9 1.4 4.6 0 4.4-3.6 8-8 8-1.7 0-3.3-.5-4.6-1.4l-2.4 2.4-1-1 16-16zm-3 9v-2h-2l-2 2h4z" id="path68"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr.png
new file mode 100644 (file)
index 0000000..636d3bd
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-ltr.svg
new file mode 100644 (file)
index 0000000..7a058ed
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M15 7c-1.7 0-3 1.3-3 3 0-1.7-1.3-3-3-3h-6v13h6c1.7 0 3 1 3 2 0-1 1.3-2 3-2h6v-13h-6zm5 12h-5c-1.7 0-2 .4-2 .4v-8.9c0-1.4 1.1-2.5 2.5-2.5h4.5v11z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl.png
new file mode 100644 (file)
index 0000000..87f9189
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/book-rtl.svg
new file mode 100644 (file)
index 0000000..6ae47ec
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M9 7c1.7 0 3 1.3 3 3 0-1.7 1.3-3 3-3h6v13h-6c-1.7 0-3 1-3 2 0-1-1.3-2-3-2h-6v-13h6zm-5 12h5c1.7 0 2 .4 2 .4v-8.9c0-1.4-1.1-2.5-2.5-2.5h-4.5v11z" id="path78"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr.png
new file mode 100644 (file)
index 0000000..371dfc6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-ltr.svg
new file mode 100644 (file)
index 0000000..d803d6b
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M15 5h-7c-1.1 0-2 .9-2 2v3h3v11l4-3 4 3v-14c0-1.1-.9-2-2-2zm-6 4h-2v-2c0-.6.4-1 1-1h1v3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl.png
new file mode 100644 (file)
index 0000000..4a50c17
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/bookmark-rtl.svg
new file mode 100644 (file)
index 0000000..744d0f4
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M8 5h7c1.1 0 2 .9 2 2v3h-3v11l-4-3-4 3v-14c0-1.1.9-2 2-2zm6 4h2v-2c0-.6-.4-1-1-1h-1v3z" id="path88"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr.png
new file mode 100644 (file)
index 0000000..80f1a47
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-ltr.svg
new file mode 100644 (file)
index 0000000..7bd0425
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M3 6v11c0 1.7 1.3 3 3 3h15v-14h-18zm2.5 1c.8 0 1.5.7 1.5 1.5s-.7 1.5-1.5 1.5-1.5-.7-1.5-1.5.7-1.5 1.5-1.5zm14.5 12h-14c-1.1 0-2-.9-2-2v-6h16v8z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl.png
new file mode 100644 (file)
index 0000000..ea215df
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/browser-rtl.svg
new file mode 100644 (file)
index 0000000..84b18da
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M21 6v11c0 1.7-1.3 3-3 3h-15v-14h18zm-2.5 1c-.8 0-1.5.7-1.5 1.5s.7 1.5 1.5 1.5 1.5-.7 1.5-1.5-.7-1.5-1.5-1.5zm-14.5 12h14c1.1 0 2-.9 2-2v-6h-16v8z" id="path98"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr.png
new file mode 100644 (file)
index 0000000..a42aaa5
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-ltr.svg
new file mode 100644 (file)
index 0000000..f31ec09
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M7 13.1l8.9 8.9c.8-.8.8-2 0-2.8l-6.1-6.1 6-6.1c.8-.8.8-2 0-2.8l-8.8 8.9z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl.png
new file mode 100644 (file)
index 0000000..9064f61
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caret-rtl.svg
new file mode 100644 (file)
index 0000000..02b4e38
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M16.5 13.1l-8.9 8.9c-.8-.8-.8-2 0-2.8l6.1-6.1-6-6.1c-.8-.8-.8-2 0-2.8l8.8 8.9z" id="path108"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown.png
new file mode 100644 (file)
index 0000000..bc453ea
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretDown.svg
new file mode 100644 (file)
index 0000000..a04ca57
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M12 16l8.9-8.9c-.8-.8-2-.8-2.8 0l-6.1 6.1-6.1-6c-.8-.8-2-.8-2.8 0l8.9 8.8z" id="path4"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp.png
new file mode 100644 (file)
index 0000000..5591095
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/caretUp.svg
new file mode 100644 (file)
index 0000000..d0e0c28
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M12 6.5l8.9 8.9c-.8.8-2 .8-2.8 0l-6.1-6.1-6.1 6c-.8.8-2 .8-2.8 0l8.9-8.8z" id="path4"/>
+</svg>
index 0a6d487..8c167d9 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-constructive.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-constructive.png differ
index 90923d5..05202e5 100644 (file)
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0, 0, 24, 24"><style>* { fill: #00C697 }</style>
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #00AF89 }</style>
     <g id="check">
         <path d="M7.105 13.473l1.422-1.423 1.901 1.902 4.81-6.952 1.657 1.148-6.26 8.852z"/>
     </g>
index 3e42ba8..4f9c1bd 100644 (file)
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0, 0, 24, 24"><style>* { fill: #FFFFFF }</style>
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
     <g id="check">
         <path d="M7.105 13.473l1.422-1.423 1.901 1.902 4.81-6.952 1.657 1.148-6.26 8.852z"/>
     </g>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-progressive.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-progressive.png
new file mode 100644 (file)
index 0000000..f376c97
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-progressive.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-progressive.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/check-progressive.svg
new file mode 100644 (file)
index 0000000..60ce1df
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #347BFF }</style>
+    <g id="check">
+        <path d="M7.105 13.473l1.422-1.423 1.901 1.902 4.81-6.952 1.657 1.148-6.26 8.852z"/>
+    </g>
+</svg>
index 8d4a1f8..03e3660 100644 (file)
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0, 0, 24, 24">
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="check">
         <path d="M7.105 13.473l1.422-1.423 1.901 1.902 4.81-6.952 1.657 1.148-6.26 8.852z"/>
     </g>
index e10c539..0e0d9c2 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/circle-constructive.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/circle-constructive.png differ
index 88e014b..085e667 100644 (file)
@@ -1 +1,2 @@
-<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #00C697 }</style><circle cx="12" cy="12" r="6"></circle></svg>
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #00AF89 }</style><circle cx="12" cy="12" r="6"></circle></svg>
index 03c308d..f5285c7 100644 (file)
@@ -1 +1,2 @@
-<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style><circle cx="12" cy="12" r="6"></circle></svg>
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style><circle cx="12" cy="12" r="6"></circle></svg>
index a600581..436259e 100644 (file)
@@ -1 +1,2 @@
-<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="6"></circle></svg>
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="6"></circle></svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr.png
new file mode 100644 (file)
index 0000000..ae1621c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-ltr.svg
new file mode 100644 (file)
index 0000000..28ba0cb
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M7 12h9v-1h-9v1zm0 2h9v-1h-9v1zm0 2h9v-1h-9v1zm4-9h-4v1h4v-1zm0 2h-4v1h4v-1zm0-4h-4v1h4v-1zm5-2h2v16h-10c-1.7 0-3-1.3-3-3v-13h8v7l1.5-2 1.5 2v-7z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl.png
new file mode 100644 (file)
index 0000000..4acaa0f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/citeArticle-rtl.svg
new file mode 100644 (file)
index 0000000..7625307
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g128">
+        <path d="M16 12h-9v-1h9v1zm0 2h-9v-1h9v1zm0 2h-9v-1h9v1zm-4-9h4v1h-4v-1zm0 2h4v1h-4v-1zm0-4h4v1h-4v-1zm-5-2h-2v16h10c1.7 0 3-1.3 3-3v-13h-8v7l-1.5-2-1.5 2v-7z" id="path130"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/clock.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/clock.png
new file mode 100644 (file)
index 0000000..e62c52c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/clock.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/clock.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/clock.svg
new file mode 100644 (file)
index 0000000..1cf7267
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M12 5c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm3 12l-4-3v-6h2v5l1.7 1.2c1.3.9 1 1.9.3 2.8z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-invert.png
deleted file mode 100644 (file)
index 7b76ffe..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-invert.svg
deleted file mode 100644 (file)
index 0305027..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
-    <g id="close">
-        <path id="x" d="M18.717 6.697l-1.414-1.414-5.303 5.303-5.303-5.303-1.414 1.414 5.303 5.303-5.303 5.303 1.414 1.414 5.303-5.303 5.303 5.303 1.414-1.414-5.303-5.303z"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr-invert.png
new file mode 100644 (file)
index 0000000..004a518
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr-invert.svg
new file mode 100644 (file)
index 0000000..b5ae392
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <path d="M5.6 8.1c-.8-.8-.8-2 0-2.8l6.4 6.5 5.6-5.6 1.4 1.4-5.6 5.6 5 5c.8.8.8 2 0 2.8l-6.4-6.4-5.6 5.6-1.4-1.4 5.6-5.6-5-5.1z" id="path140"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr.png
new file mode 100644 (file)
index 0000000..ea65697
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-ltr.svg
new file mode 100644 (file)
index 0000000..4f0f64e
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M18.4 8.1c.8-.8.8-2 0-2.8l-6.4 6.5-5.6-5.6-1.4 1.4 5.6 5.6-5 5c-.8.8-.8 2 0 2.8l6.4-6.4 5.6 5.6 1.4-1.4-5.6-5.6 5-5.1z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-rtl.png
new file mode 100644 (file)
index 0000000..1cb898d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/close-rtl.svg
new file mode 100644 (file)
index 0000000..d9829d0
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M5.6 8.1c-.8-.8-.8-2 0-2.8l6.4 6.5 5.6-5.6 1.4 1.4-5.6 5.6 5 5c.8.8.8 2 0 2.8l-6.4-6.4-5.6 5.6-1.4-1.4 5.6-5.6-5-5.1z" id="path140"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/close.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/close.png
deleted file mode 100644 (file)
index 4eedfbc..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/close.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/close.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/close.svg
deleted file mode 100644 (file)
index 1345e86..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <g id="close">
-        <path id="x" d="M18.717 6.697l-1.414-1.414-5.303 5.303-5.303-5.303-1.414 1.414 5.303 5.303-5.303 5.303 1.414 1.414 5.303-5.303 5.303 5.303 1.414-1.414-5.303-5.303z"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/closeInput.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/closeInput.png
new file mode 100644 (file)
index 0000000..b18e2e6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/closeInput.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/closeInput.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/closeInput.svg
new file mode 100644 (file)
index 0000000..5d29e3c
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M12 5c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm4 11l-1 1-3-3-3 3-1-1 3-3-3-3 1-1 3 3 3-3 1 1-3 3 3 3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr.png
new file mode 100644 (file)
index 0000000..07abcbe
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-ltr.svg
new file mode 100644 (file)
index 0000000..eb4c360
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M16 5h-12v12c0 1.6 1.3 3 3 3h12v-12c0-1.7-1.4-3-3-3zm-8.5 12c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm0-6c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm4 3c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm4 3c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm0-6c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl.png
new file mode 100644 (file)
index 0000000..54c0af7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/die-rtl.svg
new file mode 100644 (file)
index 0000000..e929fdb
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M7 5h12v12c0 1.6-1.3 3-3 3h-12v-12c0-1.7 1.4-3 3-3zm8.5 12c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5zm0-6c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5zm-4 3c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5zm-4 3c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5zm0-6c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5z" id="path150"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle.png
new file mode 100644 (file)
index 0000000..9408199
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/downTriangle.svg
new file mode 100644 (file)
index 0000000..7bc1c22
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M12 18l8-10h-16z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr.png
new file mode 100644 (file)
index 0000000..b63ca2d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-ltr.svg
new file mode 100644 (file)
index 0000000..d0d5bb5
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M16 11h-3v-7c-1.7 0-3 1.3-3 3v4h-3l4.5 5 4.5-5zm1 2v5h-10c-.6 0-1-.4-1-1v-4h-2v4c0 1.9 1.3 3 3 3h12v-7h-2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl.png
new file mode 100644 (file)
index 0000000..457ef94
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/download-rtl.svg
new file mode 100644 (file)
index 0000000..9abb2ae
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g160">
+        <path d="M7 11h3v-7c1.7 0 3 1.3 3 3v4h3l-4.5 5-4.5-5zm-1 2v5h10c.6 0 1-.4 1-1v-4h2v4c0 1.9-1.3 3-3 3h-12v-7h2z" id="path162"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr.png
new file mode 100644 (file)
index 0000000..afaddc5
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-ltr.svg
new file mode 100644 (file)
index 0000000..3972e07
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="Layer_3">
+        <path d="M17 2l-12 12-1 5 5-1 12-12c0-2-2-4-4-4zm-9.8 13.5c-.3-.3-.7-.6-1-.8 2.3-2.3 11.3-11.4 11.3-11.4.4.1.7.3 1 .7l-11.3 11.5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl.png
new file mode 100644 (file)
index 0000000..4750795
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/edit-rtl.svg
new file mode 100644 (file)
index 0000000..978b2fd
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="Layer_3">
+        <path d="M8 2l12 12 1 5-5-1-12-12c0-2 2-4 4-4zm9.8 13.5c.3-.3.7-.6 1-.8-2.3-2.3-11.3-11.4-11.3-11.4-.4.1-.7.3-1 .7l11.3 11.5z" id="path173"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr.png
new file mode 100644 (file)
index 0000000..966bfcb
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-ltr.svg
new file mode 100644 (file)
index 0000000..7e37682
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="Layer_2">
+        <g id="g184">
+            <path d="M21 4v-1s0-3-3-3-3 3-3 3v1h-1v6h8v-6zm-1.5 0h-3v-1s0-1.5 1.5-1.5c1.48.06 1.5 1.5 1.5 1.5zm-6.5 5.6l-6.8 6.9c-.3-.3-.7-.6-1-.8 1.4-1.4 5-5 7.8-7.9v-1.8l-9 9-1 5 5-1 8-8h-3z" id="path186"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl.png
new file mode 100644 (file)
index 0000000..961abe6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editLock-rtl.svg
new file mode 100644 (file)
index 0000000..0b4751d
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="Layer_2">
+        <g id="g184">
+            <path d="M4 4v-1s0-3 3-3 3 3 3 3v1h1v6h-8v-6zm1.5 0h3v-1s0-1.5-1.5-1.5c-1.48.06-1.5 1.5-1.5 1.5zm6.5 5.6l6.8 6.9c.3-.3.7-.6 1-.8-1.4-1.4-5-5-7.8-7.9v-1.8l9 9 1 5-5-1-8-8h3z" id="path186"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr.png
new file mode 100644 (file)
index 0000000..fe8631e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-ltr.svg
new file mode 100644 (file)
index 0000000..f346874
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g196">
+        <g id="g198">
+            <path d="M14.9 2.8c.9 0 1.8.2 2.7.6.9.4 1.6.9 1.9 1.6-2.8.1-5 1.1-6.6 3.1l1.3 2-6.7-.3.5-6.8 1.7 2c1.8-1.5 3.5-2.2 5.2-2.2z" id="path200"/>
+        </g>
+    </g>
+    <g id="g204">
+        <path d="M15.2 11.1l-2.6-.1-5.4 5.5c-.3-.3-.7-.6-1-.8.9-.9 2.8-2.8 4.7-4.8h-1.8l-4.1 4.1-1 5 5-1 7.8-7.8-1.6-.1zm5.4-5.1c-1.7 0-3.2.5-4.4 1.4l-.9.9.8 1.3.9 1.4 4-4c0-.3-.1-.7-.2-1h-.2z" id="path206"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl.png
new file mode 100644 (file)
index 0000000..ca5596e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/editUndo-rtl.svg
new file mode 100644 (file)
index 0000000..5b59d45
--- /dev/null
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g196">
+        <g id="g198">
+            <path d="M10.1 2.8c-.9 0-1.8.2-2.7.6-.9.4-1.6.9-1.9 1.6 2.8.1 5 1.1 6.6 3.1l-1.3 2 6.7-.3-.5-6.8-1.7 2c-1.8-1.5-3.5-2.2-5.2-2.2z" id="path200"/>
+        </g>
+    </g>
+    <g id="g204">
+        <path d="M9.8 11.1l2.6-.1 5.4 5.5c.3-.3.7-.6 1-.8-.9-.9-2.8-2.8-4.7-4.8h1.8l4.1 4.1 1 5-5-1-7.8-7.8 1.6-.1zm-5.4-5.1c1.7 0 3.2.5 4.4 1.4l.9.9-.8 1.3-.9 1.4-4-4c0-.3.1-.7.2-1h.2z" id="path206"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis-invert.png
new file mode 100644 (file)
index 0000000..1c876e3
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis-invert.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis-invert.svg
new file mode 100644 (file)
index 0000000..510cf3d
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
+    <g>
+        <g>
+            <path d="M8 13c0 .6-.2 1-.6 1.4-.4.4-.9.6-1.4.6-.6 0-1-.2-1.4-.6-.4-.4-.6-.9-.6-1.4s.2-1 .6-1.4c.4-.4.9-.6 1.4-.6s1 .2 1.4.6c.4.4.6.9.6 1.4z"/>
+        </g>
+        <g>
+            <path d="M14 13c0 .6-.2 1-.6 1.4-.4.4-.9.6-1.4.6-.6 0-1-.2-1.4-.6-.4-.4-.6-.9-.6-1.4s.2-1 .6-1.4c.4-.4.9-.6 1.4-.6s1 .2 1.4.6c.4.4.6.9.6 1.4z"/>
+        </g>
+        <g>
+            <path d="M20 13c0 .6-.2 1-.6 1.4-.4.4-.9.6-1.4.6-.6 0-1-.2-1.4-.6-.4-.4-.6-.9-.6-1.4s.2-1 .6-1.4c.4-.4.9-.6 1.4-.6s1 .2 1.4.6c.4.4.6.9.6 1.4z"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis.png
new file mode 100644 (file)
index 0000000..1e4050c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ellipsis.svg
new file mode 100644 (file)
index 0000000..dd36a30
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <g>
+            <path d="M8 13c0 .6-.2 1-.6 1.4-.4.4-.9.6-1.4.6-.6 0-1-.2-1.4-.6-.4-.4-.6-.9-.6-1.4s.2-1 .6-1.4c.4-.4.9-.6 1.4-.6s1 .2 1.4.6c.4.4.6.9.6 1.4z"/>
+        </g>
+        <g>
+            <path d="M14 13c0 .6-.2 1-.6 1.4-.4.4-.9.6-1.4.6-.6 0-1-.2-1.4-.6-.4-.4-.6-.9-.6-1.4s.2-1 .6-1.4c.4-.4.9-.6 1.4-.6s1 .2 1.4.6c.4.4.6.9.6 1.4z"/>
+        </g>
+        <g>
+            <path d="M20 13c0 .6-.2 1-.6 1.4-.4.4-.9.6-1.4.6-.6 0-1-.2-1.4-.6-.4-.4-.6-.9-.6-1.4s.2-1 .6-1.4c.4-.4.9-.6 1.4-.6s1 .2 1.4.6c.4.4.6.9.6 1.4z"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/eye.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/eye.png
new file mode 100644 (file)
index 0000000..26accd8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/eye.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/eye.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/eye.svg
new file mode 100644 (file)
index 0000000..fa3bc3c
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g4">
+        <path d="M12 8c-5 0-11 6-11 6s6 6 11 6 11-6 11-6-6-6-11-6zm0 10c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z" id="path6"/>
+        <circle cx="12" cy="14" r="2" id="circle8"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed.png
new file mode 100644 (file)
index 0000000..301bf8c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/eyeClosed.svg
new file mode 100644 (file)
index 0000000..fa1167d
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M19.4 12.7c.7-.8 1.2-1.7 1.4-2.7h-1.6c-.9 2.5-3.9 4.4-7.7 4.6h-.1c-3.7-.2-6.8-2.1-7.7-4.6h-1.5c.2 1 .8 1.9 1.4 2.7l-2 2 .7.7 2-2c.8.6 1.7 1.2 2.7 1.7l-1 2.8.9.3 1-2.8c1 .3 2 .6 3.1.6v3h1v-3c1.1-.1 2.2-.3 3.1-.6l1 2.8.9-.3-1-2.8c1-.4 1.9-1 2.6-1.7l2 2 .7-.7-1.9-2z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr.png
new file mode 100644 (file)
index 0000000..63ceaaf
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-ltr.svg
new file mode 100644 (file)
index 0000000..6e81d2b
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M14 6.5v-1.5c-1.4-1.5-5.2-1.2-6 0v-1h-1v15h1v-7c.8-.8 3.4-.9 5-.5v1.5c1.2 1.5 4.3 1.2 5 0v-7c-.7.7-2.7.9-4 .5z" id="path216"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl.png
new file mode 100644 (file)
index 0000000..80835c0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flag-rtl.svg
new file mode 100644 (file)
index 0000000..4b743aa
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M11 6.5v-1.5c1.4-1.5 5.2-1.2 6 0v-1h1v15h-1v-7c-.8-.8-3.4-.9-5-.5v1.5c-1.2 1.5-4.3 1.2-5 0v-7c.7.7 2.7.9 4 .5z" id="path216"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.png
new file mode 100644 (file)
index 0000000..fff89fe
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-ltr.svg
new file mode 100644 (file)
index 0000000..49cdb7a
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g2990">
+        <g id="Layer_1">
+            <path id="path227" d="M14 6.5v-1.5c-1.4-1.5-5.2-1.2-6 0v-1h-1v15h1v-7c.8-.8 3.4-.9 5-.5v1.5c1.2 1.5 4.3 1.2 5 0v-7c-.7.7-2.7.9-4 .5z"/>
+        </g>
+        <g id="Layer_2">
+            <g id="g230">
+                <path id="path232" d="M17.997 1.989l.99.99-15.98 15.98-.99-.99z"/>
+            </g>
+            <g id="g234">
+                <path id="path236" d="M16.999 1.016l.99.99-15.98 15.98-.99-.99z" fill="#fff"/>
+            </g>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.png
new file mode 100644 (file)
index 0000000..89674cc
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/flagUndo-rtl.svg
new file mode 100644 (file)
index 0000000..e470de4
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g2990">
+        <g id="Layer_1">
+            <path id="path227" d="M11 6.5v-1.5c1.4-1.5 5.2-1.2 6 0v-1h1v15h-1v-7c-.8-.8-3.4-.9-5-.5v1.5c-1.2 1.5-4.3 1.2-5 0v-7c.7.7 2.7.9 4 .5z"/>
+        </g>
+        <g id="Layer_2">
+            <g id="g230">
+                <path id="path232" d="M7.003 1.989l-.99.99 15.98 15.98.99-.99z"/>
+            </g>
+            <g id="g234">
+                <path id="path236" d="M8.001 1.016l-.99.99 15.98 15.98.99-.99z" fill="#fff"/>
+            </g>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr.png
new file mode 100644 (file)
index 0000000..163465e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-ltr.svg
new file mode 100644 (file)
index 0000000..63e0b1a
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M2 5v15h20v-15h-20zm15 11h-9c-.6 0-1-.4-1-1v-6h3l2 1h5v6z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl.png
new file mode 100644 (file)
index 0000000..4856f62
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/folderPlaceholder-rtl.svg
new file mode 100644 (file)
index 0000000..25bec74
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M22 5v15h-20v-15h20zm-15 11h9c.6 0 1-.4 1-1v-6h-3l-2 1h-5v6z" id="path246"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr.png
new file mode 100644 (file)
index 0000000..df174d6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-ltr.svg
new file mode 100644 (file)
index 0000000..191584e
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M11 13l-6-7h15l-6 7v7c-1.7 0-3-1.3-3-3v-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl.png
new file mode 100644 (file)
index 0000000..1204eb1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/funnel-rtl.svg
new file mode 100644 (file)
index 0000000..45f2f64
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g256">
+        <path d="M14 13l6-7h-15l6 7v7c1.7 0 3-1.3 3-3v-4z" id="path258"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/heart.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/heart.png
new file mode 100644 (file)
index 0000000..0bd2124
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/heart.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/heart.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/heart.svg
new file mode 100644 (file)
index 0000000..6433201
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M15 7c-2 0-3 2-3 2s-1-2-3-2c-2.5 0-4 2-4 4 0 4 5 5 7 8 2-3 7-4 7-8 0-2-1.5-4-4-4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.png
new file mode 100644 (file)
index 0000000..58bf564
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-ltr.svg
new file mode 100644 (file)
index 0000000..bebe0a9
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M20 18l-4-4-2 2-4-4-2 1-4 5h16zm2-13v15h-20v-15h20z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.png
new file mode 100644 (file)
index 0000000..73ee31a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/image-rtl.svg
new file mode 100644 (file)
index 0000000..88e0e3c
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g278">
+        <path d="M4 18l4-4 2 2 4-4 2 1 4 5h-16zm-2-13v15h20v-15h-20z" id="path280"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.png
new file mode 100644 (file)
index 0000000..7ed8b7e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-ltr.svg
new file mode 100644 (file)
index 0000000..300e4b1
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M17 12v-4h-4v-3h-13v15h20v-8h-3zm-15 6l4-5 2-1 4 4 2-2 4 4h-16z"/>
+    <g>
+        <path d="M24 5h-4v-4h-2v4h-4v2h4v4h2v-4h4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.png
new file mode 100644 (file)
index 0000000..74b6ef3
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageAdd-rtl.svg
new file mode 100644 (file)
index 0000000..70e3248
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M7 12v-4h4v-3h13v15h-20v-8h3zm15 6l-4-5-2-1-4 4-2-2-4 4h16z" id="path290"/>
+    <g id="g292">
+        <path d="M0 5h4v-4h2v4h4v2h-4v4h-2v-4h-4z" id="path294"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.png
new file mode 100644 (file)
index 0000000..c636a8d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-ltr.svg
new file mode 100644 (file)
index 0000000..8cec9f5
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M19.5 4h-3v-1s0-1.5 1.5-1.5c1.5.06 1.5 1.5 1.5 1.5zm1.5 0v-1s0-3-3-3-3 3-3 3v1h-1v6h8v-6zm-8 7v-6h-11v15h20v-9zm-9 7l4-5 2-1 4 4 2-2 4 4z" id="path304"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.png
new file mode 100644 (file)
index 0000000..59439aa
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/imageLock-rtl.svg
new file mode 100644 (file)
index 0000000..6bb78f7
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M4.5 4h3v-1s0-1.5-1.5-1.5c-1.5.06-1.5 1.5-1.5 1.5zm-1.5 0v-1s0-3 3-3 3 3 3 3v1h1v6h-8v-6zm8 7v-6h11v15h-20v-9zm9 7l-4-5-2-1-4 4-2-2-4 4z" id="path304"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr.png
new file mode 100644 (file)
index 0000000..daf4257
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-ltr.svg
new file mode 100644 (file)
index 0000000..ada3395
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M10 8h9v2h-9v-2zm0 3h9v2h-9v-2zm0 3h6v2h-6v-2zm11-8h-18v-2h18v2zm0 14h-18v-2h18v2zm-18-12v8l5-4-5-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl.png
new file mode 100644 (file)
index 0000000..6ebe883
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/indent-rtl.svg
new file mode 100644 (file)
index 0000000..9afedbb
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g314">
+        <path d="M14 8h-9v2h9v-2zm0 3h-9v2h9v-2zm0 3h-6v2h6v-2zm-11-8h18v-2h-18v2zm0 14h18v-2h-18v2zm18-12v8l-5-4 5-4z" id="path316"/>
+    </g>
+</svg>
index be4d2c7..04cd889 100644 (file)
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0, 0, 24, 24"><style>* { fill: #FFFFFF }</style>
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
     <g id="info">
         <path id="circled-i" d="M11.499 17c-3.036 0-5.499-2.464-5.499-5.5 0-3.037 2.462-5.5 5.499-5.5 3.037 0 5.501 2.462 5.501 5.5 0 3.036-2.464 5.5-5.501 5.5zm.002-12c-3.591 0-6.501 2.91-6.501 6.5s2.91 6.5 6.501 6.5c3.588 0 6.499-2.911 6.499-6.5s-2.911-6.5-6.499-6.5zM12 10v4h1v1h-3v-1h1v-3h-1v-1zM11 8h1v1h-1z"/>
     </g>
index 9c0d1cb..4bdefd4 100644 (file)
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0, 0, 24, 24">
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="info">
         <path id="circled-i" d="M11.499 17c-3.036 0-5.499-2.464-5.499-5.5 0-3.037 2.462-5.5 5.499-5.5 3.037 0 5.501 2.462 5.501 5.5 0 3.036-2.464 5.5-5.501 5.5zm.002-12c-3.591 0-6.501 2.91-6.501 6.5s2.91 6.5 6.501 6.5c3.588 0 6.499-2.911 6.499-6.5s-2.911-6.5-6.499-6.5zM12 10v4h1v1h-3v-1h1v-3h-1v-1zM11 8h1v1h-1z"/>
     </g>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr.png
new file mode 100644 (file)
index 0000000..b08c1d4
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-ltr.svg
new file mode 100644 (file)
index 0000000..c7e1603
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M16 9v-1h-6v1h6zm-2 2v-1h-4v1h4zm-8-6h1v16h-1v-16zm2 0h10v13c0 1.7-1.3 3-3 3h-7v-16z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl.png
new file mode 100644 (file)
index 0000000..31dbb88
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/journal-rtl.svg
new file mode 100644 (file)
index 0000000..2d16be3
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M8 9v-1h6v1h-6zm2 2v-1h4v1h-4zm8-6h-1v16h1v-16zm-2 0h-10v13c0 1.7 1.3 3 3 3h7v-16z" id="path326"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr.png
new file mode 100644 (file)
index 0000000..ba9ce73
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-ltr.svg
new file mode 100644 (file)
index 0000000..8dfb89a
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M14.5 4c-3 0-5.5 2.5-5.5 5.5 0 1 .3 1.9.7 2.8l-5.7 5.7v2h4v-2h2v-2h2l1.2-1.2c.4.1.9.2 1.3.2 3 0 5.5-2.5 5.5-5.5s-2.5-5.5-5.5-5.5zm1.5 5c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl.png
new file mode 100644 (file)
index 0000000..65ed300
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/key-rtl.svg
new file mode 100644 (file)
index 0000000..0639287
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M9.5 4c3 0 5.5 2.5 5.5 5.5 0 1-.3 1.9-.7 2.8l5.7 5.7v2h-4v-2h-2v-2h-2l-1.2-1.2c-.4.1-.9.2-1.3.2-3 0-5.5-2.5-5.5-5.5s2.5-5.5 5.5-5.5zm-1.5 5c.8 0 1.5-.7 1.5-1.5s-.7-1.5-1.5-1.5-1.5.7-1.5 1.5.7 1.5 1.5 1.5z" id="path336"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr.png
new file mode 100644 (file)
index 0000000..7af2472
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-ltr.svg
new file mode 100644 (file)
index 0000000..ea5055c
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M3 7v9c0 1.7 1.3 3 3 3h15v-12h-18zm8 2h2v2h-2v-2zm0 3h2v2h-2v-2zm-3-3h2v2h-2v-2zm0 3h2v2h-2v-2zm-1 5h-1c-.6 0-1-.4-1-1v-1h2v2zm0-3h-2v-2h2v2zm0-3h-2v-2h2v2zm9 6h-8v-2h8v2zm0-3h-2v-2h2v2zm0-3h-2v-2h2v2zm3 6h-2v-2h2v2zm0-3h-2v-2h2v2zm0-3h-2v-2h2v2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl.png
new file mode 100644 (file)
index 0000000..b6e9b6e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/keyboard-rtl.svg
new file mode 100644 (file)
index 0000000..b35d108
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g346">
+        <path d="M21 7v9c0 1.7-1.3 3-3 3h-15v-12h18zm-8 2h-2v2h2v-2zm0 3h-2v2h2v-2zm3-3h-2v2h2v-2zm0 3h-2v2h2v-2zm1 5h1c.6 0 1-.4 1-1v-1h-2v2zm0-3h2v-2h-2v2zm0-3h2v-2h-2v2zm-9 6h8v-2h-8v2zm0-3h2v-2h-2v2zm0-3h2v-2h-2v2zm-3 6h2v-2h-2v2zm0-3h2v-2h-2v2zm0-3h2v-2h-2v2z" id="path348"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-invert.png
deleted file mode 100644 (file)
index d920459..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-invert.svg
deleted file mode 100644 (file)
index 01ce113..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
-    <g id="link">
-        <path id="right" d="M19.188 12.001c0 1.1-.891 2.015-1.988 2.015l-4.195-.015c.538 1.088.963 1.999 1.997 1.999h3c1.656 0 2.998-2.343 2.998-4s-1.342-4-2.998-4h-3c-1.034 0-1.459.911-1.998 1.999l4.195-.015c1.098 0 1.989.917 1.989 2.017z"/>
-        <path id="center" d="M8 12c0 .535.42 1 .938 1h6.109c.518 0 .938-.465.938-1 0-.534-.42-1-.938-1h-6.109c-.518 0-.938.466-.938 1z"/>
-        <path id="left" d="M4.816 11.999c0-1.1.891-2.015 1.988-2.015l4.196.015c-.539-1.088-.964-1.999-1.998-1.999h-3c-1.656 0-2.998 2.343-2.998 4s1.342 4 2.998 4h3c1.034 0 1.459-.911 1.998-1.999l-4.195.015c-1.098 0-1.989-.917-1.989-2.017z"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr.png
new file mode 100644 (file)
index 0000000..3b60a11
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-ltr.svg
new file mode 100644 (file)
index 0000000..1b332ce
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M15.8 3.6c-2.1 0-3.6 1.9-5.1 3.3.2 0 .5-.1.8-.1.5 0 1 .1 1.5.3.8-.8 1.6-1.7 2.8-1.7.6 0 1.3.3 1.8.7 1 1 1 2.6 0 3.6l-2.6 2.6c-.4.4-1.2.7-1.8.7-1.4 0-2.1-.9-2.6-2l-1.3 1.3c.8 1.5 2 2.6 3.8 2.6 1.2 0 2.3-.5 3-1.3l2.6-2.6c.9-.9 1.5-2 1.5-3.3-.2-2.2-2.2-4.1-4.4-4.1zm-4.3 12.1l-.9.9c-.4.4-1.2.7-1.8.7-.6 0-1.3-.3-1.8-.7-1-1-1-2.7 0-3.6l2.6-2.6c.4-.4 1.2-.7 1.8-.7 1.4 0 2.1 1 2.6 2l1.3-1.3c-.8-1.5-2-2.6-3.8-2.6-1.2 0-2.3.5-3 1.3l-2.6 2.6c-1.7 1.7-1.7 4.4 0 6 1.6 1.6 4.4 1.7 5.9 0l1.9-1.9c-.3.1-.6.1-.9.1-.5 0-.9 0-1.3-.2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl.png
new file mode 100644 (file)
index 0000000..024c2db
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link-rtl.svg
new file mode 100644 (file)
index 0000000..d4c2fd6
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g358">
+        <path d="M9.025 3.6c2.1 0 3.6 1.9 5.1 3.3-.2 0-.5-.1-.8-.1-.5 0-1 .1-1.5.3-.8-.8-1.6-1.7-2.8-1.7-.6 0-1.3.3-1.8.7-1 1-1 2.6 0 3.6l2.6 2.6c.4.4 1.2.7 1.8.7 1.4 0 2.1-.9 2.6-2l1.3 1.3c-.8 1.5-2 2.6-3.8 2.6-1.2 0-2.3-.5-3-1.3l-2.6-2.6c-.9-.9-1.5-2-1.5-3.3.2-2.2 2.2-4.1 4.4-4.1zm4.3 12.1l.9.9c.4.4 1.2.7 1.8.7.6 0 1.3-.3 1.8-.7 1-1 1-2.7 0-3.6l-2.6-2.6c-.4-.4-1.2-.7-1.8-.7-1.4 0-2.1 1-2.6 2l-1.3-1.3c.8-1.5 2-2.6 3.8-2.6 1.2 0 2.3.5 3 1.3l2.6 2.6c1.7 1.7 1.7 4.4 0 6-1.6 1.6-4.4 1.7-5.9 0l-1.9-1.9c.3.1.6.1.9.1.5 0 .9 0 1.3-.2z" id="path360"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link.png
deleted file mode 100644 (file)
index 2a087a4..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/link.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/link.svg
deleted file mode 100644 (file)
index dbae341..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <g id="link">
-        <path id="right" d="M19.188 12.001c0 1.1-.891 2.015-1.988 2.015l-4.195-.015c.538 1.088.963 1.999 1.997 1.999h3c1.656 0 2.998-2.343 2.998-4s-1.342-4-2.998-4h-3c-1.034 0-1.459.911-1.998 1.999l4.195-.015c1.098 0 1.989.917 1.989 2.017z"/>
-        <path id="center" d="M8 12c0 .535.42 1 .938 1h6.109c.518 0 .938-.465.938-1 0-.534-.42-1-.938-1h-6.109c-.518 0-.938.466-.938 1z"/>
-        <path id="left" d="M4.816 11.999c0-1.1.891-2.015 1.988-2.015l4.196.015c-.539-1.088-.964-1.999-1.998-1.999h-3c-1.656 0-2.998 2.343-2.998 4s1.342 4 2.998 4h3c1.034 0 1.459-.911 1.998-1.999l-4.195.015c-1.098 0-1.989-.917-1.989-2.017z"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr.png
new file mode 100644 (file)
index 0000000..c73e1a1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-ltr.svg
new file mode 100644 (file)
index 0000000..09a4ff5
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M21 7h-12v-2h12v2zm-14-1c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm14 7h-12v-2h12v2zm-14-1c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm14 7h-12v-2h12v2zm-14-1c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl.png
new file mode 100644 (file)
index 0000000..e586f02
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listBullet-rtl.svg
new file mode 100644 (file)
index 0000000..67b9dfe
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M3 7h12v-2h-12v2zm14-1c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2zm-14 7h12v-2h-12v2zm14-1c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2zm-14 7h12v-2h-12v2zm14-1c0 1.1.9 2 2 2s2-.9 2-2-.9-2-2-2-2 .9-2 2z" id="path370"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr.png
new file mode 100644 (file)
index 0000000..ab6dfe0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-ltr.svg
new file mode 100644 (file)
index 0000000..87e8854
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M21 7h-13v-2h13v2zm0 6h-13v-2h13v2zm0 6h-13v-2h13v2zm-17-15h2v4h-1v-3h-1zm-1 6v-1h3v3h-2v1h2v1h-3v-3h2v-1zm3 10h-3v-1h2v-1h-1v-1h1v-1h-2v-1h3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl.png
new file mode 100644 (file)
index 0000000..b433b2c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/listNumbered-rtl.svg
new file mode 100644 (file)
index 0000000..831a5fb
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M3 7h13v-2h-13zm0 6h13v-2h-13zm0 6h13v-2h-13zm15-15h2v4h-1v-3h-1zm0 6v-1h3v3h-2v1h2v1h-3v-3h2v-1zm3 10h-3v-1h2v-1h-1v-1h1v-1h-2v-1h3z" id="path380"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-invert.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-invert.png
deleted file mode 100644 (file)
index d8d5eac..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-invert.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-invert.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-invert.svg
deleted file mode 100644 (file)
index 016c2ed..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
-    <g id="lock">
-        <path d="M14 9.06c0-1.562-.656-2.342-2-2.342-1.344 0-1.992.775-2 2.33V10h4zm3-.036V10h2v10H7c-.46 0-1.168-.156-1.497-.485-.33-.327-.503-.727-.503-1.195V10h2v-.964c0-.914.19-1.75.574-2.517.383-.767.92-1.407 1.606-1.852C9.867 4.223 11.14 4 12 4c1.243 0 2.852.473 3.71 1.44.86.97 1.29 2.186 1.29 3.584z"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr.png
new file mode 100644 (file)
index 0000000..06a6afb
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-ltr.svg
new file mode 100644 (file)
index 0000000..5945492
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g390">
+        <path d="M15 8s0-3-2.5-3-2.5 3-2.5 3v1h5zm2 0v1h2v10h-10c-1.7 0-3-1.3-3-3v-7h2v-1s0-5 4.5-5 4.5 5 4.5 5z" id="path392"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl.png
new file mode 100644 (file)
index 0000000..15dd61e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock-rtl.svg
new file mode 100644 (file)
index 0000000..0591f66
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g390">
+        <path d="M10 8s0-3 2.5-3 2.5 3 2.5 3v1h-5zm-2 0v1h-2v10h10c1.7 0 3-1.3 3-3v-7h-2v-1s0-5-4.5-5-4.5 5-4.5 5z" id="path392"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock.png
deleted file mode 100644 (file)
index 59787d2..0000000
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock.png and /dev/null differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/lock.svg
deleted file mode 100644 (file)
index 86fd1e3..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
-    <g id="lock">
-        <path d="M14 9.06c0-1.562-.656-2.342-2-2.342-1.344 0-1.992.775-2 2.33V10h4zm3-.036V10h2v10H7c-.46 0-1.168-.156-1.497-.485-.33-.327-.503-.727-.503-1.195V10h2v-.964c0-.914.19-1.75.574-2.517.383-.767.92-1.407 1.606-1.852C9.867 4.223 11.14 4 12 4c1.243 0 2.852.473 3.71 1.44.86.97 1.29 2.186 1.29 3.584z"/>
-    </g>
-</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr.png
new file mode 100644 (file)
index 0000000..a08b629
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-ltr.svg
new file mode 100644 (file)
index 0000000..4af765c
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M15 14v3l5-4.5-5-4.5v3h-7c0 1.7 1.3 3 3 3h4zm-1-9h-10v15h10v-2h-8v-11h8v-2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl.png
new file mode 100644 (file)
index 0000000..135df45
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logOut-rtl.svg
new file mode 100644 (file)
index 0000000..f72c04a
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g402">
+        <path d="M9 14v3l-5-4.5 5-4.5v3h7c0 1.7-1.3 3-3 3h-4zm1-9h10v15h-10v-2h8v-11h-8v-2z" id="path404"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc.png
new file mode 100644 (file)
index 0000000..7c2c123
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-cc.svg
new file mode 100644 (file)
index 0000000..124b210
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M12 6c-3.9 0-7 3.1-7 7s3.1 7 7 7 7-3.1 7-7-3.1-7-7-7zm0 13c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6zm-1.7-4.6c-.7 0-1-.4-1-1.2s.3-1.2 1-1.2c.4 0 .6.2.8.6l.9-.5c-.4-.7-1-1-1.9-1-.6 0-1.1.2-1.5.6s-.6.8-.6 1.5.2 1.2.6 1.6c.4.4.9.6 1.5.6.8 0 1.4-.4 1.9-1.1l-.9-.4c-.2.3-.5.5-.8.5zm4 0c-.7 0-1-.4-1-1.2s.3-1.2 1-1.2c.4 0 .6.2.8.6l.9-.5c-.4-.7-1-1-1.9-1-.6 0-1.1.2-1.5.6s-.6.8-.6 1.5.2 1.2.6 1.6c.4.4.9.6 1.5.6.8 0 1.4-.4 1.9-1.1l-.9-.4c-.2.3-.5.5-.8.5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons.png
new file mode 100644 (file)
index 0000000..df8600b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikimediaCommons.svg
new file mode 100644 (file)
index 0000000..079e177
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M15.4 7.8c-2-.9-2.3-2.5-2.4-2.8.1.1 2 1 2 1l-3-5-3 5 2-1s0 .8.6 2.1c.8 1.5 2.2 2.2 2.2 2.2s1.6.7 2.2 1.3l-.7.7-.5-.5-.4 1.8 1.8-.4-.5-.5.7-.7c.9 1 1.5 2.3 1.6 3.8h-1v-.8l-1.5 1 1.5 1v-.8h1c-.1 1.5-.6 2.8-1.6 3.8l-.7-.7.5-.5-1.8-.4.4 1.8.5-.5.7.7c-1 .9-2.3 1.5-3.8 1.6v-1h.8l-1-1.5-1 1.5h.8v1c-1.5-.1-2.8-.6-3.8-1.6l.7-.7.5.5.4-1.8-1.8.4.5.5-.7.7c-.9-1-1.5-2.3-1.6-3.8h1v.8l1.5-1-1.5-1v.8h-1c.1-1.5.6-2.8 1.6-3.8l.7.7-.5.5 1.8.4-.4-1.8-.5.5-.7-.7-1.5-1.4c-1.5 1.4-2.5 3.5-2.5 5.8 0 4.4 3.6 8 8 8s8-3.6 8-8c0-3.2-1.9-5.9-4.6-7.2z"/>
+        <circle cx="12" cy="15" r="3"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia.png
new file mode 100644 (file)
index 0000000..8629f29
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/logo-wikipedia.svg
new file mode 100644 (file)
index 0000000..6672d9d
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M22.3 6.3c0 .2 0 .3-.1.3-.7.1-1.2.5-1.6 1.1-.1.2-.2.4-.3.7l-4.6 10.1c-.1.2-.2.3-.2.3s-.1.1-.2.1c-.2 0-.4-.1-.5-.4l-2.6-5.5-2.8 5.5c-.1.3-.3.4-.5.4s-.4-.1-.5-.4l-4.3-10.1c-.3-.8-.6-1.2-.8-1.4-.2-.2-.5-.3-1-.4-.1-.1-.1-.2-.1-.3 0-.2 0-.3.1-.3h4.3c.1.1.1.2.1.3 0 .2 0 .3-.1.3-.6.1-1 .2-1.1.4-.1.2 0 .6.3 1.2l3.6 8.2h.1l2.2-4.4-1.7-3.6c-.3-.7-.6-1.2-.8-1.4s-.5-.3-.9-.4c-.1-.1-.1-.2-.1-.3 0-.2 0-.3.1-.3h3.6c.1.1.1.2.1.3 0 .2 0 .3-.1.3-.4.1-.6.2-.6.4s.1.6.4 1.2l1 1.9 1-1.9c.3-.6.5-.9.5-1.1 0-.2 0-.3-.1-.4-.1-.1-.3-.1-.5-.1l-.1-.3c0-.2 0-.3.1-.3h3c.1.1.1.2.1.3 0 .2 0 .3-.1.3-.5.1-.8.2-1.1.5-.3.3-.6.7-.8 1.3l-1.3 2.8 2.5 5.2h.1l3.7-8.1c.3-.5.3-.9.2-1.2-.1-.3-.5-.4-1.1-.5-.1-.1-.1-.2-.1-.3s0-.3.1-.3h3.7c-.2.1-.2.2-.2.3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-ltr.png
new file mode 100644 (file)
index 0000000..6f06dfe
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-ltr.svg
new file mode 100644 (file)
index 0000000..49e598c
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M16.4 16.4c1-1.2 1.6-2.7 1.6-4.4 0-3.9-3.1-7-7-7s-7 3.1-7 7 3.1 7 7 7c1.2 0 2.3-.3 3.2-.8l2.8 2.8c1.4 1.4 2.5 1.5 4 0l-4.6-4.6zm-10.4-4.4c0-2.8 2.2-5 5-5s5 2.2 5 5-2.2 5-5 5-5-2.3-5-5z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-rtl.png
new file mode 100644 (file)
index 0000000..358048d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/magnifyingGlass-rtl.svg
new file mode 100644 (file)
index 0000000..c9695b6
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M8.6 16.4c-1-1.2-1.6-2.7-1.6-4.4 0-3.9 3.1-7 7-7s7 3.1 7 7-3.1 7-7 7c-1.2 0-2.3-.3-3.2-.8l-2.8 2.8c-1.4 1.4-2.5 1.5-4 0l4.6-4.6zm10.4-4.4c0-2.8-2.2-5-5-5s-5 2.2-5 5 2.2 5 5 5 5-2.3 5-5z" id="path414"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr.png
new file mode 100644 (file)
index 0000000..3629f55
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-ltr.svg
new file mode 100644 (file)
index 0000000..0fc4773
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M15 6l-6-2-6 2v15l6-2 6 2 6-2v-15l-6 2zm-6.3 12.1l-4.7 1.5v-12.9l5-1.7v12.9l-.3.2zm11.3.2l-5 1.7v-12.9l.3-.1 4.7-1.6v12.9z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl.png
new file mode 100644 (file)
index 0000000..5d1362f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/map-rtl.svg
new file mode 100644 (file)
index 0000000..b33f1e3
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M9 6l6-2 6 2v15l-6-2-6 2-6-2v-15l6 2zm6.3 12.1l4.7 1.5v-12.9l-5-1.7v12.9l.3.2zm-11.3.2l5 1.7v-12.9l-.3-.1-4.7-1.6v12.9z" id="path424"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin.png
new file mode 100644 (file)
index 0000000..46b31a4
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPin.svg
new file mode 100644 (file)
index 0000000..f422c84
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M19 12c0-3.9-3.1-7-7-7s-7 3.1-7 7c0 1.4.4 2.6 1.1 3.7l5.9 7.3 5.9-7.3c.7-1.1 1.1-2.3 1.1-3.7zm-7 4c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z" id="path4"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr.png
new file mode 100644 (file)
index 0000000..6d51b9a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-ltr.svg
new file mode 100644 (file)
index 0000000..9a54eb6
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g434">
+        <g id="g436">
+            <path d="M24 4h-4v-4h-2v4h-4v2h4v4h2v-4h4z" id="path438"/>
+        </g>
+    </g>
+    <path d="M18 11h-1v-3.9l-.1-.1h-3.9v-1.9c-.3-.1-.7-.1-1-.1-3.9 0-7 3.1-7 7 0 1.4.4 2.6 1.1 3.7l5.9 7.3 5.9-7.3c.7-1.1 1.1-2.3 1.1-3.7 0-.3 0-.7-.1-1h-.9zm-6 5c-2.2 0-4-1.8-4-4s1.8-4 4-4 4 1.8 4 4-1.8 4-4 4z" id="path440"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl.png
new file mode 100644 (file)
index 0000000..b7797c4
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/mapPinAdd-rtl.svg
new file mode 100644 (file)
index 0000000..d3e152e
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g434">
+        <g id="g436">
+            <path d="M0 4h4v-4h2v4h4v2h-4v4h-2v-4h-4z" id="path438"/>
+        </g>
+    </g>
+    <path d="M6 11h1v-3.9l.1-.1h3.9v-1.9c.3-.1.7-.1 1-.1 3.9 0 7 3.1 7 7 0 1.4-.4 2.6-1.1 3.7l-5.9 7.3-5.9-7.3c-.7-1.1-1.1-2.3-1.1-3.7 0-.3 0-.7.1-1h.9zm6 5c2.2 0 4-1.8 4-4s-1.8-4-4-4-4 1.8-4 4 1.8 4 4 4z" id="path440"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr.png
new file mode 100644 (file)
index 0000000..279c61d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-ltr.svg
new file mode 100644 (file)
index 0000000..3f308ff
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M21 9c0-1.7-1.3-3-3-3h-15v3l9 4 9-4zm-18 2v6c0 1.7 1.3 3 3 3h15v-9l-9 4-9-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl.png
new file mode 100644 (file)
index 0000000..c44dea0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/message-rtl.svg
new file mode 100644 (file)
index 0000000..fa61aa1
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g450">
+        <path d="M3 9c0-1.7 1.3-3 3-3h15v3l-9 4-9-4zm18 2v6c0 1.7-1.3 3-3 3h-15v-9l9 4 9-4z" id="path452"/>
+    </g>
+</svg>
index 7c9bdc1..e97d37b 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/move-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/move-ltr-invert.png differ
index 10f0c4e..002ec0f 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
-    <g id="move-ltr">
-        <path id="arrow" d="M8.935 7.181l5.302 5.302-5.302 5.303 1.414 1.414 6.716-6.717-6.716-6.716z"/>
+    <g id="move-rtl">
+        <path id="arrow" d="M15.065 17.786l-5.302-5.303 5.302-5.302-1.414-1.414-6.716 6.716 6.716 6.717z"/>
     </g>
 </svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/move.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/move.png
new file mode 100644 (file)
index 0000000..7ba0ee9
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/move.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/move.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/move.svg
new file mode 100644 (file)
index 0000000..9063bd4
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M20 11l-4-3v2h-3v-3h2l-3-4-3 4h2v3h-3v-2l-4 3 4 3v-2h3v3h-2l3 4 3-4h-2v-3h3v2z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr.png
new file mode 100644 (file)
index 0000000..ed7b930
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-ltr.svg
new file mode 100644 (file)
index 0000000..b8ea833
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g4">
+        <path d="M12 5l2.5 2.5-3.5 3.5c-1.2 1.2-1.2 2.8 0 4l5.5-5.5 2.5 2.5v-7h-7zm5 12h-9c-.6 0-1-.4-1-1v-9h3l-2-2h-3v11c0 1.7 1.3 3 3 3h11v-3l-2-2v3z" id="path6"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl.png
new file mode 100644 (file)
index 0000000..46567c7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newWindow-rtl.svg
new file mode 100644 (file)
index 0000000..58a9eeb
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g462">
+        <path d="M12 5l-2.5 2.5 3.5 3.5c1.2 1.2 1.2 2.8 0 4l-5.5-5.5-2.5 2.5v-7h7zm-5 12h9c.6 0 1-.4 1-1v-9h-3l2-2h3v11c0 1.7-1.3 3-3 3h-11v-3l2-2v3z" id="path464"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr.png
new file mode 100644 (file)
index 0000000..d4b638a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-ltr.svg
new file mode 100644 (file)
index 0000000..dad5f51
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+  <g id="line_return">
+    <path d="M17.8 5.7c-.5 0-.9.2-1.2.5s-.5.7-.5 1.2v4.3h-5.1v-4l-6 5.5 6 5.5v-4h8v-9h-1.2z"/>
+  </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl.png
new file mode 100644 (file)
index 0000000..20f5d0d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newline-rtl.svg
new file mode 100644 (file)
index 0000000..fd758cc
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+  <g id="line_return">
+    <path d="M6.2 5.7c.5 0 .9.2 1.2.5.3.3.5.7.5 1.2v4.3H13v-4l6 5.5-6 5.5v-4H5v-9h1.2z"/>
+  </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr.png
new file mode 100644 (file)
index 0000000..056e7dd
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-ltr.svg
new file mode 100644 (file)
index 0000000..46471a3
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M6 7v12c-.6 0-1-.4-1-1v-9h-1v9c0 1.1.9 2 2 2h15v-13h-15zm9 11h-7v-1h7v1zm0-2h-7v-1h7v1zm0-2h-7v-1h7v1zm4 4h-3v-5h3v5zm0-7h-11v-2h11v2z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl.png
new file mode 100644 (file)
index 0000000..8221a09
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/newspaper-rtl.svg
new file mode 100644 (file)
index 0000000..7564dff
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M19 7v12c.6 0 1-.4 1-1v-9h1v9c0 1.1-.9 2-2 2h-15v-13h15zm-9 11h7v-1h-7v1zm0-2h7v-1h-7v1zm0-2h7v-1h-7v1zm-4 4h3v-5h-3v5zm0-7h11v-2h-11v2z" id="path474"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.png
new file mode 100644 (file)
index 0000000..8b15525
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-ltr.svg
new file mode 100644 (file)
index 0000000..601428e
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M16 14l2 2v-11h-4v2h2zm0 2l-7-7-2-2-1-1-1-1-3-3-1 1 2 2h-1v14h4v-2h-2v-10h1l2 2v10h4v-2h-2v-6l6 6h-1v2h3l4 4 1-1-4-4zm-5-9v-2h-4l2 2zm8-2v2h2v10h-2l2 2h2v-14z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.png
new file mode 100644 (file)
index 0000000..f7bab38
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/noWikiText-rtl.svg
new file mode 100644 (file)
index 0000000..31785a3
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g484">
+        <path d="M8 14l-2 2v-11h4v2h-2zm0 2l7-7 2-2 1-1 1-1 3-3 1 1-2 2h1v14h-4v-2h2v-10h-1l-2 2v10h-4v-2h2v-6l-6 6h1v2h-3l-4 4-1-1 4-4zm5-9v-2h4l-2 2zm-8-2v2h-2v10h2l-2 2h-2v-14z" id="path486"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr.png
new file mode 100644 (file)
index 0000000..4ac336c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-ltr.svg
new file mode 100644 (file)
index 0000000..4264ff0
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M10 8h9v2h-9v-2zm0 3h9v2h-9v-2zm0 3h6v2h-6v-2zm11-8h-18v-2h18v2zm0 14h-18v-2h18v2zm-18-8l5 4v-8l-5 4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl.png
new file mode 100644 (file)
index 0000000..68577dd
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/outdent-rtl.svg
new file mode 100644 (file)
index 0000000..2479343
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g496">
+        <path d="M14 8h-9v2h9v-2zm0 3h-9v2h9v-2zm0 3h-6v2h6v-2zm-11-8h18v-2h-18v2zm0 14h18v-2h-18v2zm18-8l-5 4v-8l5 4z" id="path498"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.png
new file mode 100644 (file)
index 0000000..38a90e2
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-ltr.svg
new file mode 100644 (file)
index 0000000..92fc07e
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M2 3h18v2h-16v12h-2v-14zm13 13l-4-4-4 5h13l-3-3-2 2zm-10-10h17v13h-17v-13z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.png
new file mode 100644 (file)
index 0000000..bcb805d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/photoGallery-rtl.svg
new file mode 100644 (file)
index 0000000..d989d3d
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g508">
+        <path d="M22 3h-18v2h16v12h2v-14zm-13 13l4-4 4 5h-13l3-3 2 2zm10-10h-17v13h17v-13z" id="path510"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr.png
new file mode 100644 (file)
index 0000000..c5050e0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-ltr.svg
new file mode 100644 (file)
index 0000000..5ce9563
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M12 5c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm-2 12v-8l6 4-6 4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl.png
new file mode 100644 (file)
index 0000000..1264e9f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/play-rtl.svg
new file mode 100644 (file)
index 0000000..591a5d3
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g520">
+        <path d="M12 5c4.4 0 8 3.6 8 8s-3.6 8-8 8-8-3.6-8-8 3.6-8 8-8zm2 12v-8l-6 4 6 4z" id="path522"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr.png
new file mode 100644 (file)
index 0000000..051ab1d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-ltr.svg
new file mode 100644 (file)
index 0000000..baae35e
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M18 8h-1v-4h-10v4h-4v6c0 1.7 1.3 3 3 3h1v3h10v-3h4v-6c0-1.7-1.3-3-3-3zm-10-3h8v3h-8v-3zm8 14h-8v-6h8v6z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl.png
new file mode 100644 (file)
index 0000000..18e247d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/printer-rtl.svg
new file mode 100644 (file)
index 0000000..8294afd
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M6 8h1v-4h10v4h4v6c0 1.7-1.3 3-3 3h-1v3h-10v-3h-4v-6c0-1.7 1.3-3 3-3zm10-3h-8v3h8v-3zm-8 14h8v-6h-8v6z" id="path532"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr.png
new file mode 100644 (file)
index 0000000..f6a9c86
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-ltr.svg
new file mode 100644 (file)
index 0000000..97b77bb
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M18 9.9c-.7 0-1.4.3-1.8.9v-4.8h-4c.2-.4.4-.8.4-1.2 0-1.2-1-2.2-2.2-2.2-1.3-.1-2.3.9-2.3 2.2 0 .4.2.8.4 1.2h-4.4v3.6l.6-.1c1.4 0 2.5 1.1 2.5 2.5s-1.1 2.5-2.5 2.5c-.2 0-.4 0-.6-.1v3.6h4.9c-.5.4-.9 1-.9 1.8 0 1.2 1 2.2 2.3 2.2 1.2 0 2.2-1 2.2-2.2 0-.7-.3-1.4-.9-1.8h4.5v-4.5c.4.5 1 .9 1.8.9 1.2 0 2.2-1 2.2-2.2 0-1.3-1-2.3-2.2-2.3z" id="path542"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl.png
new file mode 100644 (file)
index 0000000..03050e1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/puzzle-rtl.svg
new file mode 100644 (file)
index 0000000..0ad5f37
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M6.3 9.9c.7 0 1.4.3 1.8.9v-4.8h4c-.2-.4-.4-.8-.4-1.2 0-1.2 1-2.2 2.2-2.2 1.3-.1 2.3.9 2.3 2.2 0 .4-.2.8-.4 1.2h4.4v3.6l-.6-.1c-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5c.2 0 .4 0 .6-.1v3.6h-4.9c.5.4.9 1 .9 1.8 0 1.2-1 2.2-2.3 2.2-1.2 0-2.2-1-2.2-2.2 0-.7.3-1.4.9-1.8h-4.5v-4.5c-.4.5-1 .9-1.8.9-1.2 0-2.2-1-2.2-2.2 0-1.3 1-2.3 2.2-2.3z" id="path542"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr.png
new file mode 100644 (file)
index 0000000..7060db7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-ltr.svg
new file mode 100644 (file)
index 0000000..dc1c06f
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M19.9 8.7c.3-.1.6-.3.8-.6s.3-.7.3-1.1v-1c-1.3.2-1.9.2-3.3.8-.9.5-1.6 1.1-2.2 1.8s-2.5 3.4-2.5 7.4v4h6c1.1 0 2-.9 2-2v-6h-4s.1-.9.8-1.8c.6-.7 1.3-1.2 2.1-1.5zm-14.4-.1c-.6.7-2.5 3.4-2.5 7.4v4h6c1.1 0 2-.9 2-2v-6h-4s.1-.9.8-1.8c.6-.7 1.3-1.2 2.1-1.5.3-.1.6-.3.8-.6s.3-.7.3-1.1v-1c-1.3.2-1.9.2-3.3.8-.8.5-1.6 1.1-2.2 1.8z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl.png
new file mode 100644 (file)
index 0000000..df0facf
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotes-rtl.svg
new file mode 100644 (file)
index 0000000..3a8b701
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g552">
+        <path d="M4.1 8.7c-.3-.1-.6-.3-.8-.6-.2-.3-.3-.7-.3-1.1v-1c1.3.2 1.9.2 3.3.8.9.5 1.6 1.1 2.2 1.8.6.7 2.5 3.4 2.5 7.4v4h-6c-1.1 0-2-.9-2-2v-6h4s-.1-.9-.8-1.8c-.6-.7-1.3-1.2-2.1-1.5zm14.4-.1c.6.7 2.5 3.4 2.5 7.4v4h-6c-1.1 0-2-.9-2-2v-6h4s-.1-.9-.8-1.8c-.6-.7-1.3-1.2-2.1-1.5-.3-.1-.6-.3-.8-.6-.2-.3-.3-.7-.3-1.1v-1c1.3.2 1.9.2 3.3.8.8.5 1.6 1.1 2.2 1.8z" id="path554"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr.png
new file mode 100644 (file)
index 0000000..b04ec74
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-ltr.svg
new file mode 100644 (file)
index 0000000..24fca8f
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g4">
+        <path d="M3.5 8.6c-.6.7-2.5 3.4-2.5 7.4v4h6c1.1 0 2-.9 2-2v-6h-4s.1-.9.8-1.8c.6-.7 1.3-1.2 2.1-1.5.3-.1.6-.3.8-.6.2-.3.3-.7.3-1.1v-1c-1.3.2-1.9.2-3.3.8-.8.5-1.6 1.1-2.2 1.8zm15.5-3.6v-4h-2v4h-4v2h4v4h2v-4h4v-2zm-4 7s.1-.9.8-1.8l.2-.2v-2h-1.9l-.6.6c-.6.7-2.5 3.4-2.5 7.4v4h6c1.1 0 2-.9 2-2v-6h-4z" id="path6"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl.png
new file mode 100644 (file)
index 0000000..9e91202
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/quotesAdd-rtl.svg
new file mode 100644 (file)
index 0000000..736f2a6
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g4">
+        <path d="M20.5 8.6c.6.7 2.5 3.4 2.5 7.4v4h-6c-1.1 0-2-.9-2-2v-6h4s-.1-.9-.8-1.8c-.6-.7-1.3-1.2-2.1-1.5-.3-.1-.6-.3-.8-.6-.2-.3-.3-.7-.3-1.1v-1c1.3.2 1.9.2 3.3.8.8.5 1.6 1.1 2.2 1.8zm-15.5-3.6v-4h2v4h4v2h-4v4h-2v-4h-4v-2zm4 7s-.1-.9-.8-1.8l-.2-.2v-2h1.9l.6.6c.6.7 2.5 3.4 2.5 7.4v4h-6c-1.1 0-2-.9-2-2v-6h4z" id="path6"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr.png
new file mode 100644 (file)
index 0000000..3bca20f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-ltr.svg
new file mode 100644 (file)
index 0000000..884d40d
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="create_redirect">
+        <g>
+            <path d="M17.7 2.4c-.3-.3-.7-.4-1.2-.4h-12.1v16.2c0 .5.1.8.4 1.1s.7.7 1.2.7h10.2c-.6-.2-1.2-.5-1.9-1-.4-.3-.8-.6-1.2-1l-.5-.6h-6.2v-1.4h5.4s-.4-1.5-.4-2h-5v-1h9v1c.4.1 1.1.1 1.5.1.4 0 .7 0 1.1-.1v-10.5c.1-.5-.1-.9-.3-1.1zm-5.2 1.6h3v4.5h-3v-4.5zm-6.1 0h4v1.6h-4v-1.6zm0 3h4v1.5h-4v-1.5zm0 3h9v1.5h-9v-1.5zm12.7 3.1l4.9 3.8-4.9 4.8v-2.2c-1.7 0-2.9-.2-4.3-1.2-1.2-.8-2.5-2.6-2.3-4.1 1.4 1 2.9 1.5 4.4 1.5.7 0 1.4-.1 2.1-.3l.1-2.3"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl.png
new file mode 100644 (file)
index 0000000..dc9b0e6
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/redirect-rtl.svg
new file mode 100644 (file)
index 0000000..a07e836
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="create_redirect">
+        <g id="g3264">
+            <path d="M6.3 2.4c.3-.3.7-.4 1.2-.4h12.1v16.2c0 .5-.1.8-.4 1.1-.3.3-.7.7-1.2.7h-10.2c.6-.2 1.2-.5 1.9-1 .4-.3.8-.6 1.2-1l.5-.6h6.2v-1.4h-5.4s.4-1.5.4-2h5v-1h-9v1c-.4.1-1.1.1-1.5.1-.4 0-.7 0-1.1-.1v-10.5c-.1-.5.1-.9.3-1.1zm5.2 1.6h-3v4.5h3v-4.5zm6.1 0h-4v1.6h4v-1.6zm0 3h-4v1.5h4v-1.5zm0 3h-9v1.5h9v-1.5z" id="path3266"/>
+            <path d="M4.9 13.1l-4.9 3.8 4.9 4.8v-2.2c1.7 0 2.9-.2 4.3-1.2 1.2-.8 2.5-2.6 2.3-4.1-1.4 1-2.9 1.5-4.4 1.5-.7 0-1.4-.1-2.1-.3l-.1-2.3" id="path3268"/>
+        </g>
+    </g>
+</svg>
index 8b6799f..84e6498 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-destructive.png and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/remove-destructive.png differ
index be51bea..3551e58 100644 (file)
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #E81915 }</style>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #D11D13 }</style>
     <g id="remove">
         <path id="trash-can" d="M12 10h-1v6h1v-6zm-2 0h-1v6h1v-6zm4 0h-1v6h1v-6zm0-4v-1h-5v1h-3v3h1v7.966l1 1.031v-.074.077h6.984l.016-.018v.015l1-1.031v-7.966h1v-3h-3zm1 11h-7v-8h7v8zm1-9h-9v-1h9v1z"/>
     </g>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize.png
new file mode 100644 (file)
index 0000000..ebce3c0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/ribbonPrize.svg
new file mode 100644 (file)
index 0000000..6e4979f
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="Layer_1">
+        <g>
+            <circle cx="11.5" cy="8.5" r="2.5"/>
+            <path d="M16.3 8.7l.7-.7-.8-.8.4-.8-1.1-.5.1-.9-1.2-.2-.1-.9-1.2.2-.4-.8-1.1.5-.6-.8-.8.8-.9-.4-.5 1.1-.9-.2-.2 1.2-.9.2.2 1.2-.9.4.5 1.1-.6.6.8.8-.4.8 1.1.5-.1.9 1.2.2.1.9 1.2-.2.4.8 1.1-.5.6.8.8-.8.8.4.5-1.1.9.1.2-1.2.9-.1-.2-1.2.8-.4-.4-1zm-4.8 3.3c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5zm.5 3l-.7-.7-1.1.6-.4-.7-.8.3v8.5l2.5-3 2.5 3v-8.5l-1-.5z"/>
+        </g>
+    </g>
+</svg>
index d7ad1e5..c6eba15 100644 (file)
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0, 0, 24, 24"><style>* { fill: #FFFFFF }</style>
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><style>* { fill: #FFFFFF }</style>
     <g id="settings">
         <path id="gear" d="M3 4h3v2h-3zM12 4h9v2h-9zM8 3h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1zM3 11h9v2h-9zM18 11h3v2h-3zM14 10h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1zM3 18h6v2h-6zM15 18h6v2h-6zM11 17h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1z"/>
     </g>
index 9fa0a4b..bcd665e 100644 (file)
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0, 0, 24, 24">
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
     <g id="settings">
         <path id="gear" d="M3 4h3v2h-3zM12 4h9v2h-9zM8 3h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1zM3 11h9v2h-9zM18 11h3v2h-3zM14 10h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1zM3 18h6v2h-6zM15 18h6v2h-6zM11 17h2c.552 0 1 .448 1 1v2c0 .552-.448 1-1 1h-2c-.552 0-1-.448-1-1v-2c0-.552.448-1 1-1z"/>
     </g>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr.png
new file mode 100644 (file)
index 0000000..30e88db
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-ltr.svg
new file mode 100644 (file)
index 0000000..0d49504
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M0 20h24v1h-24v-1zm6-8l-1-1-2 2-2-2-1 1 2 2-2 2 1 1 2-2 2 2 1-1-2-2zm15.6 3.7c-.9-.5-1.9-.5-2.7 0-1.5.9-3.1.4-3.1.4-.4-.2-.8-.4-1.1-.6 2.2-.6 4.4-1.8 6-3.9 1.1-1.2 2.5-3.9.4-6-.7-.7-1.6-1.1-2.7-1-1.4.1-2.8.9-3.9 2.1-.9 1.1-3.1 4.5-2.3 7.5 0 .1 0 .2.1.3-2.3.3-4.2.2-4.4.1v1.5c.7.1 2.7.2 5.1-.2.5.7 1.3 1.2 2.3 1.6.1 0 2.4.8 4.5-.6.5-.3.9-.1 1.1 0 .4.2.7.6.7 1h1.4c0-.8-.6-1.7-1.4-2.2zm-8-1.7c-.5-2.2 1.1-5.1 2-6.2.8-.9 1.8-1.5 2.8-1.6h.1c.6 0 1.1.2 1.5.6 1.6 1.6-.4 3.9-.5 4-1.5 2-3.7 3-5.8 3.5l-.1-.3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl.png
new file mode 100644 (file)
index 0000000..3d9fb23
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/signature-rtl.svg
new file mode 100644 (file)
index 0000000..6c0ae5e
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M24 20h-24v1h24v-1zm-6-8l1-1 2 2 2-2 1 1-2 2 2 2-1 1-2-2-2 2-1-1 2-2zm-15.6 3.7c.9-.5 1.9-.5 2.7 0 1.5.9 3.1.4 3.1.4.4-.2.8-.4 1.1-.6-2.2-.6-4.4-1.8-6-3.9-1.1-1.2-2.5-3.9-.4-6 .7-.7 1.6-1.1 2.7-1 1.4.1 2.8.9 3.9 2.1.9 1.1 3.1 4.5 2.3 7.5 0 .1 0 .2-.1.3 2.3.3 4.2.2 4.4.1v1.5c-.7.1-2.7.2-5.1-.2-.5.7-1.3 1.2-2.3 1.6-.1 0-2.4.8-4.5-.6-.5-.3-.9-.1-1.1 0-.4.2-.7.6-.7 1h-1.4c0-.8.6-1.7 1.4-2.2zm8-1.7c.5-2.2-1.1-5.1-2-6.2-.8-.9-1.8-1.5-2.8-1.6h-.1c-.6 0-1.1.2-1.5.6-1.6 1.6.4 3.9.5 4 1.5 2 3.7 3 5.8 3.5l.1-.3z" id="path576"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr.png
new file mode 100644 (file)
index 0000000..7181e6d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-ltr.svg
new file mode 100644 (file)
index 0000000..e8b427b
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+  <path id="a" d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z"/>
+  <g id="down">
+    <path id="arrow" d="M22 3l-3.5 6L15 3z"/>
+  </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl.png
new file mode 100644 (file)
index 0000000..cc539f0
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/smaller-rtl.svg
new file mode 100644 (file)
index 0000000..e5e9519
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+  <path id="a" d="M12.666 6h-1.372l-4.48 12H8.52l1.493-4h4l1.507 4h1.666l-4.52-12zm-2.28 7l1.617-4.333L13.637 13h-3.25z"/>
+  <g id="down">
+    <path id="arrow" d="M9 3L5.5 9 2 3z"/>
+  </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr.png
new file mode 100644 (file)
index 0000000..902d548
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-ltr.svg
new file mode 100644 (file)
index 0000000..f3fb8b3
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M19 20h-17l3-3v-11h17v11c0 1.7-1.3 3-3 3z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl.png
new file mode 100644 (file)
index 0000000..133ef1d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubble-rtl.svg
new file mode 100644 (file)
index 0000000..fd9b7bd
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g586">
+        <path d="M5 20h17l-3-3v-11h-17v11c0 1.7 1.3 3 3 3z" id="path588"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr.png
new file mode 100644 (file)
index 0000000..53e3f2c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-ltr.svg
new file mode 100644 (file)
index 0000000..333c1e8
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M19 20h-17l3-3v-11h17v11c0 1.7-1.3 3-3 3z"/>
+    </g>
+    <path fill="#fff" d="M13 9h1v7h-1zm-3 3h7v1h-7z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl.png
new file mode 100644 (file)
index 0000000..ef78b5e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbleAdd-rtl.svg
new file mode 100644 (file)
index 0000000..4e6313f
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g598">
+        <path d="M5 20h17l-3-3v-11h-17v11c0 1.7 1.3 3 3 3z" id="path600"/>
+    </g>
+    <path d="M11 9h-1v7h1zm3 3h-7v1h7z" id="path602" fill="#fff"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr.png
new file mode 100644 (file)
index 0000000..ed649b8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-ltr.svg
new file mode 100644 (file)
index 0000000..c4b4a2f
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M20 9v9l2 2h-14v-11h12zm-17-5h12v4h-8v7h-6l2-2v-9z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl.png
new file mode 100644 (file)
index 0000000..fa3bd32
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/speechBubbles-rtl.svg
new file mode 100644 (file)
index 0000000..c452fbb
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g612">
+        <path d="M3 9v9l-2 2h14v-11h-12zm17-5h-12v4h8v7h6l-2-2v-9z" id="path614"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/star.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/star.png
new file mode 100644 (file)
index 0000000..046bbf7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/star.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/star.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/star.svg
new file mode 100644 (file)
index 0000000..ea8c26c
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M12 7.4l1.7 3.6 4 .5-2.7 2.8.5 3.9-3.5-1.7-3.6 1.7.6-3.9-2.8-2.8 3.9-.5 1.9-3.6m0-3.4l-2.8 5.6-6.2.9 4.5 4.4-1.1 6.1 5.6-3 5.5 3-1-6.2 4.5-4.4-6.3-.9-2.7-5.5z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stop.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stop.png
new file mode 100644 (file)
index 0000000..b7e20ef
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stop.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stop.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stop.svg
new file mode 100644 (file)
index 0000000..7bd0633
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M12 6c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7m0-1c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm-3 5h6v6h-6z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr.png
new file mode 100644 (file)
index 0000000..093b1a9
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-ltr.svg
new file mode 100644 (file)
index 0000000..acacc36
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M4 9h12v2h-12v-2zm0 3h8v2h-8v-2zm0-7h16v3h-16v-3zm16 14h-16v-3h16v3z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl.png
new file mode 100644 (file)
index 0000000..e8aea5e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeFlow-rtl.svg
new file mode 100644 (file)
index 0000000..c38a283
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M20 9h-12v2h12v-2zm0 3h-8v2h8v-2zm0-7h-16v3h16v-3zm-16 14h16v-3h-16v3z" id="path624"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu.png
new file mode 100644 (file)
index 0000000..a49eaef
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSideMenu.svg
new file mode 100644 (file)
index 0000000..47e70d7
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M20 19h-16v-2h16v2z"/>
+    </g>
+    <g>
+        <path d="M20 15h-16v-2h16v2z"/>
+    </g>
+    <g>
+        <path d="M20 11h-16v-2h16v2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr.png
new file mode 100644 (file)
index 0000000..2c1e230
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-ltr.svg
new file mode 100644 (file)
index 0000000..7f8822b
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M20 11h-16v-2h16v2zm-16 1h8v2h-8v-2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl.png
new file mode 100644 (file)
index 0000000..5ce176c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeSummary-rtl.svg
new file mode 100644 (file)
index 0000000..fcb10ba
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g654">
+        <path d="M4 11h16v-2h-16v2zm16 1h-8v2h8v-2z" id="path656"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr.png
new file mode 100644 (file)
index 0000000..533a915
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-ltr.svg
new file mode 100644 (file)
index 0000000..76c80d2
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M17 13h-13v-3h13v3zm-5 6h-8v-3h8v3zm-8-12v-3h16v3h-16z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl.png
new file mode 100644 (file)
index 0000000..282c652
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/stripeToC-rtl.svg
new file mode 100644 (file)
index 0000000..308c2e6
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g666">
+        <path d="M7 13h13v-3h-13v3zm5 6h8v-3h-8v3zm8-12v-3h-16v3h16z" id="path668"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr.png
new file mode 100644 (file)
index 0000000..f8b8766
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-ltr.svg
new file mode 100644 (file)
index 0000000..b7507da
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+       <path id="x" d="M14 9l-2.354 3.406L14 16h-1.2L11 13.25 9.2 16H8l2.403-3.662L8 9h1.188l1.857 2.494L12.797 9H14z"/>
+       <path d="M18 13l-1 1v3l1 1h-1l-.527-.46L16 18h-1l1-1v-3l-1-1h1l.485.497L17 13z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl.png
new file mode 100644 (file)
index 0000000..f01e11d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/subscript-rtl.svg
new file mode 100644 (file)
index 0000000..9fe5325
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+       <path id="x" d="M12 9l2.354 3.406L12 16h1.2l1.8-2.75L16.8 16H18l-2.403-3.662L18 9h-1.188l-1.857 2.494L13.203 9H12z"/>
+       <path d="M8 13l1 1v3l-1 1h1l.527-.46L10 18h1l-1-1v-3l1-1h-1l-.485.497L9 13z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr.png
new file mode 100644 (file)
index 0000000..1f829c1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-ltr.svg
new file mode 100644 (file)
index 0000000..f1b7caf
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M18.1 5.1c0 .3-.1.6-.3.9l-1.4 1.4-.9-.8 2.2-2.2c.3.1.4.4.4.7zm-.5 5.3h3.2c0 .3-.1.6-.4.9s-.5.4-.8.4h-2v-1.3zm-6.2-5v-3.2c.3 0 .6.1.9.4s.4.5.4.8v2h-1.3zm6.4 11.7c-.3 0-.6-.1-.8-.3l-1.4-1.4.8-.8 2.2 2.2c-.2.2-.5.3-.8.3zm-11.6-12.2c.3 0 .6.1.8.3l1.4 1.4-.8.9-2.2-2.3c.2-.2.5-.3.8-.3zm5.2 11.7h1.2v3.2c-.3 0-.6-.1-.9-.4s-.4-.5-.4-.8l.1-2zm-7-6.2h2v1.2h-3.2c0-.3.1-.6.4-.9s.5-.3.8-.3zm1.8 5.6l1.4-1.4.8.8-2.2 2.2c-.2-.2-.3-.5-.3-.8s.1-.6.3-.8z"/>
+    <circle cx="12" cy="11" r="4"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl.png
new file mode 100644 (file)
index 0000000..1e6f362
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/sun-rtl.svg
new file mode 100644 (file)
index 0000000..a625fb9
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M5.9 5.1c0 .3.1.6.3.9l1.4 1.4.9-.8-2.2-2.2c-.3.1-.4.4-.4.7zm.5 5.3h-3.2c0 .3.1.6.4.9.3.3.5.4.8.4h2v-1.3zm6.2-5v-3.2c-.3 0-.6.1-.9.4-.3.3-.4.5-.4.8v2h1.3zm-6.4 11.7c.3 0 .6-.1.8-.3l1.4-1.4-.8-.8-2.2 2.2c.2.2.5.3.8.3zm11.6-12.2c-.3 0-.6.1-.8.3l-1.4 1.4.8.9 2.2-2.3c-.2-.2-.5-.3-.8-.3zm-5.2 11.7h-1.2v3.2c.3 0 .6-.1.9-.4.3-.3.4-.5.4-.8l-.1-2zm7-6.2h-2v1.2h3.2c0-.3-.1-.6-.4-.9-.3-.3-.5-.3-.8-.3zm-1.8 5.6l-1.4-1.4-.8.8 2.2 2.2c.2-.2.3-.5.3-.8 0-.3-.1-.6-.3-.8z" id="path678"/>
+    <circle cx="12" cy="11" r="4" id="circle680" transform="matrix(-1 0 0 1 24 0)"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr.png
new file mode 100644 (file)
index 0000000..69fe6e7
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-ltr.svg
new file mode 100644 (file)
index 0000000..39f30a7
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+       <path id="x" d="M14 9l-2.354 3.406L14 16h-1.2L11 13.25 9.2 16H8l2.403-3.662L8 9h1.188l1.857 2.494L12.797 9H14z"/>
+       <path d="M18 7l-1 1v3l1 1h-1l-.527-.46L16 12h-1l1-1V8l-1-1h1l.485.497L17 7z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl.png
new file mode 100644 (file)
index 0000000..eac3d1d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/superscript-rtl.svg
new file mode 100644 (file)
index 0000000..eabab21
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+       <path id="x" d="M12 9l2.354 3.406L12 16h1.2l1.8-2.75L16.8 16H18l-2.403-3.662L18 9h-1.188l-1.857 2.494L13.203 9H12z"/>
+       <path d="M8 7l1 1v3l-1 1h1l.527-.46L10 12h1l-1-1V8l1-1h-1l-.485.497L9 7z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table.png
new file mode 100644 (file)
index 0000000..fb6b985
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/table.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/table.svg
new file mode 100644 (file)
index 0000000..1ba8c44
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+
+    <g id="table-insert">
+        <path id="table" d="M4 5v13h16v-13zm2 2h5v4h-5zm7 0h5v4h-5zm-7 5h5v4h-5zm7 0h5v4h-5z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr.png
new file mode 100644 (file)
index 0000000..dd52d12
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-ltr.svg
new file mode 100644 (file)
index 0000000..6b594b2
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M24 6h-4v-4h-2v4h-4v2h4v4h2v-4h4z"/>
+    </g>
+    <path d="M19 13v7h-16c-1.1 0-2-.9-2-2v-11h12v-1h-13v12c0 1.7 1.3 3 3 3h17v-8h-1z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl.png
new file mode 100644 (file)
index 0000000..08b1613
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/templateAdd-rtl.svg
new file mode 100644 (file)
index 0000000..36b25a3
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g690">
+        <path d="M0 6h4v-4h2v4h4v2h-4v4h-2v-4h-4z" id="path692"/>
+    </g>
+    <path d="M5 13v7h16c1.1 0 2-.9 2-2v-11h-12v-1h13v12c0 1.7-1.3 3-3 3h-17v-8h1z" id="path694"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr.png
new file mode 100644 (file)
index 0000000..1025461
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-ltr.svg
new file mode 100644 (file)
index 0000000..7740e43
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M11.1 13.1c-1.8-2.1-2.7-4.3-3-5.1h4.7l.7-2h-5.5v-3h-2v3h-5v2h5c-.2.9-1.3 4.8-5.1 7.6l1.2 1.6c2.7-2 4.3-4.5 5.1-6.4.7 1.3 1.7 3 3.2 4.5l.7-2.2zm1.4 6.9l1.3-4h5.3l1.3 4h2.2l-4.6-14h-3l-4.7 14h2.2zm4-12l2 6h-4l2-6z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl.png
new file mode 100644 (file)
index 0000000..17f543c
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/translation-rtl.svg
new file mode 100644 (file)
index 0000000..c78e622
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M12.4 13.1c1.8-2.1 2.7-4.3 3-5.1h-4.7l-.7-2h5.5v-3h2v3h5v2h-5c.2.9 1.3 4.8 5.1 7.6l-1.2 1.6c-2.7-2-4.3-4.5-5.1-6.4-.7 1.3-1.7 3-3.2 4.5l-.7-2.2zm-1.4 6.9l-1.3-4h-5.3l-1.3 4h-2.2l4.6-14h3l4.7 14h-2.2zm-4-12l-2 6h4l-2-6z" id="path704"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trash.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trash.png
new file mode 100644 (file)
index 0000000..dfee886
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trash.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trash.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trash.svg
new file mode 100644 (file)
index 0000000..f591431
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M6 8c0-1.1.9-2 2-2h2l1-1h2l1 1h2c1.1 0 2 .9 2 2h-12zm1 1h10l-1 11h-8z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.png
new file mode 100644 (file)
index 0000000..594836e
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-ltr.svg
new file mode 100644 (file)
index 0000000..0731f05
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M20.5 20.5l-15.5-15.5-1 1 3 3 1 11h8l.2-1.8 3.3 3.3zm-3.5-11.5h-6l5.5 5.5zm1-1c0-1.1-.9-2-2-2h-2l-1-1h-2l-1 1h-2l2 2h8z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.png
new file mode 100644 (file)
index 0000000..182e56d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/trashUndo-rtl.svg
new file mode 100644 (file)
index 0000000..2a92cbe
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g714">
+        <path d="M4 20.5l15.5-15.5 1 1-3 3-1 11h-8l-.2-1.8-3.3 3.3zm3.5-11.5h6l-5.5 5.5zm-1-1c0-1.1.9-2 2-2h2l1-1h2l1 1h2l-2 2h-8z" id="path716"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr.png
new file mode 100644 (file)
index 0000000..8f261a8
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-ltr.svg
new file mode 100644 (file)
index 0000000..66c024a
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M12 9v-2s0-5-4.5-5-4.5 5-4.5 5h2s0-3 2.5-3 2.5 3 2.5 3v2h-3v7c0 1.7 1.3 3 3 3h10v-10z" id="path726"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl.png
new file mode 100644 (file)
index 0000000..e683c52
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unLock-rtl.svg
new file mode 100644 (file)
index 0000000..07cecbf
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M11 9v-2s0-5 4.5-5 4.5 5 4.5 5h-2s0-3-2.5-3-2.5 3-2.5 3v2h3v7c0 1.7-1.3 3-3 3h-10v-10z" id="path726"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar.png
new file mode 100644 (file)
index 0000000..bdb1c4f
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/unStar.svg
new file mode 100644 (file)
index 0000000..724d190
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M21 11l-6-1-3-6-3 6-6 1 4 4-1 6 6-3 6 3-1-6 4-4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle.png
new file mode 100644 (file)
index 0000000..1b65589
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upTriangle.svg
new file mode 100644 (file)
index 0000000..9e5e72f
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M12 8l8 10h-16z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr.png
new file mode 100644 (file)
index 0000000..fa2da24
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-ltr.svg
new file mode 100644 (file)
index 0000000..18879e3
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M10 13c0 1.7 1.3 3 3 3v-7h3l-4.5-5-4.5 5h3v4zm7 0v5h-10c-.6 0-1-.4-1-1v-4h-2v4c0 1.9 1.3 3 3 3h12v-7h-2z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl.png
new file mode 100644 (file)
index 0000000..1ac6106
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/upload-rtl.svg
new file mode 100644 (file)
index 0000000..7a3535b
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g736">
+        <path d="M13 13c0 1.7-1.3 3-3 3v-7h-3l4.5-5 4.5 5h-3v4zm-7 0v5h10c.6 0 1-.4 1-1v-4h2v4c0 1.9-1.3 3-3 3h-12v-7h2z" id="path738"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr.png
new file mode 100644 (file)
index 0000000..bc94f18
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-ltr.svg
new file mode 100644 (file)
index 0000000..5dcc317
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M16 5h-12v12c0 1.7 1.3 3 3 3h12v-12c0-1.7-1.3-3-3-3zm-2 4c.7 0 1.2.6 1.2 1.2s-.6 1.2-1.2 1.2-1.2-.6-1.2-1.2.5-1.2 1.2-1.2zm-5 0c.7 0 1.2.6 1.2 1.2s-.5 1.3-1.2 1.3-1.2-.6-1.2-1.2.5-1.3 1.2-1.3zm7 5.4c0 .2-.1.3-.3.5-.7.6-1.6 1-2.6 1.3s-2.1.2-3.1 0-2-.9-2.7-1.5c-.1-.1-.2-.3-.2-.4s.1-.3.2-.4c.1-.1.3-.2.4-.2.2 0 .3.1.4.2.5.5 1.2.9 2.1 1.1s1.7.2 2.6 0 1.6-.5 2.1-1c.1-.1.3-.2.4-.2s.3.1.5.2.2.2.2.4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl.png
new file mode 100644 (file)
index 0000000..6fb01ce
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userActive-rtl.svg
new file mode 100644 (file)
index 0000000..a5e4dc9
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M7 5h12v12c0 1.7-1.3 3-3 3h-12v-12c0-1.7 1.3-3 3-3zm2 4c-.7 0-1.2.6-1.2 1.2s.6 1.2 1.2 1.2 1.2-.6 1.2-1.2-.5-1.2-1.2-1.2zm5 0c-.7 0-1.2.6-1.2 1.2s.5 1.3 1.2 1.3 1.2-.6 1.2-1.2-.5-1.3-1.2-1.3zm-7 5.4c0 .2.1.3.3.5.7.6 1.6 1 2.6 1.3 1 .3 2.1.2 3.1 0s2-.9 2.7-1.5c.1-.1.2-.3.2-.4 0-.1-.1-.3-.2-.4-.1-.1-.3-.2-.4-.2-.2 0-.3.1-.4.2-.5.5-1.2.9-2.1 1.1-.9.2-1.7.2-2.6 0-.9-.2-1.6-.5-2.1-1-.1-.1-.3-.2-.4-.2-.1 0-.3.1-.5.2s-.2.2-.2.4z" id="path748"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar.png
new file mode 100644 (file)
index 0000000..3c3fb47
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userAvatar.svg
new file mode 100644 (file)
index 0000000..e9687fa
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g4">
+        <g id="g6">
+            <path d="M11.5 13c1.7 0 3.5-2 3.5-5 0-.1 0-4-3.5-4s-3.5 3.9-3.5 4c0 3 1.8 5 3.5 5zm3.5-1c-.4.7-1.7 2-3.5 2s-3.2-1.3-3.5-2h-2c-1.1 0-2 .9-2 2v6h15v-6c0-1.1-.9-2-2-2h-2z" id="path8"/>
+        </g>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr.png
new file mode 100644 (file)
index 0000000..7e4cfd1
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-ltr.svg
new file mode 100644 (file)
index 0000000..bb5b096
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M16 5h-12v12c0 1.7 1.3 3 3 3h12v-12c0-1.7-1.3-3-3-3zm-9.3 5.4c-.5-.4-.7-.8-.7-1.4.6.6 1.5.9 2.5.9s1.9-.3 2.5-.9c0 .6-.2 1-.7 1.4-.5.4-1.1.6-1.8.6s-1.3-.2-1.8-.6zm8.4 4.3c0 .2-.1.3-.3.4-1 .6-2.2.9-3.5.9-1.2 0-2.3-.3-3.3-1-.2-.1-.2-.2-.3-.4s0-.3.1-.5.2-.2.4-.3.3 0 .5.1c.8.5 1.7.8 2.8.8s2-.2 2.8-.7c.1-.1.3-.1.5-.1s.3.1.4.3l-.1.5zm1.2-4.3c-.5.4-1.1.6-1.8.6s-1.3-.2-1.8-.6-.7-.8-.7-1.4c.6.6 1.5.9 2.5.9s1.9-.3 2.5-.9c0 .6-.2 1-.7 1.4z"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl.png
new file mode 100644 (file)
index 0000000..d71a08b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userInactive-rtl.svg
new file mode 100644 (file)
index 0000000..4a9fd0d
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M7 5h12v12c0 1.7-1.3 3-3 3h-12v-12c0-1.7 1.3-3 3-3zm9.3 5.4c.5-.4.7-.8.7-1.4-.6.6-1.5.9-2.5.9s-1.9-.3-2.5-.9c0 .6.2 1 .7 1.4.5.4 1.1.6 1.8.6s1.3-.2 1.8-.6zm-8.4 4.3c0 .2.1.3.3.4 1 .6 2.2.9 3.5.9 1.2 0 2.3-.3 3.3-1 .2-.1.2-.2.3-.4.1-.2 0-.3-.1-.5s-.2-.2-.4-.3c-.2-.1-.3 0-.5.1-.8.5-1.7.8-2.8.8-1.1 0-2-.2-2.8-.7-.1-.1-.3-.1-.5-.1s-.3.1-.4.3l.1.5zm-1.2-4.3c.5.4 1.1.6 1.8.6s1.3-.2 1.8-.6c.5-.4.7-.8.7-1.4-.6.6-1.5.9-2.5.9s-1.9-.3-2.5-.9c0 .6.2 1 .7 1.4z" id="path758"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr.png
new file mode 100644 (file)
index 0000000..952410a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-ltr.svg
new file mode 100644 (file)
index 0000000..f516539
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M5 6v11l-3 3h17c1.7 0 3-1.3 3-3v-11h-17zm11.2 2.5c.7 0 1.2.6 1.2 1.2s-.5 1.3-1.2 1.3-1.2-.6-1.2-1.2.6-1.3 1.2-1.3zm-5.4 0c.7 0 1.2.6 1.2 1.2s-.6 1.3-1.2 1.3-1.2-.6-1.2-1.2.5-1.3 1.2-1.3zm2.7 8.5c-5.1 0-6-5-6-5s2 1 6 1l6-1s-1 5-6 5z" id="path6"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl.png
new file mode 100644 (file)
index 0000000..1a0983d
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/userTalk-rtl.svg
new file mode 100644 (file)
index 0000000..8963faf
--- /dev/null
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <path d="M19 6v11l3 3h-17c-1.7 0-3-1.3-3-3v-11h17zm-11.2 2.5c-.7 0-1.2.6-1.2 1.2s.5 1.3 1.2 1.3 1.2-.6 1.2-1.2-.6-1.3-1.2-1.3zm5.4 0c-.7 0-1.2.6-1.2 1.2s.6 1.3 1.2 1.3 1.2-.6 1.2-1.2-.5-1.3-1.2-1.3zm-2.7 8.5c5.1 0 6-5 6-5s-2 1-6 1l-6-1s1 5 6 5z" id="path770"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr.png
new file mode 100644 (file)
index 0000000..4b94c1a
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-ltr.svg
new file mode 100644 (file)
index 0000000..79c7d5c
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M13 14h5v1h-5v-1zm0 3h5v-1h-5v1zm0 1h5v1h-5v-1zm-1-5v3l-5 3 1-6-4-3 6-1 2-5s1.9 5 2 5l6 1-4 3h-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl.png
new file mode 100644 (file)
index 0000000..f9cc5ea
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/watchlist-rtl.svg
new file mode 100644 (file)
index 0000000..6bbc2fa
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g780">
+        <path d="M11 14h-5v1h5v-1zm0 3h-5v-1h5v1zm0 1h-5v1h5v-1zm1-5v3l5 3-1-6 4-3-6-1-2-5s-1.9 5-2 5l-6 1 4 3h4z" id="path782"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.png
new file mode 100644 (file)
index 0000000..4b15161
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikiText.svg
new file mode 100644 (file)
index 0000000..eebd9b1
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M23 5h-4v2h2v10h-2v2h4z"/>
+    </g>
+    <g>
+        <path d="M18 5h-4v2h2v10h-2v2h4z"/>
+    </g>
+    <g>
+        <path d="M2 5h4v2h-2v10h2v2h-4z"/>
+    </g>
+    <g>
+        <path d="M7 5h4v2h-2v10h2v2h-4z"/>
+    </g>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.png
new file mode 100644 (file)
index 0000000..41743b3
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-ltr.svg
new file mode 100644 (file)
index 0000000..c606bec
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g>
+        <path d="M15 9l.7-1.8c.9.4 1.8.7 2.4.9l-.6 1.7v.2l-2.5-1zm-4.3-1.9l.8-1.8c1.2.5 2.6 1.1 3 1.4l-.8 1.8-3-1.4zm-5.9-1c-.8 0-1.4.2-2 .6l-1.1-1.7c.9-.6 1.9-.9 3.1-.9v2zm-4.3.7l1.8.8c-.3.7-.3 1.3-.1 1.8l-1.9.7c-.3-1.2-.3-2.3.2-3.3zm4.2 5.4l-1.3 1.5c-1-1-1.7-1.6-2-2l1.5-1.3c.7.8 1.3 1.4 1.8 1.8zm7.3 4.3c0 1.9-1.6 3.5-3.5 3.5s-3.5-1.6-3.5-3.5 1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5z"/>
+    </g>
+    <path d="M24 8l-1-1-1.5 1.5-1.5-1.5-1 1 1.5 1.5-1.5 1.5 1 1 1.5-1.5 1.5 1.5 1-1-1.5-1.5z"/>
+    <circle cx="8" cy="5" r="2"/>
+</svg>
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.png b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.png
new file mode 100644 (file)
index 0000000..29dc26b
Binary files /dev/null and b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.png differ
diff --git a/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.svg b/resources/lib/oojs-ui/themes/mediawiki/images/icons/wikitrail-rtl.svg
new file mode 100644 (file)
index 0000000..f304f6e
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
+    <g id="g792">
+        <path d="M9.095 9l-.7-1.8c-.9.4-1.8.7-2.4.9l.6 1.7v.2l2.5-1zm4.3-1.9l-.8-1.8c-1.2.5-2.6 1.1-3 1.4l.8 1.8 3-1.4zm5.9-1c.8 0 1.4.2 2 .6l1.1-1.7c-.9-.6-1.9-.9-3.1-.9v2zm4.3.7l-1.8.8c.3.7.3 1.3.1 1.8l1.9.7c.3-1.2.3-2.3-.2-3.3zm-4.2 5.4l1.3 1.5c1-1 1.7-1.6 2-2l-1.5-1.3c-.7.8-1.3 1.4-1.8 1.8zm-7.3 4.3c0 1.9 1.6 3.5 3.5 3.5s3.5-1.6 3.5-3.5-1.6-3.5-3.5-3.5-3.5 1.6-3.5 3.5z" id="path794"/>
+    </g>
+    <path d="M.095 8l1-1 1.5 1.5 1.5-1.5 1 1-1.5 1.5 1.5 1.5-1 1-1.5-1.5-1.5 1.5-1-1 1.5-1.5z" id="path796"/>
+    <circle cx="8" cy="5" r="2" id="circle798" transform="matrix(-1 0 0 1 24.095 0)"/>
+</svg>
index 9edc9de..ac769a3 100644 (file)
Binary files a/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr-invert.png and b/resources/lib/oojs-ui/themes/mediawiki/images/indicators/arrow-ltr-invert.png differ
index 64203e1..3d36e4f 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><style>* { fill: #FFFFFF }</style>
-    <g id="ltr">
-        <path id="arrow" d="M4 1l-.47.463c-.444.45-.444 1.186 0 1.637L6.423 6l-2.9 2.91c-.444.45-.43 1.177.02 1.627L4 11l5-5h-.01H9L4 1"/>
+    <g id="rtl">
+        <path id="arrow" d="M8 11l.47-.463c.444-.45.444-1.186 0-1.637L5.576 6l2.9-2.91c.444-.45.43-1.177-.02-1.627L8 1 3 6h.01H3l5 5"/>
     </g>
 </svg>
index cf5a616..18dc564 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs v1.1.5 optimised for jQuery
+ * OOjs v1.1.6 optimised for jQuery
  * https://www.mediawiki.org/wiki/OOjs
  *
  * Copyright 2011-2015 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: 2015-02-26T01:51:06Z
+ * Date: 2015-03-19T00:42:55Z
  */
 ( function ( global ) {
 
@@ -435,6 +435,21 @@ oo.getHash.keySortReplacer = function ( key, val ) {
        }
 };
 
+/**
+ * Get the unique values of an array, removing duplicates
+ *
+ * @param {Array} arr Array
+ * @return {Array} Unique values in array
+ */
+oo.unique = function ( arr ) {
+       return arr.reduce( function ( result, current ) {
+               if ( result.indexOf( current ) === -1 ) {
+                       result.push( current );
+               }
+               return result;
+       }, [] );
+};
+
 /**
  * Compute the union (duplicate-free merge) of a set of arrays.
  *
diff --git a/resources/src/jquery/jquery.client.js b/resources/src/jquery/jquery.client.js
deleted file mode 100644 (file)
index df0696f..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-/**
- * User-agent detection
- *
- * @class jQuery.client
- * @singleton
- */
-( function ( $ ) {
-
-       /**
-        * @private
-        * @property {Object} profileCache Keyed by userAgent string,
-        * value is the parsed $.client.profile object for that user agent.
-        */
-       var profileCache = {};
-
-       $.client = {
-
-               /**
-                * Get an object containing information about the client.
-                *
-                * @param {Object} [nav] An object with a 'userAgent' and 'platform' property.
-                *  Defaults to the global `navigator` object.
-                * @return {Object} The resulting client object will be in the following format:
-                *
-                *     {
-                *         'name': 'firefox',
-                *         'layout': 'gecko',
-                *         'layoutVersion': 20101026,
-                *         'platform': 'linux'
-                *         'version': '3.5.1',
-                *         'versionBase': '3',
-                *         'versionNumber': 3.5,
-                *     }
-                */
-               profile: function ( nav ) {
-                       /*jshint boss: true */
-
-                       if ( nav === undefined ) {
-                               nav = window.navigator;
-                       }
-
-                       // Use the cached version if possible
-                       if ( profileCache[ nav.userAgent + '|' + nav.platform ] !== undefined ) {
-                               return profileCache[ nav.userAgent + '|' + nav.platform ];
-                       }
-
-                       var
-                               versionNumber,
-                               key = nav.userAgent + '|' + nav.platform,
-
-                               // Configuration
-
-                               // Name of browsers or layout engines we don't recognize
-                               uk = 'unknown',
-                               // Generic version digit
-                               x = 'x',
-                               // Strings found in user agent strings that need to be conformed
-                               wildUserAgents = ['Opera', 'Navigator', 'Minefield', 'KHTML', 'Chrome', 'PLAYSTATION 3', 'Iceweasel'],
-                               // Translations for conforming user agent strings
-                               userAgentTranslations = [
-                                       // Tons of browsers lie about being something they are not
-                                       [/(Firefox|MSIE|KHTML,?\slike\sGecko|Konqueror)/, ''],
-                                       // Chrome lives in the shadow of Safari still
-                                       ['Chrome Safari', 'Chrome'],
-                                       // KHTML is the layout engine not the browser - LIES!
-                                       ['KHTML', 'Konqueror'],
-                                       // Firefox nightly builds
-                                       ['Minefield', 'Firefox'],
-                                       // This helps keep different versions consistent
-                                       ['Navigator', 'Netscape'],
-                                       // This prevents version extraction issues, otherwise translation would happen later
-                                       ['PLAYSTATION 3', 'PS3']
-                               ],
-                               // Strings which precede a version number in a user agent string - combined and used as
-                               // match 1 in version detection
-                               versionPrefixes = [
-                                       'camino', 'chrome', 'firefox', 'iceweasel', 'netscape', 'netscape6', 'opera', 'version', 'konqueror',
-                                       'lynx', 'msie', 'safari', 'ps3', 'android'
-                               ],
-                               // Used as matches 2, 3 and 4 in version extraction - 3 is used as actual version number
-                               versionSuffix = '(\\/|\\;?\\s|)([a-z0-9\\.\\+]*?)(\\;|dev|rel|\\)|\\s|$)',
-                               // Names of known browsers
-                               names = [
-                                       'camino', 'chrome', 'firefox', 'iceweasel', 'netscape', 'konqueror', 'lynx', 'msie', 'opera',
-                                       'safari', 'ipod', 'iphone', 'blackberry', 'ps3', 'rekonq', 'android'
-                               ],
-                               // Tanslations for conforming browser names
-                               nameTranslations = [],
-                               // Names of known layout engines
-                               layouts = ['gecko', 'konqueror', 'msie', 'trident', 'edge', 'opera', 'webkit'],
-                               // Translations for conforming layout names
-                               layoutTranslations = [ ['konqueror', 'khtml'], ['msie', 'trident'], ['opera', 'presto'] ],
-                               // Names of supported layout engines for version number
-                               layoutVersions = ['applewebkit', 'gecko', 'trident', 'edge'],
-                               // Names of known operating systems
-                               platforms = ['win', 'wow64', 'mac', 'linux', 'sunos', 'solaris', 'iphone'],
-                               // Translations for conforming operating system names
-                               platformTranslations = [ ['sunos', 'solaris'], ['wow64', 'win'] ],
-
-                               /**
-                                * Performs multiple replacements on a string
-                                * @ignore
-                                */
-                               translate = function ( source, translations ) {
-                                       var i;
-                                       for ( i = 0; i < translations.length; i++ ) {
-                                               source = source.replace( translations[i][0], translations[i][1] );
-                                       }
-                                       return source;
-                               },
-
-                               // Pre-processing
-
-                               ua = nav.userAgent,
-                               match,
-                               name = uk,
-                               layout = uk,
-                               layoutversion = uk,
-                               platform = uk,
-                               version = x;
-
-                       if ( match = new RegExp( '(' + wildUserAgents.join( '|' ) + ')' ).exec( ua ) ) {
-                               // Takes a userAgent string and translates given text into something we can more easily work with
-                               ua = translate( ua, userAgentTranslations );
-                       }
-                       // Everything will be in lowercase from now on
-                       ua = ua.toLowerCase();
-
-                       // Extraction
-
-                       if ( match = new RegExp( '(' + names.join( '|' ) + ')' ).exec( ua ) ) {
-                               name = translate( match[1], nameTranslations );
-                       }
-                       if ( match = new RegExp( '(' + layouts.join( '|' ) + ')' ).exec( ua ) ) {
-                               layout = translate( match[1], layoutTranslations );
-                       }
-                       if ( match = new RegExp( '(' + layoutVersions.join( '|' ) + ')\\\/(\\d+)').exec( ua ) ) {
-                               layoutversion = parseInt( match[2], 10 );
-                       }
-                       if ( match = new RegExp( '(' + platforms.join( '|' ) + ')' ).exec( nav.platform.toLowerCase() ) ) {
-                               platform = translate( match[1], platformTranslations );
-                       }
-                       if ( match = new RegExp( '(' + versionPrefixes.join( '|' ) + ')' + versionSuffix ).exec( ua ) ) {
-                               version = match[3];
-                       }
-
-                       // Edge Cases -- did I mention about how user agent string lie?
-
-                       // Decode Safari's crazy 400+ version numbers
-                       if ( name === 'safari' && version > 400 ) {
-                               version = '2.0';
-                       }
-                       // Expose Opera 10's lies about being Opera 9.8
-                       if ( name === 'opera' && version >= 9.8 ) {
-                               match = ua.match( /\bversion\/([0-9\.]*)/ );
-                               if ( match && match[1] ) {
-                                       version = match[1];
-                               } else {
-                                       version = '10';
-                               }
-                       }
-                       // And Opera 15's lies about being Chrome
-                       if ( name === 'chrome' && ( match = ua.match( /\bopr\/([0-9\.]*)/ ) ) ) {
-                               if ( match[1] ) {
-                                       name = 'opera';
-                                       version = match[1];
-                               }
-                       }
-                       // And IE 11's lies about being not being IE
-                       if ( layout === 'trident' && layoutversion >= 7 && ( match = ua.match( /\brv[ :\/]([0-9\.]*)/ ) ) ) {
-                               if ( match[1] ) {
-                                       name = 'msie';
-                                       version = match[1];
-                               }
-                       }
-                       // And IE 12's different lies about not being IE
-                       if ( name === 'chrome' && ( match = ua.match( /\bedge\/([0-9\.]*)/ ) ) ) {
-                               name = 'msie';
-                               version = match[1];
-                               layout = 'edge';
-                               layoutversion = parseInt( match[1], 10 );
-                       }
-                       // And Amazon Silk's lies about being Android on mobile or Safari on desktop
-                       if ( match = ua.match( /\bsilk\/([0-9.\-_]*)/ ) ) {
-                               if ( match[1] ) {
-                                       name = 'silk';
-                                       version = match[1];
-                               }
-                       }
-
-                       versionNumber = parseFloat( version, 10 ) || 0.0;
-
-                       // Caching
-
-                       return profileCache[ key  ] = {
-                               name: name,
-                               layout: layout,
-                               layoutVersion: layoutversion,
-                               platform: platform,
-                               version: version,
-                               versionBase: ( version !== x ? Math.floor( versionNumber ).toString() : x ),
-                               versionNumber: versionNumber
-                       };
-               },
-
-               /**
-                * Checks the current browser against a support map object.
-                *
-                * Version numbers passed as numeric values will be compared like numbers (1.2 > 1.11).
-                * Version numbers passed as string values will be compared using a simple component-wise
-                * algorithm, similar to PHP's version_compare ('1.2' < '1.11').
-                *
-                * A browser map is in the following format:
-                *
-                *     {
-                *         // Multiple rules with configurable operators
-                *         'msie': [['>=', 7], ['!=', 9]],
-                *         // Match no versions
-                *         'iphone': false,
-                *         // Match any version
-                *         'android': null
-                *     }
-                *
-                * It can optionally be split into ltr/rtl sections:
-                *
-                *     {
-                *         'ltr': {
-                *             'android': null,
-                *             'iphone': false
-                *         },
-                *         'rtl': {
-                *             'android': false,
-                *             // rules are not inherited from ltr
-                *             'iphone': false
-                *         }
-                *     }
-                *
-                * @param {Object} map Browser support map
-                * @param {Object} [profile] A client-profile object
-                * @param {boolean} [exactMatchOnly=false] Only return true if the browser is matched, otherwise
-                * returns true if the browser is not found.
-                *
-                * @return {boolean} The current browser is in the support map
-                */
-               test: function ( map, profile, exactMatchOnly ) {
-                       /*jshint evil: true */
-
-                       var conditions, dir, i, op, val, j, pieceVersion, pieceVal, compare;
-                       profile = $.isPlainObject( profile ) ? profile : $.client.profile();
-                       if ( map.ltr && map.rtl ) {
-                               dir = $( 'body' ).is( '.rtl' ) ? 'rtl' : 'ltr';
-                               map = map[dir];
-                       }
-                       // Check over each browser condition to determine if we are running in a compatible client
-                       if ( typeof map !== 'object' || map[profile.name] === undefined ) {
-                               // Not found, return true if exactMatchOnly not set, false otherwise
-                               return !exactMatchOnly;
-                       }
-                       conditions = map[profile.name];
-                       if ( conditions === false ) {
-                               // Match no versions
-                               return false;
-                       }
-                       if ( conditions === null ) {
-                               // Match all versions
-                               return true;
-                       }
-                       for ( i = 0; i < conditions.length; i++ ) {
-                               op = conditions[i][0];
-                               val = conditions[i][1];
-                               if ( typeof val === 'string' ) {
-                                       // Perform a component-wise comparison of versions, similar to PHP's version_compare
-                                       // but simpler. '1.11' is larger than '1.2'.
-                                       pieceVersion = profile.version.toString().split( '.' );
-                                       pieceVal = val.split( '.' );
-                                       // Extend with zeroes to equal length
-                                       while ( pieceVersion.length < pieceVal.length ) {
-                                               pieceVersion.push( '0' );
-                                       }
-                                       while ( pieceVal.length < pieceVersion.length ) {
-                                               pieceVal.push( '0' );
-                                       }
-                                       // Compare components
-                                       compare = 0;
-                                       for ( j = 0; j < pieceVersion.length; j++ ) {
-                                               if ( Number( pieceVersion[j] ) < Number( pieceVal[j] ) ) {
-                                                       compare = -1;
-                                                       break;
-                                               } else if ( Number( pieceVersion[j] ) > Number( pieceVal[j] ) ) {
-                                                       compare = 1;
-                                                       break;
-                                               }
-                                       }
-                                       // compare will be -1, 0 or 1, depending on comparison result
-                                       if ( !( eval( String( compare + op + '0' ) ) ) ) {
-                                               return false;
-                                       }
-                               } else if ( typeof val === 'number' ) {
-                                       if ( !( eval( 'profile.versionNumber' + op + val ) ) ) {
-                                               return false;
-                                       }
-                               }
-                       }
-
-                       return true;
-               }
-       };
-}( jQuery ) );
index e4ccf2b..4aa839c 100644 (file)
@@ -9,16 +9,23 @@
         */
        function doLivePreview( e ) {
                var isDiff, api, request, postData, copySelectors, section,
-                       $wikiPreview, $wikiDiff, $editform, $copyElements, $spinner;
-
-               e.preventDefault();
+                       $wikiPreview, $wikiDiff, $editform, $copyElements, $spinner, $errorBox;
 
                isDiff = ( e.target.name === 'wpDiff' );
                $wikiPreview = $( '#wikiPreview' );
                $wikiDiff = $( '#wikiDiff' );
                $editform = $( '#editform' );
+               $errorBox = $( '.errorbox' );
                section = $editform.find( '[name="wpSection"]' ).val();
 
+               // Show changes for a new section is not yet supported
+               if ( isDiff && section === 'new' ) {
+                       return;
+               }
+               e.preventDefault();
+
+               // Remove any previously displayed errors
+               $errorBox.remove();
                // Show #wikiPreview if it's hidden to be able to scroll to it
                // (if it is hidden, it's also empty, so nothing changes in the rendering)
                $wikiPreview.show();
                        summary: $editform.find( '#wpSummary' ).textSelection( 'getContents' )
                };
 
+               if ( section !== '' ) {
+                       postData.sectionpreview = '';
+                       if ( section === 'new' ) {
+                               postData.section = section;
+                               postData.sectiontitle = postData.summary;
+                       }
+               }
+
                if ( isDiff ) {
                        $wikiPreview.hide();
 
                                prop: 'text|displaytitle|modules|categorieshtml|templates|langlinks|limitreporthtml',
                                disableeditsection: true
                        } );
-                       if ( section !== '' ) {
-                               postData.sectionpreview = '';
-                       }
                        request = api.post( postData );
                        request.done( function ( response ) {
-                               var li, newList, $next, $parent, $list;
+                               var li, newList, $displaytitle, $content, $parent, $list;
                                if ( response.parse.modules ) {
                                        mw.loader.load( response.parse.modules.concat(
                                                response.parse.modulescripts,
                                                response.parse.modulemessages ) );
                                }
                                if ( response.parse.displaytitle ) {
-                                       $( '#firstHeading' ).html( response.parse.displaytitle );
+                                       $displaytitle = $( $.parseHTML( response.parse.displaytitle ) );
+                                       $( '#firstHeading' ).msg(
+                                               mw.config.get( 'wgEditMessage', 'editing' ),
+                                               $displaytitle
+                                       );
+                                       document.title = mw.msg(
+                                               'pagetitle',
+                                               mw.msg(
+                                                       mw.config.get( 'wgEditMessage', 'editing' ),
+                                                       $displaytitle.text()
+                                               )
+                                       );
                                }
                                if ( response.parse.categorieshtml ) {
                                        $( '#catlinks' ).replaceWith( response.parse.categorieshtml['*'] );
                                                newList.push( li );
                                        } );
 
-                                       $editform.find( '.mw-editfooter-list' ).detach().empty().append( newList ).appendTo( '.templatesUsed' );
+                                       $editform.find( '.templatesUsed .mw-editfooter-list' ).detach().empty().append( newList ).appendTo( '.templatesUsed' );
                                }
                                if ( response.parse.limitreporthtml ) {
                                        $( '.limitreport' ).html( response.parse.limitreporthtml['*'] );
                                }
 
                                if ( response.parse.text['*'] ) {
-                                       $next = $wikiPreview.next();
-                                       // If there is no next node, use parent instead.
-                                       // Only query parent if needed, false otherwise.
-                                       $parent = !$next.length && $wikiPreview.parent();
-
-                                       $wikiPreview
+                                       $content = $wikiPreview.children( '.mw-content-ltr,.mw-content-rtl' );
+                                       $content
                                                .detach()
                                                .html( response.parse.text['*'] );
 
-                                       mw.hook( 'wikipage.content' ).fire( $wikiPreview );
+                                       mw.hook( 'wikipage.content' ).fire( $content );
 
                                        // Reattach
-                                       if ( $parent ) {
-                                               $parent.append( $wikiPreview );
-                                       } else {
-                                               $next.before( $wikiPreview );
-                                       }
+                                       $wikiPreview.append( $content );
+
                                        $wikiPreview.show();
 
                                }
                        } );
                }
                request.done( function ( response ) {
+                       var isSubject = ( section === 'new' ),
+                               summaryMsg = isSubject ? 'subject-preview' : 'summary-preview';
                        if ( response.parse.parsedsummary ) {
-                               // TODO implement special behavior for section === 'new'
                                $editform.find( '.mw-summary-preview' )
                                        .empty()
                                        .append(
-                                               mw.message( 'summary-preview' ).parse(),
+                                               mw.message( summaryMsg ).parse(),
                                                ' ',
                                                $( '<span>' ).addClass( 'comment' ).html(
                                                        // There is no equivalent to rawParams
                                opacity: 1
                        }, 'fast' );
                } );
+               request.fail( function ( code, result ) {
+                       var errorMsg = 'API error: ' +  code;
+                       if ( code === 'http' ) {
+                               errorMsg = 'HTTP error: ';
+                               if ( result.exception ) {
+                                       errorMsg += result.exception;
+                               } else {
+                                       errorMsg += result.textStatus;
+                               }
+                       }
+                       $errorBox = $( '<div>' )
+                               .addClass( 'errorbox' )
+                               .html( '<strong>' + mw.message( 'previewerrortext' ).escaped() + '</strong><br>' )
+                               .append( document.createTextNode( errorMsg ) );
+                       $wikiDiff.hide();
+                       $wikiPreview.hide().before( $errorBox );
+               } );
        }
 
        $( function () {
                }
 
                if ( !$( '.mw-summary-preview' ).length ) {
-                       $( '.editCheckboxes' ).before(
+                       $( '#wpSummary' ).after(
                                $( '<div>' ).addClass( 'mw-summary-preview' )
                        );
                }
                if ( !document.getElementById( 'wikiDiff' ) && document.getElementById( 'wikiPreview' ) ) {
                        $( '#wikiPreview' ).after(
                                $( '<div>' )
+                                       .hide()
                                        .attr( 'id', 'wikiDiff' )
                                        .html( '<table class="diff"><col class="diff-marker"/><col class="diff-content"/>' +
                                                '<col class="diff-marker"/><col class="diff-content"/><tbody/></table>' )
diff --git a/resources/src/mediawiki.api/mediawiki.api.options.js b/resources/src/mediawiki.api/mediawiki.api.options.js
new file mode 100644 (file)
index 0000000..b839fbd
--- /dev/null
@@ -0,0 +1,89 @@
+/**
+ * @class mw.Api.plugin.options
+ */
+( function ( mw, $ ) {
+
+       $.extend( mw.Api.prototype, {
+
+               /**
+                * Asynchronously save the value of a single user option using the API. See #saveOptions.
+                *
+                * @param {string} name
+                * @param {string|null} value
+                * @return {jQuery.Promise}
+                */
+               saveOption: function ( name, value ) {
+                       var param = {};
+                       param[name] = value;
+                       return this.saveOptions( param );
+               },
+
+               /**
+                * Asynchronously save the values of user options using the API.
+                *
+                * If a value of `null` is provided, the given option will be reset to the default value.
+                *
+                * Any warnings returned by the API, including warnings about invalid option names or values,
+                * are ignored. However, do not rely on this behavior.
+                *
+                * If necessary, the options will be saved using several parallel API requests. Only one promise
+                * is always returned that will be resolved when all requests complete.
+                *
+                * @param {Object} options Options as a `{ name: value, … }` object
+                * @return {jQuery.Promise}
+                */
+               saveOptions: function ( options ) {
+                       var name, value, bundleable,
+                               grouped = [],
+                               deferreds = [];
+
+                       for ( name in options ) {
+                               value = options[name] === null ? null : String( options[name] );
+
+                               // Can we bundle this option, or does it need a separate request?
+                               bundleable =
+                                       ( value === null || value.indexOf( '|' ) === -1 ) &&
+                                       ( name.indexOf( '|' ) === -1 && name.indexOf( '=' ) === -1 );
+
+                               if ( bundleable ) {
+                                       if ( value !== null ) {
+                                               grouped.push( name + '=' + value );
+                                       } else {
+                                               // Omitting value resets the option
+                                               grouped.push( name );
+                                       }
+                               } else {
+                                       if ( value !== null ) {
+                                               deferreds.push( this.postWithToken( 'options', {
+                                                       action: 'options',
+                                                       optionname: name,
+                                                       optionvalue: value
+                                               } ) );
+                                       } else {
+                                               // Omitting value resets the option
+                                               deferreds.push( this.postWithToken( 'options', {
+                                                       action: 'options',
+                                                       optionname: name
+                                               } ) );
+                                       }
+                               }
+                       }
+
+                       if ( grouped.length ) {
+                               deferreds.push( this.postWithToken( 'options', {
+                                       action: 'options',
+                                       change: grouped.join( '|' )
+                               } ) );
+                       }
+
+                       return $.when.apply( $, deferreds );
+               }
+
+       } );
+
+       /**
+        * @class mw.Api
+        * @mixins mw.Api.plugin.options
+        */
+
+}( mediaWiki, jQuery ) );
index bb8a84b..78e3919 100644 (file)
@@ -146,6 +146,10 @@ $.extend( mw.language, {
                        }
                }
                return text;
+       },
+
+       setSpecialCharacters: function ( data ) {
+               this.specialCharacters = data;
        }
 } );
 
diff --git a/resources/src/mediawiki.language/specialcharacters.json b/resources/src/mediawiki.language/specialcharacters.json
new file mode 100644 (file)
index 0000000..bab92a1
--- /dev/null
@@ -0,0 +1 @@
+{"latin":["Á","á","À","à","Â","â","Ä","ä","Ã","ã","Ǎ","ǎ","Ā","ā","Ă","ă","Ą","ą","Å","å","Ć","ć","Ĉ","ĉ","Ç","ç","Č","č","Ċ","ċ","Đ","đ","Ď","ď","É","é","È","è","Ê","ê","Ë","ë","Ě","ě","Ē","ē","Ĕ","ĕ","Ė","ė","Ę","ę","Ĝ","ĝ","Ģ","ģ","Ğ","ğ","Ġ","ġ","Ĥ","ĥ","Ħ","ħ","Í","í","Ì","ì","Î","î","Ï","ï","Ĩ","ĩ","Ǐ","ǐ","Ī","ī","Ĭ","ĭ","İ","ı","Į","į","Ĵ","ĵ","Ķ","ķ","Ĺ","ĺ","Ļ","ļ","Ľ","ľ","Ł","ł","Ń","ń","Ñ","ñ","Ņ","ņ","Ň","ň","Ó","ó","Ò","ò","Ô","ô","Ö","ö","Õ","õ","Ǒ","ǒ","Ō","ō","Ŏ","ŏ","Ǫ","ǫ","Ő","ő","Ŕ","ŕ","Ŗ","ŗ","Ř","ř","Ś","ś","Ŝ","ŝ","Ş","ş","Š","š","Ș","ș","Ț","ț","Ť","ť","Ú","ú","Ù","ù","Û","û","Ü","ü","Ũ","ũ","Ů","ů","Ǔ","ǔ","Ū","ū","ǖ","ǘ","ǚ","ǜ","Ŭ","ŭ","Ų","ų","Ű","ű","Ŵ","ŵ","Ý","ý","Ŷ","ŷ","Ÿ","ÿ","Ȳ","ȳ","Ź","ź","Ž","ž","Ż","ż","Æ","æ","Ǣ","ǣ","Ø","ø","Œ","œ","ß","Ð","ð","Þ","þ","Ə","ə"],"latinextended":["Ḁ","ḁ","ẚ","Ạ","ạ","Ả","ả","Ấ","ấ","Ầ","ầ","Ẩ","ẩ","Ẫ","ẫ","Ậ","ậ","Ắ","ắ","Ằ","ằ","Ẳ","ẳ","Ẵ","ẵ","Ặ","ặ","Ḃ","ḃ","Ḅ","ḅ","Ḇ","ḇ","Ḉ","ḉ","Ḋ","ḋ","Ḍ","ḍ","Ḏ","ḏ","Ḑ","ḑ","Ḓ","ḓ","Ḕ","ḕ","Ḗ","ḗ","Ḙ","ḙ","Ḛ","ḛ","Ḝ","ḝ","Ẹ","ẹ","Ẻ","ẻ","Ẽ","ẽ","Ế","ế","Ề","ề","Ể","ể","Ễ","ễ","Ệ","ệ","Ḟ","ḟ","Ḡ","ḡ","Ḣ","ḣ","Ḥ","ḥ","Ḧ","ḧ","Ḩ","ḩ","Ḫ","ḫ","ẖ","Ḭ","ḭ","Ḯ","ḯ","Ỉ","ỉ","Ị","ị","Ḱ","ḱ","Ḳ","ḳ","Ḵ","ḵ","Ḷ","ḷ","Ḹ","ḹ","Ḻ","ḻ","Ḽ","ḽ","Ỻ","ỻ","Ḿ","ḿ","Ṁ","ṁ","Ṃ","ṃ","Ṅ","ṅ","Ṇ","ṇ","Ṉ","ṉ","Ṋ","ṋ","Ṍ","ṍ","Ṏ","ṏ","Ṑ","ṑ","Ṓ","ṓ","Ọ","ọ","Ỏ","ỏ","Ố","ố","Ồ","ồ","Ổ","ổ","Ỗ","ỗ","Ộ","ộ","Ớ","ớ","Ờ","ờ","Ở","ở","Ỡ","ỡ","Ợ","ợ","Ǿ","ǿ","Ơ","ơ","Ṕ","ṕ","Ṗ","ṗ","Ṙ","ṙ","Ṛ","ṛ","Ṝ","ṝ","Ṟ","ṟ","Ṡ","ṡ","ẛ","Ṣ","ṣ","Ṥ","ṥ","Ṧ","ṧ","Ṩ","ṩ","ẜ","ẝ","Ṫ","ṫ","Ṭ","ṭ","Ṯ","ṯ","Ṱ","ṱ","ẗ","Ṳ","ṳ","Ṵ","ṵ","Ṷ","ṷ","Ṹ","ṹ","Ṻ","ṻ","Ụ","ụ","Ủ","ủ","Ứ","ứ","Ừ","ừ","Ử","ử","Ữ","ữ","Ự","ự","Ư","ư","Ǖ","Ǘ","Ǚ","Ǜ","Ṽ","ṽ","Ṿ","ṿ","Ỽ","ỽ","Ẁ","ẁ","Ẃ","ẃ","Ẅ","ẅ","Ẇ","ẇ","Ẉ","ẉ","ẘ","Ẋ","ẋ","Ẍ","ẍ","Ẏ","ẏ","ẙ","Ỳ","ỳ","Ỵ","ỵ","Ỷ","ỷ","Ỹ","ỹ","Ỿ","ỿ","Ẑ","ẑ","Ẓ","ẓ","Ẕ","ẕ","Ǽ","ǽ","ẞ","ẟ"],"ipa":["p","t̪","t","ʈ","c","k","q","ʡ","ʔ","b","d̪","d","ɖ","ɟ","ɡ","ɢ","ɓ","ɗ","ʄ","ɠ","ʛ","t͡s","t͡ʃ","t͡ɕ","d͡z","d͡ʒ","d͡ʑ","ɸ","f","θ","s","ʃ","ʅ","ʆ","ʂ","ɕ","ç","ɧ","x","χ","ħ","ʜ","h","β","v","ʍ","ð","z","ʒ","ʓ","ʐ","ʑ","ʝ","ɣ","ʁ","ʕ","ʖ","ʢ","ɦ","ɬ","ɮ","m","m̩","ɱ","ɱ̩","ɱ̍","n̪","n̪̍","n","n̩","ɳ","ɳ̩","ɲ","ɲ̩","ŋ","ŋ̍","ŋ̩","ɴ","ɴ̩","ʙ","ʙ̩","r","r̩","ʀ","ʀ̩","ɾ","ɽ","ɿ","ɺ","l̪","l̪̩","l","l̩","ɫ","ɫ̩","ɭ","ɭ̩","ʎ","ʎ̩","ʟ","ʟ̩","w","ɥ","ʋ","ɹ","ɻ","j","ɰ","ʘ","ǂ","ǀ","!","ǁ","ʰ","ʱ","ʷ","ʸ","ʲ","ʳ","ⁿ","ˡ","ʴ","ʵ","ˢ","ˣ","ˠ","ʶ","ˤ","ˁ","ˀ","ʼ","i","i̯","ĩ","y","y̯","ỹ","ɪ","ɪ̯","ɪ̃","ʏ","ʏ̯","ʏ̃","ɨ","ɨ̯","ɨ̃","ʉ","ʉ̯","ʉ̃","ɯ","ɯ̯","ɯ̃","u","u̯","ũ","ʊ","ʊ̯","ʊ̃","e","e̯","ẽ","ø","ø̯","ø̃","ɘ","ɘ̯","ɘ̃","ɵ","ɵ̯","ɵ̃","ɤ","ɤ̯","ɤ̃","o","o̯","õ","ɛ","ɛ̯","ɛ̃","œ","œ̯","œ̃","ɜ","ɜ̯","ɜ̃","ə","ə̯","ə̃","ɞ","ɞ̯","ɞ̃","ʌ","ʌ̯","ʌ̃","ɔ","ɔ̯","ɔ̃","æ","æ̯","æ̃","ɶ","ɶ̯","ɶ̃","a","a̯","ã","ɐ","ɐ̯","ɐ̃","ɑ","ɑ̯","ɑ̃","ɒ","ɒ̯","ɒ̃","ˈ","ˌ","ː","ˑ","˘",".","‿","|","‖","ɚ","ɝ"],"symbols":["~","|","¡","¿","†","‡","↔","↑","↓","•","¶","#","½","⅓","⅔","¼","¾","⅛","⅜","⅝","⅞","∞","‘","’",{"label":"“”","action":{"type":"encapsulate","options":{"pre":"“","post":"”"}}},{"label":"„“","action":{"type":"encapsulate","options":{"pre":"„","post":"“"}}},{"label":"„”","action":{"type":"encapsulate","options":{"pre":"„","post":"”"}}},{"label":"«»","action":{"type":"encapsulate","options":{"pre":"«","post":"»"}}},"¤","₳","฿","₵","¢","₡","₢","$","₫","₯","€","₠","₣","ƒ","₴","₭","₤","ℳ","₥","₦","№","₧","₰","£","៛","₨","₪","৳","₮","₩","¥","♠","♣","♥","♦","m²","m³",{"label":"–","titleMsg":"special-characters-title-endash","action":{"type":"replace","options":{"peri":"–","selectPeri":false}}},{"label":"—","titleMsg":"special-characters-title-emdash","action":{"type":"replace","options":{"peri":"—","selectPeri":false}}},"…","‘","’","“","”","°","′","″","≈","≠","≤","≥","±",{"label":"−","titleMsg":"special-characters-title-minus","action":{"type":"replace","options":{"peri":"−","selectPeri":false}}},"×","÷","←","→","·","§","‽"],"greek":["Α","Ά","α","ά","Β","β","Γ","γ","Δ","δ","Ε","Έ","ε","έ","Ζ","ζ","Η","Ή","η","ή","Θ","θ","Ι","Ί","ι","ί","Κ","κ","Λ","λ","Μ","μ","Ν","ν","Ξ","ξ","Ο","Ό","ο","ό","Π","π","Ρ","ρ","Σ","σ","ς","Τ","τ","Υ","Ύ","υ","ύ","Φ","φ","Χ","χ","Ψ","ψ","Ω","Ώ","ω","ώ"],"cyrillic":["А","а","Ӑ","ӑ","Ӓ","ӓ","Ә","ә","Ӛ","ӛ","Б","б","В","в","Г","г","Ґ","ґ","Ӷ","ӷ","Ѓ","ѓ","Ӻ","ӻ","Ғ","ғ","Ҕ","ҕ","Д","д","Ԁ","ԁ","Ԃ","ԃ","Ђ","ђ","Е","е","Ѐ","ѐ","Є","є","Ё","ё","Ӗ","ӗ","Ҽ","ҽ","Ҿ","ҿ","Ж","ж","Җ","җ","Ӂ","ӂ","Ӝ","ӝ","З","з","Ҙ","ҙ","Ӟ","ӟ","Ԑ","ԑ","Ӡ","ӡ","Ѕ","ѕ","Ԅ","ԅ","Ԇ","ԇ","И","и","І","і","Ї","ї",["◌Ӏ","Ӏ"],["◌ӏ","ӏ"],"Й","й","Ӣ","ӣ","Ѝ","ѝ","Ҋ","ҋ","Ӥ","ӥ","Ј","ј","К","к","Ќ","ќ","Қ","қ","Ҝ","ҝ","Ҟ","ҟ","Ҡ","ҡ","Ӄ","ӄ","Ԛ","ԛ","Л","л","Љ","љ","Ԉ","ԉ","Ԓ","ԓ","Ӆ","ӆ","М","м","Ӎ","ӎ","Н","н","Њ","њ","Ң","ң","Ҥ","ҥ","Ӈ","ӈ","Ԋ","ԋ","Ӊ","ӊ","О","о","Ҩ","ҩ","Ӧ","ӧ","Ө","ө","Ӫ","ӫ","П","п","Ԥ","ԥ","Ҧ","ҧ","Р","р","Ҏ","ҏ","С","с","Ҫ","ҫ","Т","т","Ћ","ћ","Ԍ","ԍ","Ҭ","ҭ","Ԏ","ԏ","У","у","Ў","ў","Ӯ","ӯ","Ӱ","ӱ","Ӳ","ӳ","Ү","ү","Ұ","ұ","Ф","ф","Х","х","Ҳ","ҳ","Ӽ","ӽ","Ӿ","ӿ","Һ","һ","Ц","ц","Ч","ч","Ҵ","ҵ","Ҷ","ҷ","Ҹ","ҹ","Ӌ","ӌ","Ӵ","ӵ","Џ","џ","Ш","ш","Щ","щ","Ъ","ъ","Ы","ы","Ӹ","ӹ","Ь","ь","Ҍ","ҍ","Э","э","Ӭ","ӭ","Ю","ю","Я","я","Ԝ","ԝ","Ѡ","ѡ","Ѣ","ѣ","Ѥ","ѥ","Ѧ","ѧ","Ѩ","ѩ","Ѫ","ѫ","Ѭ","ѭ","Ѯ","ѯ","Ѱ","ѱ","Ѳ","ѳ","Ѵ","ѵ","Ѷ","ѷ","Ѹ","ѹ","Ѻ","ѻ","Ѽ","ѽ","Ѿ","ѿ","Ҁ","ҁ"],"arabic":["ا","ب","ت","ث","ج","ح","خ","د","ذ","ر","ز","س","ش","ص","ض","ط","ظ","ع","غ","ف","ق","ك","ل","م","ن","ه","و","ي","ء","آ","أ","إ","ٱ","ؤ","ئ","ى","ة","َ","ُ","ِ","ً","ٌ","ٍ","ّ","ْ","ٰ","،","؛","؟","ـ","٠","١","٢","٣","٤","٥","٦","٧","٨","٩","٪","٫","٬","٭",["ZWNJ","‌"],["ZWJ","‍"]],"arabicextended":["ٲ","ٳ","ٴ","ٵ","ݳ","ݴ","ٮ","ٻ","پ","ڀ","ݐ","ݑ","ݒ","ݓ","ݔ","ݕ","ݖ","ٹ","ٺ","ټ","ٽ","ٿ","ځ","ڂ","ڃ","ڄ","څ","چ","ڇ","ڿ","ݗ","ݘ","ݮ","ݯ","ݲ","ݼ","ڈ","ډ","ڊ","ڋ","ڌ","ڍ","ڎ","ڏ","ڐ","ۮ","ݙ","ݚ","ڑ","ڒ","ړ","ڔ","ڕ","ږ","ڗ","ژ","ڙ","ۯ","ݛ","ݫ","ݬ","ݱ","ښ","ڛ","ڜ","ݽ","ۺ","ݜ","ݭ","ݰ","ݾ","ڝ","ڞ","ۻ","ڟ","ڠ","ݝ","ݞ","ݟ","ۼ","ڡ","ڢ","ڣ","ڤ","ڥ","ڦ","ݠ","ݡ","ٯ","ڧ","ڨ","ػ","ؼ","ک","ڪ","ګ","ڬ","ڭ","ڮ","گ","ڰ","ڱ","ڲ","ڳ","ڴ","ݢ","ݣ","ݤ","ݿ","ڵ","ڶ","ڷ","ڸ","ݪ","ݥ","ݦ","ڹ","ں","ڻ","ڼ","ڽ","ݧ","ݨ","ݩ","ھ","ۀ","ہ","ۂ","ۃ","ە","ۿ","ٶ","ٷ","ۄ","ۅ","ۆ","ۇ","ۈ","ۉ","ۊ","ۋ","ۏ","ݸ","ݹ","ؠ","ؽ","ؾ","ؿ","ٸ","ی","ۍ","ێ","ې","ۑ","ے","ۓ","ݵ","ݶ","ݷ","ݺ","ݻ","ٖ","ٗ","٘","ٙ","ٚ","ٛ","ٜ","ٝ","ٞ","ٟ","۔","۽","۾","۰","۱","۲","۳","۴","۵","۶","۷","۸","۹"],"hebrew":["א","ב","ג","ד","ה","ו","ז","ח","ט","י","כ","ך","ל","מ","ם","נ","ן","ס","ע","פ","ף","צ","ץ","ק","ר","ש","ת","װ","ױ","ײ","׳","״","־","–",{"label":"„”","action":{"type":"encapsulate","options":{"pre":"„","post":"”"}}},{"label":"‚’","action":{"type":"encapsulate","options":{"pre":"‚","post":"’"}}},["◌ְ","ְ"],["◌ֱ","ֱ"],["◌ֲ","ֲ"],["◌ֳ","ֳ"],["◌ִ","ִ"],["◌ֵ","ֵ"],["◌ֶ","ֶ"],["◌ַ","ַ"],["◌ָ","ָ"],["◌ֹ","ֹ"],["◌ֻ","ֻ"],["◌ּ","ּ"],["◌ׁ","ׁ"],["◌ׂ","ׂ"],["◌ׇ","ׇ"],["◌֑","֑"],["◌֒","֒"],["◌֓","֓"],["◌֔","֔"],["◌֕","֕"],["◌֖","֖"],["◌֗","֗"],["◌֘","֘"],["◌֙","֙"],["◌֚","֚"],["◌֛","֛"],["◌֜","֜"],["◌֝","֝"],["◌֞","֞"],["◌֟","֟"],["◌֠","֠"],["◌֡","֡"],["◌֢","֢"],["◌֣","֣"],["◌֤","֤"],["◌֥","֥"],["◌֦","֦"],["◌֧","֧"],["◌֨","֨"],["◌֩","֩"],["◌֪","֪"],["◌֫","֫"],["◌֬","֬"],["◌֭","֭"],["◌֮","֮"],["◌֯","֯"],["◌ֿ","ֿ"],["◌׀","׀"],["◌׃","׃"]],"bangla":["অ","আ","ই","ঈ","উ","ঊ","ঋ","এ","ঐ","ও","ঔ","া","ি","ী","ু","ূ","ৃ","ে","ৈ","ো","ৌ","ক","খ","গ","ঘ","ঙ","চ","ছ","জ","ঝ","ঞ","ট","ঠ","ড","ঢ","ণ","ত","থ","দ","ধ","ন","প","ফ","ব","ভ","ম","য","র","ল","শ","ষ","স","হ","ড়","ঢ়","য়","ৎ","ং","ঃ","ঁ","্","১","২","৩","৪","৫","৬","৭","৮","৯","০"],"tamil":["௦","௧","௨","௩","௪","௫","௬","௭","௮","௯","௰","௱","௲","௳","௴","௵","௶","௷","௸","௹","௺","ௐ"],"telugu":["ఁ","ం","ః","అ","ఆ","ఇ","ఈ","ఉ","ఊ","ఋ","ౠ","ఌ","ౡ","ఎ","ఏ","ఐ","ఒ","ఓ","ఔ","క","ఖ","గ","ఘ","ఙ","చ","ఛ","జ","ఝ","ఞ","ట","ఠ","డ","ఢ","ణ","త","థ","ద","ధ","న","ప","ఫ","బ","భ","మ","య","ర","ఱ","ల","ళ","వ","శ","ష","స","హ","ా","ి","ీ","ు","ూ","ృ","ౄ","ె","ే","ై","ొ","ో","ౌ","్","ౢ","ౣ","ౘ","ౙ","౦","౧","౨","౩","౪","౫","౬","౭","౮","౯","ఽ","౸","౹","౺","౻","౼","౽","౾","౿"],"sinhala":["අ","ආ","ඇ","ඈ","ඉ","ඊ","උ","ඌ","ඍ","ඎ","ඏ","ඐ","එ","ඒ","ඓ","ඔ","ඕ","ඖ","ක","ඛ","ග","ඝ","ඞ","ඟ","ච","ඡ","ජ","ඣ","ඤ","ඥ","ඦ","ට","ඨ","ඩ","ඪ","ණ","ඬ","ත","ථ","ද","ධ","න","ඳ","ප","ඵ","බ","භ","ම","ඹ","ය","ර","ල","ව","ශ","ෂ","ස","හ","ළ","ෆ",["◌ා","ා"],["◌ැ","ැ"],["◌ෑ","ෑ"],["◌ි","ි"],["◌ී","ී"],["◌ු","ු"],["◌ූ","ූ"],["◌ෘ","ෘ"],["◌ෲ","ෲ"],["◌ෟ","ෟ"],["◌ෳ","ෳ"],["◌ෙ","ෙ"],["◌ේ","ේ"],["◌ො","ො"],["◌ෝ","ෝ"],["◌ෞ","ෞ"],["◌්","්"]],"devanagari":["ऀ","ँ","ं","ः","ऄ","अ","आ","इ","ई","उ","ऊ","ऋ","ऌ","ऍ","ऎ","ए","ऐ","ऑ","ऒ","ओ","औ","क","ख","ग","घ","ङ","च","छ","ज","झ","ञ","ट","ठ","ड","ढ","ण","त","थ","द","ध","न","ऩ","प","फ","ब","भ","म","य","र","ऱ","ल","ळ","ऴ","व","श","ष","स","ह","ऺ","ऻ","़","ऽ","ा","ि","ी","ु","ू","ृ","ॄ","ॅ","ॆ","े","ै","ॉ","ॊ","ो","ौ","्","ॎ","ॏ","ॐ","॑","॒","॓","॔","ॕ","ॖ","ॗ","क़","ख़","ग़","ज़","ड़","ढ़","फ़","य़","ॠ","ॡ","ॢ","ॣ","।","॥","०","१","२","३","४","५","६","७","८","९","॰","ॱ","ॲ","ॳ","ॴ","ॵ","ॶ","ॷ","ॹ","ॺ","ॻ","ॼ","ॽ","ॾ","ॿ"],"gujarati":["ૐ","ઁ","ં","ઃ","અ","આ","ઇ","ઈ","ઉ","ઊ","એ","ઐ","ઓ","ઔ","અં","ઋ","ઍ","ઑ","ઌ","ૠ","ૡ","ક","ખ","ગ","ઘ","ઙ","ચ","છ","જ","ઝ","ઞ","ટ","ઠ","ડ","ઢ","ણ","ત","થ","દ","ધ","ન","પ","ફ","બ","ભ","મ","ય","ર","લ","ળ","વ","શ","ષ","સ","હ","ક્ષ","જ્ઞ","ઽ","ા","િ","ી","ી","ુ","ૂ","ૃ","ૄ","ૅ","ે","ૈ","ૉ","ો","ૌ","ૢ","ૣ","્","૦","૧","૨","૩","૪","૫","૬","૭","૮","૯","૱"],"thai":["ก","ข","ฃ","ค","ฅ","ฆ","ง","จ","ฉ","ช","ซ","ฌ","ญ","ฎ","ฏ","ฐ","ฑ","ฒ","ณ","ด","ต","ถ","ท","ธ","น","บ","ป","ผ","ฝ","พ","ฟ","ภ","ม","ย","ร","ฤ","ล","ฦ","ว","ศ","ษ","ส","ห","ฬ","อ","ฮ","ะ","ั","า","ๅ","ำ","ิ","ี","ึ","ื","ุ","ู","เ","แ","โ","ใ","ไ","็","่","้","๊","๋","์","ํ","ฺ","๎","๐","๑","๒","๓","๔","๕","๖","๗","๘","๙","฿","ๆ","ฯ","๚","๏","๛"],"lao":["ກ","ຂ","ຄ","ງ","ຈ","ສ","ຊ","ຍ","ດ","ຕ","ຖ","ທ","ນ","ບ","ປ","ຜ","ຝ","ພ","ຟ","ມ","ຢ","ລ","ວ","ຫ","ອ","ຮ","ຣ","ໜ","ໝ","ຼ","ຽ","ະ","ັ","າ","ຳ","ິ","ີ","ຶ","ື","ຸ","ູ","ົ","ເ","ແ","ໂ","ໃ","ໄ","່","້","໊","໋","໌","ໍ","໐","໑","໒","໓","໔","໕","໖","໗","໘","໙","₭","ໆ","ຯ"],"khmer":["ក","ខ","គ","ឃ","ង","ច","ឆ","ជ","ឈ","ញ","ដ","ឋ","ឌ","ឍ","ណ","ត","ថ","ទ","ធ","ន","ប","ផ","ព","ភ","ម","យ","រ","ល","វ","ស","ហ","ឡ","អ","ឣ","ឤ","ឥ","ឦ","ឧ","ឨ","ឩ","ឪ","ឫ","ឬ","ឭ","ឮ","ឯ","ឰ","ឱ","ឲ","ឳ","្","឴","឵","ា","ិ","ី","ឹ","ឺ","ុ","ូ","ួ","ើ","ឿ","ៀ","េ","ែ","ៃ","ោ","ៅ","ំ","ះ","ៈ","៉","៊","់","៌","៍","៎","៏","័","៑","៓","៝","ៜ","០","១","២","៣","៤","៥","៦","៧","៨","៩","៛","។","៕","៖","ៗ","៘","៙","៚","៰","៱","៲","៳","៴","៵","៶","៷","៸","៹","᧠","᧡","᧢","᧣","᧤","᧥","᧦","᧧","᧨","᧩","᧪","᧫","᧬","᧭","᧮","᧯","᧰","᧱","᧲","᧳","᧴","᧵","᧶","᧷","᧸","᧹","᧺","᧻","᧼","᧽","᧾","᧿"]}
\ No newline at end of file
index bc73048..3f4b263 100644 (file)
@@ -64,7 +64,7 @@ var ProtectionForm = window.ProtectionForm = {
        },
 
        /**
-        * Checks if a cerain protection level is cascadeable.
+        * Checks if a certain protection level is cascadeable.
         *
         * @param {string} level
         * @return {boolean}
index 467714e..56e4625 100644 (file)
@@ -91,6 +91,18 @@ abbr[title],
        color: #aaa; /* gray */
 }
 
+/*
+ * Bidi-isolate these numbers.
+ * See https://phabricator.wikimedia.org/T93484
+ */
+.mw-plusminus-pos,
+.mw-plusminus-neg,
+.mw-plusminus-null {
+       unicode-bidi: -moz-isolate;
+       unicode-bidi: -webkit-isolate;
+       unicode-bidi: isolate;
+}
+
 /**
  * Links to redirects appear italicized on [[Special:AllPages]], [[Special:PrefixIndex]],
  * [[Special:Watchlist/edit]] and in category listings.
index a51fe9c..2d68457 100644 (file)
 .button-colors(@bgColor) {
        background: @bgColor;
 
-       &:hover,
-       &:focus {
+       &:hover {
                // The inner bottom bevel should match the active background color.
                box-shadow: 0 1px rgba(0, 0, 0, 10%), inset 0 -3px rgba(0, 0, 0, 20%);
                border-bottom-color: mix(#000, @bgColor, 20%);
+       }
+
+       &:focus {
+               border-color: rgba(0,0,0,0.2);
+               box-shadow: inset 0 0 0 1px rgba(0,0,0,0.2);
+
                outline: none;
                // remove outline in Firefox
                &::-moz-focus-inner {
 
        &:hover,
        &:focus {
-               // lessphp doesn't implement tint, see above
-               // color: tint(@textColor, 20%);
-               color: mix(#fff, @textColor, 20%);
+               color: @textColor;
        }
 
        &:active,
index 4aae606..ddd4f0c 100644 (file)
@@ -4,7 +4,7 @@
 
        // Client profile classes for <html>
        // Allows for easy hiding/showing of JS or no-JS-specific UI elements
-       $( 'html' )
+       $( document.documentElement )
                .addClass( 'client-js' )
                .removeClass( 'client-nojs' );
 
index 8579e05..aca335e 100644 (file)
@@ -12,7 +12,7 @@
                function updateBlockOptions( instant ) {
                        var blocktarget = $.trim( $blockTarget.val() ),
                                isEmpty = blocktarget === '',
-                               isIp = mw.util.isIPv4Address( blocktarget, true ) || mw.util.isIPv6Address( blocktarget, true ),
+                               isIp = mw.util.isIPAddress( blocktarget, true ),
                                isIpRange = isIp && blocktarget.match( /\/\d+$/ );
 
                        if ( isIp && !isEmpty ) {
index c92db16..16fdf38 100644 (file)
@@ -5,3 +5,11 @@
 .mw-changeslist-line-watched .mw-title {
        font-weight: bold;
 }
+
+/*
+ * Titles, including username links, are especially prone for getting jumbled up
+ * with other titles, usernames, etc. in mixed RTL-LTR environment.
+ */
+.mw-changeslist .mw-title {
+       unicode-bidi: embed;
+}
index 2f03c51..eeccda5 100644 (file)
        };
 
        $( function () {
-               // Disable URL box if the URL copy upload source type is not selected
-               if ( !$( '#wpSourceTypeurl' ).prop( 'checked' ) ) {
-                       $( '#wpUploadFileURL' ).prop( 'disabled', true );
-               }
-
                // AJAX wpDestFile warnings
                if ( ajaxUploadDestCheck ) {
                        // Insert an event handler that fetches upload warnings when wpDestFile
 
        // Disable all upload source fields except the selected one
        $( function () {
-               var i, $row,
-                       $rows = $( '.mw-htmlform-field-UploadSourceField' );
+               var $rows = $( '.mw-htmlform-field-UploadSourceField' );
 
-               /**
-                * @param {jQuery} $currentRow
-                * @return {Function} Handler
-                * @return {jQuery.Event} return.e
-                */
-               function createHandler( $currentRow ) {
-                       return function () {
-                               $( '.mw-upload-source-error' ).remove();
-                               if ( this.checked ) {
-                                       // Disable all inputs
-                                       $rows.find( 'input[name!="wpSourceType"]' ).prop( 'disabled', true );
-                                       // Re-enable the current one
-                                       $currentRow.find( 'input' ).prop( 'disabled', false );
-                               }
-                       };
-               }
+               $rows.on( 'change', 'input[type="radio"]', function ( e ) {
+                       var currentRow = e.delegateTarget;
+
+                       if ( !this.checked ) {
+                               return;
+                       }
+
+                       $( '.mw-upload-source-error' ).remove();
+
+                       // Enable selected upload method
+                       $( currentRow ).find( 'input' ).prop( 'disabled', false );
 
-               for ( i = $rows.length; i; i-- ) {
-                       $row = $rows.eq( i - 1 );
-                       $row
-                               .find( 'input[name="wpSourceType"]' )
-                               .change( createHandler( $row ) );
+                       // Disable inputs of other upload methods
+                       // (except for the radio button to re-enable it)
+                       $rows
+                               .not( currentRow )
+                               .find( 'input[type!="radio"]' )
+                               .prop( 'disabled', true );
+               } );
+
+               // Set initial state
+               if ( !$( '#wpSourceTypeurl' ).prop( 'checked' ) ) {
+                       $( '#wpUploadFileURL' ).prop( 'disabled', true );
                }
        } );
 
index b16570a..2f76131 100644 (file)
@@ -39,7 +39,7 @@
        font-family: inherit;
        font-size: inherit;
        line-height: inherit;
-       .transition(~"border linear .2s, box-shadow linear .2s");
+       .transition(~"border 0.2s cubic-bezier(0.39, 0.575, 0.565, 1), box-shadow 0.2s cubic-bezier(0.39, 0.575, 0.565, 1)");
 
        // Placeholder text styling must be set individually for each browser @winter
        &::-webkit-input-placeholder { // webkit
@@ -64,8 +64,9 @@
        }
 
        &:focus {
-               box-shadow: inset .45em 0 0 @colorProgressive;
-               border-color: @colorGrayDark;
+               box-shadow: inset 0 0 0 2px @colorProgressive;
+               // Color being used to match inset shadow, not semantic reasons
+               border-color: @colorProgressive;
                // Remove focus glow on input[type="search"]
                outline: 0;
        }
@@ -127,11 +128,3 @@ input.mw-ui-input-large {
        font-weight: bold;
        line-height: 1.25em;
 }
-
-// Tablet and desktop specific styling tweaks.
-@media all and (min-width: 768px) {
-       // Make inline elements take up a sensible amount of the screen on wider devices.
-       .mw-ui-input-inline {
-               min-width: 320px;
-       }
-}
diff --git a/resources/src/mediawiki/images/help.png b/resources/src/mediawiki/images/help.png
new file mode 100644 (file)
index 0000000..9910582
Binary files /dev/null and b/resources/src/mediawiki/images/help.png differ
diff --git a/resources/src/mediawiki/images/help.svg b/resources/src/mediawiki/images/help.svg
new file mode 100644 (file)
index 0000000..3662cb5
--- /dev/null
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><g><path d="M12.001 2.085c-5.478 0-9.916 4.438-9.916 9.916 0 5.476 4.438 9.914 9.916 9.914 5.476 0 9.914-4.438 9.914-9.914 0-5.478-4.438-9.916-9.914-9.916zm.001 18c-4.465 0-8.084-3.619-8.084-8.083 0-4.465 3.619-8.084 8.084-8.084 4.464 0 8.083 3.619 8.083 8.084 0 4.464-3.619 8.083-8.083 8.083z"/><g><path d="M11.766 6.688c-2.5 0-3.219 2.188-3.219 2.188l1.411.854s.298-.791.901-1.229c.516-.375 1.625-.625 2.219.125.701.885-.17 1.587-1.078 2.719-.953 1.186-1 3.655-1 3.655h1.969s.135-2.318 1.041-3.381c.603-.707 1.443-1.338 1.443-2.494s-1.187-2.437-3.687-2.437z"/><path d="M11 16h2v2h-2z"/></g></g></svg>
diff --git a/resources/src/mediawiki/mediawiki.errorLogger.js b/resources/src/mediawiki/mediawiki.errorLogger.js
new file mode 100644 (file)
index 0000000..9f4f19d
--- /dev/null
@@ -0,0 +1,49 @@
+/**
+ * Try to catch errors in modules which don't do their own error handling.
+ * @class mw.errorLogger
+ * @singleton
+ */
+( function ( mw ) {
+       'use strict';
+
+       mw.errorLogger = {
+               /**
+                * Fired via mw.track when an error is not handled by local code and is caught by the
+                * window.onerror handler.
+                *
+                * @event global_error
+                * @param {string} errorMessage Error errorMessage.
+                * @param {string} url URL where error was raised.
+                * @param {number} lineNumber Line number where error was raised.
+                * @param {number} [columnNumber] Line number where error was raised. Not all browsers
+                *   support this.
+                * @param {Error|Mixed} [errorObject] The error object. Typically an instance of Error, but anything
+                *   (even a primitive value) passed to a throw clause will end up here.
+                */
+
+               /**
+                * Install a window.onerror handler that will report via mw.track, while preserving
+                * any previous handler.
+                * @param {Object} window
+                */
+               installGlobalHandler: function ( window ) {
+                       // We will preserve the return value of the previous handler. window.onerror works the
+                       // opposite way than normal event handlers (returning true will prevent the default
+                       // action, returning false will let the browser handle the error normally, by e.g.
+                       // logging to the console), so our fallback old handler needs to return false.
+                       var oldHandler = window.onerror || function () { return false; };
+
+                       /**
+                        * Dumb window.onerror handler which forwards the errors via mw.track.
+                        * @fires global_error
+                        */
+                       window.onerror = function ( errorMessage, url, lineNumber, columnNumber, errorObject ) {
+                               mw.track( 'global.error', { errorMessage: errorMessage, url: url,
+                                       lineNumber: lineNumber, columnNumber: columnNumber, errorObject: errorObject } );
+                               return oldHandler.apply( this, arguments );
+                       };
+               }
+       };
+
+       mw.errorLogger.installGlobalHandler( window );
+}( mediaWiki ) );
index 6bd47bb..f2859db 100644 (file)
@@ -7,3 +7,16 @@
        width: 18px;
        height: 18px;
 }
+
+.mw-feedbackDialog-welcome-message,
+.mw-feedbackDialog-feedback-terms {
+       line-height: 1.2em;
+}
+
+.mw-feedbackDialog-feedback-form {
+       margin-top: 1em;
+}
+
+.mw-feedbackDialog-feedback-termsofuse {
+       margin-left: 2.5em;
+}
index 867134c..9a671c0 100644 (file)
@@ -3,8 +3,11 @@
  *
  * @author Ryan Kaldari, 2010
  * @author Neil Kandalgaonkar, 2010-11
+ * @author Moriel Schottlender, 2015
  * @since 1.19
  */
+/*jshint es3:false */
+/*global OO*/
 ( function ( mw, $ ) {
        /**
         * This is a way of getting simple feedback from users. It's useful
         *
         * @class
         * @constructor
-        * @param {Object} [options]
-        * @param {mw.Api} [options.api] if omitted, will just create a standard API
-        * @param {mw.Title} [options.title="Feedback"] The title of the page where you collect
-        * feedback.
-        * @param {string} [options.dialogTitleMessageKey="feedback-submit"] Message key for the
-        * title of the dialog box
-        * @param {string} [options.bugsLink="//bugzilla.wikimedia.org/enter_bug.cgi"] URL where
-        * bugs can be posted
-        * @param {mw.Uri|string} [options.bugsListLink="//bugzilla.wikimedia.org/query.cgi"]
-        * URL where bugs can be listed
+        * @param {Object} [config] Configuration object
+        * @cfg {mw.Api} [api] if omitted, will just create a standard API
+        * @cfg {mw.Title} [title="Feedback"] The title of the page where you collect
+        *  feedback.
+        * @cfg {string} [dialogTitleMessageKey="feedback-dialog-title"] Message key for the
+        *  title of the dialog box
+        * @cfg {mw.Uri|string} [bugsLink="//phabricator.wikimedia.org/maniphest/task/create/"] URL where
+        *  bugs can be posted
+        * @cfg {mw.Uri|string} [bugsListLink="//phabricator.wikimedia.org/maniphest/query/advanced"] URL
+        *  where bugs can be listed
+        * @cfg {boolean} [showUseragentCheckbox=false] Show a Useragent agreement checkbox as part of the form.
+        * @cfg {boolean} [useragentCheckboxMandatory=false] Make the Useragent checkbox mandatory.
+        * @cfg {string|jQuery} [useragentCheckboxMessage] Supply a custom message for the useragent checkbox.
+        *  defaults to the message 'feedback-terms'.
         */
-       mw.Feedback = function ( options ) {
-               if ( options === undefined ) {
-                       options = {};
-               }
+       mw.Feedback = function MwFeedback( config ) {
+               config = config || {};
 
-               if ( options.api === undefined ) {
-                       options.api = new mw.Api();
-               }
+               this.api = config.api || new mw.Api();
+               this.dialogTitleMessageKey = config.dialogTitleMessageKey || 'feedback-dialog-title';
 
-               if ( options.title === undefined ) {
-                       options.title = new mw.Title( 'Feedback' );
-               }
+               // Feedback page title
+               this.feedbackPageTitle = config.title || new mw.Title( 'Feedback' );
 
-               if ( options.dialogTitleMessageKey === undefined ) {
-                       options.dialogTitleMessageKey = 'feedback-submit';
-               }
+               // Links
+               this.bugsTaskSubmissionLink = config.bugsLink || '//phabricator.wikimedia.org/maniphest/task/create/';
+               this.bugsTaskListLink = config.bugsListLink || '//phabricator.wikimedia.org/maniphest/query/advanced';
+
+               // Terms of use
+               this.useragentCheckboxShow = !!config.showUseragentCheckbox;
+               this.useragentCheckboxMandatory = !!config.useragentCheckboxMandatory;
+               this.useragentCheckboxMessage = config.useragentCheckboxMessage ||
+                       $( '<p>' ).append( mw.msg( 'feedback-terms' ) );
+
+               // Message dialog
+               this.thankYouDialog = new OO.ui.MessageDialog();
+       };
+
+       /* Initialize */
+       OO.initClass( mw.Feedback );
+
+       /* Static Properties */
+       mw.Feedback.static.windowManager = null;
+       mw.Feedback.static.dialog = null;
+
+       /* Methods */
 
-               if ( options.bugsLink === undefined ) {
-                       options.bugsLink = '//bugzilla.wikimedia.org/enter_bug.cgi';
+       /**
+        * Respond to dialog submit event. If the information was
+        * submitted, either successfully or with an error, open
+        * a MessageDialog to thank the user.
+        * @param {string} [status] A status of the end of operation
+        *  of the main feedback dialog. Empty if the dialog was
+        *  dismissed with no action or the user followed the button
+        *  to the external task reporting site.
+        */
+       mw.Feedback.prototype.onDialogSubmit = function ( status ) {
+               var dialogConfig = {};
+               switch ( status ) {
+                       case 'submitted':
+                               dialogConfig = {
+                                       title: mw.msg( 'feedback-thanks-title' ),
+                                       message: $( '<span>' ).append(
+                                               mw.message(
+                                                       'feedback-thanks',
+                                                       this.feedbackPageTitle.getNameText(),
+                                                       $( '<a>' )
+                                                               .attr( {
+                                                                       target: '_blank',
+                                                                       href: this.feedbackPageTitle.getUrl()
+                                                               } )
+                                               ).parse()
+                                       ),
+                                       actions: [
+                                               {
+                                                       action: 'accept',
+                                                       label: mw.msg( 'feedback-close' ),
+                                                       flags: 'primary'
+                                               }
+                                       ]
+                               };
+                               break;
+                       case 'error1':
+                       case 'error2':
+                       case 'error3':
+                               dialogConfig = {
+                                       title: mw.msg( 'feedback-error-title' ),
+                                       message: mw.msg( 'feedback-' + status ),
+                                       actions: [
+                                               {
+                                                       action: 'accept',
+                                                       label: mw.msg( 'feedback-close' ),
+                                                       flags: 'primary'
+                                               }
+                                       ]
+                               };
+                               break;
                }
 
-               if ( options.bugsListLink === undefined ) {
-                       options.bugsListLink = '//bugzilla.wikimedia.org/query.cgi';
+               // Show the message dialog
+               if ( !$.isEmptyObject( dialogConfig ) ) {
+                       this.constructor.static.windowManager.openWindow(
+                               this.thankYouDialog,
+                               dialogConfig
+                       );
                }
+       };
 
-               $.extend( this, options );
-               this.setup();
+       /**
+        * Modify the display form, and then open it, focusing interface on the subject.
+        *
+        * @param {Object} [contents] Prefilled contents for the feedback form.
+        * @param {string} [contents.subject] The subject of the feedback
+        * @param {string} [contents.message] The content of the feedback
+        */
+       mw.Feedback.prototype.launch = function ( contents ) {
+               // Dialog
+               if ( !this.constructor.static.dialog ) {
+                       this.constructor.static.dialog = new mw.Feedback.Dialog();
+                       this.constructor.static.dialog.connect( this, { submit: 'onDialogSubmit' } );
+               }
+               if ( !this.constructor.static.windowManager ) {
+                       this.constructor.static.windowManager = new OO.ui.WindowManager();
+                       this.constructor.static.windowManager.addWindows( [
+                               this.constructor.static.dialog,
+                               this.thankYouDialog
+                       ] );
+                       $( 'body' )
+                               .append( this.constructor.static.windowManager.$element );
+               }
+               // Open the dialog
+               this.constructor.static.windowManager.openWindow(
+                       this.constructor.static.dialog,
+                       {
+                               title: mw.msg( this.dialogTitleMessageKey ),
+                               settings: {
+                                       api: this.api,
+                                       title: this.feedbackPageTitle,
+                                       dialogTitleMessageKey: this.dialogTitleMessageKey,
+                                       bugsTaskSubmissionLink: this.bugsTaskSubmissionLink,
+                                       bugsTaskListLink: this.bugsTaskListLink,
+                                       useragentCheckbox: {
+                                               show: this.useragentCheckboxShow,
+                                               mandatory: this.useragentCheckboxMandatory,
+                                               message: this.useragentCheckboxMessage
+                                       }
+                               },
+                               contents: contents
+                       }
+               );
        };
 
-       mw.Feedback.prototype = {
-               /**
-                * Sets up interface
-                */
-               setup: function () {
-                       var $feedbackPageLink,
-                               $bugNoteLink,
-                               $bugsListLink,
-                               fb = this;
-
-                       $feedbackPageLink = $( '<a>' )
-                               .attr( {
-                                       href: fb.title.getUrl(),
-                                       target: '_blank'
-                               } )
-                               .css( {
-                                       whiteSpace: 'nowrap'
-                               } );
+       /**
+        * mw.Feedback Dialog
+        *
+        * @class
+        * @extends OO.ui.ProcessDialog
+        *
+        * @constructor
+        * @param {Object} config Configuration object
+        */
+       mw.Feedback.Dialog = function mwFeedbackDialog( config ) {
+               // Parent constructor
+               mw.Feedback.Dialog.super.call( this, config );
+
+               this.status = '';
+               this.feedbackPageTitle = null;
+               // Initialize
+               this.$element.addClass( 'mwFeedback-Dialog' );
+       };
 
-                       $bugNoteLink = $( '<a>' ).attr( { href: '#' } ).click( function () {
-                               fb.displayBugs();
-                       } );
-
-                       $bugsListLink = $( '<a>' ).attr( {
-                               href: fb.bugsListLink,
-                               target: '_blank'
-                       } );
-
-                       // TODO: Use a stylesheet instead of these inline styles in the template
-                       this.$dialog = mw.template.get( 'mediawiki.feedback', 'dialog.html' ).render();
-                       this.$dialog.find( '.feedback-mode small p' ).msg(
-                               'feedback-bugornote',
-                               $bugNoteLink,
-                               fb.title.getNameText(),
-                               $feedbackPageLink.clone()
-                       );
-                       this.$dialog.find( '.feedback-form .subject span' ).msg( 'feedback-subject' );
-                       this.$dialog.find( '.feedback-form .message span' ).msg( 'feedback-message' );
-                       this.$dialog.find( '.feedback-bugs p' ).msg( 'feedback-bugcheck', $bugsListLink );
-                       this.$dialog.find( '.feedback-submitting span' ).msg( 'feedback-adding' );
-                       this.$dialog.find( '.feedback-thanks' ).msg( 'feedback-thanks', fb.title.getNameText(),
-                               $feedbackPageLink.clone() );
-
-                       this.$dialog.dialog( {
-                               width: 500,
-                               autoOpen: false,
-                               title: mw.message( this.dialogTitleMessageKey ).escaped(),
-                               modal: true,
-                               buttons: fb.buttons
-                       } );
-
-                       this.subjectInput = this.$dialog.find( 'input.feedback-subject' ).get( 0 );
-                       this.messageInput = this.$dialog.find( 'textarea.feedback-message' ).get( 0 );
+       OO.inheritClass( mw.Feedback.Dialog, OO.ui.ProcessDialog );
+
+       /* Static properties */
+       mw.Feedback.Dialog.static.name = 'mwFeedbackDialog';
+       mw.Feedback.Dialog.static.title = mw.msg( 'feedback-dialog-title' );
+       mw.Feedback.Dialog.static.size = 'medium';
+       mw.Feedback.Dialog.static.actions = [
+               {
+                       action: 'submit',
+                       label: mw.msg( 'feedback-submit' ),
+                       flags: [ 'primary', 'constructive' ]
                },
-
-               /**
-                * Displays a section of the dialog.
-                *
-                * @param {"form"|"bugs"|"submitting"|"thanks"|"error"} s
-                * The section of the dialog to show.
-                */
-               display: function ( s ) {
-                       // Hide the buttons
-                       this.$dialog.dialog( { buttons: {} } );
-                       // Hide everything
-                       this.$dialog.find( '.feedback-mode' ).hide();
-                       // Show the desired div
-                       this.$dialog.find( '.feedback-' + s ).show();
+               {
+                       action: 'external',
+                       label: mw.msg( 'feedback-external-bug-report-button' ),
+                       flags: 'constructive'
                },
+               {
+                       action: 'cancel',
+                       label: mw.msg( 'feedback-cancel' ),
+                       flags: 'safe'
+               }
+       ];
 
-               /**
-                * Display the submitting section.
-                */
-               displaySubmitting: function () {
-                       this.display( 'submitting' );
-               },
+       /**
+        * @inheritdoc
+        */
+       mw.Feedback.Dialog.prototype.initialize = function () {
+               var feedbackSubjectFieldLayout, feedbackMessageFieldLayout,
+                       feedbackFieldsetLayout, termsOfUseLabel;
+
+               // Parent method
+               mw.Feedback.Dialog.super.prototype.initialize.call( this );
+
+               this.feedbackPanel = new OO.ui.PanelLayout( {
+                       scrollable: false,
+                       expanded: false,
+                       padded: true
+               } );
+
+               this.$spinner = $( '<div>' )
+                       .addClass( 'feedback-spinner' );
+
+               // Feedback form
+               this.feedbackMessageLabel = new OO.ui.LabelWidget( {
+                       classes: [ 'mw-feedbackDialog-welcome-message' ]
+               } );
+               this.feedbackSubjectInput = new OO.ui.TextInputWidget( {
+                       multiline: false
+               } );
+               this.feedbackMessageInput = new OO.ui.TextInputWidget( {
+                       autosize: true,
+                       multiline: true
+               } );
+               feedbackSubjectFieldLayout = new OO.ui.FieldLayout( this.feedbackSubjectInput, {
+                       label: mw.msg( 'feedback-subject' )
+               } );
+               feedbackMessageFieldLayout = new OO.ui.FieldLayout( this.feedbackMessageInput, {
+                       label: mw.msg( 'feedback-message' )
+               } );
+               feedbackFieldsetLayout = new OO.ui.FieldsetLayout( {
+                       items: [ feedbackSubjectFieldLayout, feedbackMessageFieldLayout ],
+                       classes: [ 'mw-feedbackDialog-feedback-form' ]
+               } );
+
+               // Useragent terms of use
+               this.useragentCheckbox = new OO.ui.CheckboxInputWidget();
+               this.useragentFieldLayout = new OO.ui.FieldLayout( this.useragentCheckbox, {
+                       classes: [ 'mw-feedbackDialog-feedback-terms' ],
+                       align: 'inline'
+               } );
+
+               termsOfUseLabel = new OO.ui.LabelWidget( {
+                       classes: [ 'mw-feedbackDialog-feedback-termsofuse' ],
+                       label: $( '<p>' ).append( mw.msg( 'feedback-termsofuse' ) )
+               } );
+
+               this.feedbackPanel.$element.append(
+                       this.feedbackMessageLabel.$element,
+                       feedbackFieldsetLayout.$element,
+                       this.useragentFieldLayout.$element,
+                       termsOfUseLabel.$element
+               );
+
+               // Events
+               this.feedbackSubjectInput.connect( this, { change: 'validateFeedbackForm' } );
+               this.feedbackMessageInput.connect( this, { change: 'validateFeedbackForm' } );
+               this.feedbackMessageInput.connect( this, { change: 'updateSize' } );
+               this.useragentCheckbox.connect( this, { change: 'validateFeedbackForm' } );
+
+               this.$body.append( this.feedbackPanel.$element );
+       };
 
-               /**
-                * Display the bugs section.
-                */
-               displayBugs: function () {
-                       var fb = this,
-                               bugsButtons = {};
-
-                       this.display( 'bugs' );
-                       bugsButtons[ mw.msg( 'feedback-bugnew' ) ] = function () {
-                               window.open( fb.bugsLink, '_blank' );
-                       };
-                       bugsButtons[ mw.msg( 'feedback-cancel' ) ] = function () {
-                               fb.cancel();
-                       };
-                       this.$dialog.dialog( {
-                               buttons: bugsButtons
-                       } );
-               },
+       /**
+        * Validate the feedback form
+        */
+       mw.Feedback.Dialog.prototype.validateFeedbackForm = function () {
+               var isValid = (
+                               (
+                                       !this.useragentMandatory ||
+                                       this.useragentCheckbox.isSelected()
+                               ) &&
+                               (
+                                       !!this.feedbackMessageInput.getValue() ||
+                                       !!this.feedbackSubjectInput.getValue()
+                               )
+                       );
 
-               /**
-                * Display the thanks section.
-                */
-               displayThanks: function () {
-                       var fb = this,
-                               closeButton = {};
-
-                       this.display( 'thanks' );
-                       closeButton[ mw.msg( 'feedback-close' ) ] = function () {
-                               fb.$dialog.dialog( 'close' );
-                       };
-                       this.$dialog.dialog( {
-                               buttons: closeButton
-                       } );
-               },
+               this.actions.setAbilities( { submit:  isValid } );
+       };
 
-               /**
-                * Display the feedback form
-                * @param {Object} [contents] Prefilled contents for the feedback form.
-                * @param {string} [contents.subject] The subject of the feedback
-                * @param {string} [contents.message] The content of the feedback
-                */
-               displayForm: function ( contents ) {
-                       var fb = this,
-                               formButtons = {};
-
-                       this.subjectInput.value = ( contents && contents.subject ) ? contents.subject : '';
-                       this.messageInput.value = ( contents && contents.message ) ? contents.message : '';
-
-                       this.display( 'form' );
-
-                       // Set up buttons for dialog box. We have to do it the hard way since the json keys are localized
-                       formButtons[ mw.msg( 'feedback-submit' ) ] = function () {
-                               fb.submit();
-                       };
-                       formButtons[ mw.msg( 'feedback-cancel' ) ] = function () {
-                               fb.cancel();
-                       };
-                       this.$dialog.dialog( { buttons: formButtons } ); // put the buttons back
-               },
+       /**
+        * @inheritdoc
+        */
+       mw.Feedback.Dialog.prototype.getBodyHeight = function () {
+               return this.feedbackPanel.$element.outerHeight( true );
+       };
 
-               /**
-                * Display an error on the form.
-                *
-                * @param {string} message Should be a valid message key.
-                */
-               displayError: function ( message ) {
-                       var fb = this,
-                               closeButton = {};
-
-                       this.display( 'error' );
-                       this.$dialog.find( '.feedback-error-msg' ).msg( message );
-                       closeButton[ mw.msg( 'feedback-close' ) ] = function () {
-                               fb.$dialog.dialog( 'close' );
-                       };
-                       this.$dialog.dialog( { buttons: closeButton } );
-               },
+       /**
+        * @inheritdoc
+        */
+       mw.Feedback.Dialog.prototype.getSetupProcess = function ( data ) {
+               return mw.Feedback.Dialog.super.prototype.getSetupProcess.call( this, data )
+                       .next( function () {
+                               var plainMsg, parsedMsg,
+                                       settings = data.settings;
+                               data.contents = data.contents || {};
+
+                               // Prefill subject/message
+                               this.feedbackSubjectInput.setValue( data.contents.subject );
+                               this.feedbackMessageInput.setValue( data.contents.message );
+
+                               this.status = '';
+                               this.api = settings.api;
+                               this.setBugReportLink( settings.bugsTaskSubmissionLink );
+                               this.feedbackPageTitle = settings.title;
+                               this.feedbackPageName = settings.title.getNameText();
+                               this.feedbackPageUrl = settings.title.getUrl();
+
+                               // Useragent checkbox
+                               if ( settings.useragentCheckbox.show ) {
+                                       this.useragentFieldLayout.setLabel( settings.useragentCheckbox.message );
+                               }
 
-               /**
-                * Close the feedback form.
-                */
-               cancel: function () {
-                       this.$dialog.dialog( 'close' );
-               },
+                               this.useragentMandatory = settings.useragentCheckbox.mandatory;
+                               this.useragentFieldLayout.toggle( settings.useragentCheckbox.show );
+
+                               // HACK: Setting a link in the messages doesn't work. There is already a report
+                               // about this, and the bug report offers a somewhat hacky work around that
+                               // includes setting a separate message to be parsed.
+                               // We want to make sure the user can configure both the title of the page and
+                               // a separate url, so this must be allowed to parse correctly.
+                               // See https://phabricator.wikimedia.org/T49395#490610
+                               mw.messages.set( {
+                                       'feedback-dialog-temporary-message':
+                                               '<a href="' + this.feedbackPageUrl + '" target="_blank">' + this.feedbackPageName + '</a>'
+                               } );
+                               plainMsg = mw.message( 'feedback-dialog-temporary-message' ).plain();
+                               mw.messages.set( { 'feedback-dialog-temporary-message-parsed': plainMsg } );
+                               parsedMsg = mw.message( 'feedback-dialog-temporary-message-parsed' );
+                               this.feedbackMessageLabel.setLabel(
+                                       // Double-parse
+                                       $( '<span>' )
+                                               .append( mw.message( 'feedback-dialog-intro', parsedMsg ).parse() )
+                               );
+
+                               this.validateFeedbackForm();
+                       }, this );
+       };
 
-               /**
-                * Submit the feedback form.
-                */
-               submit: function () {
-                       var subject, message,
-                               fb = this;
-
-                       // Get the values to submit.
-                       subject = $.trim( this.subjectInput.value );
-
-                       // We used to include "mw.html.escape( navigator.userAgent )" but there are legal issues
-                       // with posting this without their explicit consent
-                       message = $.trim( this.messageInput.value );
-                       if ( message.indexOf( '~~~' ) === -1 ) {
-                               message += ' ~~~~';
-                       }
+       /**
+        * @inheritdoc
+        */
+       mw.Feedback.Dialog.prototype.getReadyProcess = function ( data ) {
+               return mw.Feedback.Dialog.super.prototype.getReadyProcess.call( this, data )
+                       .next( function () {
+                               this.feedbackSubjectInput.focus();
+                       }, this );
+       };
 
-                       this.displaySubmitting();
-
-                       // Post the message, resolving redirects
-                       this.api.newSection(
-                               this.title,
-                               subject,
-                               message,
-                               { redirect: true }
-                       )
-                       .done( function ( result ) {
-                               if ( result.edit.result === 'Success' ) {
-                                       fb.displayThanks();
-                               } else {
-                                       // unknown API result
-                                       fb.displayError( 'feedback-error1' );
+       /**
+        * @inheritdoc
+        */
+       mw.Feedback.Dialog.prototype.getActionProcess = function ( action ) {
+               if ( action === 'cancel' ) {
+                       return new OO.ui.Process( function () {
+                               this.close( { action: action } );
+                       }, this );
+               } else if ( action === 'external' ) {
+                       return new OO.ui.Process( function () {
+                               // Open in a new window
+                               window.open( this.getBugReportLink(), '_blank' );
+                               // Close the dialog
+                               this.close();
+                       }, this );
+               } else if ( action === 'submit' ) {
+                       return new OO.ui.Process( function () {
+                               var fb = this,
+                                       userAgentMessage = ':' +
+                                               '<small>' +
+                                               mw.msg( 'feedback-useragent' ) +
+                                               ' ' +
+                                               mw.html.escape( navigator.userAgent ) +
+                                               '</small>\n\n',
+                                       subject = this.feedbackSubjectInput.getValue(),
+                                       message = this.feedbackMessageInput.getValue();
+
+                               // Add user agent if checkbox is selected
+                               if ( this.useragentCheckbox.isSelected() ) {
+                                       message = userAgentMessage + message;
                                }
-                       } )
-                       .fail( function ( code, result ) {
-                               if ( code === 'http' ) {
-                                       // ajax request failed
-                                       fb.displayError( 'feedback-error3' );
-                                       mw.log.warn( 'Feedback report failed with HTTP error: ' +  result.textStatus );
-                               } else {
-                                       fb.displayError( 'feedback-error2' );
-                                       mw.log.warn( 'Feedback report failed with API error: ' +  code );
+
+                               // Add signature if needed
+                               if ( message.indexOf( '~~~' ) === -1 ) {
+                                       message += '\n\n~~~~';
                                }
-                       } );
-               },
 
-               /**
-                * Modify the display form, and then open it, focusing interface on the subject.
-                * @param {Object} [contents] Prefilled contents for the feedback form.
-                * @param {string} [contents.subject] The subject of the feedback
-                * @param {string} [contents.message] The content of the feedback
-                */
-               launch: function ( contents ) {
-                       this.displayForm( contents );
-                       this.$dialog.dialog( 'open' );
-                       this.subjectInput.focus();
+                               // Post the message, resolving redirects
+                               this.pushPending();
+                               this.api.newSection(
+                                       this.feedbackPageTitle,
+                                       subject,
+                                       message,
+                                       { redirect: true }
+                               )
+                               .done( function ( result ) {
+                                       if ( result.edit.result === 'Success' ) {
+                                               fb.status = 'submitted';
+                                       } else {
+                                               fb.status = 'error1';
+                                       }
+                                       fb.popPending();
+                                       fb.close();
+                               } )
+                               .fail( function ( code, result ) {
+                                       if ( code === 'http' ) {
+                                               fb.status = 'error3';
+                                               // ajax request failed
+                                               mw.log.warn( 'Feedback report failed with HTTP error: ' +  result.textStatus );
+                                       } else {
+                                               fb.status = 'error2';
+                                               mw.log.warn( 'Feedback report failed with API error: ' +  code );
+                                       }
+                                       fb.popPending();
+                                       fb.close();
+                               } );
+                       }, this );
                }
+               // Fallback to parent handler
+               return mw.Feedback.Dialog.super.prototype.getActionProcess.call( this, action );
+       };
+
+       /**
+        * @inheritdoc
+        */
+       mw.Feedback.Dialog.prototype.getTeardownProcess = function ( data ) {
+               return mw.Feedback.Dialog.super.prototype.getTeardownProcess.call( this, data )
+                       .first( function () {
+                               this.emit( 'submit', this.status, this.feedbackPageName, this.feedbackPageUrl );
+                               // Cleanup
+                               this.status = '';
+                               this.feedbackPageTitle = null;
+                               this.feedbackSubjectInput.setValue( '' );
+                               this.feedbackMessageInput.setValue( '' );
+                               this.useragentCheckbox.setSelected( false );
+                       }, this );
        };
+
+       /**
+        * Set the bug report link
+        * @param {string} link Link to the external bug report form
+        */
+       mw.Feedback.Dialog.prototype.setBugReportLink = function ( link ) {
+               this.bugReportLink = link;
+       };
+
+       /**
+        * Get the bug report link
+        * @returns {string} Link to the external bug report form
+        */
+       mw.Feedback.Dialog.prototype.getBugReportLink = function () {
+               return this.bugReportLink;
+       };
+
 }( mediaWiki, jQuery ) );
diff --git a/resources/src/mediawiki/mediawiki.filewarning.js b/resources/src/mediawiki/mediawiki.filewarning.js
new file mode 100644 (file)
index 0000000..882affe
--- /dev/null
@@ -0,0 +1,68 @@
+/*!
+ * mediawiki.filewarning
+ *
+ * @author Mark Holmquist, 2015
+ * @since 1.25
+ */
+/*global OO*/
+( function ( mw, $, oo ) {
+       var warningConfig = mw.config.get( 'wgFileWarning' ),
+               warningMessages = warningConfig.messages,
+               warningLink = warningConfig.link,
+               $origMimetype = $( '.fullMedia .fileInfo .mime-type' ),
+               $mimetype = $origMimetype.clone(),
+               $header = $( '<h3>' )
+                       .addClass( 'mediawiki-filewarning-header empty' ),
+               $main = $( '<p>' )
+                       .addClass( 'mediawiki-filewarning-main empty' ),
+               $info = $( '<a>' )
+                       .addClass( 'mediawiki-filewarning-info empty' ),
+               $footer = $( '<p>' )
+                       .addClass( 'mediawiki-filewarning-footer empty' ),
+               dialog = new oo.ui.PopupButtonWidget( {
+                       classes: [ 'mediawiki-filewarning-anchor' ],
+                       label: $mimetype,
+                       flags: [ 'warning' ],
+                       icon: 'alert',
+                       framed: false,
+                       popup: {
+                               classes: [ 'mediawiki-filewarning' ],
+                               padded: true,
+                               width: 400,
+                               $content: $header.add( $main ).add( $info ).add( $footer )
+                       }
+               } );
+
+       function loadMessage( $target, message ) {
+               if ( message ) {
+                       $target.removeClass( 'empty' )
+                               .text( mw.message( message ).text() );
+               }
+       }
+
+       // The main message must be populated for the dialog to show.
+       if ( warningConfig && warningConfig.messages && warningConfig.messages.main ) {
+               $mimetype.addClass( 'has-warning' );
+
+               $origMimetype.replaceWith( dialog.$element );
+
+               if ( warningMessages ) {
+                       loadMessage( $main, warningMessages.main );
+                       loadMessage( $header, warningMessages.header );
+                       loadMessage( $footer, warningMessages.footer );
+
+                       if ( warningLink ) {
+                               loadMessage( $info, warningMessages.info );
+                               $info.attr( 'href', warningLink );
+                       }
+               }
+
+               // Make OOUI open the dialog, it won't appear until the user
+               // hovers over the warning.
+               dialog.getPopup().toggle( true );
+
+               // Override toggle handler because we don't need it for this popup
+               // object at all. Sort of nasty, but it gets the job done.
+               dialog.getPopup().toggle = $.noop;
+       }
+}( mediaWiki, jQuery, OO ) );
diff --git a/resources/src/mediawiki/mediawiki.filewarning.less b/resources/src/mediawiki/mediawiki.filewarning.less
new file mode 100644 (file)
index 0000000..489ac42
--- /dev/null
@@ -0,0 +1,29 @@
+@import "mediawiki.ui/variables"
+
+.mediawiki-filewarning {
+       display: none;
+
+       .mediawiki-filewarning-header {
+               padding: 0;
+               font-weight: 600;
+       }
+
+       .mediawiki-filewarning-footer {
+               color: #888888;
+       }
+
+       .empty {
+               display: none;
+       }
+
+       .mediawiki-filewarning-anchor:hover & {
+               display: block;
+       }
+}
+
+.mime-type {
+       &.has-warning {
+               font-weight: bold;
+               color: @colorMediumSevere;
+       }
+}
diff --git a/resources/src/mediawiki/mediawiki.helplink.less b/resources/src/mediawiki/mediawiki.helplink.less
new file mode 100644 (file)
index 0000000..dd6bf74
--- /dev/null
@@ -0,0 +1,11 @@
+@import "mediawiki.mixins";
+
+#mw-indicator-mw-helplink a {
+       .background-image-svg('images/help.svg', 'images/help.png');
+       background-repeat: no-repeat;
+       background-position: left center;
+       padding-left: 28px;
+       display: inline-block;
+       height: 24px;
+       line-height: 24px;
+}
index b5c2dba..79939f6 100644 (file)
         * Returns a function suitable for use as a global, to construct strings from the message key (and optional replacements).
         * e.g.
         *
-        *       window.gM = mediaWiki.parser.getMessageFunction( options );
+        *       window.gM = mediaWiki.jqueryMsg.getMessageFunction( options );
         *       $( 'p#headline' ).html( gM( 'hello-user', username ) );
         *
         * Like the old gM() function this returns only strings, so it destroys any bindings. If you want to preserve bindings use the
         * the current selector. Bindings to passed-in jquery elements are preserved. Functions become click handlers for [$1 linktext] links.
         * e.g.
         *
-        *        $.fn.msg = mediaWiki.parser.getJqueryPlugin( options );
+        *        $.fn.msg = mediaWiki.jqueryMsg.getPlugin( options );
         *        var userlink = $( '<a>' ).click( function () { alert( "hello!!" ) } );
         *        $( 'p#headline' ).msg( 'hello-user', userlink );
         *
index f03c7c6..ee57c21 100644 (file)
                trackCallbacks = $.Callbacks( 'memory' ),
                trackQueue = [];
 
-       /**
-        * Log a message to window.console, if possible.
-        *
-        * Useful to force logging of some  errors that are otherwise hard to detect (i.e., this logs
-        * also in production mode). Gets console references in each invocation instead of caching the
-        * reference, so that debugging tools loaded later are supported (e.g. Firebug Lite in IE).
-        *
-        * @private
-        * @method log_
-        * @param {string} msg Text for the log entry.
-        * @param {Error} [e]
-        */
-       function log( msg, e ) {
-               var console = window.console;
-               if ( console && console.log ) {
-                       console.log( msg );
-                       // If we have an exception object, log it to the error channel to trigger a
-                       // proper stacktraces in browsers that support it. No fallback as we have no browsers
-                       // that don't support error(), but do support log().
-                       if ( e && console.error ) {
-                               console.error( String( e ), e );
-                       }
-               }
-       }
-
        /**
         * Create an object that can be read from or written to from methods that allow
         * interaction both with single and multiple properties at once.
                         *   error is not module-related or the module cannot be easily identified due to
                         *   batched handling.
                         * @param {string} source Source of the error. Possible values:
+                        *
                         *   - style: stylesheet error (only affects old IE where a special style loading method
                         *     is used)
                         *   - load-callback: exception thrown by user callback
                         *   - module-execute: exception thrown by module code
+                        *   - store-eval: could not evaluate module code cached in localStorage
+                        *   - store-localstorage-init: localStorage or JSON parse error in mw.loader.store.init
+                        *   - store-localstorage-json: JSON conversion error in mw.loader.store.set
+                        *   - store-localstorage-update: localStorage or JSON conversion error in mw.loader.store.update
+                        */
+
+                       /**
+                        * Fired via mw.track on resource loading error conditions.
+                        *
+                        * @event resourceloader_assert
+                        * @param {string} source Source of the error. Possible values:
+                        *
+                        *   - bug-T59567: failed to cache script due to an Opera function -> string conversion
+                        *     bug; see <https://phabricator.wikimedia.org/T59567> for details
                         */
 
                        /**
                                return s;
                        }
 
-                       /**
-                        * Check whether given styles are safe to to a stylesheet.
-                        *
-                        * @private
-                        * @param {string} cssText
-                        * @return {boolean} False if a new one must be created.
-                        */
-                       function canExpandStylesheetWith( cssText ) {
-                               // Makes sure that cssText containing `@import`
-                               // rules will end up in a new stylesheet (as those only work when
-                               // placed at the start of a stylesheet; bug 35562).
-                               return cssText.slice( 0, '@import'.length ) !== '@import';
-                       }
-
                        /**
                         * Add a bit of CSS text to the current browser page.
                         *
                                // Appending a stylesheet and waiting for the browser to repaint
                                // is fairly expensive, this reduces that (bug 45810)
                                if ( cssText ) {
-                                       // Be careful not to extend the buffer with css that needs a new stylesheet
-                                       if ( !cssBuffer || canExpandStylesheetWith( cssText ) ) {
+                                       // Be careful not to extend the buffer with css that needs a new stylesheet.
+                                       // cssText containing `@import` rules needs to go at the start of a buffer,
+                                       // since those only work when placed at the start of a stylesheet; bug 35562.
+                                       if ( !cssBuffer || cssText.slice( 0, '@import'.length ) !== '@import' ) {
                                                // Linebreak for somewhat distinguishable sections
                                                // (the rl-cachekey comment separating each)
                                                cssBuffer += '\n' + cssText;
                                        // (not some other style tag or even a `<meta>` or `<script>`).
                                        if ( $style.data( 'ResourceLoaderDynamicStyleTag' ) === true ) {
                                                // There's already a dynamic <style> tag present and
-                                               // canExpandStylesheetWith() gave a green light to append more to it.
+                                               // we are able to append more to it.
                                                styleEl = $style.get( 0 );
                                                // Support: IE6-10
                                                if ( styleEl.styleSheet ) {
                                                        try {
                                                                styleEl.styleSheet.cssText += cssText;
                                                        } catch ( e ) {
-                                                               log( 'Stylesheet error', e );
                                                                mw.track( 'resourceloader.exception', { exception: e, source: 'stylesheet' } );
                                                        }
                                                } else {
                         * @return {string}
                         */
                        function pad( a, b, c ) {
-                               return [
-                                       a < 10 ? '0' + a : a,
-                                       b < 10 ? '0' + b : b,
-                                       c < 10 ? '0' + c : c
-                               ].join( '' );
+                               return (
+                                       ( a < 10 ? '0' : '' ) + a +
+                                       ( b < 10 ? '0' : '' ) + b +
+                                       ( c < 10 ? '0' : '' ) + c
+                               );
                        }
 
                        /**
                         * order.
                         *
                         * @private
-                        * @param {string} module Module name or array of string module names
+                        * @param {string[]} module Array of string module names
                         * @return {Array} List of dependencies, including 'module'.
-                        * @throws {Error} If circular reference is detected
                         */
-                       function resolve( module ) {
-                               var m, resolved;
-
-                               // Allow calling with an array of module names
-                               if ( $.isArray( module ) ) {
-                                       resolved = [];
-                                       for ( m = 0; m < module.length; m += 1 ) {
-                                               sortDependencies( module[m], resolved );
-                                       }
-                                       return resolved;
-                               }
-
-                               if ( typeof module === 'string' ) {
-                                       resolved = [];
+                       function resolve( modules ) {
+                               var resolved = [];
+                               $.each( modules, function ( idx, module ) {
                                        sortDependencies( module, resolved );
-                                       return resolved;
-                               }
-
-                               throw new Error( 'Invalid module argument: ' + module );
+                               } );
+                               return resolved;
                        }
 
                        /**
-                        * Narrow down a list of module names to those matching a specific
-                        * state (see #registry for a list of valid states).
-                        *
-                        * One can also filter for 'unregistered', which will return the
-                        * modules names that don't have a registry entry.
+                        * Determine whether all dependencies are in state 'ready', which means we may
+                        * execute the module or job now.
                         *
                         * @private
-                        * @param {string|string[]} states Module states to filter by
-                        * @param {Array} [modules] List of module names to filter (optional, by default the
-                        * entire registry is used)
-                        * @return {Array} List of filtered module names
+                        * @param {Array} module Names of modules to be checked
+                        * @return {boolean} True if all modules are in state 'ready', false otherwise
                         */
-                       function filter( states, modules ) {
-                               var list, module, s, m;
-
-                               // Allow states to be given as a string
-                               if ( typeof states === 'string' ) {
-                                       states = [states];
-                               }
-                               // If called without a list of modules, build and use a list of all modules
-                               list = [];
-                               if ( modules === undefined ) {
-                                       modules = [];
-                                       for ( module in registry ) {
-                                               modules[modules.length] = module;
-                                       }
-                               }
-                               // Build a list of modules which are in one of the specified states
-                               for ( s = 0; s < states.length; s += 1 ) {
-                                       for ( m = 0; m < modules.length; m += 1 ) {
-                                               if ( !hasOwn.call( registry, modules[m] ) ) {
-                                                       // Module does not exist
-                                                       if ( states[s] === 'unregistered' ) {
-                                                               // OK, undefined
-                                                               list[list.length] = modules[m];
-                                                       }
-                                               } else {
-                                                       // Module exists, check state
-                                                       if ( registry[modules[m]].state === states[s] ) {
-                                                               // OK, correct state
-                                                               list[list.length] = modules[m];
-                                                       }
-                                               }
+                       function allReady( modules ) {
+                               var i;
+                               for ( i = 0; i < modules.length; i++ ) {
+                                       if ( mw.loader.getState( modules[i] ) !== 'ready' ) {
+                                               return false;
                                        }
                                }
-                               return list;
+                               return true;
                        }
 
                        /**
                         * execute the module or job now.
                         *
                         * @private
-                        * @param {Array} dependencies Dependencies (module names) to be checked.
-                        * @return {boolean} True if all dependencies are in state 'ready', false otherwise
+                        * @param {Array} modules Names of modules to be checked
+                        * @return {boolean} True if no modules are in state 'error' or 'missing', false otherwise
                         */
-                       function allReady( dependencies ) {
-                               return filter( 'ready', dependencies ).length === dependencies.length;
+                       function anyFailed( modules ) {
+                               var i, state;
+                               for ( i = 0; i < modules.length; i++ ) {
+                                       state = mw.loader.getState( modules[i] );
+                                       if ( state === 'error' || state === 'missing' ) {
+                                               return true;
+                                       }
+                               }
+                               return false;
                        }
 
                        /**
                        function handlePending( module ) {
                                var j, job, hasErrors, m, stateChange;
 
-                               if ( $.inArray( registry[module].state, ['error', 'missing'] ) !== -1 ) {
+                               if ( registry[module].state === 'error' || registry[module].state === 'missing' ) {
                                        // If the current module failed, mark all dependent modules also as failed.
                                        // Iterate until steady-state to propagate the error state upwards in the
                                        // dependency tree.
                                        do {
                                                stateChange = false;
                                                for ( m in registry ) {
-                                                       if ( $.inArray( registry[m].state, ['error', 'missing'] ) === -1 ) {
-                                                               if ( filter( ['error', 'missing'], registry[m].dependencies ).length ) {
+                                                       if ( registry[m].state !== 'error' && registry[m].state !== 'missing' ) {
+                                                               if ( anyFailed( registry[m].dependencies ) ) {
                                                                        registry[m].state = 'error';
                                                                        stateChange = true;
                                                                }
 
                                // Execute all jobs whose dependencies are either all satisfied or contain at least one failed module.
                                for ( j = 0; j < jobs.length; j += 1 ) {
-                                       hasErrors = filter( ['error', 'missing'], jobs[j].dependencies ).length > 0;
+                                       hasErrors = anyFailed( jobs[j].dependencies );
                                        if ( hasErrors || allReady( jobs[j].dependencies ) ) {
                                                // All dependencies satisfied, or some have errors
                                                job = jobs[j];
                                                } catch ( e ) {
                                                        // A user-defined callback raised an exception.
                                                        // Swallow it to protect our state machine!
-                                                       log( 'Exception thrown by user callback', e );
-                                                       mw.track( 'resourceloader.exception',
-                                                               { exception: e, module: module, source: 'load-callback' } );
+                                                       mw.track( 'resourceloader.exception', { exception: e, module: module, source: 'load-callback' } );
                                                }
                                        }
                                }
                                        } catch ( e ) {
                                                // This needs to NOT use mw.log because these errors are common in production mode
                                                // and not in debug mode, such as when a symbol that should be global isn't exported
-                                               log( 'Exception thrown by ' + module, e );
                                                registry[module].state = 'error';
                                                mw.track( 'resourceloader.exception', { exception: e, module: module, source: 'module-execute' } );
                                                handlePending( module );
                         *  Ignored (and defaulted to `true`) if the document-ready event has already occurred.
                         */
                        function request( dependencies, ready, error, async ) {
-                               var n;
-
                                // Allow calling by single module name
                                if ( typeof dependencies === 'string' ) {
                                        dependencies = [dependencies];
                                // Add ready and error callbacks if they were given
                                if ( ready !== undefined || error !== undefined ) {
                                        jobs[jobs.length] = {
-                                               'dependencies': filter(
-                                                       ['registered', 'loading', 'loaded'],
-                                                       dependencies
-                                               ),
-                                               'ready': ready,
-                                               'error': error
+                                               dependencies: $.grep( dependencies, function ( module ) {
+                                                       var state = mw.loader.getState( module );
+                                                       return state === 'registered' || state === 'loaded' || state === 'loading';
+                                               ),
+                                               ready: ready,
+                                               error: error
                                        };
                                }
 
-                               // Queue up any dependencies that are registered
-                               dependencies = filter( ['registered'], dependencies );
-                               for ( n = 0; n < dependencies.length; n += 1 ) {
-                                       if ( $.inArray( dependencies[n], queue ) === -1 ) {
-                                               queue[queue.length] = dependencies[n];
+                               $.each( dependencies, function ( idx, module ) {
+                                       var state = mw.loader.getState( module );
+                                       if ( state === 'registered' && $.inArray( module, queue ) === -1 ) {
+                                               queue.push( module );
                                                if ( async ) {
-                                                       // Mark this module as async in the registry
-                                                       registry[dependencies[n]].async = true;
+                                                       registry[module].async = true;
                                                }
                                        }
-                               }
+                               } );
 
-                               // Work the queue
                                mw.loader.work();
                        }
 
                         * @param {Array} modules Modules array
                         */
                        function resolveIndexedDependencies( modules ) {
-                               var i, iLen, j, jLen, module, dependency;
-
-                               // Expand indexed dependency names
-                               for ( i = 0, iLen = modules.length; i < iLen; i++ ) {
-                                       module = modules[i];
+                               $.each( modules, function ( idx, module ) {
                                        if ( module[2] ) {
-                                               for ( j = 0, jLen = module[2].length; j < jLen; j++ ) {
-                                                       dependency = module[2][j];
-                                                       if ( typeof dependency === 'number' ) {
-                                                               module[2][j] = modules[dependency][0];
-                                                       }
-                                               }
+                                               module[2] = $.map( module[2], function ( dep ) {
+                                                       return typeof dep === 'number' ? modules[dep][0] : dep;
+                                               } );
                                        }
-                               }
+                               } );
                        }
 
                        /* Public Members */
                                                        // repopulate these modules to the cache.
                                                        // This means that at most one module will be useless (the one that had
                                                        // the error) instead of all of them.
-                                                       log( 'Error while evaluating data from mw.loader.store', err );
+                                                       mw.track( 'resourceloader.exception', { exception: err, source: 'store-eval' } );
                                                        origBatch = $.grep( origBatch, function ( module ) {
                                                                return registry[module].state === 'loading';
                                                        } );
                                 *     { <media>: [url, ..] }
                                 *
                                 * The reason css strings are not concatenated anymore is bug 31676. We now check
-                                * whether it's safe to extend the stylesheet (see #canExpandStylesheetWith).
+                                * whether it's safe to extend the stylesheet.
                                 *
                                 * @param {Object} [msgs] List of key/value pairs to be added to mw#messages.
                                 * @param {Object} [templates] List of key/value pairs to be added to mw#templates.
                                        if ( allReady( dependencies ) ) {
                                                // Run ready immediately
                                                deferred.resolve();
-                                       } else if ( filter( ['error', 'missing'], dependencies ).length ) {
+                                       } else if ( anyFailed( dependencies ) ) {
                                                // Execute error immediately if any dependencies have errors
                                                deferred.reject(
                                                        new Error( 'One or more dependencies failed to load' ),
                                 *  Defaults to `true` if loading a URL, `false` otherwise.
                                 */
                                load: function ( modules, type, async ) {
-                                       var filtered, m, module, l;
+                                       var filtered, l;
 
                                        // Validate input
                                        if ( typeof modules !== 'object' && typeof modules !== 'string' ) {
                                        // Undefined modules are acceptable here in load(), because load() takes
                                        // an array of unrelated modules, whereas the modules passed to
                                        // using() are related and must all be loaded.
-                                       for ( filtered = [], m = 0; m < modules.length; m += 1 ) {
-                                               if ( hasOwn.call( registry, modules[m] ) ) {
-                                                       module = registry[modules[m]];
-                                                       if ( $.inArray( module.state, ['error', 'missing'] ) === -1 ) {
-                                                               filtered[filtered.length] = modules[m];
-                                                       }
-                                               }
-                                       }
+                                       filtered = $.grep( modules, function ( module ) {
+                                               var state = mw.loader.getState( module );
+                                               return state !== null && state !== 'error' && state !== 'missing';
+                                       } );
 
                                        if ( filtered.length === 0 ) {
                                                return;
                                        }
                                        // Resolve entire dependency map
                                        filtered = resolve( filtered );
-                                       // If all modules are ready, nothing to be done
-                                       if ( allReady( filtered ) ) {
-                                               return;
-                                       }
-                                       // If any modules have errors: also quit.
-                                       if ( filter( ['error', 'missing'], filtered ).length ) {
+                                       // If all modules are ready, or if any modules have errors, nothing to be done.
+                                       if ( allReady( filtered ) || anyFailed( filtered ) ) {
                                                return;
                                        }
                                        // Since some modules are not yet ready, queue up a request.
                                                                return;
                                                        }
                                                } catch ( e ) {
-                                                       log( 'Storage error', e );
+                                                       mw.track( 'resourceloader.exception', { exception: e, source: 'store-localstorage-init' } );
                                                }
 
                                                if ( raw === undefined ) {
                                                                JSON.stringify( descriptor.messages ),
                                                                JSON.stringify( descriptor.templates )
                                                        ];
-                                                       // Attempted workaround for a possible Opera bug (bug 57567).
+                                                       // Attempted workaround for a possible Opera bug (bug T59567).
                                                        // This regex should never match under sane conditions.
                                                        if ( /^\s*\(/.test( args[1] ) ) {
                                                                args[1] = 'function' + args[1];
-                                                               log( 'Detected malformed function stringification (bug 57567)' );
+                                                               mw.track( 'resourceloader.assert', { source: 'bug-T59567' } );
                                                        }
                                                } catch ( e ) {
-                                                       log( 'Storage error', e );
+                                                       mw.track( 'resourceloader.exception', { exception: e, source: 'store-localstorage-json' } );
                                                        return;
                                                }
 
                                                                data = JSON.stringify( mw.loader.store );
                                                                localStorage.setItem( key, data );
                                                        } catch ( e ) {
-                                                               log( 'Storage error', e );
+                                                               mw.track( 'resourceloader.exception', { exception: e, source: 'store-localstorage-update' } );
                                                        }
                                                }
 
        // @deprecated since 1.23 Use $ or jQuery instead
        mw.log.deprecate( window, '$j', $, 'Use $ or jQuery instead.' );
 
+       /**
+        * Log a message to window.console, if possible.
+        *
+        * Useful to force logging of some  errors that are otherwise hard to detect (i.e., this logs
+        * also in production mode). Gets console references in each invocation instead of caching the
+        * reference, so that debugging tools loaded later are supported (e.g. Firebug Lite in IE).
+        *
+        * @private
+        * @method log_
+        * @param {string} topic Stream name passed by mw.track
+        * @param {Object} data Data passed by mw.track
+        * @param {Error} [data.exception]
+        * @param {string} data.source Error source
+        * @param {string} [data.module] Name of module which caused the error
+        */
+       function log( topic, data ) {
+               var msg,
+                       e = data.exception,
+                       source = data.source,
+                       module = data.module,
+                       console = window.console;
+
+               if ( console && console.log ) {
+                       msg = ( e ? 'Exception' : 'Error' ) + ' in ' + source;
+                       if ( module ) {
+                               msg += ' in module ' + module;
+                       }
+                       msg += ( e ? ':' : '.' );
+                       console.log( msg );
+
+                       // If we have an exception object, log it to the error channel to trigger a
+                       // proper stacktraces in browsers that support it. No fallback as we have no browsers
+                       // that don't support error(), but do support log().
+                       if ( e && console.error ) {
+                               console.error( String( e ), e );
+                       }
+               }
+       }
+
+       // subscribe to error streams
+       mw.trackSubscribe( 'resourceloader.exception', log );
+       mw.trackSubscribe( 'resourceloader.assert', log );
+
        // Attach to window and globally alias
        window.mw = window.mediaWiki = mw;
 }( jQuery ) );
index c2a6f3a..f8f0022 100644 (file)
@@ -1,59 +1,3 @@
-/* Anchors for section headings */
 .mw-headline-anchor {
-       font-weight: normal;
-       margin-left: -14px;
-       width: 14px;
-       filter: alpha(opacity=0);
-       opacity: 0;
-       position: absolute;
-       text-align: center;
-       text-decoration: none;
-       -moz-user-select: none;
-       -webkit-user-select: none;
-       user-select: none;
-}
-
-/* @noflip */
-.mw-content-ltr .mw-headline-anchor,
-.mw-content-rtl .mw-content-ltr .mw-headline-anchor {
-       margin-left: -14px;
-       margin-right: 0;
-}
-
-/* @noflip */
-.mw-content-rtl .mw-headline-anchor,
-.mw-content-ltr .mw-content-rtl .mw-headline-anchor {
-       margin-left: 0;
-       margin-right: -14px;
-}
-
-.mw-headline-anchor,
-.mw-headline-anchor:visited {
-       color: #888;
-}
-
-.mw-headline-anchor:hover,
-.mw-headline-anchor:focus {
-       color: #555;
-       text-decoration: none;
-}
-
-.mw-headline-anchor:active {
-       color: #000;
-}
-
-.mw-body h1:hover .mw-headline-anchor,
-.mw-body h2:hover .mw-headline-anchor,
-.mw-body h3:hover .mw-headline-anchor,
-.mw-body h4:hover .mw-headline-anchor,
-.mw-body h5:hover .mw-headline-anchor,
-.mw-body h6:hover .mw-headline-anchor,
-.mw-body h1:focus .mw-headline-anchor,
-.mw-body h2:focus .mw-headline-anchor,
-.mw-body h3:focus .mw-headline-anchor,
-.mw-body h4:focus .mw-headline-anchor,
-.mw-body h5:focus .mw-headline-anchor,
-.mw-body h6:focus .mw-headline-anchor {
-       filter: alpha(opacity=100);
-       opacity: 1;
+       display: none;
 }
diff --git a/resources/src/mediawiki/mediawiki.sectionAnchor.hide.css b/resources/src/mediawiki/mediawiki.sectionAnchor.hide.css
deleted file mode 100644 (file)
index 33443c9..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-/* Hide section anchor from print media */
-.mw-headline-anchor {
-       display: none;
-}
diff --git a/resources/src/mediawiki/mediawiki.template.mustache.js b/resources/src/mediawiki/mediawiki.template.mustache.js
new file mode 100644 (file)
index 0000000..dcc3842
--- /dev/null
@@ -0,0 +1,14 @@
+/*global Mustache */
+( function ( mw, $ ) {
+       // Register mustache compiler
+       mw.template.registerCompiler( 'mustache', {
+               compile: function ( src ) {
+                       return {
+                               render: function ( data ) {
+                                       return $.parseHTML( Mustache.render( src, data ) );
+                               }
+                       };
+               }
+       } );
+
+}( mediaWiki, jQuery ) );
index 04d9ec6..817c856 100644 (file)
@@ -3,13 +3,9 @@
  * @singleton
  */
 ( function ( mw, $ ) {
-       var user, i,
+       var i,
                deferreds = {},
-               byteToHex = [],
-               // Extend the skeleton mw.user from mediawiki.js
-               // This is kind of ugly but we're stuck with this for b/c reasons
-               options = mw.user.options || new mw.Map(),
-               tokens = mw.user.tokens || new mw.Map();
+               byteToHex = [];
 
        /**
         * Get the current user's groups or rights
@@ -51,9 +47,8 @@
                byteToHex[i] = ( i + 256 ).toString( 16 ).slice( 1 );
        }
 
-       mw.user = user = {
-               options: options,
-               tokens: tokens,
+       // mw.user with the properties options and tokens gets defined in mediawiki.js.
+       $.extend( mw.user, {
 
                /**
                 * Generate a random user session ID.
@@ -83,7 +78,7 @@
                                crypto = window.crypto || window.msCrypto;
 
                        // Based on https://github.com/broofa/node-uuid/blob/bfd9f96127/uuid.js
-                       if ( crypto ) {
+                       if ( crypto && crypto.getRandomValues ) {
                                // Fill an array with 8 random values, each of which is 8 bits.
                                // Note that Uint8Array is array-like but does not implement Array.
                                rnds = new Uint8Array( 8 );
                 */
                getRegistration: function () {
                        var registration = mw.config.get( 'wgUserRegistration' );
-                       if ( user.isAnon() ) {
+                       if ( mw.user.isAnon() ) {
                                return false;
                        }
                        if ( registration === null ) {
                 * @return {boolean}
                 */
                isAnon: function () {
-                       return user.getName() === null;
+                       return mw.user.getName() === null;
                },
 
                /**
                sessionId: function () {
                        var sessionId = $.cookie( 'mediaWiki.user.sessionId' );
                        if ( sessionId === undefined || sessionId === null ) {
-                               sessionId = user.generateRandomSessionId();
+                               sessionId = mw.user.generateRandomSessionId();
                                $.cookie( 'mediaWiki.user.sessionId', sessionId, { expires: null, path: '/' } );
                        }
                        return sessionId;
                 * @return {string} User name or random session ID
                 */
                id: function () {
-                       return user.getName() || user.sessionId();
+                       return mw.user.getName() || mw.user.sessionId();
                },
 
                /**
                getRights: function ( callback ) {
                        return getUserInfo( 'rights' ).done( callback );
                }
-       };
+       } );
 
 }( mediaWiki, jQuery ) );
index 2c3c90f..6723e5f 100644 (file)
 
                        return address.search( new RegExp( '^' + RE_IPV6_ADD + block + '$' ) ) !== -1
                                && address.search( /::/ ) !== -1 && address.search( /::.*::/ ) === -1;
+               },
+
+               /**
+                * Check whether a string is an IP address
+                *
+                * @since 1.25
+                * @param {string} address String to check
+                * @param {boolean} allowBlock True if a block of IPs should be allowed
+                * @return {boolean}
+                */
+               isIPAddress: function ( address, allowBlock ) {
+                       return util.isIPv4Address( address, allowBlock ) ||
+                               util.isIPv6Address( address, allowBlock );
                }
        };
 
diff --git a/resources/src/mediawiki/templates/dialog.html b/resources/src/mediawiki/templates/dialog.html
deleted file mode 100644 (file)
index e116f3e..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<div style="position: relative; display: block;" class="ui-dialog-content ui-widget-content">
-       <div class="feedback-mode feedback-form">
-               <small><p></p></small>
-               <div class="subject" style="margin-top: 1em;">
-                       <span></span><br>
-                       <input type="text" class="feedback-subject" name="subject" maxlength="60"
-                               style="width: 100%; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;">
-               </div>
-               <div class="message" style="margin-top: 0.4em;">
-                       <span></span><br>
-                       <textarea name="message" class="feedback-message" rows="5" cols="60"></textarea>
-               </div>
-       </div>
-       <div class="feedback-mode feedback-bugs">
-               <p></p>
-       </div>
-       <div class="feedback-mode feedback-submitting" style="text-align: center; margin: 3em 0;">
-               <span></span><br>
-               <span class="feedback-spinner"></span>
-       </div>
-       <div class="feedback-mode feedback-thanks" style="text-align: center; margin:1em"></div>
-       <div class="feedback-mode feedback-error" style="position: relative;">
-               <div class="feedback-error-msg" style=" color:#990000; margin-top:0.4em;"></div>
-       </div>
-</div>
index 4ed28a8..b0f29d5 100644 (file)
@@ -44,10 +44,12 @@ $wgAutoloadClasses += array(
        'ResourceLoaderTestCase' => "$testDir/phpunit/ResourceLoaderTestCase.php",
        'ResourceLoaderTestModule' => "$testDir/phpunit/ResourceLoaderTestCase.php",
        'ResourceLoaderFileModuleTestModule' => "$testDir/phpunit/ResourceLoaderTestCase.php",
-       'ResourceLoaderWikiModuleTestModule' => "$testDir/phpunit/ResourceLoaderTestCase.php",
        'TestUser' => "$testDir/phpunit/includes/TestUser.php",
        'LessFileCompilationTest' => "$testDir/phpunit/LessFileCompilationTest.php",
 
+       # tests/phpunit/includes
+       'TestingAccessWrapper' => "$testDir/phpunit/includes/TestingAccessWrapper.php",
+
        # tests/phpunit/includes/api
        'ApiFormatTestBase' => "$testDir/phpunit/includes/api/format/ApiFormatTestBase.php",
        'ApiQueryTestBase' => "$testDir/phpunit/includes/api/query/ApiQueryTestBase.php",
diff --git a/tests/browser/environment_variables b/tests/browser/environment_variables
deleted file mode 100644 (file)
index 25c4577..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-export MEDIAWIKI_URL=http://localhost/wiki/
-export MEDIAWIKI_API_URL=http://localhost/w/api.php
-export MEDIAWIKI_USER=Selenium_user
-export MEDIAWIKI_PASSWORD=Selenium_password
-export BROWSER=firefox
diff --git a/tests/browser/environments.yml b/tests/browser/environments.yml
new file mode 100644 (file)
index 0000000..8f8381e
--- /dev/null
@@ -0,0 +1,35 @@
+# Customize this configuration as necessary to provide defaults for various
+# test environments.
+#
+# The set of defaults to use is determined by the MEDIAWIKI_ENVIRONMENT
+# environment variable.
+#
+#   export MEDIAWIKI_ENVIRONMENT=mw-vagrant-host
+#   bundle exec cucumber
+#
+# Additional variables set by the environment will override the corresponding
+# defaults defined here.
+#
+#   export MEDIAWIKI_ENVIRONMENT=mw-vagrant-host
+#   export MEDIAWIKI_USER=Selenium_user2
+#   bundle exec cucumber
+#
+mw-vagrant-host:
+  mediawiki_url: http://127.0.0.1:8080/wiki/
+  mediawiki_user: Selenium_user
+  mediawiki_password: vagrant
+
+mw-vagrant-guest:
+  mediawiki_url: http://127.0.0.1/wiki/
+  mediawiki_user: Selenium_user
+  mediawiki_password: vagrant
+
+beta:
+  mediawiki_url: http://en.wikipedia.beta.wmflabs.org/wiki/
+  mediawiki_user: Selenium_user
+  # mediawiki_password: SET THIS IN THE ENVIRONMENT!
+
+test2:
+  mediawiki_url: http://test2.wikipedia.org/wiki/
+  mediawiki_user: Selenium_user
+  # mediawiki_password: SET THIS IN THE ENVIRONMENT!
index 0bd36ed..35a6675 100644 (file)
@@ -1,14 +1,3 @@
-#
-# This file is subject to the license terms in the LICENSE file found in the
-# qa-browsertests top-level directory and at
-# https://git.wikimedia.org/blob/qa%2Fbrowsertests/HEAD/LICENSE. No part of
-# qa-browsertests, including this file, may be copied, modified, propagated, or
-# distributed except according to the terms contained in the LICENSE file.
-#
-# Copyright 2012-2014 by the Mediawiki developers. See the CREDITS file in the
-# qa-browsertests top-level directory and at
-# https://git.wikimedia.org/blob/qa%2Fbrowsertests/HEAD/CREDITS
-#
 @chrome @clean @firefox @internet_explorer_6 @internet_explorer_7 @internet_explorer_8 @internet_explorer_9 @internet_explorer_10 @phantomjs
 Feature: File
 
index c34d23d..2cb6356 100644 (file)
@@ -1,14 +1,3 @@
-#
-# This file is subject to the license terms in the LICENSE file found in the
-# qa-browsertests top-level directory and at
-# https://git.wikimedia.org/blob/qa%2Fbrowsertests/HEAD/LICENSE. No part of
-# qa-browsertests, including this file, may be copied, modified, propagated, or
-# distributed except according to the terms contained in the LICENSE file.
-#
-# Copyright 2012-2014 by the Mediawiki developers. See the CREDITS file in the
-# qa-browsertests top-level directory and at
-# https://git.wikimedia.org/blob/qa%2Fbrowsertests/HEAD/CREDITS
-#
 @chrome @clean @firefox @internet_explorer_6 @internet_explorer_7 @internet_explorer_8 @internet_explorer_9 @internet_explorer_10 @phantomjs
 Feature: Log in
 
index 9e3abfd..9fed9cf 100644 (file)
@@ -1,14 +1,3 @@
-#
-# This file is subject to the license terms in the LICENSE file found in the
-# qa-browsertests top-level directory and at
-# https://git.wikimedia.org/blob/qa%2Fbrowsertests/HEAD/LICENSE. No part of
-# qa-browsertests, including this file, may be copied, modified, propagated, or
-# distributed except according to the terms contained in the LICENSE file.
-#
-# Copyright 2012-2014 by the Mediawiki developers. See the CREDITS file in the
-# qa-browsertests top-level directory and at
-# https://git.wikimedia.org/blob/qa%2Fbrowsertests/HEAD/CREDITS
-#
 @chrome @clean @firefox @internet_explorer_6 @internet_explorer_7 @internet_explorer_8 @internet_explorer_9 @internet_explorer_10 @login @phantomjs
 Feature: Preferences
 
index 79507ca..03bff66 100644 (file)
@@ -10,9 +10,9 @@
 # https://git.wikimedia.org/blob/qa%2Fbrowsertests/HEAD/CREDITS
 #
 Given(/^I go to Create account page at (.+)$/) do |path|
-  visit(CreateAccountPage, :using_params => { :page_title => path })
+  visit(CreateAccountPage, using_params: { page_title: path })
 end
 
 Then(/^form has Create account button$/) do
-  on(CreateAccountPage).create_account_element.should exist
+  expect(on(CreateAccountPage).create_account_element).to exist
 end
index 5271ea8..504d345 100644 (file)
@@ -1,16 +1,16 @@
 Given(/^I go to the "(.+)" page with content "(.+)"$/) do |page_title, page_content|
   @wikitext = page_content
-  on(APIPage).create page_title, page_content
+  api.create_page page_title, page_content
   step "I am on the #{page_title} page"
 end
 
 Given(/^I am on the (.+) page$/) do |article|
   article = article.gsub(/ /, '_')
-  visit(ZtargetPage, :using_params => { :article_name => article })
+  visit(ZtargetPage, using_params: { article_name: article })
 end
 
 Given(/^I create page "(.*?)" with content "(.*?)"$/) do |page_title, page_content|
-  on(APIPage).create page_title, page_content
+  api.create_page page_title, page_content
 end
 
 When(/^I click the Link Target link$/) do
@@ -18,9 +18,9 @@ When(/^I click the Link Target link$/) do
 end
 
 Then(/^I should be on the Link Target Test Page$/) do
-  @browser.url.should match(/Link_Target_Test_Page/)
+  expect(@browser.url).to match /Link_Target_Test_Page/
 end
 
 Then(/^the page content should contain "(.*?)"$/) do |content|
-  on(ZtargetPage).page_content.should match content
+  expect(on(ZtargetPage).page_content).to match content
 end
index 713bb39..0e0aeb1 100644 (file)
@@ -19,5 +19,5 @@ When(/^I save the edit$/) do
 end
 
 Then(/^the edited page content should contain "(.*?)"$/) do |content|
-  on(MainPage).page_content.should match(content + @random_string)
+  expect(on(MainPage).page_content).to match(content + @random_string)
 end
index 6f017c1..a80ca50 100644 (file)
@@ -14,5 +14,5 @@ Given(/^I am at file that does not exist$/) do
 end
 
 Then(/^page should show that no such file exists$/) do
-  on(FileDoesNotExistPage).file_does_not_exist_message_element.should be_visible
+  expect(on(FileDoesNotExistPage).file_does_not_exist_message_element).to be_visible
 end
index b654b2d..bff5bdd 100644 (file)
@@ -14,52 +14,52 @@ Given(/^I am at Log in page$/) do
 end
 
 When(/^I log in with incorrect password$/) do
-  on(LoginPage).login_with(ENV["MEDIAWIKI_USER"], "incorrect password", false)
+  on(LoginPage).login_with(user, 'incorrect password', false)
 end
 
 When(/^I log in with incorrect username$/) do
-  on(LoginPage).login_with("incorrect username", ENV["MEDIAWIKI_PASSWORD"], false)
+  on(LoginPage).login_with('incorrect username', password, false)
 end
 
 When(/^I log in without entering credentials$/) do
-  on(LoginPage).login_with("", "", false)
+  on(LoginPage).login_with('', '', false)
 end
 
 When(/^I log in without entering password$/) do
-  on(LoginPage).login_with(ENV["MEDIAWIKI_USER"], "", false)
+  on(LoginPage).login_with(user, '', false)
 end
 
 Then(/^error box should be visible$/) do
-  on(LoginErrorPage).error_box_element.should be_visible
+  expect(on(LoginErrorPage).error_box_element).to be_visible
 end
 
 Then(/^error box should not be visible$/) do
-  on(LoginErrorPage).error_box_element.should_not be_visible
+  expect(on(LoginErrorPage).error_box_element).not_to be_visible
 end
 
 Then(/^feedback should be (.+)$/) do |feedback|
   on(LoginPage) do |page|
     page.feedback_element.when_present.click
-    page.feedback.should match Regexp.escape(feedback)
+    expect(page.feedback).to match Regexp.escape(feedback)
   end
 end
 
 Then(/^Log in element should be there$/) do
-  on(LoginPage).login_element.should exist
+  expect(on(LoginPage).login_element).to exist
 end
 
 Then(/^main page should open$/) do
-  @browser.url.should == on(MainPage).class.url
+  expect(@browser.url).to eq on(MainPage).class.url
 end
 
 Then(/^Password element should be there$/) do
-  on(LoginPage).password_element.should exist
+  expect(on(LoginPage).password_element).to exist
 end
 
 Then(/^there should be a link to (.+)$/) do |text|
-  on(LoginPage).username_displayed_element.when_present.text.should == text
+  expect(on(LoginPage).username_displayed_element.when_present.text).to eq text
 end
 
 Then(/^Username element should be there$/) do
-  on(LoginPage).username_element.should exist
+  expect(on(LoginPage).username_element).to exist
 end
index c76fd2b..7f588c0 100644 (file)
@@ -3,45 +3,45 @@ Given(/^I open the main wiki URL$/) do
 end
 
 Then(/^I should see a link for View History$/) do
-  on(MainPage).view_history_link_element.should be_visible
+  expect(on(MainPage).view_history_link_element).to be_visible
 end
 
 Then(/^I should see a link for Edit$/) do
-  on(MainPage).edit_link_element.should be_visible
+  expect(on(MainPage).edit_link_element).to be_visible
 end
 
 Then(/^I should see a link for Recent changes$/) do
-  on(MainPage).recent_changes_link_element.should be_visible
+  expect(on(MainPage).recent_changes_link_element).to be_visible
 end
 
 Then(/^I should see a link for Random page$/) do
-  on(MainPage).random_page_link_element.should be_visible
+  expect(on(MainPage).random_page_link_element).to be_visible
 end
 
 Then(/^I should see a link for Help$/) do
-  on(MainPage).help_link_element.should be_visible
+  expect(on(MainPage).help_link_element).to be_visible
 end
 
 Then(/^I should see a link for What links here$/) do
-  on(MainPage).what_links_here_link_element.should be_visible
+  expect(on(MainPage).what_links_here_link_element).to be_visible
 end
 
 Then(/^I should see a link for Related changes$/) do
-  on(MainPage).related_changes_link_element.should be_visible
+  expect(on(MainPage).related_changes_link_element).to be_visible
 end
 
 Then(/^I should see a link for Special pages$/) do
-  on(MainPage).special_pages_link_element.should be_visible
+  expect(on(MainPage).special_pages_link_element).to be_visible
 end
 
 Then(/^I should see a link for Printable version$/) do
-  on(MainPage).printable_version_link_element.should be_visible
+  expect(on(MainPage).printable_version_link_element).to be_visible
 end
 
 Then(/^I should see a link for Permanent link$/) do
-  on(MainPage).permanent_link_link_element.should be_visible
+  expect(on(MainPage).permanent_link_link_element).to be_visible
 end
 
 Then(/^I should see a link for Page information$/) do
-  on(MainPage).page_information_link_element.should be_visible
+  expect(on(MainPage).page_information_link_element).to be_visible
 end
index 44f87de..133eec3 100644 (file)
@@ -18,66 +18,66 @@ When(/^I navigate to Preferences$/) do
 end
 
 Then(/^I can click Save$/) do
-  on(PreferencesPage).save_button_element.should exist
+  expect(on(PreferencesPage).save_button_element).to exist
 end
 
 Then(/^I can restore default settings$/) do
-  on(PreferencesAppearancePage).restore_default_link_element.should exist
+  expect(on(PreferencesAppearancePage).restore_default_link_element).to exist
 end
 
 Then(/^I can see local time$/) do
-  on(PreferencesAppearancePage).local_time_span_element.should exist
+  expect(on(PreferencesAppearancePage).local_time_span_element).to exist
 end
 
 Then(/^I can see time offset section$/) do
-  on(PreferencesAppearancePage).time_offset_table_element.should be_visible
+  expect(on(PreferencesAppearancePage).time_offset_table_element).to be_visible
 end
 
 Then(/^I can select date format$/) do
   on(PreferencesAppearancePage) do |page|
-    page.no_preference_radio_element.should exist
-    page.mo_day_year_radio_element.should exist
-    page.day_mo_year_radio_element.should exist
-    page.year_mo_day_radio_element.should exist
-    page.iso_8601_radio_element.should exist
+    expect(page.no_preference_radio_element).to exist
+    expect(page.mo_day_year_radio_element).to exist
+    expect(page.day_mo_year_radio_element).to exist
+    expect(page.year_mo_day_radio_element).to exist
+    expect(page.iso_8601_radio_element).to exist
   end
 end
 
 Then(/^I can select image size$/) do
-  on(PreferencesAppearancePage).size_select_element.should exist
+  expect(on(PreferencesAppearancePage).size_select_element).to exist
 end
 
 Then(/^I can select my time zone$/) do
   on(PreferencesAppearancePage) do |page|
-    page.time_offset_select_element.should exist
-    page.other_offset_element.should exist
+    expect(page.time_offset_select_element).to exist
+    expect(page.other_offset_element).to exist
   end
 end
 
 Then(/^I can select skins$/) do
   on(PreferencesAppearancePage) do |page|
-    page.cologne_blue_element.should exist
-    page.modern_element.should exist
-    page.monobook_element.should exist
-    page.vector_element.should exist
+    expect(page.cologne_blue_element).to exist
+    expect(page.modern_element).to exist
+    expect(page.monobook_element).to exist
+    expect(page.vector_element).to exist
   end
 end
 
 Then(/^I can select Threshold for stub link$/) do
-  on(PreferencesAppearancePage).threshold_select_element.should exist
+  expect(on(PreferencesAppearancePage).threshold_select_element).to exist
 end
 
 Then(/^I can select thumbnail size$/) do
-  on(PreferencesAppearancePage).thumb_select_element.should exist
+  expect(on(PreferencesAppearancePage).thumb_select_element).to exist
 end
 
 Then(/^I can select underline preferences$/) do
-  on(PreferencesAppearancePage).underline_select_element.should exist
+  expect(on(PreferencesAppearancePage).underline_select_element).to exist
 end
 
 Then(/^I have advanced options checkboxes$/) do
   on(PreferencesAppearancePage) do |page|
-    page.hidden_categories_check_element.should exist
-    page.auto_number_check_element.should exist
+    expect(page.hidden_categories_check_element).to exist
+    expect(page.auto_number_check_element).to exist
   end
 end
index ad29a74..0a98e88 100644 (file)
@@ -14,41 +14,41 @@ When(/^I click Editing$/) do
 end
 
 Then(/^I can select edit area font style$/) do
-  on(PreferencesEditingPage).edit_area_font_style_select_element.when_present.should exist
+  expect(on(PreferencesEditingPage).edit_area_font_style_select_element.when_present).to exist
 end
 
 Then(/^I can select live preview$/) do
-  on(PreferencesEditingPage).live_preview_check_element.when_present.should exist
+  expect(on(PreferencesEditingPage).live_preview_check_element.when_present).to exist
 end
 
 Then(/^I can select section editing by double clicking$/) do
-  on(PreferencesEditingPage).edit_section_double_click_check_element.when_present.should exist
+  expect(on(PreferencesEditingPage).edit_section_double_click_check_element.when_present).to exist
 end
 
 Then(/^I can select section editing by right clicking$/) do
-  on(PreferencesEditingPage).edit_section_right_click_check_element.when_present.should exist
+  expect(on(PreferencesEditingPage).edit_section_right_click_check_element.when_present).to exist
 end
 
 Then(/^I can select section editing via edit links$/) do
-  on(PreferencesEditingPage).edit_section_edit_link_element.when_present.should exist
+  expect(on(PreferencesEditingPage).edit_section_edit_link_element.when_present).to exist
 end
 
 Then(/^I can select show edit toolbar$/) do
-  on(PreferencesEditingPage).show_edit_toolbar_check_element.when_present.should exist
+  expect(on(PreferencesEditingPage).show_edit_toolbar_check_element.when_present).to exist
 end
 
 Then(/^I can select show preview before edit box$/) do
-  on(PreferencesEditingPage).preview_on_top_check_element.when_present.should exist
+  expect(on(PreferencesEditingPage).preview_on_top_check_element.when_present).to exist
 end
 
 Then(/^I can select show preview on first edit$/) do
-  on(PreferencesEditingPage).preview_on_first_check_element.when_present.should exist
+  expect(on(PreferencesEditingPage).preview_on_first_check_element.when_present).to exist
 end
 
 Then(/^I can select to prompt me when entering a blank edit summary$/) do
-  on(PreferencesEditingPage).forced_edit_summary_check_element.when_present.should exist
+  expect(on(PreferencesEditingPage).forced_edit_summary_check_element.when_present).to exist
 end
 
 Then(/^I can select to warn me when I leave an edit page with unsaved changes$/) do
-  on(PreferencesEditingPage).unsaved_changes_check_element.when_present.should exist
+  expect(on(PreferencesEditingPage).unsaved_changes_check_element.when_present).to exist
 end
index 6ecd04f..9c65db8 100644 (file)
@@ -15,28 +15,28 @@ end
 
 Then(/^I can change my gender$/) do
   on(PreferencesUserProfilePage) do |page|
-    page.gender_undefined_radio_element.should exist
-    page.gender_male_radio_element.should exist
-    page.gender_female_radio_element.should exist
+    expect(page.gender_undefined_radio_element).to exist
+    expect(page.gender_male_radio_element).to exist
+    expect(page.gender_female_radio_element).to exist
   end
 end
 
 Then(/^I can change my language$/) do
-  on(PreferencesUserProfilePage).lang_select_element.should exist
+  expect(on(PreferencesUserProfilePage).lang_select_element).to exist
 end
 
 Then(/^I can change my signature$/) do
-  on(PreferencesUserProfilePage).signature_field_element.should exist
+  expect(on(PreferencesUserProfilePage).signature_field_element).to exist
 end
 
 Then(/^I can see my Basic informations$/) do
-  on(PreferencesUserProfilePage).basic_info_table_element.should exist
+  expect(on(PreferencesUserProfilePage).basic_info_table_element).to exist
 end
 
 Then(/^I can see my email$/) do
-  on(PreferencesUserProfilePage).email_table_element.should exist
+  expect(on(PreferencesUserProfilePage).email_table_element).to exist
 end
 
 Then(/^I can see my signature$/) do
-  on(PreferencesUserProfilePage).signature_table_element.should exist
+  expect(on(PreferencesUserProfilePage).signature_table_element).to exist
 end
index 6bb7e83..d9b9381 100644 (file)
@@ -3,5 +3,5 @@ When(/^I click View History$/) do
 end
 
 Then(/^I should see a link to a previous version of the page$/) do
-  on(ViewHistoryPage).old_version_link_element.should be_visible
+  expect(on(ViewHistoryPage).old_version_link_element).to be_visible
 end
index 7c12236..5eff4ce 100644 (file)
@@ -1,2 +1,4 @@
-require "mediawiki_api"
-require "mediawiki_selenium"
+require 'mediawiki_selenium'
+
+require 'mediawiki_selenium/support'
+require 'mediawiki_selenium/step_definitions'
diff --git a/tests/browser/features/support/modules/url_module.rb b/tests/browser/features/support/modules/url_module.rb
deleted file mode 100644 (file)
index 6c329e8..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-module URL
-  def self.url(name)
-    if ENV["MEDIAWIKI_URL"]
-      mediawiki_url = ENV["MEDIAWIKI_URL"]
-    else
-      mediawiki_url = "http://127.0.0.1:80/w/index.php"
-    end
-    "#{mediawiki_url}#{name}"
-  end
-end
index 380bccb..98b893a 100644 (file)
@@ -12,8 +12,7 @@
 class CreateAccountPage
   include PageObject
 
-  include URL
-  page_url URL.url("<%=params[:page_title]%>")
+  page_url '<%=params[:page_title]%>'
 
-  button(:create_account, id: "wpCreateaccount")
+  button(:create_account, id: 'wpCreateaccount')
 end
index 237441e..b0f6bff 100644 (file)
@@ -1,8 +1,8 @@
 class EditPage
   include PageObject
 
-  text_area(:edit_page_content, id: "wpTextbox1")
-  button(:preview_button, id: "wpPreview")
-  button(:show_changes_button, id: "wpDiff")
-  button(:save_button, id: "wpSave")
+  text_area(:edit_page_content, id: 'wpTextbox1')
+  button(:preview_button, id: 'wpPreview')
+  button(:show_changes_button, id: 'wpDiff')
+  button(:save_button, id: 'wpSave')
 end
index c8491f3..90762d2 100644 (file)
@@ -12,8 +12,7 @@
 class FileDoesNotExistPage
   include PageObject
 
-  include URL
-  page_url URL.url("File:<%=params[:page_name]%>")
+  page_url 'File:<%=params[:page_name]%>'
 
-  div(:file_does_not_exist_message, id: "mw-imagepage-nofile")
+  div(:file_does_not_exist_message, id: 'mw-imagepage-nofile')
 end
index fd000e6..9a1805f 100644 (file)
@@ -1,5 +1,5 @@
 class LoginErrorPage
   include PageObject
 
-  div(:error_box, class: "errorbox")
+  div(:error_box, class: 'errorbox')
 end
index 8156800..6d76b01 100644 (file)
@@ -1,19 +1,18 @@
 class MainPage
   include PageObject
 
-  include URL
-  page_url URL.url("")
+  page_url ''
 
   a(:edit_link, href: /action=edit/)
-  li(:help_link, id: "n-help")
-  div(:page_content, id: "content")
-  li(:page_information_link, id: "t-info")
-  li(:permanent_link_link, id: "t-permalink")
+  li(:help_link, id: 'n-help')
+  div(:page_content, id: 'content')
+  li(:page_information_link, id: 't-info')
+  li(:permanent_link_link, id: 't-permalink')
   a(:printable_version_link, href: /printable=yes/)
-  li(:random_page_link, id: "n-randompage")
-  li(:recent_changes_link, id: "n-recentchanges")
-  li(:related_changes_link, id: "t-recentchangeslinked")
-  li(:special_pages_link, id: "t-specialpages")
+  li(:random_page_link, id: 'n-randompage')
+  li(:recent_changes_link, id: 'n-recentchanges')
+  li(:related_changes_link, id: 't-recentchangeslinked')
+  li(:special_pages_link, id: 't-specialpages')
   a(:view_history_link, href: /action=history/)
-  li(:what_links_here_link, id: "t-whatlinkshere")
+  li(:what_links_here_link, id: 't-whatlinkshere')
 end
index ed4491e..83c3952 100644 (file)
 class PreferencesAppearancePage
   include PageObject
 
-  include URL
-  page_url URL.url("Special:Preferences#mw-prefsection-rendering")
+  page_url 'Special:Preferences#mw-prefsection-rendering'
 
-  checkbox(:auto_number_check, id: "mw-input-wpnumberheadings")
-  radio_button(:cologne_blue, id: "mw-input-wpskin-cologneblue")
-  radio_button(:day_mo_year_radio, id: "mw-input-wpdate-dmy")
-  checkbox(:dont_show_aft_check, id: "mw-input-wparticlefeedback-disable")
-  checkbox(:exclude_from_experiments_check, id: "mw-input-wpvector-noexperiments")
-  checkbox(:hidden_categories_check, id: "mw-input-wpshowhiddencats")
-  radio_button(:iso_8601_radio, id: "mw-input-wpdate-ISO_8601")
-  span(:local_time_span, id: "wpLocalTime")
-  radio_button(:mo_day_year_radio, id: "mw-input-wpdate-mdy")
-  radio_button(:modern, id: "mw-input-wpskin-modern")
-  radio_button(:monobook, id: "mw-input-wpskin-monobook")
-  radio_button(:no_preference_radio, id: "mw-input-wpdate-default")
-  text_field(:other_offset, id: "mw-input-wptimecorrection-other")
+  checkbox(:auto_number_check, id: 'mw-input-wpnumberheadings')
+  radio_button(:cologne_blue, id: 'mw-input-wpskin-cologneblue')
+  radio_button(:day_mo_year_radio, id: 'mw-input-wpdate-dmy')
+  checkbox(:dont_show_aft_check, id: 'mw-input-wparticlefeedback-disable')
+  checkbox(:exclude_from_experiments_check, id: 'mw-input-wpvector-noexperiments')
+  checkbox(:hidden_categories_check, id: 'mw-input-wpshowhiddencats')
+  radio_button(:iso_8601_radio, id: 'mw-input-wpdate-ISO_8601')
+  span(:local_time_span, id: 'wpLocalTime')
+  radio_button(:mo_day_year_radio, id: 'mw-input-wpdate-mdy')
+  radio_button(:modern, id: 'mw-input-wpskin-modern')
+  radio_button(:monobook, id: 'mw-input-wpskin-monobook')
+  radio_button(:no_preference_radio, id: 'mw-input-wpdate-default')
+  text_field(:other_offset, id: 'mw-input-wptimecorrection-other')
   a(:restore_default_link, href: /reset/)
-  select_list(:size_select, id: "mw-input-wpimagesize")
-  select_list(:threshold_select, id: "mw-input-wpstubthreshold")
-  select_list(:time_offset_select, id: "mw-input-wptimecorrection")
-  table(:time_offset_table, id: "mw-htmlform-timeoffset")
-  select_list(:thumb_select, id: "mw-input-wpthumbsize")
-  select_list(:underline_select, id: "mw-input-wpunderline")
-  radio_button(:vector, id: "mw-input-wpskin-vector")
-  radio_button(:year_mo_day_radio, id: "mw-input-wpdate-ymd")
+  select_list(:size_select, id: 'mw-input-wpimagesize')
+  select_list(:threshold_select, id: 'mw-input-wpstubthreshold')
+  select_list(:time_offset_select, id: 'mw-input-wptimecorrection')
+  table(:time_offset_table, id: 'mw-htmlform-timeoffset')
+  select_list(:thumb_select, id: 'mw-input-wpthumbsize')
+  select_list(:underline_select, id: 'mw-input-wpunderline')
+  radio_button(:vector, id: 'mw-input-wpskin-vector')
+  radio_button(:year_mo_day_radio, id: 'mw-input-wpdate-ymd')
 end
index aed9c41..25c384f 100644 (file)
 class PreferencesEditingPage
   include PageObject
 
-  include URL
-  page_url URL.url("Special:Preferences#mw-prefsection-rendering")
+  page_url 'Special:Preferences#mw-prefsection-rendering'
 
-  select_list(:edit_area_font_style_select, id: "mw-input-wpeditfont")
-  checkbox(:edit_section_double_click_check, id: "mw-input-wpeditondblclick")
-  checkbox(:edit_section_edit_link, id: "mw-input-wpeditsectiononrightclick")
-  checkbox(:edit_section_right_click_check, id: "mw-input-wpeditsectiononrightclick")
-  checkbox(:forced_edit_summary_check, id: "mw-input-wpforceeditsummary")
-  checkbox(:live_preview_check, id: "mw-input-wpuselivepreview")
-  checkbox(:preview_on_first_check, id: "mw-input-wppreviewonfirst")
-  checkbox(:preview_on_top_check, id: "mw-input-wppreviewontop")
-  checkbox(:show_edit_toolbar_check, id: "mw-input-wpshowtoolbar")
-  checkbox(:unsaved_changes_check, id: "mw-input-wpuseeditwarning")
+  select_list(:edit_area_font_style_select, id: 'mw-input-wpeditfont')
+  checkbox(:edit_section_double_click_check, id: 'mw-input-wpeditondblclick')
+  checkbox(:edit_section_edit_link, id: 'mw-input-wpeditsectiononrightclick')
+  checkbox(:edit_section_right_click_check, id: 'mw-input-wpeditsectiononrightclick')
+  checkbox(:forced_edit_summary_check, id: 'mw-input-wpforceeditsummary')
+  checkbox(:live_preview_check, id: 'mw-input-wpuselivepreview')
+  checkbox(:preview_on_first_check, id: 'mw-input-wppreviewonfirst')
+  checkbox(:preview_on_top_check, id: 'mw-input-wppreviewontop')
+  checkbox(:show_edit_toolbar_check, id: 'mw-input-wpshowtoolbar')
+  checkbox(:unsaved_changes_check, id: 'mw-input-wpuseeditwarning')
 end
index 919ba27..b305ee2 100644 (file)
 class PreferencesPage
   include PageObject
 
-  include URL
-  page_url URL.url("Special:Preferences")
+  page_url 'Special:Preferences'
 
-  a(:appearance_link, id: "preftab-rendering")
-  a(:editing_link, id: "preftab-editing")
-  a(:user_profile_link, id: "preftab-personal")
-  button(:save_button, id: "prefcontrol")
+  a(:appearance_link, id: 'preftab-rendering')
+  a(:editing_link, id: 'preftab-editing')
+  a(:user_profile_link, id: 'preftab-personal')
+  button(:save_button, id: 'prefcontrol')
 end
index 28e10b9..9e95eb5 100644 (file)
 class PreferencesUserProfilePage
   include PageObject
 
-  include URL
-  page_url URL.url("Special:Preferences#mw-prefsection-personal")
+  page_url 'Special:Preferences#mw-prefsection-personal'
 
-  table(:basic_info_table, id: "mw-htmlform-info")
-  link(:change_password_link, text: "Change password")
-  table(:email_table, id: "mw-htmlform-email")
-  radio_button(:gender_female_radio, id: "mw-input-wpgender-male")
-  radio_button(:gender_male_radio, id: "mw-input-wpgender-female")
-  radio_button(:gender_undefined_radio, id: "mw-input-wpgender-unknown")
-  select_list(:lang_select, id: "mw-input-wplanguage")
-  checkbox(:remember_password_check, id: "mw-input-wprememberpassword")
-  text_field(:signature_field, id: "mw-input-wpnickname")
-  table(:signature_table, id: "mw-htmlform-signature")
+  table(:basic_info_table, id: 'mw-htmlform-info')
+  link(:change_password_link, text: 'Change password')
+  table(:email_table, id: 'mw-htmlform-email')
+  radio_button(:gender_female_radio, id: 'mw-input-wpgender-male')
+  radio_button(:gender_male_radio, id: 'mw-input-wpgender-female')
+  radio_button(:gender_undefined_radio, id: 'mw-input-wpgender-unknown')
+  select_list(:lang_select, id: 'mw-input-wplanguage')
+  checkbox(:remember_password_check, id: 'mw-input-wprememberpassword')
+  text_field(:signature_field, id: 'mw-input-wpnickname')
+  table(:signature_table, id: 'mw-htmlform-signature')
 end
index 7f168db..da789e5 100644 (file)
@@ -1,7 +1,7 @@
 class ZtargetPage < MainPage
-  include URL
-  page_url URL.url("<%=params[:article_name]%>")
   include PageObject
 
-  a(:link_target_page_link, text: "link to the test target page")
+  page_url '<%=params[:article_name]%>'
+
+  a(:link_target_page_link, text: 'link to the test target page')
 end
index 17769ad..e18c22b 100644 (file)
@@ -593,6 +593,14 @@ class ParserTest {
                        }
                }
 
+               if ( isset( $opts['tidy'] ) ) {
+                       if ( !$this->tidySupport->isEnabled() ) {
+                               return $this->showSkipped();
+                       } else {
+                               $options->setTidy( true );
+                       }
+               }
+
                if ( isset( $opts['title'] ) ) {
                        $titleText = $opts['title'];
                } else {
@@ -624,10 +632,6 @@ class ParserTest {
                        $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 );
                        }
 
@@ -877,10 +881,7 @@ class ParserTest {
                        '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,
+                       'wgUseTidy' => isset( $opts['tidy'] ),
                        'wgAlwaysUseTidy' => false,
                        'wgDebugTidy' => false,
                        'wgTidyConf' => $IP . '/includes/tidy.conf',
index b85516c..c65e8d7 100644 (file)
@@ -69,6 +69,12 @@ Template:pipe
 |
 !! endarticle
 
+!! article
+Template:=
+!! text
+<nowiki>=</nowiki>
+!! endarticle
+
 !!article
 MediaWiki:bad image list
 !!text
@@ -126,6 +132,19 @@ Template:table_attribs_2
 |Bar||Baz
 !! endarticle
 
+!! article
+Template:table_attribs_3
+!! text
+<noinclude>
+|</noinclude>style{{=}}"background:&#35;f9f9f9;"|Foo
+!! endarticle
+
+!! article
+Template:table_attribs_4
+!! text
+| style="background-color:#DC241f;" width="10px" |
+!! endarticle
+
 !! article
 Template:table_header_cells
 !! text
@@ -154,6 +173,13 @@ style="color:red;" title="T48811"
 |foo
 !! endarticle
 
+!! article
+Template:definition_list
+!! text
+one
+::two
+!! endarticle
+
 !! article
 A?b
 !! text
@@ -425,11 +451,11 @@ a
 <p>a
 </p><p><br />
 </p>
-<h1><a href="#b" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="b">b</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: b">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h1><span class="mw-headline" id="b">b</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: b">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 <p><a href="/index.php?title=A&amp;action=edit&amp;redlink=1" class="new" title="A (page does not exist)">a</a>
 </p><p><br />
 </p>
-<h1><a href="#b_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="b_2">b</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: b">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h1><span class="mw-headline" id="b_2">b</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: b">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 
 !! end
 
@@ -442,7 +468,7 @@ Extra newlines between heading and content are swallowed
 
 [[a]]
 !! html
-<h1><a href="#b" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="b">b</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: b">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h1><span class="mw-headline" id="b">b</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: b">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 <p><a href="/index.php?title=A&amp;action=edit&amp;redlink=1" class="new" title="A (page does not exist)">a</a>
 </p>
 !! end
@@ -1209,6 +1235,8 @@ Ruby markup (W3C-style)
 !! test
 Non-word characters don't terminate tag names (bug 17663, 40670, 52022)
 !! wikitext
+<blockquote|>a</blockquote>
+
 <b→> doesn't terminate </b→>
 
 <bä> doesn't terminate </bä>
@@ -1219,7 +1247,8 @@ Non-word characters don't terminate tag names (bug 17663, 40670, 52022)
 
 <sub-ID#1>
 !! html
-<p>&lt;b→&gt; doesn't terminate &lt;/b→&gt;
+<p>&lt;blockquote|&gt;a&lt;/blockquote&gt;
+</p><p>&lt;b→&gt; doesn't terminate &lt;/b→&gt;
 </p><p>&lt;bä&gt; doesn't terminate &lt;/bä&gt;
 </p><p>&lt;boo&gt; doesn't terminate &lt;/boo&gt;
 </p><p>&lt;s.foo&gt; doesn't terminate &lt;/s.foo&gt;
@@ -1228,9 +1257,13 @@ Non-word characters don't terminate tag names (bug 17663, 40670, 52022)
 !! end
 
 # There is a tidy bug here: http://sourceforge.net/p/tidy/bugs/946/
+# If the non-word-character tag made it through the sanitizer, tidy
+# would munge it up.
 !! test
 Non-word characters don't terminate tag names + tidy
 !! wikitext
+<blockquote|>a</blockquote>
+
 <b→> doesn't terminate </b→>
 
 <bä> doesn't terminate </bä>
@@ -1241,6 +1274,7 @@ Non-word characters don't terminate tag names + tidy
 
 <sub-ID#1>
 !! html+tidy
+<p>&lt;blockquote|&gt;a</p>
 <p>&lt;b→&gt; doesn't terminate &lt;/b→&gt;</p>
 <p>&lt;bä&gt; doesn't terminate &lt;/bä&gt;</p>
 <p>&lt;boo&gt; doesn't terminate &lt;/boo&gt;</p>
@@ -1248,16 +1282,33 @@ Non-word characters don't terminate tag names + tidy
 <p>&lt;sub-ID#1&gt;</p>
 !! end
 
+###
+### See tests/parser/parserTestsParserHook.php for the <tåg> extension)
+### This checks that HTML5 tags (with non-word characters in the tag
+### name) make it safely through the parser -- the Sanitizer will
+### munge them later, as it should.
+###
+!! test
+Non-word characters are valid in extension tags (T19663)
+!! wikitext
+<tåg>tåg</tåg>
+!! html
+<pre>
+'tåg'
+array (
+)
+</pre>
+
+!! end
+
 !! test
 Isolated close tags should be treated as literal text (bug 52760)
 !! wikitext
 </b>
 
 <s.foo>s</s>
-!! html
-<p>&lt;/b&gt;
-</p><p>&lt;s.foo&gt;s&lt;/s&gt;
-</p>
+!! html+tidy
+<p>&lt;s.foo&gt;s</p>
 !! end
 
 ###
@@ -1366,6 +1417,64 @@ parsoid=html2wt
 <nowiki>* &lt;/nowiki&gt;</nowiki> tag
 !! end
 
+!! test
+T71950: 1. Put nowiki as close to cause as possible, even with non-quote escapable chars
+!! options
+parsoid=html2wt
+!! html
+<p>This text: L'<a rel="mw:WikiLink" href="./Foo">Foo</a>
+This text: L''<a rel="mw:WikiLink" href="./Foo">Foo</a>
+This text: L'''<a rel="mw:WikiLink" href="./Foo">Foo</a>''</p>
+!! wikitext
+This text: L'[[Foo]]
+This text: L<nowiki>''</nowiki>[[Foo]]
+This text: L<nowiki>'''</nowiki>[[Foo]]<nowiki>''</nowiki>
+!! end
+
+# This test fails because wikitext whitespace is not normalized before comparing.
+!! test
+T71950: 2. Put nowiki as close to cause as possible, after ' :'
+!! options
+parsoid=html2wt
+!! html
+<p>This text : L''<a rel="mw:WikiLink" href="./Foo">Foo</a>
+</p>
+!! wikitext
+This text : L<nowiki>''</nowiki>[[Foo]]
+!! end
+
+# This test and the next one are html2wt only as they test that incorrect wikitext
+# passed in template arguments gets escaped or wrapped in nowikis where required.
+!! test
+T71482: Use {{!}} instead of nowiki for single pipe in template argument
+!! options
+parsoid=html2wt
+!! html/parsoid
+<p><span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;foo|bar&quot;}},&quot;i&quot;:0}}]}" about="#mwt1"></span>
+<span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;foo|bar |[[&quot;}},&quot;i&quot;:0}}]}" about="#mwt2"></p>
+!! wikitext
+{{echo|foo{{!}}bar}}
+{{echo|<nowiki>foo|bar |[[</nowiki>}}
+!! end
+
+!! test
+T53961: Output correct nowikis in template arguments
+!! options
+parsoid=html2wt
+!! html/parsoid
+<p><span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;a [ b&quot;}},&quot;i&quot;:0}}]}" about="#mwt1"></span>
+<span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;a }} b&quot;}},&quot;i&quot;:0}}]}" about="#mwt2"></span>
+<span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;a [[ b&quot;}},&quot;i&quot;:0}}]}" about="#mwt3"></span>
+<span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;a | {{ ]]&quot;}},&quot;i&quot;:0}}]}" about="#mwt4"></span>
+<span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;a }&quot;}},&quot;i&quot;:0}}]}" about="#mwt5"></span></p>
+!! wikitext
+{{echo|a [ b}}
+{{echo|a <nowiki>}}</nowiki> b}}
+{{echo|<nowiki>a [[ b</nowiki>}}
+{{echo|a {{!}} <nowiki>{{ ]]</nowiki>}}
+{{echo|a <nowiki>}</nowiki>}}
+!! end
+
 ###
 ### Comments
 ###
@@ -1745,7 +1854,6 @@ b
 !! 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
@@ -1755,9 +1863,10 @@ a
 b
 !! html/php+tidy
 <div>
-<p>foo&lt;/div&gt;</p>
+<p>foo</p>
+</div>
 <p>a</p>
-b</div>
+<p>b</p>
 !! html/parsoid
 <div data-parsoid='{"stx":"html"}'><p data-parsoid='{"stx":"html", "autoInsertedEnd":true}'>foo</p></div>
 <p>a</p>
@@ -2861,7 +2970,7 @@ File:foobar.jpg
 !! html
  a <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
-                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
+                       <div class="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" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
                        </div>
                </div></li>
@@ -2873,7 +2982,7 @@ File:foobar.jpg
 <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 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" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div>
 </div>
 <div class="gallerytext"></div>
 </div>
@@ -3966,19 +4075,31 @@ Definition Lists: colons occurring in tags
 ;<i>a:b</i>
 ;<span>a:b</span>
 ;<div>a:b</div>
+;<div>a
+:b</div>
 ;{{echo|a:b}}
 ;{{echo|''a:b''}}
-!! html
-<dl><dt>a</dt>
+!! html+tidy
+<dl>
+<dt>a</dt>
 <dd>b</dd>
 <dt><b>a:b</b></dt>
 <dt><i>a:b</i></dt>
 <dt><span>a:b</span></dt>
-<dt><div>a:b</div></dt>
+<dd>
+<div>a:b</div>
+</dd>
+<dd>
+<div>a
+<dl>
+<dd>b</dd>
+</dl>
+</div>
+</dd>
 <dt>a</dt>
 <dd>b</dd>
-<dt><i>a:b</i></dt></dl>
-
+<dt><i>a:b</i></dt>
+</dl>
 !! end
 
 !! test
@@ -4027,6 +4148,28 @@ Definition Lists: colons and tables 2
 </td></tr></table></dd></dl>
 !! end
 
+!! test
+Definition Lists: template interaction
+!! wikitext
+::{{definition_list}}
+
+:one
+::{{definition_list}}
+:::two
+:::three
+::four
+!! html/parsoid
+<dl><dd><dl data-parsoid='{}'><dd about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"pi":[[]]}' data-mw='{"parts":[":",{"template":{"target":{"wt":"definition_list","href":"./Template:Definition_list"},"params":{},"i":0}}]}'>one</dd><span about="#mwt1">
+</span><dd about="#mwt1">two</dd></dl></dd></dl>
+
+<dl><dd data-parsoid='{}'>one
+<dl><dd about="#mwt2" typeof="mw:Transclusion" data-parsoid='{"pi":[[]]}' data-mw='{"parts":["::",{"template":{"target":{"wt":"definition_list","href":"./Template:Definition_list"},"params":{},"i":0}},"\n:::two\n:::three"]}'>one</dd><span about="#mwt2">
+</span><dd about="#mwt2">two
+<dl><dd>two</dd>
+<dd>three</dd></dl></dd>
+<dd data-parsoid='{}'>four</dd></dl></dd></dl>
+!! end
+
 
 ###
 ### External links
@@ -6065,6 +6208,28 @@ parsoid=wt2html,html2html
 </table>
 !! end
 
+!! test
+Table cells not properly parsed in an implicit-td context
+!! wikitext
+{|
+|-
+{{table_attribs_4}} || a || b
+|}
+!! html/php+tidy
+<table>
+<tr>
+<td style="background-color:#DC241f;" width="10px"></td>
+<td>a</td>
+<td>b</td>
+</tr>
+</table>
+!! html/parsoid
+<table>
+<tbody><tr data-parsoid='{"startTagSrc":"|-","autoInsertedEnd":true}'>
+<td style="background-color:#DC241f;" width="10px" about="#mwt1" typeof="mw:Transclusion" data-parsoid='{"autoInsertedEnd":true,"pi":[[]]}' data-mw='{"parts":["",{"template":{"target":{"wt":"table_attribs_4","href":"./Template:Table_attribs_4"},"params":{},"i":0}}," "]}'> </td><td data-parsoid='{"stx_v":"row","autoInsertedEnd":true}'> a </td><td data-parsoid='{"stx_v":"row","autoInsertedEnd":true}'> b</td></tr>
+</tbody></table>
+!! end
+
 !! test
 Parsoid: Round-trip tables directly followed by content (bug 51219)
 !! options
@@ -6226,6 +6391,27 @@ parsoid=html2wt
 |}
 !! end
 
+!!test
+Testing serialization after deletion of table cells
+!!options
+parsoid={
+  "modes": ["wt2wt"],
+  "changes": [
+    ["#x", "remove"]
+  ]
+}
+!!wikitext
+{|
+!h1 !!h2 !!h3
+| id="x" |c1 {{!}}{{!}}{{!}}c2 |||c3
+|}
+!! wikitext/edited
+{|
+!h1 !!h2 !!h3
+|c2 |||c3
+|}
+!!end
+
 ###
 ### Internal links
 ###
@@ -7657,9 +7843,6 @@ 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
@@ -7668,12 +7851,9 @@ parsoid=wt2html
 </br>
 
 <br/ >
-!! html/php+tidy
-<p>&lt;/br&gt;</p>
+!! html+tidy
+<p><br /></p>
 <p><br /></p>
-!! html/parsoid
-<p><br></p>
-<p><br/></p>
 !! end
 
 !! test
@@ -7977,6 +8157,16 @@ Nested lists 8 (multiple nesting transitions)
 
 !! end
 
+!! test
+Nested lists 9 (extension interaction)
+!! options
+parsoid
+!! wikitext
+*<references />
+!! html/parsoid
+<ul><li data-parsoid='{}'><ol class="references" typeof="mw:Extension/references" about="#mwt2" data-parsoid='{}' data-mw='{"name":"references","attrs":{}}'></ol></li></ul>
+!! end
+
 !! test
 1. Lists with start-of-line-transparent tokens before bullets: Comments
 !! wikitext
@@ -8052,7 +8242,7 @@ List interrupted by empty line or heading
 !! html
 <ul><li> foo</li></ul>
 <ul><li><ul><li> bar</li></ul></li></ul>
-<h2><a href="#A_heading" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="A_heading">A heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: A heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="A_heading">A heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: A heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <ul><li> Another list item</li></ul>
 
 !!end
@@ -8249,11 +8439,9 @@ parsoid=wt2html,wt2wt,html2html
 <li><s> b </s></li></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; PHP parser relies on Tidy)
+1. List embedded in a formatting tag
 !! wikitext
 <small>
 * foo
@@ -8270,6 +8458,49 @@ List embedded in a non-block tag
 </small>
 !!end
 
+## Ugly Parsoid output here
+## Not sure what the right output is.
+!!test
+2. List embedded in a formatting tag
+!! wikitext
+<small>
+*a
+*b</small>
+!! html/php+tidy
+<ul>
+<li><small>a</small></li>
+<li><small>b</small></li>
+</ul>
+!! html/parsoid
+<small></small>
+<ul><small>
+<li>a</li>
+</small>
+<li><small>b</small></li>
+</ul>
+!!end
+
+# Ugly Parsoid and PHP parser output here
+# Not sure if we want to make this a test!
+#
+## !!test
+## 3. Unclosed formatting tags in list elements
+## !! wikitext
+## *<small>a
+## *<small>b
+## !! html/php+tidy
+## <ul>
+## <li><small>a</small></li>
+## <li><small><small>b</small></small></li>
+## </ul>
+## !! html/parsoid
+## <ul>
+## <li><small>a</small></li>
+## <small>
+## <li><small>b</small></li>
+## </small></ul>
+## !!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.)
@@ -8283,14 +8514,7 @@ 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
+!! html+tidy
 <table>
 <tr>
 <td>foo</td>
@@ -9760,8 +9984,8 @@ Bug 6563: Edit link generation for section shown by <includeonly>
 !! wikitext
 {{includeonly section}}
 !! html
-<h2><a href="#Includeonly_section" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Includeonly_section">Includeonly section</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Includeonly_section&amp;action=edit&amp;section=T-1" title="Template:Includeonly section">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#Section_T-1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_T-1">Section T-1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Includeonly_section&amp;action=edit&amp;section=T-2" title="Template:Includeonly section">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Includeonly_section">Includeonly section</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Includeonly_section&amp;action=edit&amp;section=T-1" title="Template:Includeonly section">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Section_T-1">Section T-1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Includeonly_section&amp;action=edit&amp;section=T-2" title="Template:Includeonly section">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -9787,7 +10011,7 @@ Bug 6563: Edit link generation for section suppressed by <includeonly>
 </includeonly>
 ==Section 1==
 !! html
-<h2><a href="#Section_1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -9824,12 +10048,12 @@ some
 <includeonly>can have stuff</includeonly>=== here ===
 
 !! html/php
-<h2><a href="#hu" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="hu">hu</span></h2>
+<h2><span class="mw-headline" id="hu">hu</span></h2>
 <p>some
 </p>
 <ul><li> stuff</li>
 <li> here</li></ul>
-<h3><a href="#here" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="here">here</span></h3>
+<h3><span class="mw-headline" id="here">here</span></h3>
 
 !! html/parsoid
 <!-- comment --><meta typeof="mw:Includes/NoInclude" data-parsoid='{"src":"&lt;noinclude>"}'/><!-- comment --><meta typeof="mw:Includes/NoInclude/End" data-parsoid='{"src":"&lt;/noinclude>"}'/><!-- comment --><h2> hu </h2>
@@ -10355,6 +10579,35 @@ Templates: Support for templates generating attributes and content
 </tbody></table>
 !!end
 
+!! test
+1. Entities and nowikis inside templated attributes should be handled correctly
+!! wikitext
+<div {{echo|style{{=}}"background:&#35;f9f9f9;"}}>foo</div>
+!! html/php
+<div style="background:#f9f9f9;">foo</div>
+
+!! html/parsoid
+<div style="background:#f9f9f9;" about="#mwt3" typeof="mw:ExpandedAttrs" data-parsoid='{"stx":"html"}' data-mw='{"attribs":[[{"txt":"style","html":"&lt;span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&amp;quot;pi&amp;quot;:[[{&amp;quot;k&amp;quot;:&amp;quot;1&amp;quot;,&amp;quot;spc&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]}]],&amp;quot;dsr&amp;quot;:[5,49,null,null]}\" data-mw=\"{&amp;quot;parts&amp;quot;:[{&amp;quot;template&amp;quot;:{&amp;quot;target&amp;quot;:{&amp;quot;wt&amp;quot;:&amp;quot;echo&amp;quot;,&amp;quot;href&amp;quot;:&amp;quot;./Template:Echo&amp;quot;},&amp;quot;params&amp;quot;:{&amp;quot;1&amp;quot;:{&amp;quot;wt&amp;quot;:&amp;quot;style{{=}}\\&amp;quot;background:&amp;amp;#35;f9f9f9;\\&amp;quot;&amp;quot;}},&amp;quot;i&amp;quot;:0}}]}\">style&lt;/span>&lt;span typeof=\"mw:Nowiki\" about=\"#mwt1\" data-parsoid=\"{}\">=&lt;/span>&lt;span about=\"#mwt1\" data-parsoid=\"{}\">\"background:&lt;/span>&lt;span typeof=\"mw:Entity\" about=\"#mwt1\" data-parsoid=\"{&amp;quot;src&amp;quot;:&amp;quot;&amp;amp;#35;&amp;quot;,&amp;quot;srcContent&amp;quot;:&amp;quot;#&amp;quot;}\">#&lt;/span>&lt;span about=\"#mwt1\" data-parsoid=\"{}\">f9f9f9;\"&lt;/span>"},{"html":""}]]}'>foo</div>
+!! end
+
+!! test
+2. Entities and nowikis inside templated attributes should be handled correctly
+!! wikitext
+{|
+|{{table_attribs_3}}
+|}
+!! html/php
+<table>
+<tr>
+<td style="background:#f9f9f9;">Foo
+</td></tr></table>
+
+!! html/parsoid
+<table>
+<tbody><tr data-parsoid='{"autoInsertedEnd":true,"autoInsertedStart":true}'><td style="background:#f9f9f9;" typeof="mw:Transclusion" about="#mwt1" data-parsoid='{"autoInsertedEnd":true,"pi":[[]]}' data-mw='{"parts":["|",{"template":{"target":{"wt":"table_attribs_3","href":"./Template:Table_attribs_3"},"params":{},"i":0}}]}'>Foo</td></tr>
+</tbody></table>
+!! end
+
 !!test
 Templates: HTML Tables: 1. Generating start of a HTML table
 !! wikitext
@@ -11988,6 +12241,17 @@ parsoid=wt2html,wt2wt,html2html
 <p><span class="mw-default-size" typeof="mw:Image"><a href="File:Foobar.jpg"><img alt="testing bold in alt" resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
 !! end
 
+!! test
+Alt image option should handle most kinds of wikitext without barfing
+!! wikitext
+[[Image:Foobar.jpg|thumb|This is the image caption|alt=This is a [[link]] and a {{echo|''bold template''}}.]]
+!! html/php
+<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="This is a link and a bold template." 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 the image caption</div></div></div>
+
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb mw:ExpandedAttrs" about="#mwt2" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"This is the image caption"},{"ck":"alt","ak":"alt=This is a [[link]] and a {{echo|&#39;&#39;bold template&#39;&#39;}}."}]}' data-mw='{"attribs":[["thumbnail",{"html":"thumb"}],["alt",{"html":"alt=This is a &lt;a rel=\"mw:WikiLink\" href=\"./Link\" title=\"Link\" data-parsoid=\"{&amp;quot;stx&amp;quot;:&amp;quot;simple&amp;quot;,&amp;quot;a&amp;quot;:{&amp;quot;href&amp;quot;:&amp;quot;./Link&amp;quot;},&amp;quot;sa&amp;quot;:{&amp;quot;href&amp;quot;:&amp;quot;link&amp;quot;},&amp;quot;dsr&amp;quot;:[65,73,2,2]}\">link&lt;/a> and a &lt;i about=\"#mwt1\" typeof=\"mw:Transclusion\" data-parsoid=\"{&amp;quot;dsr&amp;quot;:[80,106,null,null],&amp;quot;pi&amp;quot;:[[{&amp;quot;k&amp;quot;:&amp;quot;1&amp;quot;,&amp;quot;spc&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]}]]}\" 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;&#39;&#39;bold template&#39;&#39;&amp;quot;}},&amp;quot;i&amp;quot;:0}}]}\">bold template&lt;/i>."}]]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"sa":{}}'><img alt="This is a link and a bold template." resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" height="25" width="220" data-parsoid='{"a":{"alt":"This is a link and a bold template.","resource":"./File:Foobar.jpg","height":"25","width":"220"},"sa":{"alt":"alt=This is a [[link]] and a {{echo|&#39;&#39;bold template&#39;&#39;}}.","resource":"Image:Foobar.jpg"}}'/></a><figcaption>This is the image caption</figcaption></figure>
+!! end
+
 ###################
 # Conflicting image format options.
 # First option specified should 'win'.
@@ -13239,13 +13503,13 @@ More
 ===Smaller headline===
 Blah blah
 !! html
-<h2><a href="#Headline_1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Headline_1">Headline 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Headline 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Headline_1">Headline 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Headline 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>Some text
 </p>
-<h2><a href="#Headline_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Headline 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Headline 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>More
 </p>
-<h3><a href="#Smaller_headline" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Smaller_headline">Smaller headline</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Smaller headline">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h3><span class="mw-headline" id="Smaller_headline">Smaller headline</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Smaller headline">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
 <p>Blah blah
 </p>
 !! end
@@ -13285,14 +13549,14 @@ Some text
 </ul>
 </div>
 
-<h2><a href="#Headline_1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Headline_1">Headline 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Headline 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h3><a href="#Subheadline_1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Subheadline_1">Subheadline 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Subheadline 1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
-<h5><a href="#Skipping_a_level" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Skipping_a_level">Skipping a level</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Skipping a level">edit</a><span class="mw-editsection-bracket">]</span></span></h5>
-<h6><a href="#Skipping_a_level_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Skipping_a_level_2">Skipping a level</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Skipping a level">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
-<h2><a href="#Headline_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Headline 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Headline_1">Headline 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Headline 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="Subheadline_1">Subheadline 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Subheadline 1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h5><span class="mw-headline" id="Skipping_a_level">Skipping a level</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Skipping a level">edit</a><span class="mw-editsection-bracket">]</span></span></h5>
+<h6><span class="mw-headline" id="Skipping_a_level_2">Skipping a level</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Skipping a level">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
+<h2><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Headline 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>Some text
 </p>
-<h3><a href="#Another_headline" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Another_headline">Another headline</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: Another headline">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h3><span class="mw-headline" id="Another_headline">Another headline</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: Another headline">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
 
 !! end
 
@@ -13314,10 +13578,10 @@ __FORCETOC__
 </ul>
 </div>
 
-<h2><a href="#Headline_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Headline 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#Headline" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Headline">Headline</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Headline">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#Headline_2_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Headline_2_2">Headline 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Headline 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#Headline_3" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Headline_3">Headline</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Headline">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Headline_2">Headline 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Headline 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Headline">Headline</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Headline">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Headline_2_2">Headline 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Headline 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Headline_3">Headline</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Headline">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13366,21 +13630,21 @@ Handling of sections up to level 6 and beyond
 </ul>
 </div>
 
-<h1><a href="#Level_1_Heading" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Level_1_Heading">Level 1 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Level 1 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
-<h2><a href="#Level_2_Heading" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Level_2_Heading">Level 2 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Level 2 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h3><a href="#Level_3_Heading" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Level_3_Heading">Level 3 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Level 3 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
-<h4><a href="#Level_4_Heading" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Level_4_Heading">Level 4 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Level 4 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
-<h5><a href="#Level_5_Heading" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Level_5_Heading">Level 5 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Level 5 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h5>
-<h6><a href="#Level_6_Heading" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Level_6_Heading">Level 6 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: Level 6 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
-<h6><a href="#.3D_Level_7_Heading.3D" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id=".3D_Level_7_Heading.3D">= Level 7 Heading=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=7" title="Edit section: = Level 7 Heading=">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
-<h6><a href="#.3D.3D_Level_8_Heading.3D.3D" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id=".3D.3D_Level_8_Heading.3D.3D">== Level 8 Heading==</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=8" title="Edit section: == Level 8 Heading==">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
-<h6><a href="#.3D.3D.3D_Level_9_Heading.3D.3D.3D" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id=".3D.3D.3D_Level_9_Heading.3D.3D.3D">=== Level 9 Heading===</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=9" title="Edit section: === Level 9 Heading===">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
-<h6><a href="#.3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id=".3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D">==== Level 10 Heading====</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=10" title="Edit section: ==== Level 10 Heading====">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
+<h1><span class="mw-headline" id="Level_1_Heading">Level 1 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Level 1 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h2><span class="mw-headline" id="Level_2_Heading">Level 2 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Level 2 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="Level_3_Heading">Level 3 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Level 3 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h4><span class="mw-headline" id="Level_4_Heading">Level 4 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Level 4 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
+<h5><span class="mw-headline" id="Level_5_Heading">Level 5 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Level 5 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h5>
+<h6><span class="mw-headline" id="Level_6_Heading">Level 6 Heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: Level 6 Heading">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
+<h6><span class="mw-headline" id=".3D_Level_7_Heading.3D">= Level 7 Heading=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=7" title="Edit section: = Level 7 Heading=">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
+<h6><span class="mw-headline" id=".3D.3D_Level_8_Heading.3D.3D">== Level 8 Heading==</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=8" title="Edit section: == Level 8 Heading==">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
+<h6><span class="mw-headline" id=".3D.3D.3D_Level_9_Heading.3D.3D.3D">=== Level 9 Heading===</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=9" title="Edit section: === Level 9 Heading===">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
+<h6><span class="mw-headline" id=".3D.3D.3D.3D_Level_10_Heading.3D.3D.3D.3D">==== Level 10 Heading====</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=10" title="Edit section: ==== Level 10 Heading====">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
 
 !! end
 
 !! test
-TOC regression (bug 9764)
+TOC regression (T11764)
 !! wikitext
 == title 1 ==
 === title 1.1 ===
@@ -13409,12 +13673,12 @@ TOC regression (bug 9764)
 </ul>
 </div>
 
-<h2><a href="#title_1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h3><a href="#title_1.1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
-<h4><a href="#title_1.1.1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="title_1.1.1">title 1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
-<h3><a href="#title_1.2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="title_1.2">title 1.2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: title 1.2">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
-<h2><a href="#title_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: title 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h3><a href="#title_2.1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="title_2.1">title 2.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: title 2.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
+<h3><span class="mw-headline" id="title_1.2">title 1.2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: title 1.2">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: title 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="title_2.1">title 2.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: title 2.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
 
 !! end
 
@@ -13446,12 +13710,12 @@ wgMaxTocLevel=3
 </ul>
 </div>
 
-<h2><a href="#title_1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h3><a href="#title_1.1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
-<h4><a href="#title_1.1.1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="title_1.1.1">title 1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
-<h3><a href="#title_1.2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="title_1.2">title 1.2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: title 1.2">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
-<h2><a href="#title_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: title 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h3><a href="#title_2.1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="title_2.1">title 2.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: title 2.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h4><span class="mw-headline" id="title_1.1.1">title 1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
+<h3><span class="mw-headline" id="title_1.2">title 1.2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: title 1.2">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: title 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="title_2.1">title 2.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: title 2.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
 
 !! end
 
@@ -13477,11 +13741,11 @@ wgMaxTocLevel=3
 </ul>
 </div>
 
-<h2><a href="#Section_1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h3><a href="#Section_1.1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_1.1">Section 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Section 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
-<h4><a href="#Section_1.1.1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_1.1.1">Section 1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Section 1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
-<h4><a href="#Section_1.1.1.1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_1.1.1.1">Section 1.1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Section 1.1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
-<h2><a href="#Section_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Section 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="Section_1.1">Section 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Section 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h4><span class="mw-headline" id="Section_1.1.1">Section 1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Section 1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
+<h4><span class="mw-headline" id="Section_1.1.1.1">Section 1.1.1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Section 1.1.1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h4>
+<h2><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Section 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13492,8 +13756,8 @@ Resolving duplicate section names
 == Foo bar ==
 == Foo bar ==
 !! html
-<h2><a href="#Foo_bar" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Foo_bar">Foo bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#Foo_bar_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Foo_bar_2">Foo bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Foo_bar">Foo bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Foo_bar_2">Foo bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13503,8 +13767,8 @@ Resolving duplicate section names with differing case (bug 10721)
 == Foo bar ==
 == Foo Bar ==
 !! html
-<h2><a href="#Foo_bar" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Foo_bar">Foo bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#Foo_Bar_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Foo_Bar_2">Foo Bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Foo_bar">Foo bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Foo bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Foo_Bar_2">Foo Bar</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Foo Bar">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13523,10 +13787,10 @@ __NOTOC__
 {{sections}}
 ==Section 4==
 !! html
-<h2><a href="#Section_0" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_0">Section 0</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 0">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h3><a href="#Section_1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Sections&amp;action=edit&amp;section=T-1" title="Template:Sections">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
-<h2><a href="#Section_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Sections&amp;action=edit&amp;section=T-2" title="Template:Sections">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#Section_4" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_4">Section 4</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Section 4">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Section_0">Section 0</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 0">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Sections&amp;action=edit&amp;section=T-1" title="Template:Sections">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h2><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Template:Sections&amp;action=edit&amp;section=T-2" title="Template:Sections">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Section_4">Section 4</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Section 4">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13537,8 +13801,8 @@ __NOEDITSECTION__
 ==Section 1==
 ==Section 2==
 !! html
-<h2><a href="#Section_1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_1">Section 1</span></h2>
-<h2><a href="#Section_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_2">Section 2</span></h2>
+<h2><span class="mw-headline" id="Section_1">Section 1</span></h2>
+<h2><span class="mw-headline" id="Section_2">Section 2</span></h2>
 
 !! end
 
@@ -13547,12 +13811,12 @@ Link inside a section heading
 !! wikitext
 ==Section with a [[Main Page|link]] in it==
 !! html
-<h2><a href="#Section_with_a_link_in_it" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_with_a_link_in_it">Section with a <a href="/wiki/Main_Page" title="Main Page">link</a> in it</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section with a link in it">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Section_with_a_link_in_it">Section with a <a href="/wiki/Main_Page" title="Main Page">link</a> in it</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section with a link in it">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
 !! test
-TOC regression (bug 12077)
+TOC regression (T14077)
 !! wikitext
 __TOC__
 == title 1 ==
@@ -13570,9 +13834,9 @@ __TOC__
 </ul>
 </div>
 
-<h2><a href="#title_1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h3><a href="#title_1.1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
-<h2><a href="#title_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="title_1">title 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: title 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id="title_1.1">title 1.1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: title 1.1">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h2><span class="mw-headline" id="title_2">title 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: title 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -13596,10 +13860,10 @@ The line above must have a trailing space!
 --> <!-- -->
 But just in case it doesn't...
 !! html
-<h1><a href="#.3D" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id=".3D">=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: =">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h1><span class="mw-headline" id=".3D">=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: =">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 <p>The line above must have a trailing space!
 </p>
-<h1><a href="#.3D_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id=".3D_2">=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: =">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h1><span class="mw-headline" id=".3D_2">=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: =">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 <p>But just in case it doesn't...
 </p>
 !! end
@@ -13636,19 +13900,19 @@ section 5
 </ul>
 </div>
 
-<h2><a href="#text_.3E_text" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="text_.3E_text">text &gt; text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: text > text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="text_.3E_text">text &gt; text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: text > text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 1
 </p>
-<h2><a href="#text_.3C_text" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="text_.3C_text">text &lt; text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: text &lt; text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="text_.3C_text">text &lt; text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: text &lt; text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 2
 </p>
-<h2><a href="#text_.26_text" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="text_.26_text">text &amp; text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: text &amp; text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="text_.26_text">text &amp; text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: text &amp; text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 3
 </p>
-<h2><a href="#text_.27_text" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="text_.27_text">text ' text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: text ' text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="text_.27_text">text ' text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: text ' text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 4
 </p>
-<h2><a href="#text_.22_text" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="text_.22_text">text " text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: text &quot; text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="text_.22_text">text " text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: text &quot; text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 5
 </p>
 !! end
@@ -13696,22 +13960,22 @@ section 6
 </ul>
 </div>
 
-<h2><a href="#Space_between_Text" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Space_between_Text">Space between Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Space between Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Space_between_Text">Space between Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Space between Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 1
 </p>
-<h2><a href="#Space-Entity_between_Text" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Space-Entity_between_Text">Space-Entity&#32;between&#32;Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Space-Entity between Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Space-Entity_between_Text">Space-Entity&#32;between&#32;Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Space-Entity between Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 2
 </p>
-<h2><a href="#Plus.2Bbetween.2BText" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Plus.2Bbetween.2BText">Plus+between+Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Plus+between+Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Plus.2Bbetween.2BText">Plus+between+Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Plus+between+Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 3
 </p>
-<h2><a href="#Plus-Entity.2Bbetween.2BText" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Plus-Entity.2Bbetween.2BText">Plus-Entity&#43;between&#43;Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Plus-Entity+between+Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Plus-Entity.2Bbetween.2BText">Plus-Entity&#43;between&#43;Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Plus-Entity+between+Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 4
 </p>
-<h2><a href="#Underscore_between_Text" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Underscore_between_Text">Underscore_between_Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Underscore between Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Underscore_between_Text">Underscore_between_Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Underscore between Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 5
 </p>
-<h2><a href="#Underscore-Entity_between_Text" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Underscore-Entity_between_Text">Underscore-Entity&#95;between&#95;Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: Underscore-Entity_between_Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Underscore-Entity_between_Text">Underscore-Entity&#95;between&#95;Text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: Underscore-Entity_between_Text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p>section 6
 </p><p><a href="#Space_between_Text">#Space between Text</a>
 <a href="#Space-Entity_between_Text">#Space-Entity&#32;between&#32;Text</a>
@@ -13740,10 +14004,10 @@ Headers with excess '=' characters
 </ul>
 </div>
 
-<h1><a href="#foo.3D" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="foo.3D">foo=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: foo=">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
-<h1><a href="#.3Dfoo" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id=".3Dfoo">=foo</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: =foo">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
-<h1><a href="#italic_heading.3D" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="italic_heading.3D"><i>italic</i> heading=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: italic heading=">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
-<h1><a href="#.3Ditalic_heading" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id=".3Ditalic_heading">=<i>italic</i> heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: =italic heading">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h1><span class="mw-headline" id="foo.3D">foo=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: foo=">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h1><span class="mw-headline" id=".3Dfoo">=foo</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: =foo">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h1><span class="mw-headline" id="italic_heading.3D"><i>italic</i> heading=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: italic heading=">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h1><span class="mw-headline" id=".3Ditalic_heading">=<i>italic</i> heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: =italic heading">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
 
 !! end
 
@@ -13778,12 +14042,12 @@ __NOEDITSECTION__
 </ul>
 </div>
 
-<h1><a href="#Header_1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Header_1">Header 1</span></h1>
-<h2><a href="#Header_1.1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Header_1.1">Header 1.1</span></h2>
-<h2><a href="#Header_1.2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Header_1.2">Header 1.2</span></h2>
-<h1><a href="#Header_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Header_2">Header 2</span></h1>
-<h2><a href="#Header_2.1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Header_2.1">Header 2.1</span></h2>
-<h2><a href="#Header_2.2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Header_2.2">Header 2.2</span></h2>
+<h1><span class="mw-headline" id="Header_1">Header 1</span></h1>
+<h2><span class="mw-headline" id="Header_1.1">Header 1.1</span></h2>
+<h2><span class="mw-headline" id="Header_1.2">Header 1.2</span></h2>
+<h1><span class="mw-headline" id="Header_2">Header 2</span></h1>
+<h2><span class="mw-headline" id="Header_2.1">Header 2.1</span></h2>
+<h2><span class="mw-headline" id="Header_2.2">Header 2.2</span></h2>
 
 !! end
 
@@ -13798,9 +14062,9 @@ parsoid=wt2html,wt2wt
 c2
 c3-->
 !! html
-<h2><a href="#foo" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="foo">foo</span></h2>
-<h2><a href="#bar" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="bar">bar</span></h2>
-<h2><a href="#baz" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="baz">baz</span></h2>
+<h2><span class="mw-headline" id="foo">foo</span></h2>
+<h2><span class="mw-headline" id="bar">bar</span></h2>
+<h2><span class="mw-headline" id="baz">baz</span></h2>
 
 !! end
 
@@ -14177,16 +14441,17 @@ Media link with text
 !! end
 
 # FIXME: this is still bad HTML tag nesting
+# FIXME: doBlockLevels won't wrap this in a paragraph because it contains a div
 !! test
 Media link with nasty text
-fixme: doBlockLevels won't wrap this in a paragraph because it contains a div
 !! wikitext
 [[Media:Foobar.jpg|Safe Link<div style=display:none>" onmouseover="alert(document.cookie)" onfoo="</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>
+<p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Safe Link</a></p>
+<div style="display:none">" onmouseover="alert(document.cookie)" onfoo="</div>
 !! end
 
 !! test
@@ -15381,7 +15646,7 @@ Fuzz testing: Parser14
 == onmouseover= ==
 http://__TOC__
 !! html
-<h2><a href="#onmouseover.3D" class="mw-headline-anchor" title="Link to this section">§</a><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>
+<h2><span class="mw-headline" id="onmouseover.3D">onmouseover=</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: onmouseover=">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 http://<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1 tocsection-1"><a href="#onmouseover.3D"><span class="tocnumber">1</span> <span class="toctext">onmouseover=</span></a></li>
@@ -15390,7 +15655,7 @@ http://<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 
 
 !! html+tidy
-<h2><a href="#onmouseover.3D" class="mw-headline-anchor" title="Link to this section">§</a><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>
+<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">
@@ -15400,6 +15665,7 @@ http://<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 <li class="toclevel-1 tocsection-1"><a href="#onmouseover.3D"><span class="tocnumber">1</span> <span class="toctext">onmouseover=</span></a></li>
 </ul>
 </div>
+<p></p>
 !! end
 
 !! test
@@ -15408,13 +15674,13 @@ Fuzz testing: Parser14-table
 ==a==
 {| STYLE=__TOC__
 !! html
-<h2><a href="#a" class="mw-headline-anchor" title="Link to this section">§</a><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>
+<h2><span class="mw-headline" id="a">a</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: a">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <table style="&#95;_TOC&#95;_">
 <tr><td></td></tr>
 </table>
 
 !! html+tidy
-<h2><a href="#a" class="mw-headline-anchor" title="Link to this section">§</a><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>
+<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>
@@ -16809,19 +17075,19 @@ image:foobar.jpg|Blabla|alt=This is a foo-bar.|blabla.
                        </div>
                </div></li>
                <li class="gallerybox" style="width: 105px"><div style="width: 105px">
-                       <div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" width="70" height="8" /></a></div></div>
+                       <div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" width="70" height="8" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/105px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
 <p>some <b>caption</b> <a href="/wiki/Main_Page" title="Main Page">Main Page</a>
 </p>
                        </div>
                </div></li>
                <li class="gallerybox" style="width: 105px"><div style="width: 105px">
-                       <div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" width="70" height="8" /></a></div></div>
+                       <div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" width="70" height="8" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/105px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
                        </div>
                </div></li>
                <li class="gallerybox" style="width: 105px"><div style="width: 105px">
-                       <div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="This is a foo-bar." src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" width="70" height="8" /></a></div></div>
+                       <div class="thumb" style="width: 100px;"><div style="margin:31px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="This is a foo-bar." src="http://example.com/images/thumb/3/3a/Foobar.jpg/70px-Foobar.jpg" width="70" height="8" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/105px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/140px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
 <p>Blabla|blabla.
 </p>
@@ -16842,17 +17108,17 @@ image:foobar.jpg|link=Main Page#section|caption
 !! html
 <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
-                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/Main_Page"><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="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/Main_Page"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
                        </div>
                </div></li>
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
-                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/Main_Page#section"><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="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/Main_Page#section"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
                        </div>
                </div></li>
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
-                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/Main_Page#section"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
+                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/Main_Page#section"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
 <p>caption
 </p>
@@ -16872,14 +17138,14 @@ File:foobar.jpg|{{Test|unamedParam|alt=param}}|alt=galleryalt
 !! html
 <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
-                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
+                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="desc"><img alt="inneralt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" width="20" height="2" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/30px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/40px-Foobar.jpg 2x" /></a>
 </p>
                        </div>
                </div></li>
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
-                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
+                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
 <p>This is a test template
 </p>
@@ -16916,7 +17182,7 @@ caption
                        </div>
                </div></li>
                <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="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
+                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
 <p><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg">Foobar.jpg</a><br />
 some <b>caption</b> <a href="/wiki/Main_Page" title="Main Page">Main Page</a>
@@ -16924,7 +17190,7 @@ some <b>caption</b> <a href="/wiki/Main_Page" title="Main Page">Main Page</a>
                        </div>
                </div></li>
                <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="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" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
 <p><a href="/wiki/File:Foobar.jpg" title="File:Foobar.jpg">Foobar.jpg</a><br />
 </p>
@@ -16956,12 +17222,12 @@ foobar.jpg
                        </div>
                </div></li>
                <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="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" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
                        </div>
                </div></li>
                <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="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" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
                        </div>
                </div></li>
@@ -17423,7 +17689,7 @@ Inclusion of !userCanEdit() content
 !! wikitext
 {{MediaWiki:Fake}}
 !! html
-<h2><a href="#header" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="header">header</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=MediaWiki:Fake&amp;action=edit&amp;section=T-1" title="MediaWiki:Fake">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="header">header</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=MediaWiki:Fake&amp;action=edit&amp;section=T-1" title="MediaWiki:Fake">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -17455,12 +17721,12 @@ Out-of-order TOC heading levels
 </ul>
 </div>
 
-<h2><a href="#2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="2">2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h6><a href="#6" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="6">6</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: 6">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
-<h3><a href="#3" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="3">3</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: 3">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
-<h1><a href="#1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="1">1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: 1">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
-<h5><a href="#5" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="5">5</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: 5">edit</a><span class="mw-editsection-bracket">]</span></span></h5>
-<h2><a href="#2_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="2_2">2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="2">2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h6><span class="mw-headline" id="6">6</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: 6">edit</a><span class="mw-editsection-bracket">]</span></span></h6>
+<h3><span class="mw-headline" id="3">3</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: 3">edit</a><span class="mw-editsection-bracket">]</span></span></h3>
+<h1><span class="mw-headline" id="1">1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: 1">edit</a><span class="mw-editsection-bracket">]</span></span></h1>
+<h5><span class="mw-headline" id="5">5</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: 5">edit</a><span class="mw-editsection-bracket">]</span></span></h5>
+<h2><span class="mw-headline" id="2_2">2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=6" title="Edit section: 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -17567,7 +17833,7 @@ anchorencode encodes like the TOC generator: (bug 18431)
 {{anchorencode: _ +:.3A%3A&&amp;]] }}
 __NOEDITSECTION__
 !! html
-<h3><a href="#.2B:.3A.253A.26.26.5D.5D" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id=".2B:.3A.253A.26.26.5D.5D">_ +:.3A%3A&amp;&amp;]]</span></h3>
+<h3><span class="mw-headline" id=".2B:.3A.253A.26.26.5D.5D">_ +:.3A%3A&amp;&amp;]]</span></h3>
 <p>.2B:.3A.253A.26.26.5D.5D
 </p>
 !! end
@@ -17817,7 +18083,7 @@ language=sr variant=sr-ec
 !! wikitext
 == -{Naslov}- ==
 !! html
-<h2><a href="#-.7BNaslov.7D-" class="mw-headline-anchor" title="Линк то тхис сецтион">§</a><span class="mw-headline" id="-.7BNaslov.7D-">Naslov</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Уредите одељак „Naslov“">уреди</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="-.7BNaslov.7D-">Naslov</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Уреди одељак „Naslov“">уреди</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -18207,7 +18473,7 @@ Morwen/13: Unclosed link followed by heading
 !! html
 <p>[[link
 </p>
-<h2><a href="#heading" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="heading">heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="heading">heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -18219,7 +18485,7 @@ HHP2.1: Heuristics for headings in preprocessor parenthetical structures
 !! html
 <p>{{foo|
 </p>
-<h1><a href="#heading" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="heading">heading</span></h1>
+<h1><span class="mw-headline" id="heading">heading</span></h1>
 
 !! end
 
@@ -18231,7 +18497,7 @@ HHP2.2: Heuristics for headings in preprocessor parenthetical structures
 !! html
 <p>{{foo|
 </p>
-<h2><a href="#heading" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="heading">heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="heading">heading</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: heading">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -19115,7 +19381,7 @@ __TOC__
 </ul>
 </div>
 
-<h2><a href="#Lost_episodes" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Lost_episodes"><i>Lost</i> episodes</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Lost episodes">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Lost_episodes"><i>Lost</i> episodes</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Lost episodes">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -19133,7 +19399,7 @@ __TOC__
 </ul>
 </div>
 
-<h2><a href="#should_be_bold_then_normal_text" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="should_be_bold_then_normal_text"><b>should be bold</b> then normal text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: should be bold then normal text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="should_be_bold_then_normal_text"><b>should be bold</b> then normal text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: should be bold then normal text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -19151,7 +19417,7 @@ __TOC__
 </ul>
 </div>
 
-<h2><a href="#Image" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Image">Image <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Image">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Image">Image <a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Image">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -19169,9 +19435,10 @@ __TOC__
 </ul>
 </div>
 
-<h2><a href="#Quote" class="mw-headline-anchor" title="Link to this section">§</a><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>
+<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
+<p></p>
 <div id="toc" class="toc">
 <div id="toctitle">
 <h2>Contents</h2>
@@ -19180,7 +19447,8 @@ __TOC__
 <li class="toclevel-1 tocsection-1"><a href="#Quote"><span class="tocnumber">1</span> <span class="toctext">Quote</span></a></li>
 </ul>
 </div>
-<h2><a href="#Quote" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Quote"></span></h2>
+<p></p>
+<h2><span class="mw-headline" id="Quote"></span></h2>
 <blockquote>
 <p><span class="mw-headline" id="Quote">Quote</span></p>
 </blockquote>
@@ -19203,7 +19471,7 @@ QED
 </ul>
 </div>
 
-<h2><a href="#Proof:_2_.3C_3" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Proof:_2_.3C_3">Proof: 2 &lt; 3</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Proof: 2 &lt; 3">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Proof:_2_.3C_3">Proof: 2 &lt; 3</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Proof: 2 &lt; 3">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 <p><small>Hanc marginis exiguitas non caperet.</small>
 QED
 </p>
@@ -19224,10 +19492,11 @@ __TOC__
 </ul>
 </div>
 
-<h2><a href="#Foo_Bar" class="mw-headline-anchor" title="Link to this section">§</a><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><a href="#Foo_Bar_2" class="mw-headline-anchor" title="Link to this section">§</a><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>
+<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
+<p></p>
 <div id="toc" class="toc">
 <div id="toctitle">
 <h2>Contents</h2>
@@ -19237,8 +19506,9 @@ __TOC__
 <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><a href="#Foo_Bar" class="mw-headline-anchor" title="Link to this section">§</a><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><a href="#Foo_Bar_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Foo_Bar_2"><i>Foo</i></span></h2>
+<p></p>
+<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>
@@ -19260,8 +19530,8 @@ __TOC__
 </ul>
 </div>
 
-<h2><a href="#Hello" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Hello"><sup class="in-h2">Hello</sup></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Hello">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#b.22.3EEvilbye" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="b.22.3EEvilbye"><sup> b"&gt;Evilbye</sup></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: b&quot;>Evilbye">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Hello"><sup class="in-h2">Hello</sup></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Hello">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="b.22.3EEvilbye"><sup> b"&gt;Evilbye</sup></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: b&quot;>Evilbye">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -19289,11 +19559,11 @@ __TOC__
 </ul>
 </div>
 
-<h2><a href="#C.2B.2B" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="C.2B.2B"><span dir="ltr">C++</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: C++">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#.D7.96.D7.91.D7.A0.D7.92.21" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id=".D7.96.D7.91.D7.A0.D7.92.21"><span dir="rtl">זבנג!</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: זבנג!">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#The_attributes_on_these_span_tags_must_be_deleted_from_the_TOC" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="The_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic">The attributes on these span tags must be deleted from the TOC</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: The attributes on these span tags must be deleted from the TOC">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#All_attributes_on_these_span_tags_must_be_deleted_from_the_TOC" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="All_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic" dir="ltr">All attributes on these span tags must be deleted from the TOC</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: All attributes on these span tags must be deleted from the TOC">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#Attributes_after_dir_on_these_span_tags_must_be_deleted_from_the_TOC" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Attributes_after_dir_on_these_span_tags_must_be_deleted_from_the_TOC"><span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Attributes after dir on these span tags must be deleted from the TOC">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="C.2B.2B"><span dir="ltr">C++</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: C++">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id=".D7.96.D7.91.D7.A0.D7.92.21"><span dir="rtl">זבנג!</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: זבנג!">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="The_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic">The attributes on these span tags must be deleted from the TOC</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: The attributes on these span tags must be deleted from the TOC">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="All_attributes_on_these_span_tags_must_be_deleted_from_the_TOC"><span style="font-style: italic" dir="ltr">All attributes on these span tags must be deleted from the TOC</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: All attributes on these span tags must be deleted from the TOC">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Attributes_after_dir_on_these_span_tags_must_be_deleted_from_the_TOC"><span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span></span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Attributes after dir on these span tags must be deleted from the TOC">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -19309,8 +19579,39 @@ __TOC__
 </ul>
 </div>
 
-<h2><a href="#test" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="test"><bdi>test</bdi></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: test">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="test"><bdi>test</bdi></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: test">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+
+!! end
+
+# Note that the html output does not have the <p></p>, but the
+# html+tidy output *does*.  This is because the empty <p></p> is
+# removed by the sanitizer, but only when tidy is *not* enabled (!).
+!! test
+Empty <p> tag in TOC, removed by Sanitizer (T92892)
+!! wikitext
+__TOC__
+== x ==
+!! html
+<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
+<ul>
+<li class="toclevel-1 tocsection-1"><a href="#x"><span class="tocnumber">1</span> <span class="toctext">x</span></a></li>
+</ul>
+</div>
+
+<h2><span class="mw-headline" id="x">x</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: x">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
+!! html+tidy
+<p></p>
+<div id="toc" class="toc">
+<div id="toctitle">
+<h2>Contents</h2>
+</div>
+<ul>
+<li class="toclevel-1 tocsection-1"><a href="#x"><span class="tocnumber">1</span> <span class="toctext">x</span></a></li>
+</ul>
+</div>
+<p></p>
+<h2><span class="mw-headline" id="x">x</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: x">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 !! end
 
 !! article
@@ -19326,7 +19627,7 @@ title=[[Main Page]]
 !! wikitext
 {{int:Bug32057}}
 !! html
-<h2><a href="#Headline_text" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Headline_text">Headline text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Headline text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Headline_text">Headline text</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Main_Page&amp;action=edit&amp;section=1" title="Edit section: Headline text">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -19441,7 +19742,7 @@ nowiki inside link inside heading (bug 18295)
 !! wikitext
 ==[[foo|x<nowiki>y</nowiki>z]]==
 !! html
-<h2><a href="#xyz" class="mw-headline-anchor" title="Link to this section">§</a><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>
+<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
 
@@ -19482,7 +19783,7 @@ File:foobar.jpg|caption|alt=galleryalt|link=InterWikiLink
 !! html
 <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
-                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/InterWikiLink"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
+                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/InterWikiLink"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
 <p>caption
 </p>
@@ -19501,7 +19802,7 @@ File:foobar.jpg|caption|alt=galleryalt|link=http://www.example.org
 !! html
 <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
-                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="http://www.example.org"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
+                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="http://www.example.org"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
 <p>caption
 </p>
@@ -19520,7 +19821,7 @@ File:foobar.jpg|caption|alt=galleryalt|link=" onclick="alert('malicious javascri
 !! html
 <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
-                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/%22_onclick%3D%22alert(%27malicious_javascript_code!%27);"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
+                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/%22_onclick%3D%22alert(%27malicious_javascript_code!%27);"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
 <p>caption
 </p>
@@ -19539,7 +19840,7 @@ File:foobar.jpg|link=<
 !! html
 <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
-                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
+                       <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" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/240px-Foobar.jpg 2x" /></a></div></div>
                        <div class="gallerytext">
                        </div>
                </div></li>
@@ -19626,11 +19927,11 @@ Lead
 <p>Lead
 </p>
 
-<h2><a href="#Section_1" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#Section_2" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Section 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#Section_3" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_3">Section 3</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Section 3">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#Section_4" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_4">Section 4</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Section 4">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
-<h2><a href="#Section_5" class="mw-headline-anchor" title="Link to this section">§</a><span class="mw-headline" id="Section_5">Section 5</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Section 5">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Section_1">Section 1</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=1" title="Edit section: Section 1">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Section_2">Section 2</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=2" title="Edit section: Section 2">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Section_3">Section 3</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=3" title="Edit section: Section 3">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Section_4">Section 4</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=4" title="Edit section: Section 4">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h2><span class="mw-headline" id="Section_5">Section 5</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/index.php?title=Parser_test&amp;action=edit&amp;section=5" title="Edit section: Section 5">edit</a><span class="mw-editsection-bracket">]</span></span></h2>
 
 !! end
 
@@ -19720,13 +20021,13 @@ B <ref name="x">foo</ref>
 C <ref name="y" />
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span>
-B <span about="#mwt4" class="reference" id="cite_ref-x_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"x"}}'><a href="#cite_note-x-2">[2]</a></span>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-x_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-x-2"},"attrs":{"name":"x"}}'><a href="#cite_note-x-2">[2]</a></span>
 C <span about="#mwt6" class="reference" id="cite_ref-y_3-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"y"}}'><a href="#cite_note-y-3">[3]</a></span></p>
-<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
-<li id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo</li>
-<li id="cite_note-x-2"><span rel="mw:referencedBy"><a href="#cite_ref-x_2-0">↑</a></span> foo</li>
-<li id="cite_note-y-3"><span rel="mw:referencedBy"><a href="#cite_ref-y_3-0">↑</a></span></li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
+<li about="#cite_note-x-2" id="cite_note-x-2"><span rel="mw:referencedBy"><a href="#cite_ref-x_2-0">↑</a></span> <span id="mw-reference-text-cite_note-x-2" class="mw-reference-text">foo</span></li>
+<li about="#cite_note-y-3" id="cite_note-y-3"><span rel="mw:referencedBy"><a href="#cite_ref-y_3-0">↑</a></span> <span id="mw-reference-text-cite_note-y-3" class="mw-reference-text"></span></li>
 </ol>
 !!end
 
@@ -19739,10 +20040,10 @@ A <ref name="x">foo</ref>
 B <ref name="x" />
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-x_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-x_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-x-1"},"attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span>
 B <span about="#mwt4" class="reference" id="cite_ref-x_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span></p>
-<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
-<li id="cite_note-x-1"><span rel="mw:referencedBy">↑ <a href="#cite_ref-x_1-0">1.0</a> <a href="#cite_ref-x_1-1">1.1</a></span> foo</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-x-1" id="cite_note-x-1"><span rel="mw:referencedBy">↑ <a href="#cite_ref-x_1-0">1.0</a> <a href="#cite_ref-x_1-1">1.1</a></span> <span id="mw-reference-text-cite_note-x-1" class="mw-reference-text">foo</span></li>
 </ol>
 !!end
 
@@ -19756,11 +20057,11 @@ B <ref name=" x " />
 C <ref name= x  />
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-x_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-x_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-x-1"},"attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span>
 B <span about="#mwt4" class="reference" id="cite_ref-x_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span>
 C <span about="#mwt6" class="reference" id="cite_ref-x_1-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"x"}}'><a href="#cite_note-x-1">[1]</a></span></p>
-<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
-<li id="cite_note-x-1"><span rel="mw:referencedBy">↑ <a href="#cite_ref-x_1-0">1.0</a> <a href="#cite_ref-x_1-1">1.1</a> <a href="#cite_ref-x_1-2">1.2</a></span> foo</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-x-1" id="cite_note-x-1"><span rel="mw:referencedBy">↑ <a href="#cite_ref-x_1-0">1.0</a> <a href="#cite_ref-x_1-1">1.1</a> <a href="#cite_ref-x_1-2">1.2</a></span> <span id="mw-reference-text-cite_note-x-1" class="mw-reference-text">foo</span></li>
 </ol>
 !!end
 
@@ -19773,9 +20074,9 @@ parsoid
 A <ref name="constructor">foo</ref>
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-constructor_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"constructor"}}'><a href="#cite_note-constructor-1">[1]</a></span></p>
-<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
-<li id="cite_note-constructor-1"><span rel="mw:referencedBy"><a href="#cite_ref-constructor_1-0">↑</a></span> foo</li>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-constructor_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-constructor-1"},"attrs":{"name":"constructor"}}'><a href="#cite_note-constructor-1">[1]</a></span></p>
+<ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-constructor-1" id="cite_note-constructor-1"><span rel="mw:referencedBy"><a href="#cite_ref-constructor_1-0">↑</a></span> <span id="mw-reference-text-cite_note-constructor-1" class="mw-reference-text">foo</span></li>
 </ol>
 !!end
 
@@ -19790,11 +20091,11 @@ A <ref>
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"This is a &lt;b data-parsoid=&#39;{\"dsr\":[19,40,3,3]}&#39;>&lt;a rel=\"mw:WikiLink\" href=\"./Bolded_link\" title=\"Bolded link\" data-parsoid=&#39;{\"stx\":\"simple\",\"a\":{\"href\":\"./Bolded_link\"},\"sa\":{\"href\":\"bolded link\"},\"dsr\":[22,37,2,2]}&#39;>bolded link&lt;/a>&lt;/b> and this is a &lt;span about=\"#mwt3\" typeof=\"mw:Transclusion\" data-parsoid=&#39;{\"pi\":[[{\"k\":\"1\",\"spc\":[\"\",\"\",\"\",\"\"]}]],\"dsr\":[55,76,null,null]}&#39; data-mw=&#39;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"transclusion\"}},\"i\":0}}]}&#39;>transclusion&lt;/span>\n"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
 <ol class="references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> This is a <b><a rel="mw:WikiLink" href="./Bolded_link" title="Bolded link">bolded link</a></b> and this is a <span about="#mwt3" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"transclusion"}},"i":0}}]}'>transclusion</span>
-</li>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">This is a <b><a rel="mw:WikiLink" href="Bolded_link" title="Bolded link">bolded link</a></b> and this is a <span about="#mwt3" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"transclusion"}},"i":0}}]}'>transclusion</span>
+</span></li>
 </ol>
 !!end
 
@@ -19811,13 +20112,13 @@ A <ref>
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo\n bar\n baz\n"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
 <ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo
  bar
  baz
-</li>
+</span></li>
 </ol>
 !!end
 
@@ -19841,10 +20142,10 @@ booz
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo\n\nbar\n\n\nbaz\n\n\n\nbooz\n"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
 <ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo
 
 bar
 
@@ -19854,7 +20155,7 @@ baz
 
 
 booz
-</li>
+</span></li>
 </ol>
 !!end
 
@@ -19867,9 +20168,9 @@ A <ref> foo {{echo|</ref> B C}}
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo &lt;span typeof=\"mw:Nowiki\" data-parsoid=&#39;{\"src\":\"{{\",\"dsr\":[12,14,0,0]}&#39;>{{&lt;/span>echo|"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B C<span typeof="mw:Nowiki">}}</span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B C<span typeof="mw:Nowiki">}}</span></p>
 <ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo <span typeof="mw:Nowiki">{{</span>echo|</li>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo <span typeof="mw:Nowiki" data-parsoid='{"src":"{{","dsr":[12,14,0,0]}'>{{</span>echo|</span></li>
 </ol>
 !!end
 
@@ -19881,9 +20182,9 @@ parsoid
 A <ref> foo <!--</ref> B C
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo &lt;!---->"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B C</p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B C</p>
 <ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo <!----></li>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo <!----></span></li>
 </ol>
 !!end
 
@@ -19896,11 +20197,11 @@ A <ref> <b> foo </ref> B C
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"&lt;b data-parsoid=&#39;{\"stx\":\"html\",\"autoInsertedEnd\":true,\"dsr\":[8,16,3,0]}&#39;> foo &lt;/b>"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B C</p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B C</p>
 
 
 <ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <b data-parsoid='{"stx":"html","autoInsertedEnd":true}'> foo </b></li>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text"><b data-parsoid='{"stx":"html","autoInsertedEnd":true}'> foo </b></span></li>
 </ol>
 !!end
 
@@ -19913,11 +20214,11 @@ A <ref>foo</ref> B
 C <ref>bar</ref> D
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B
-C <span about="#mwt4" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{}}'><a href="#cite_note-2">[2]</a></span> D</p>
-<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
-<li id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo</li>
-<li id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span> bar</li>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B
+C <span about="#mwt4" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="#cite_note-2">[2]</a></span> D</p>
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
+<li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bar</span></li>
 </ol>
 !!end
 
 <span about="#mwt4" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{}}'><a href="#cite_note-2">[2]</a></span></p>
 
 <p>c</p>
-<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
-<li id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span></li>
-<li id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span></li>
-</ol>
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text"></span></li>
+<li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span> <span id="mw-reference-text-cite_note-2" class="mw-reference-text"></span></li></ol>
 !!end
 
 !!test
@@ -19957,11 +20257,12 @@ parsoid
 </ref> B
 <references />
 !! html
-<p><span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> A
-<span about="#mwt4" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar\n"},"attrs":{}}'><a href="#cite_note-2">[2]</a></span> B</p>
-<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
-<li id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo</li>
-<li id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span> bar</li>
+<p><span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> A
+<span about="#mwt4" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="#cite_note-2">[2]</a></span> B</p>
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
+<li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bar
+</span></li>
 </ol>
 !!end
 
@@ -19974,10 +20275,10 @@ parsoid
 
 <references />
 !! html
-<p><span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo &amp;lt;ref>bar&amp;lt;/ref> baz"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
-
+<p><span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span>
+</p>
 <ol class="references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo &lt;ref>bar&lt;/ref> baz</li>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo &lt;ref>bar&lt;/ref> baz</span></li>
 </ol>
 !!end
 
@@ -19991,10 +20292,10 @@ B1 <ref name="b" /> B2 <ref name="b">bar</ref>
 
 <references />
 !! html
-<p>A1 <span about="#mwt3" class="reference" id="cite_ref-a_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"a"}}'><a href="#cite_note-a-1">[1]</a></span> A2 <span about="#mwt4" class="reference" id="cite_ref-a_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"}}'><a href="#cite_note-a-1">[1]</a></span>
-B1 <span about="#mwt7" class="reference" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"b"}}'><a href="#cite_note-b-2">[2]</a></span> B2 <span about="#mwt8" class="reference" id="cite_ref-b_2-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"name":"b"}}'><a href="#cite_note-b-2">[2]</a></span></p>
+<p>A1 <span about="#mwt3" class="reference" id="cite_ref-a_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-a-1"},"attrs":{"name":"a"}}'><a href="#cite_note-a-1">[1]</a></span> A2 <span about="#mwt4" class="reference" id="cite_ref-a_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"}}'><a href="#cite_note-a-1">[1]</a></span>
+B1 <span about="#mwt7" class="reference" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"b"}}'><a href="#cite_note-b-2">[2]</a></span> B2 <span about="#mwt8" class="reference" id="cite_ref-b_2-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-b-2"},"attrs":{"name":"b"}}'><a href="#cite_note-b-2">[2]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-a-1" id="cite_note-a-1"><span rel="mw:referencedBy">↑ <a href="#cite_ref-a_1-0">1.0</a> <a href="#cite_ref-a_1-1">1.1</a></span> foo</li><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy">↑ <a href="#cite_ref-b_2-0">2.0</a> <a href="#cite_ref-b_2-1">2.1</a></span> bar</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-a-1" id="cite_note-a-1"><span rel="mw:referencedBy">↑ <a href="#cite_ref-a_1-0">1.0</a> <a href="#cite_ref-a_1-1">1.1</a></span> <span id="mw-reference-text-cite_note-a-1" class="mw-reference-text">foo</span></li><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy">↑ <a href="#cite_ref-b_2-0">2.0</a> <a href="#cite_ref-b_2-1">2.1</a></span> <span id="mw-reference-text-cite_note-b-2" class="mw-reference-text">bar</span></li>
 </ol>
 !!end
 
@@ -20008,10 +20309,9 @@ A <ref >foo</ref >
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
-
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 <ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo</li></ol>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li></ol>
 !!end
 
 !!test
@@ -20023,11 +20323,12 @@ parsoid
 
 <references />
 !!html
-<p><span class="reference" id="cite_ref-a_b_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"a b"}}'><a href="#cite_note-a_b-1">[1]</a></span>
+<p><span class="reference" id="cite_ref-a_b_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-a_b-1"},"attrs":{"name":"a b"}}'><a href="#cite_note-a_b-1">[1]</a></span>
 </p>
 
-<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
-<li id="cite_note-a_b-1"><span rel="mw:referencedBy"><a href="#cite_ref-a_b_1-0">↑</a></span> foo</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-a_b-1" id="cite_note-a_b-1"><span rel="mw:referencedBy"><a href="#cite_ref-a_b_1-0">↑</a></span> <span id="mw-reference-text-cite_note-a_b-1" class="mw-reference-text">foo</span></li>
+</ol>
 !!end
 
 !!test
@@ -20039,11 +20340,12 @@ parsoid
 
 <references />
 !!html
-<p><span class="reference" id="cite_ref-.7B.7Becho.7Ca.7D.7D_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"{{echo|a}}"}}'><a href="#cite_note-.7B.7Becho.7Ca.7D.7D-1">[1]</a></span>
+<p><span class="reference" id="cite_ref-.7B.7Becho.7Ca.7D.7D_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-.7B.7Becho.7Ca.7D.7D-1"},"attrs":{"name":"{{echo|a}}"}}'><a href="#cite_note-.7B.7Becho.7Ca.7D.7D-1">[1]</a></span>
 </p>
 
-<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
-<li id="cite_note-.7B.7Becho.7Ca.7D.7D-1"><span rel="mw:referencedBy"><a href="#cite_ref-.7B.7Becho.7Ca.7D.7D_1-0">↑</a></span> foo</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-.7B.7Becho.7Ca.7D.7D-1" id="cite_note-.7B.7Becho.7Ca.7D.7D-1"><span rel="mw:referencedBy"><a href="#cite_ref-.7B.7Becho.7Ca.7D.7D_1-0">↑</a></span> <span id="mw-reference-text-cite_note-.7B.7Becho.7Ca.7D.7D-1" class="mw-reference-text">foo</span></li>
+</ol>
 !!end
 
 !!test
@@ -20055,9 +20357,29 @@ parsoid
 
 <references />
 !! html
-<p>1 <span about="#mwt3" class="reference" id="cite_ref-a_.26_b_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"name":"a &amp; b"}}'><a href="#cite_note-a_.26_b-1">[1]</a></span> 2 <span about="#mwt4" class="reference" id="cite_ref-a_.26_b_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a &amp;amp; b"}}'><a href="#cite_note-a_.26_b-1">[1]</a></span>
+<p>1 <span about="#mwt3" class="reference" id="cite_ref-a_.26_b_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-a_.26_b-1"},"attrs":{"name":"a &amp; b"}}'><a href="#cite_note-a_.26_b-1">[1]</a></span> 2 <span about="#mwt4" class="reference" id="cite_ref-a_.26_b_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a &amp;amp; b"}}'><a href="#cite_note-a_.26_b-1">[1]</a></span>
+</p>
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-a_.26_b-1" id="cite_note-a_.26_b-1"><span rel="mw:referencedBy">↑ <a href="#cite_ref-a_.26_b_1-0">1.0</a> <a href="#cite_ref-a_.26_b_1-1">1.1</a></span> <span id="mw-reference-text-cite_note-a_.26_b-1" class="mw-reference-text">foo</span></li>
+</ol>
+!!end
+
+!!test
+Ref: 20. ref-tags with identical names but different content should keep it
+!!options
+parsoid
+!! wikitext
+A <ref name="foo">Foo one</ref>
+B <ref name="foo">Foo two</ref>
+C <ref name="foo" />
+
+<references />
+!! html
+<p>A <span about="#mwt2" class="reference" id="cite_ref-foo_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-foo-1"},"attrs":{"name":"foo"}}'><a href="#cite_note-foo-1">[1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-foo_1-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"Foo two"},"attrs":{"name":"foo"}}'><a href="#cite_note-foo-1">[1]</a></span>
+C <span about="#mwt6" class="reference" id="cite_ref-foo_1-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"foo"}}'><a href="#cite_note-foo-1">[1]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-a_.26_b-1" id="cite_note-a_.26_b-1"><span rel="mw:referencedBy">↑ <a href="#cite_ref-a_.26_b_1-0">1.0</a> <a href="#cite_ref-a_.26_b_1-1">1.1</a></span> foo</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-foo-1" id="cite_note-foo-1"><span rel="mw:referencedBy">↑ <a href="#cite_ref-foo_1-0">1.0</a> <a href="#cite_ref-foo_1-1">1.1</a> <a href="#cite_ref-foo_1-2">1.2</a></span> <span id="mw-reference-text-cite_note-foo-1" class="mw-reference-text">Foo one</span></li>
 </ol>
 !!end
 
@@ -20068,7 +20390,7 @@ parsoid
 !! wikitext
 <references />
 !! html
-<ol about="#mwt2" class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'></ol>
+<ol class="references" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{}}'></ol>
 !!end
 
 !!test
@@ -20084,16 +20406,18 @@ C <ref>baz</ref>
 <references />
 <references group="b" />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{"group":"a"}}'><a href="#cite_note-1">[a 1]</a></span>
-B <span about="#mwt4" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"group":"b"}}'><a href="#cite_note-2">[b 1]</a></span>
-C <span class="reference" id="cite_ref-3" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"baz"},"attrs":{}}'><a href="#cite_note-3">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{"group":"a"}}'><a href="#cite_note-1">[a 1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{"group":"b"}}'><a href="#cite_note-2">[b 1]</a></span>
+C <span class="reference" id="cite_ref-3" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-3"},"attrs":{}}'><a href="#cite_note-3">[1]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"group":"a"}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{"group":"a"}}'>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
 </ol>
-<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-3" id="cite_note-3"><span rel="mw:referencedBy"><a href="#cite_ref-3">↑</a></span> baz</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-3" id="cite_note-3"><span rel="mw:referencedBy"><a href="#cite_ref-3">↑</a></span> <span id="mw-reference-text-cite_note-3" class="mw-reference-text">baz</span></li>
 </ol>
-<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{"group":"b"}}'>
-<li id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span> bar</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt12" data-mw='{"name":"references","attrs":{"group":"b"}}'>
+<li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bar</span></li>
 </ol>
 !!end
 
@@ -20110,14 +20434,15 @@ B <ref>bar</ref>
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
 </ol>
 
-<p>B <span about="#mwt6" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{}}'><a href="#cite_note-2">[1]</a></span></p>
+<p>B <span about="#mwt6" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="#cite_note-2">[1]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span> bar</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bar</span></li>
 </ol>
 !!end
 
@@ -20135,15 +20460,15 @@ C <ref>cfoo</ref>
 
 <references />
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"afoo"},"attrs":{"group":"a"}}'><a href="#cite_note-1">[a 1]</a></span>
-B <span about="#mwt4" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bfoo"},"attrs":{}}'><a href="#cite_note-2">[1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{"group":"a"}}'><a href="#cite_note-1">[a 1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{}}'><a href="#cite_note-2">[1]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"group":"a"}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> afoo</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"group":"a"}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">afoo</span></li>
 </ol>
 
-<p>C <span about="#mwt8" class="reference" id="cite_ref-3" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"cfoo"},"attrs":{}}'><a href="#cite_note-3">[2]</a></span></p>
+<p>C <span about="#mwt8" class="reference" id="cite_ref-3" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-3"},"attrs":{}}'><a href="#cite_note-3">[2]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span> bfoo</li><li about="#cite_note-3" id="cite_note-3"><span rel="mw:referencedBy"><a href="#cite_ref-3">↑</a></span> cfoo</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt10" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bfoo</span></li><li about="#cite_note-3" id="cite_note-3"><span rel="mw:referencedBy"><a href="#cite_ref-3">↑</a></span> <span id="mw-reference-text-cite_note-3" class="mw-reference-text">cfoo</span></li>
 </ol>
 !!end
 
@@ -20161,10 +20486,10 @@ This should just get lost.
 </references>
 !! html
 <p>A <span about="#mwt2" class="reference" id="cite_ref-a_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"name":"a"}}'><a href="#cite_note-a-1">[1]</a></span>
-B <span about="#mwt4" class="reference" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"name":"b"}}'><a href="#cite_note-b-2">[2]</a></span></p>
+B <span about="#mwt4" class="reference" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-b-2"},"attrs":{"name":"b"}}'><a href="#cite_note-b-2">[2]</a></span></p>
 
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","body":{"extsrc":"&lt;ref name=\"a\">foo&lt;/ref>\nThis should just get lost.","html":"\n&lt;span about=\"#mwt8\" class=\"reference\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid=&#39;{\"src\":\"&amp;lt;ref name=\\\"a\\\">foo&amp;lt;/ref>\",\"dsr\":[59,82,14,6]}&#39; data-mw=&#39;{\"name\":\"ref\",\"body\":{\"html\":\"foo\"},\"attrs\":{\"name\":\"a\"}}&#39;>&lt;a href=\"#cite_note-a-1\">[1]&lt;/a>&lt;/span>\n"},"attrs":{}}'><li about="#cite_note-a-1" id="cite_note-a-1"><span rel="mw:referencedBy"><a href="#cite_ref-a_1-0">↑</a></span> foo</li><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy"><a href="#cite_ref-b_2-0">↑</a></span> bar</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","body":{"extsrc":"&lt;ref name=\"a\">foo&lt;/ref>\nThis should just get lost.","html":"\n&lt;span about=\"#mwt8\" class=\"reference\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid=&#39;{\"dsr\":[59,82,14,6]}&#39; data-mw=&#39;{\"name\":\"ref\",\"body\":{\"id\":\"mw-reference-text-cite_note-a-1\"},\"attrs\":{\"name\":\"a\"}}&#39;>&lt;a href=\"#cite_note-a-1\">[1]&lt;/a>&lt;/span>\n"},"attrs":{}}'><li about="#cite_note-a-1" id="cite_note-a-1"><span rel="mw:referencedBy"><a href="#cite_ref-a_1-0">↑</a></span> <span id="mw-reference-text-cite_note-a-1" class="mw-reference-text">foo</span></li><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy"><a href="#cite_ref-b_2-0">↑</a></span> <span id="mw-reference-text-cite_note-b-2" class="mw-reference-text">bar</span></li>
 </ol>
 !!end
 
@@ -20175,7 +20500,8 @@ parsoid
 !! wikitext
 <ref>Foo</ref> {{echo|<references />}}
 !! html
-<p><span about="#mwt3" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"Foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p> <ol class="references" typeof="mw:Extension/references mw:Transclusion" about="#mwt4" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;references />"}},"i":0}}]}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> Foo</li></ol>
+<p><span about="#mwt3" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p> <ol class="references" typeof="mw:Extension/references mw:Transclusion" about="#mwt4" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;references />"}},"i":0}}]}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">Foo</span></li>
+</ol>
 !!end
 
 !! test
@@ -20192,12 +20518,17 @@ B <ref group="X" name="b" />
 <ref name="b">foo</ref>
 </references>
 !! html
-<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo bar for a"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span>
-B <span about="#mwt4" class="reference" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"group":"X","name":"b"}}'><a href="#cite_note-b-2">[X 1]</a></span></p>
+<p>A <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span>
+B <span about="#mwt4" class="reference" id="cite_ref-b_2-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","attrs":{"group":"X","name":"b"}}'><a href="#cite_note-b-2">[X 1]</a></span>
+</p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo bar for a</li></ol>
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo bar for a</span></li>
+</ol>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","body":{"extsrc":"&lt;ref name=\"b\">foo&lt;/ref>","html":"\n&lt;span about=\"#mwt10\" class=\"reference\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid=&#39;{\"src\":\"&amp;lt;ref name=\\\"b\\\">foo&amp;lt;/ref>\",\"dsr\":[96,119,14,6]}&#39; data-mw=&#39;{\"name\":\"ref\",\"body\":{\"html\":\"foo\"},\"attrs\":{\"name\":\"b\"}}&#39;>&lt;a href=\"#cite_note-b-2\">[X 1]&lt;/a>&lt;/span>\n"},"attrs":{"group":"X"}}'><li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy"><a href="#cite_ref-b_2-0">↑</a></span> foo</li></ol>
+<ol class="references" typeof="mw:Extension/references" about="#mwt8" data-mw='{"name":"references","body":{"extsrc":"&lt;ref name=\"b\">foo&lt;/ref>","html":"\n&lt;span about=\"#mwt10\" class=\"reference\" rel=\"dc:references\" typeof=\"mw:Extension/ref\" data-parsoid=&#39;{\"dsr\":[96,119,14,6]}&#39; data-mw=&#39;{\"name\":\"ref\",\"body\":{\"id\":\"mw-reference-text-cite_note-b-2\"},\"attrs\":{\"name\":\"b\"}}&#39;>&lt;a href=\"#cite_note-b-2\">[X 1]&lt;/a>&lt;/span>\n"},"attrs":{"group":"X"}}'>
+<li about="#cite_note-b-2" id="cite_note-b-2"><span rel="mw:referencedBy"><a href="#cite_ref-b_2-0">↑</a></span> <span id="mw-reference-text-cite_note-b-2" class="mw-reference-text">foo</span></li>
+</ol>
 !! end
 
 !! test
@@ -20209,7 +20540,8 @@ X{{echo|<ref>foo {{echo|<b>bar</b>}} and {{echo|baz}} boo</ref>}}
 <references />
 !! html
 <p>X<span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Transclusion  mw:Extension/ref" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;ref>foo {{echo|&lt;b>bar&lt;/b>}} and {{echo|baz}} boo&lt;/ref>"}},"i":0}}]}'><a href="#cite_note-1">[1]</a></span></p>
-<ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo <b data-parsoid='{"stx":"html"}'>bar</b> and baz boo</li></ol>
+<ol class="references" typeof="mw:Extension/references" about="#mwt7" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo <b data-parsoid='{"stx":"html"}'>bar</b> and baz boo</span></li>
+</ol>
 !!end
 
 # This test only works in wt2html now as the <references /> are always generated
@@ -20224,12 +20556,12 @@ parsoid
 A <ref>foo</ref>
 B <ref group="inexistent">bar</ref>
 !! html
-<p>A <span class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B <span class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"group":"inexistent"}}'><a href="#cite_note-2">[inexistent 1]</a></span></</p>
-<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
-<li id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo</li>
+<p>A <span class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span> B <span class="reference" id="cite_ref-2" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-2"},"attrs":{"group":"inexistent"}}'><a href="#cite_note-2">[inexistent 1]</a></span></p>
+<ol class="references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li>
 </ol>
-<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{"group":"inexistent"}}'>
-<li id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span> bar</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-mw='{"name":"references","attrs":{"group":"inexistent"}}'>
+<li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2">↑</a></span> <span id="mw-reference-text-cite_note-2" class="mw-reference-text">bar</span></li>
 </ol>
 !! end
 
@@ -20241,9 +20573,9 @@ parsoid
 <ref name="test &amp; me">hi</ref>
 <references />
 !! html
-<p><span about="#mwt2" class="reference" id="cite_ref-test_.26_me_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"hi"},"attrs":{"name":"test &amp;amp; me"}}'><a href="#cite_note-test_.26_me-1">[1]</a></span></p>
-<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
-<li id="cite_note-test_.26_me-1"><span rel="mw:referencedBy"><a href="#cite_ref-test_.26_me_1-0">↑</a></span> hi</li>
+<p><span about="#mwt2" class="reference" id="cite_ref-test_.26_me_1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-test_.26_me-1"},"attrs":{"name":"test &amp;amp; me"}}'><a href="#cite_note-test_.26_me-1">[1]</a></span></p>
+<ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-test_.26_me-1" id="cite_note-test_.26_me-1"><span rel="mw:referencedBy"><a href="#cite_ref-test_.26_me_1-0">↑</a></span> <span id="mw-reference-text-cite_note-test_.26_me-1" class="mw-reference-text">hi</span></li>
 </ol>
 !! end
 
@@ -20258,11 +20590,9 @@ a<ref>foo</ref>
 
 <references>
 !! html
-<p>a<span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"foo"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
-
-
+<p>a<span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
 <ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> foo</li></ol>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text">foo</span></li></ol>
 !! end
 
 !! test
@@ -20276,6 +20606,22 @@ foo
 foo<ol class="references" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{}}'></ol>
 !! end
 
+#### ----------------------------------------------------------------
+#### Parsoid-only testing of Parsoid's impl of LST
+#### Not implemented yet, see
+#### https://www.mediawiki.org/wiki/Parsoid/HTML_based_LST
+#### ----------------------------------------------------------------
+
+!!test
+LST Sections: 1. Simple section start and end
+!! wikitext
+<section begin="2011-05-16" />
+<section end="2014-04-10 (MW 1.23wmf22)" />
+!! html/parsoid
+<p><meta typeof="mw:Extension/LabeledSectionTransclusion/begin" content="2011-05-16"/>
+<meta typeof="mw:Extension/LabeledSectionTransclusion/end" content="2014-04-10 (MW 1.23wmf22)"/></p>
+!! end
+
 #--------- Test stripping of empty nodes in template content ----------
 !!test
 Empty LI and TR nodes should be stripped from template content
@@ -20283,11 +20629,11 @@ Empty LI and TR nodes should be stripped from template content
 {{EmptyLITest}}
 {{EmptyTRTest}}
 !!html/parsoid
-<ul typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"EmptyLITest","href":"./Template:EmptyLITest"},"params":{},"i":0}}]}'>
+<ul about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"EmptyLITest","href":"./Template:EmptyLITest"},"params":{},"i":0}}]}'>
 <li>a</li>
 <li>b</li>
 </ul>
-<table typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"EmptyTRTest","href":"./Template:EmptyTRTest"},"params":{},"i":0}}]}'>
+<table about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"EmptyTRTest","href":"./Template:EmptyTRTest"},"params":{},"i":0}}]}'>
 <tbody>
 <tr>
 <td>foo</td>
@@ -20331,7 +20677,7 @@ Empty TR nodes should not be stripped if they have any attributes set
 !!wikitext
 {{EmptyTRWithHTMLAttrTest}}
 !!html/parsoid
-<table typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"EmptyTRWithHTMLAttrTest","href":"./Template:EmptyTRWithHTMLAttrTest"},"params":{},"i":0}}]}'>
+<table about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"EmptyTRWithHTMLAttrTest","href":"./Template:EmptyTRWithHTMLAttrTest"},"params":{},"i":0}}]}'>
 <tr align="center"></tr>
 <tr><td>foo</td></tr>
 <tr align="center"></tr>
@@ -21531,11 +21877,11 @@ parsoid=html2wt,wt2wt
 <i>a'</i> foo <i><a rel="mw:WikiLink" href="Bar" title="Bar">bar</a></i>
 <i>a'</i> foo <b><a rel="mw:WikiLink" href="Bar" title="Bar" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[[bar]]"}},"i":0}}]}'>bar</a></b>
 <a rel="mw:WikiLink" href="Foo" title="Foo">foo</a> x'<i><a href="Bar" rel="mw:WikiLink" title="Bar">bar</a></i>
-'<i>foo</i> <span class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"test"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span>
+'<i>foo</i> <span class="reference" id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span>
 '<i>foo</i> <div title="name">test</div>
 '<i>foo</i> and <br data-parsoid='{"stx":"html","noClose":true}'/> bar
-<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
-<li id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> test</li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt5" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text" data-parsoid="{}">test</span></li>
 </ol>
 !! end
 
@@ -21652,9 +21998,10 @@ foo <ref>''a''
  b</ref>
 <references />
 !! html
-<p>foo <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"html":"&lt;i data-parsoid=&#39;{\"dsr\":[9,14,2,2]}&#39;>a&lt;/i>\n b"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
-<ol class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
-<li id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <i>a</i> b</li>
+<p>foo <span about="#mwt2" class="reference" id="cite_ref-1" rel="dc:references" typeof="mw:Extension/ref" data-mw='{"name":"ref","body":{"id":"mw-reference-text-cite_note-1"},"attrs":{}}'><a href="#cite_note-1">[1]</a></span></p>
+<ol class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1">↑</a></span> <span id="mw-reference-text-cite_note-1" class="mw-reference-text"><i data-parsoid='{"dsr":[9,14,2,2]}'>a</i>
+ b</span></li>
 </ol>
 !! end
 
@@ -21742,12 +22089,14 @@ parsoid
 !! test
 2. other tags
 !! wikitext
-<nowiki><div>foo</div>
-<div style="color:red">foo</div></nowiki>
+* <nowiki><div>foo</div></nowiki>
+* <nowiki><div style="color:red">foo</div></nowiki>
+* <nowiki><td></nowiki>
 !! html
-<p>&lt;div&gt;foo&lt;/div&gt;
-&lt;div style=&quot;color:red&quot;&gt;foo&lt;/div&gt;
-</p>
+<ul><li> &lt;div&gt;foo&lt;/div&gt;</li>
+<li> &lt;div style=&quot;color:red&quot;&gt;foo&lt;/div&gt;</li>
+<li> &lt;td&gt;</li></ul>
+
 !! end
 
 !! test
@@ -21827,18 +22176,6 @@ a>b
 </p>
 !! end
 
-
-# This was a bug in the PHP parser (see bug 17663 and its dups,
-# https://bugzilla.wikimedia.org/show_bug.cgi?id=17663)
-!! test
-Tag names followed by punctuation should not be recognized as tags
-!! wikitext
-<s.ome> text
-!! html
-<p>&lt;s.ome&gt; text
-</p>
-!! end
-
 !! test
 HTML tag with necessary entities in attributes
 !! wikitext
@@ -23073,6 +23410,22 @@ parsoid=html2wt
 [[Foo''bar''baz]]
 !! end
 
+!! test
+Enforce single-line context in the serializer
+!! options
+parsoid=html2wt
+!! html
+<h2>testing
+123</h2>
+
+<ul><li>asd
+sdf</li></ul>
+!! wikitext
+== testing 123 ==
+
+* asd sdf
+!! end
+
 #-----------------------------
 # I/B quote minimization tests
 #-----------------------------
@@ -23356,6 +23709,56 @@ parsoid=html2wt
 <foo />
 !! end
 
+# Note that the <p> wrapping isn't present in PHP parser output
+# The important thing for this test is that P-wrapping doesn't
+# interfere with the <nowiki> protection for leading - in <td>
+# (which isn't necessary for <th>).
+!! test
+T88318: p-wrapped dash in table.
+!! options
+parsoid=html2wt,wt2wt
+!! html/parsoid
+<table><tbody>
+<tr><th><p>-</p></th><th><p>- </p></th></tr>
+<tr><td><p>-</p></td><td><p>- </p></td></tr>
+<tr><td><small>-</small></td><td><br/><p>-</p></td><td><br/>-</td></tr>
+</tbody></table>
+!! wikitext
+{|
+!-
+!- 
+|-
+|<nowiki>-</nowiki>
+|<nowiki>- </nowiki>
+|-
+|<small>-</small>
+|<br>
+-
+|<br>
+-
+|}
+!! html/php+tidy
+<table>
+<tr>
+<th>-</th>
+<th>-</th>
+</tr>
+<tr>
+<td>-</td>
+<td>-</td>
+</tr>
+<tr>
+<td><small>-</small></td>
+<td><br />
+<p>-</p>
+</td>
+<td><br />
+<p>-</p>
+</td>
+</tr>
+</table>
+!! end
+
 # -----------------------------------------------------------------
 # End of section for Parsoid-only html2wt tests for serialization
 # of new content
index c8b3e89..221fc79 100644 (file)
@@ -29,6 +29,7 @@ class ParserTestParserHook {
 
        static function setup( &$parser ) {
                $parser->setHook( 'tag', array( __CLASS__, 'dumpHook' ) );
+               $parser->setHook( 'tåg', array( __CLASS__, 'dumpHook' ) );
                $parser->setHook( 'statictag', array( __CLASS__, 'staticTagHook' ) );
                return true;
        }
index e49c391..0253284 100644 (file)
@@ -430,7 +430,7 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
        protected function insertPage( $pageName, $text = 'Sample page for unit test.' ) {
                $title = Title::newFromText( $pageName, 0 );
 
-               $user = User::newFromName( 'WikiSysop' );
+               $user = User::newFromName( 'UTSysop' );
                $comment = __METHOD__ . ': Sample page for unit test.';
 
                // Avoid memory leak...?
@@ -501,7 +501,7 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                                'UTPageSummary',
                                EDIT_NEW,
                                false,
-                               User::newFromName( 'UTSysop' )
+                               $user
                        );
                }
        }
index 055beb0..deecb31 100644 (file)
@@ -98,10 +98,3 @@ class ResourceLoaderTestModule extends ResourceLoaderModule {
 
 class ResourceLoaderFileModuleTestModule extends ResourceLoaderFileModule {
 }
-
-class ResourceLoaderWikiModuleTestModule extends ResourceLoaderWikiModule {
-       // Override expected via PHPUnit mocks and stubs
-       protected function getPages( ResourceLoaderContext $context ) {
-               return array();
-       }
-}
diff --git a/tests/phpunit/data/helpers/WellProtectedClass.php b/tests/phpunit/data/helpers/WellProtectedClass.php
new file mode 100644 (file)
index 0000000..99c7f64
--- /dev/null
@@ -0,0 +1,21 @@
+<?php
+
+class WellProtectedClass {
+       protected $property;
+
+       public function __construct() {
+               $this->property = 1;
+       }
+
+       protected function incrementPropertyValue() {
+               $this->property++;
+       }
+
+       public function getProperty() {
+               return $this->property;
+       }
+
+       protected function whatSecondArg( $a, $b = false ) {
+               return $b;
+       }
+}
diff --git a/tests/phpunit/data/templates/foobar.mustache b/tests/phpunit/data/templates/foobar.mustache
new file mode 100644 (file)
index 0000000..a042389
--- /dev/null
@@ -0,0 +1 @@
+hello world!
diff --git a/tests/phpunit/data/templates/foobar_args.mustache b/tests/phpunit/data/templates/foobar_args.mustache
new file mode 100644 (file)
index 0000000..cfbe3d0
--- /dev/null
@@ -0,0 +1 @@
+hello {{planet}}!
index 702fce4..15778e4 100644 (file)
@@ -217,7 +217,8 @@ class EditPageTest extends MediaWikiLangTestCase {
                                EditPage::AS_SUCCESS_NEW_ARTICLE,
                                ''
                        ),
-                       array( 'expected registered MediaWiki: page whose default content is empty not being created if empty',
+                       array( 'expected registered MediaWiki: page whose default content is empty'
+                                       . ' not being created if empty',
                                'MediaWiki:Ipb-default-expiry',
                                'UTSysop',
                                '',
@@ -246,7 +247,9 @@ class EditPageTest extends MediaWikiLangTestCase {
         * @dataProvider provideCreatePages
         * @covers EditPage
         */
-       public function testCreatePage( $desc, $pageTitle, $user, $editText, $expectedCode, $expectedText, $ignoreBlank = false ) {
+       public function testCreatePage(
+               $desc, $pageTitle, $user, $editText, $expectedCode, $expectedText, $ignoreBlank = false
+       ) {
                $edit = array( 'wpTextbox1' => $editText );
                if ( $ignoreBlank ) {
                        $edit['wpIgnoreBlankArticle'] = 1;
index 331fb3b..dcafb73 100644 (file)
@@ -691,21 +691,21 @@ class GlobalTest extends MediaWikiTestCase {
        }
 
        /**
-        * @dataProvider provideWfShellMaintenanceCmdList
-        * @covers ::wfShellMaintenanceCmd
+        * @dataProvider provideWfShellWikiCmdList
+        * @covers ::wfShellWikiCmd
         */
-       public function testWfShellMaintenanceCmd( $script, $parameters, $options,
+       public function testWfShellWikiCmd( $script, $parameters, $options,
                $expected, $description
        ) {
                if ( wfIsWindows() ) {
                        // Approximation that's good enough for our purposes just now
                        $expected = str_replace( "'", '"', $expected );
                }
-               $actual = wfShellMaintenanceCmd( $script, $parameters, $options );
+               $actual = wfShellWikiCmd( $script, $parameters, $options );
                $this->assertEquals( $expected, $actual, $description );
        }
 
-       public static function provideWfShellMaintenanceCmdList() {
+       public static function provideWfShellWikiCmdList() {
                global $wgPhpCli;
 
                return array(
diff --git a/tests/phpunit/includes/GlobalFunctions/wfEscapeShellArgTest.php b/tests/phpunit/includes/GlobalFunctions/wfEscapeShellArgTest.php
new file mode 100644 (file)
index 0000000..cb334d2
--- /dev/null
@@ -0,0 +1,43 @@
+<?php
+
+/**
+ * @group GlobalFunctions
+ * @covers ::wfEscapeShellArg
+ */
+class wfEscapeShellArgTest extends MediaWikiTestCase {
+       public function testSingleInput() {
+               if ( wfIsWindows() ) {
+                       $expected = '"blah"';
+               } else {
+                       $expected = "'blah'";
+               }
+
+               $actual = wfEscapeShellArg( 'blah' );
+
+               $this->assertEquals( $expected, $actual );
+       }
+
+       public function testMultipleArgs() {
+               if ( wfIsWindows() ) {
+                       $expected = '"foo" "bar" "baz"';
+               } else {
+                       $expected = "'foo' 'bar' 'baz'";
+               }
+
+               $actual = wfEscapeShellArg( 'foo', 'bar', 'baz' );
+
+               $this->assertEquals( $expected, $actual );
+       }
+
+       public function testMultipleArgsAsArray() {
+               if ( wfIsWindows() ) {
+                       $expected = '"foo" "bar" "baz"';
+               } else {
+                       $expected = "'foo' 'bar' 'baz'";
+               }
+
+               $actual = wfEscapeShellArg( array( 'foo', 'bar', 'baz' ) );
+
+               $this->assertEquals( $expected, $actual );
+       }
+}
index 992581b..0b58536 100644 (file)
@@ -715,7 +715,7 @@ class HtmlTest extends MediaWikiTestCase {
                        'Input wrapper with type and value.'
                );
                $this->assertEquals(
-                       '<input name=testname class=mw-ui-input>',
+                       '<input name=testname>',
                        Html::input( 'testname' ),
                        'Input wrapper with all default values.'
                );
index fbd2c31..8a0dff7 100644 (file)
@@ -138,7 +138,7 @@ class HttpTest extends MediaWikiTestCase {
         * HTTP redirects).
         */
        public function testRelativeRedirections() {
-               $h = MWHttpRequestTester::factory( 'http://oldsite/file.ext' );
+               $h = MWHttpRequestTester::factory( 'http://oldsite/file.ext', array(), __METHOD__ );
 
                # Forge a Location header
                $h->setRespHeaders( 'location', array(
@@ -486,7 +486,7 @@ class HttpTest extends MediaWikiTestCase {
 class MWHttpRequestTester extends MWHttpRequest {
        // function derived from the MWHttpRequest factory function but
        // returns appropriate tester class here
-       public static function factory( $url, $options = null ) {
+       public static function factory( $url, $options = null, $caller = __METHOD__ ) {
                if ( !Http::$httpEngine ) {
                        Http::$httpEngine = function_exists( 'curl_init' ) ? 'curl' : 'php';
                } elseif ( Http::$httpEngine == 'curl' && !function_exists( 'curl_init' ) ) {
@@ -496,7 +496,7 @@ class MWHttpRequestTester extends MWHttpRequest {
 
                switch ( Http::$httpEngine ) {
                        case 'curl':
-                               return new CurlHttpRequestTester( $url, $options );
+                               return new CurlHttpRequestTester( $url, $options, $caller );
                        case 'php':
                                if ( !wfIniGetBool( 'allow_url_fopen' ) ) {
                                        throw new MWException( __METHOD__ .
@@ -504,7 +504,7 @@ class MWHttpRequestTester extends MWHttpRequest {
                                                        . 'If possible, curl should be used instead. See http://php.net/curl.' );
                                }
 
-                               return new PhpHttpRequestTester( $url, $options );
+                               return new PhpHttpRequestTester( $url, $options, $caller );
                        default:
                }
        }
index 4d63ea6..2526fcc 100644 (file)
@@ -203,9 +203,13 @@ mw.loader.implement("test.quux",function($,jQuery){mw.test.baz({token:123});},{"
                        // Load two modules in separate groups
                        array(
                                array( array( 'test.group.foo', 'test.group.bar' ), ResourceLoaderModule::TYPE_COMBINED ),
-                               '<script src="http://127.0.0.1:8080/w/load.php?debug=false&amp;lang=en&amp;modules=test.group.bar&amp;skin=fallback&amp;*"></script>
-<script src="http://127.0.0.1:8080/w/load.php?debug=false&amp;lang=en&amp;modules=test.group.foo&amp;skin=fallback&amp;*"></script>
-',
+                               '<script>if(window.mw){
+document.write("\u003Cscript src=\"http://127.0.0.1:8080/w/load.php?debug=false\u0026amp;lang=en\u0026amp;modules=test.group.bar\u0026amp;skin=fallback\u0026amp;*\"\u003E\u003C/script\u003E");
+}</script>
+<script>if(window.mw){
+document.write("\u003Cscript src=\"http://127.0.0.1:8080/w/load.php?debug=false\u0026amp;lang=en\u0026amp;modules=test.group.foo\u0026amp;skin=fallback\u0026amp;*\"\u003E\u003C/script\u003E");
+}</script>
+'
                        ),
                );
        }
@@ -213,6 +217,11 @@ mw.loader.implement("test.quux",function($,jQuery){mw.test.baz({token:123});},{"
        /**
         * @dataProvider provideMakeResourceLoaderLink
         * @covers OutputPage::makeResourceLoaderLink
+        * @covers ResourceLoader::makeLoaderImplementScript
+        * @covers ResourceLoader::makeModuleResponse
+        * @covers ResourceLoader::makeInlineScript
+        * @covers ResourceLoader::makeLoaderStateScript
+        * @covers ResourceLoader::createLoaderURL
         */
        public function testMakeResourceLoaderLink( $args, $expectedHtml ) {
                $this->setMwGlobals( array(
index e737056..d63541b 100644 (file)
@@ -5,6 +5,28 @@
  */
 class PrefixSearchTest extends MediaWikiLangTestCase {
 
+       public function addDBData() {
+               $this->insertPage( 'Sandbox' );
+               $this->insertPage( 'Bar' );
+               $this->insertPage( 'Example' );
+               $this->insertPage( 'Example Bar' );
+               $this->insertPage( 'Example Foo' );
+               $this->insertPage( 'Example Foo/Bar' );
+               $this->insertPage( 'Example/Baz' );
+               $this->insertPage( 'Redirect test', '#REDIRECT [[Redirect Test]]' );
+               $this->insertPage( 'Redirect Test' );
+               $this->insertPage( 'Redirect Test Worse Result' );
+               $this->insertPage( 'Redirect test2', '#REDIRECT [[Redirect Test2]]' );
+               $this->insertPage( 'Redirect TEST2', '#REDIRECT [[Redirect Test2]]' );
+               $this->insertPage( 'Redirect Test2' );
+               $this->insertPage( 'Redirect Test2 Worse Result' );
+
+               $this->insertPage( 'Talk:Sandbox' );
+               $this->insertPage( 'Talk:Example' );
+
+               $this->insertPage( 'User:Example' );
+       }
+
        protected function setUp() {
                parent::setUp();
 
@@ -12,8 +34,6 @@ class PrefixSearchTest extends MediaWikiLangTestCase {
                        $this->markTestSkipped( 'Main namespace does not support wikitext.' );
                }
 
-               $this->insertPages();
-
                // Avoid special pages from extensions interferring with the tests
                $this->setMwGlobals( 'wgSpecialPages', array() );
        }
@@ -33,28 +53,6 @@ class PrefixSearchTest extends MediaWikiLangTestCase {
                }
        }
 
-       public function insertPages() {
-               $this->insertPage( 'Sandbox' );
-               $this->insertPage( 'Bar' );
-               $this->insertPage( 'Example' );
-               $this->insertPage( 'Example Bar' );
-               $this->insertPage( 'Example Foo' );
-               $this->insertPage( 'Example Foo/Bar' );
-               $this->insertPage( 'Example/Baz' );
-               $this->insertPage( 'Redirect test', '#REDIRECT [[Redirect Test]]' );
-               $this->insertPage( 'Redirect Test' );
-               $this->insertPage( 'Redirect Test Worse Result' );
-               $this->insertPage( 'Redirect test2', '#REDIRECT [[Redirect Test2]]' );
-               $this->insertPage( 'Redirect TEST2', '#REDIRECT [[Redirect Test2]]' );
-               $this->insertPage( 'Redirect Test2' );
-               $this->insertPage( 'Redirect Test2 Worse Result' );
-
-               $this->insertPage( 'Talk:Sandbox' );
-               $this->insertPage( 'Talk:Example' );
-
-               $this->insertPage( 'User:Example' );
-       }
-
        public static function provideSearch() {
                return array(
                        array( array(
index ccfccd1..81854ff 100644 (file)
@@ -4,27 +4,60 @@
  * @group Templates
  */
 class TemplateParserTest extends MediaWikiTestCase {
-       /**
-        * @covers TemplateParser::compile
-        */
-       public function testTemplateCompilation() {
-               $this->assertRegExp(
-                       '/^<\?php return function/',
-                       TemplateParser::compile( "test" ),
-                       'compile a simple mustache template'
-               );
+
+       protected $templateDir;
+
+       protected function setUp() {
+               parent::setUp();
+
+               $this->setMwGlobals( array(
+                       'wgSecretKey' => 'foo',
+                       'wgMemc' => new EmptyBagOStuff(),
+               ) );
+
+               $this->templateDir = dirname( __DIR__ ) . '/data/templates/';
        }
 
        /**
-        * @covers TemplateParser::compile
+        * @dataProvider provideProcessTemplate
+        * @covers TemplateParser::processTemplate
+        * @covers TemplateParser::getTemplate
+        * @covers TemplateParser::getTemplateFilename
         */
-       public function testTemplateCompilationWithVariable() {
-               $this->assertRegExp(
-                       '/return \'\'\.htmlentities\(\(string\)\(\(isset\(\$in\[\'value\'\]\) && '
-                               . 'is_array\(\$in\)\) \? \$in\[\'value\'\] : null\), ENT_QUOTES, '
-                               . '\'UTF-8\'\)\.\'\';/',
-                       TemplateParser::compile( "{{value}}" ),
-                       'compile a mustache template with an escaped variable'
+       public function testProcessTemplate( $name, $args, $result, $exception = false ) {
+               if ( $exception ) {
+                       $this->setExpectedException( $exception );
+               }
+               $tp = new TemplateParser( $this->templateDir );
+               $this->assertEquals( $result, $tp->processTemplate( $name, $args ) );
+       }
+
+       public static function provideProcessTemplate() {
+               return array(
+                       array(
+                               'foobar',
+                               array(),
+                               "hello world!\n"
+                       ),
+                       array(
+                               'foobar_args',
+                               array(
+                                       'planet' => 'world',
+                               ),
+                               "hello world!\n",
+                       ),
+                       array(
+                               '../foobar',
+                               array(),
+                               false,
+                               'UnexpectedValueException'
+                       ),
+                       array(
+                               'nonexistenttemplate',
+                               array(),
+                               false,
+                               'RuntimeException',
+                       )
                );
        }
 }
diff --git a/tests/phpunit/includes/TestingAccessWrapper.php b/tests/phpunit/includes/TestingAccessWrapper.php
new file mode 100644 (file)
index 0000000..84c0f9b
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Circumvent access restrictions on object internals
+ *
+ * This can be helpful for writing tests that can probe object internals,
+ * without having to modify the class under test to accomodate.
+ *
+ * Wrap an object with private methods as follows:
+ *    $title = TestingAccessWrapper::newFromObject( Title::newFromDBkey( $key ) );
+ *
+ * You can access private and protected instance methods and variables:
+ *    $formatter = $title->getTitleFormatter();
+ *
+ * TODO:
+ * - Provide access to static methods and properties.
+ * - Organize other helper classes in tests/testHelpers.inc into a directory.
+ */
+class TestingAccessWrapper {
+       public $object;
+
+       /**
+        * Return the same object, without access restrictions.
+        */
+       public static function newFromObject( $object ) {
+               $wrapper = new TestingAccessWrapper();
+               $wrapper->object = $object;
+               return $wrapper;
+       }
+
+       public function __call( $method, $args ) {
+               $classReflection = new ReflectionClass( $this->object );
+               $methodReflection = $classReflection->getMethod( $method );
+               $methodReflection->setAccessible( true );
+               return $methodReflection->invokeArgs( $this->object, $args );
+       }
+
+       public function __set( $name, $value ) {
+               $classReflection = new ReflectionClass( $this->object );
+               $propertyReflection = $classReflection->getProperty( $name );
+               $propertyReflection->setAccessible( true );
+               $propertyReflection->setValue( $this->object, $value );
+       }
+
+       public function __get( $name ) {
+               $classReflection = new ReflectionClass( $this->object );
+               $propertyReflection = $classReflection->getProperty( $name );
+               $propertyReflection->setAccessible( true );
+               return $propertyReflection->getValue( $this->object );
+       }
+}
diff --git a/tests/phpunit/includes/TestingAccessWrapperTest.php b/tests/phpunit/includes/TestingAccessWrapperTest.php
new file mode 100644 (file)
index 0000000..7e5b91a
--- /dev/null
@@ -0,0 +1,34 @@
+<?php
+
+class TestingAccessWrapperTest extends MediaWikiTestCase {
+       protected $raw;
+       protected $wrapped;
+
+       function setUp() {
+               parent::setUp();
+
+               require_once __DIR__ . '/../data/helpers/WellProtectedClass.php';
+               $this->raw = new WellProtectedClass();
+               $this->wrapped = TestingAccessWrapper::newFromObject( $this->raw );
+       }
+
+       function testGetProperty() {
+               $this->assertSame( 1, $this->wrapped->property );
+       }
+
+       function testSetProperty() {
+               $this->wrapped->property = 10;
+               $this->assertSame( 10, $this->wrapped->property );
+               $this->assertSame( 10, $this->raw->getProperty() );
+       }
+
+       function testCallMethod() {
+               $this->wrapped->incrementPropertyValue();
+               $this->assertSame( 2, $this->wrapped->property );
+               $this->assertSame( 2, $this->raw->getProperty() );
+       }
+
+       function testCallMethodTwoArgs() {
+               $this->assertSame( 'two', $this->wrapped->whatSecondArg( 'one', 'two' ) );
+       }
+}
index c3cb193..860529e 100644 (file)
@@ -332,8 +332,8 @@ class UserTest extends MediaWikiTestCase {
        public function testGetCanonicalName( $name, $expectedArray, $msg ) {
                foreach ( $expectedArray as $validate => $expected ) {
                        $this->assertEquals(
-                               User::getCanonicalName( $name, $validate === 'false' ? false : $validate ),
                                $expected,
+                               User::getCanonicalName( $name, $validate === 'false' ? false : $validate ),
                                $msg . ' (' . $validate . ')'
                        );
                }
@@ -341,7 +341,7 @@ class UserTest extends MediaWikiTestCase {
 
        public static function provideGetCanonicalName() {
                return array(
-                       array( ' trailing space ', array( 'creatable' => 'Trailing space' ), 'Trailing spaces' ),
+                       array( ' Trailing space ', array( 'creatable' => 'Trailing space' ), 'Trailing spaces' ),
                        // @todo FIXME: Maybe the creatable name should be 'Talk:Username' or false to reject?
                        array( 'Talk:Username', array( 'creatable' => 'Username', 'usable' => 'Username',
                                'valid' => 'Username', 'false' => 'Talk:Username' ), 'Namespace prefix' ),
index e655881..382e3d8 100644 (file)
@@ -81,7 +81,7 @@ class XmlTest extends MediaWikiTestCase {
         */
        public function testElementInputCanHaveAValueOfZero() {
                $this->assertEquals(
-                       '<input name="name" value="0" class="mw-ui-input" />',
+                       '<input name="name" value="0" />',
                        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" class="mw-ui-input" /> ' .
+                               '<input id="year" maxlength="4" size="7" type="number" value="2011" name="year" /> ' .
                                '<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" class="mw-ui-input" /> ' .
+                               '<input id="year" maxlength="4" size="7" type="number" value="2011" name="year" /> ' .
                                '<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" class="mw-ui-input" /> ' .
+                               '<input id="year" maxlength="4" size="7" type="number" name="year" /> ' .
                                '<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" class="mw-ui-input"></textarea>',
+                       '<textarea name="name" id="name" cols="40" rows="5"></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" class="mw-ui-input">&lt;txt&gt;</textarea>',
+                       '<textarea name="name" id="name" cols="20" rows="10">&lt;txt&gt;</textarea>',
                        Xml::textarea( 'name', '<txt>', 20, 10 ),
                        'textarea() with custom attribs'
                );
index 67a75f3..88a99e9 100644 (file)
@@ -123,7 +123,8 @@ class ApiLoginTest extends ApiTestCase {
                                        "lgname" => $user->username,
                                        "lgpassword" => $user->password
                                )
-                       )
+                       ),
+                       __METHOD__
                );
                $req->execute();
 
index 1220bb4..dabf72e 100644 (file)
@@ -88,9 +88,13 @@ STR;
        /**
         * Checks that the request's result matches the expected results.
         * @param array $values Array is a two element array( request, expected_results )
-        * @throws Exception
+        * @param array $session
+        * @param bool $appendModule
+        * @param User $user
         */
-       protected function check( $values ) {
+       protected function check( $values, array $session = null,
+               $appendModule = false, User $user = null
+       ) {
                list( $req, $exp ) = $this->validateRequestExpectedPair( $values );
                if ( !array_key_exists( 'action', $req ) ) {
                        $req['action'] = 'query';
@@ -103,7 +107,7 @@ STR;
                                $val = implode( '|', array_unique( $val ) );
                        }
                }
-               $result = $this->doApiRequest( $req );
+               $result = $this->doApiRequest( $req, $session, $appendModule, $user );
                $this->assertResult( array( 'query' => $exp ), $result[0], $req );
        }
 
@@ -116,9 +120,16 @@ STR;
                        if ( is_array( $message ) ) {
                                $message = http_build_query( $message );
                        }
+
+                       // FIXME: once we migrate to phpunit 4.1+, hardcode ComparisonFailure exception use
+                       $compEx = 'SebastianBergmann\Comparator\ComparisonFailure';
+                       if ( !class_exists( $compEx ) ) {
+                               $compEx = 'PHPUnit_Framework_ComparisonFailure';
+                       }
+
                        throw new PHPUnit_Framework_ExpectationFailedException(
                                $e->getMessage() . "\nRequest: $message",
-                               new PHPUnit_Framework_ComparisonFailure(
+                               new $compEx(
                                        $exp,
                                        $result,
                                        print_r( $exp, true ),
index e00a45a..b3cb7b5 100644 (file)
@@ -48,6 +48,8 @@ class RecentChangeTest extends MediaWikiTestCase {
         * - protect/unprotect
         * - upload/upload
         * - merge/merge
+        * - import/upload
+        * - import/interwiki
         *
         * As well as the following Auto Edit Summaries:
         * - blank
@@ -265,6 +267,29 @@ class RecentChangeTest extends MediaWikiTestCase {
                );
        }
 
+       /**
+        * @covers LogFormatter::getIRCActionText
+        */
+       public function testIrcMsgForLogTypeImport() {
+               $sep = $this->context->msg( 'colon-separator' )->text();
+
+               # import/upload
+               $this->assertIRCComment(
+                       $this->context->msg( 'import-logentry-upload', 'SomeTitle' )->plain() . $sep . $this->user_comment,
+                       'import', 'upload',
+                       array(),
+                       $this->user_comment
+               );
+
+               # import/interwiki
+               $this->assertIRCComment(
+                       $this->context->msg( 'import-logentry-interwiki', 'SomeTitle' )->plain() . $sep . $this->user_comment,
+                       'import', 'interwiki',
+                       array(),
+                       $this->user_comment
+               );
+       }
+
        /**
         * @todo Emulate these edits somehow and extract
         * raw edit summary from RecentChange object
index 1a90d6e..988a59e 100644 (file)
@@ -2,11 +2,6 @@
 
 /**
  * @group ContentHandler
- * @group Database
- *
- * @note Declare that we are using the database, because otherwise we'll fail in
- * the "databaseless" test run. This is because the LinkHolderArray used by the
- * parser needs database access.
  */
 class ContentHandlerTest extends MediaWikiTestCase {
 
@@ -36,6 +31,8 @@ class ContentHandlerTest extends MediaWikiTestCase {
                // Reset namespace cache
                MWNamespace::getCanonicalNamespaces( true );
                $wgContLang->resetNamespaces();
+               // And LinkCache
+               LinkCache::destroySingleton();
        }
 
        protected function tearDown() {
@@ -44,6 +41,8 @@ class ContentHandlerTest extends MediaWikiTestCase {
                // Reset namespace cache
                MWNamespace::getCanonicalNamespaces( true );
                $wgContLang->resetNamespaces();
+               // And LinkCache
+               LinkCache::destroySingleton();
 
                parent::tearDown();
        }
@@ -83,6 +82,7 @@ class ContentHandlerTest extends MediaWikiTestCase {
         */
        public function testGetForTitle( $title, $expectedContentModel ) {
                $title = Title::newFromText( $title );
+               LinkCache::singleton()->addBadLinkObj( $title );
                $handler = ContentHandler::getForTitle( $title );
                $this->assertEquals( $expectedContentModel, $handler->getModelID() );
        }
@@ -139,6 +139,7 @@ class ContentHandlerTest extends MediaWikiTestCase {
        public function testGetPageLanguage( $title, $expected ) {
                if ( is_string( $title ) ) {
                        $title = Title::newFromText( $title );
+                       LinkCache::singleton()->addBadLinkObj( $title );
                }
 
                $expected = wfGetLangObj( $expected );
@@ -292,7 +293,7 @@ class ContentHandlerTest extends MediaWikiTestCase {
                $expectedModelId, $expectedNativeData, $shouldFail
        ) {
                $title = Title::newFromText( $title );
-
+               LinkCache::singleton()->addBadLinkObj( $title );
                try {
                        $content = ContentHandler::makeContent( $data, $title, $modelId, $format );
 
index d32c1a6..645baf1 100644 (file)
@@ -1,10 +1,12 @@
 <?php
 
-class MockDatabaseSqlite extends DatabaseSqliteStandalone {
+class MockDatabaseSqlite extends DatabaseSqlite {
        private $lastQuery;
 
-       function __construct() {
-               parent::__construct( ':memory:' );
+       public static function newInstance( array $p = array() ) {
+               $p['dbFilePath'] = ':memory:';
+
+               return new self( $p );
        }
 
        function query( $sql, $fname = '', $tempIgnore = false ) {
@@ -36,7 +38,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
                if ( !Sqlite::isPresent() ) {
                        $this->markTestSkipped( 'No SQLite support detected' );
                }
-               $this->db = new MockDatabaseSqlite();
+               $this->db = MockDatabaseSqlite::newInstance();
                if ( version_compare( $this->db->getServerVersion(), '3.6.0', '<' ) ) {
                        $this->markTestSkipped( "SQLite at least 3.6 required, {$this->db->getServerVersion()} found" );
                }
@@ -89,7 +91,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
         */
        public function testAddQuotes( $value, $expected ) {
                // check quoting
-               $db = new DatabaseSqliteStandalone( ':memory:' );
+               $db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
                $this->assertEquals( $expected, $db->addQuotes( $value ), 'string not quoted as expected' );
 
                // ok, quoting works as expected, now try a round trip.
@@ -172,7 +174,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
         */
        public function testTableName() {
                // @todo Moar!
-               $db = new DatabaseSqliteStandalone( ':memory:' );
+               $db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
                $this->assertEquals( 'foo', $db->tableName( 'foo' ) );
                $this->assertEquals( 'sqlite_master', $db->tableName( 'sqlite_master' ) );
                $db->tablePrefix( 'foo' );
@@ -184,7 +186,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
         * @covers DatabaseSqlite::duplicateTableStructure
         */
        public function testDuplicateTableStructure() {
-               $db = new DatabaseSqliteStandalone( ':memory:' );
+               $db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
                $db->query( 'CREATE TABLE foo(foo, barfoo)' );
 
                $db->duplicateTableStructure( 'foo', 'bar' );
@@ -208,7 +210,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
         * @covers DatabaseSqlite::duplicateTableStructure
         */
        public function testDuplicateTableStructureVirtual() {
-               $db = new DatabaseSqliteStandalone( ':memory:' );
+               $db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
                if ( $db->getFulltextSearchModule() != 'FTS3' ) {
                        $this->markTestSkipped( 'FTS3 not supported, cannot create virtual tables' );
                }
@@ -231,7 +233,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
         * @covers DatabaseSqlite::deleteJoin
         */
        public function testDeleteJoin() {
-               $db = new DatabaseSqliteStandalone( ':memory:' );
+               $db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
                $db->query( 'CREATE TABLE a (a_1)', __METHOD__ );
                $db->query( 'CREATE TABLE b (b_1, b_2)', __METHOD__ );
                $db->insert( 'a', array(
@@ -289,7 +291,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
                        'user_newtalk.user_last_timestamp', // r84185
                );
 
-               $currentDB = new DatabaseSqliteStandalone( ':memory:' );
+               $currentDB = DatabaseSqlite::newStandaloneInstance( ':memory:' );
                $currentDB->sourceFile( "$IP/maintenance/tables.sql" );
 
                $profileToDb = false;
@@ -357,7 +359,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
         * @covers DatabaseSqlite::insertId
         */
        public function testInsertIdType() {
-               $db = new DatabaseSqliteStandalone( ':memory:' );
+               $db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
 
                $databaseCreation = $db->query( 'CREATE TABLE a ( a_1 )', __METHOD__ );
                $this->assertInstanceOf( 'ResultWrapper', $databaseCreation, "Database creation" );
@@ -377,7 +379,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
                }
 
                global $IP;
-               $db = new DatabaseSqliteStandalone( ':memory:' );
+               $db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
                $db->sourceFile( "$IP/tests/phpunit/data/db/sqlite/tables-$version.sql" );
                $updater = DatabaseUpdater::newForDB( $db, false, $maint );
                $updater->doUpdates( array( 'core' ) );
@@ -440,7 +442,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
 
        public function testCaseInsensitiveLike() {
                // TODO: Test this for all databases
-               $db = new DatabaseSqliteStandalone( ':memory:' );
+               $db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
                $res = $db->query( 'SELECT "a" LIKE "A" AS a' );
                $row = $res->fetchRow();
                $this->assertFalse( (bool)$row['a'] );
@@ -450,7 +452,7 @@ class DatabaseSqliteTest extends MediaWikiTestCase {
         * @covers DatabaseSqlite::numFields
         */
        public function testNumFields() {
-               $db = new DatabaseSqliteStandalone( ':memory:' );
+               $db = DatabaseSqlite::newStandaloneInstance( ':memory:' );
 
                $databaseCreation = $db->query( 'CREATE TABLE a ( a_1 )', __METHOD__ );
                $this->assertInstanceOf( 'ResultWrapper', $databaseCreation, "Failed to create table a" );
index b40d2d2..bfca75a 100644 (file)
@@ -1478,7 +1478,7 @@ class FileBackendTest extends MediaWikiTestCase {
                $url = $this->backend->getFileHttpUrl( array( 'src' => $source ) );
 
                if ( $url !== null ) { // supported
-                       $data = Http::request( "GET", $url );
+                       $data = Http::request( "GET", $url, array(), __METHOD__ );
                        $this->assertEquals( $content, $data,
                                "HTTP GET of URL has right contents ($backendName)." );
                }
index 3ce3e1f..ccd7f96 100644 (file)
@@ -160,9 +160,6 @@ class NewParserTest extends MediaWikiTestCase {
                $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;
@@ -419,6 +416,7 @@ class NewParserTest extends MediaWikiTestCase {
                        'wgMathDirectory' => $uploadDir . '/math',
                        'wgDefaultLanguageVariant' => $variant,
                        'wgLinkHolderBatchSize' => $linkHolderBatchSize,
+                       'wgUseTidy' => isset( $opts['tidy'] ),
                );
 
                if ( $config ) {
@@ -727,12 +725,21 @@ class NewParserTest extends MediaWikiTestCase {
                                        . "Current configuration is:\n\$wgTexvc = '$wgTexvc'" );
                        }
                }
+
                if ( isset( $opts['djvu'] ) ) {
                        if ( !$this->djVuSupport->isEnabled() ) {
                                $this->markTestSkipped( "SKIPPED: djvu binaries do not exist or are not executable.\n" );
                        }
                }
 
+               if ( isset( $opts['tidy'] ) ) {
+                       if ( !$this->tidySupport->isEnabled() ) {
+                               $this->markTestSkipped( "SKIPPED: tidy extension is not installed.\n" );
+                       } else {
+                               $options->setTidy( true );
+                       }
+               }
+
                if ( isset( $opts['pst'] ) ) {
                        $out = $parser->preSaveTransform( $input, $title, $user, $options );
                } elseif ( isset( $opts['msg'] ) ) {
@@ -753,12 +760,7 @@ class NewParserTest extends MediaWikiTestCase {
                        $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 );
-                               }
+                               $out = preg_replace( '/\s+$/', '', $out );
                        }
 
                        if ( isset( $opts['showtitle'] ) ) {
index 9afc54d..122995a 100644 (file)
@@ -18,7 +18,7 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
                );
        }
 
-       public static function getModules() {
+       private static function getModules() {
                $base = array(
                        'localBasePath' => realpath( dirname( __FILE__ ) ),
                );
@@ -45,10 +45,16 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
                                        'templates/template_awesome.handlebars',
                                ),
                        ),
+
+                       'aliasFooFromBar' => $base + array(
+                               'templates' => array(
+                                       'foo.foo' => 'templates/template.bar',
+                               ),
+                       ),
                );
        }
 
-       public static function providerGetTemplates() {
+       public static function providerTemplateDependencies() {
                $modules = self::getModules();
 
                return array(
@@ -57,39 +63,42 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
                                array(),
                        ),
                        array(
-                               $modules['templateModuleHandlebars'],
+                               $modules['htmlTemplateModule'],
                                array(
-                                       'templates/template_awesome.handlebars' => "wow\n",
+                                       'mediawiki.template',
                                ),
                        ),
                        array(
-                               $modules['htmlTemplateModule'],
+                               $modules['templateModuleHandlebars'],
                                array(
-                                       'templates/template.html' => "<strong>hello</strong>\n",
-                                       'templates/template2.html' => "<div>goodbye</div>\n",
+                                       'mediawiki.template',
+                                       'mediawiki.template.handlebars',
                                ),
                        ),
                        array(
-                               $modules['aliasedHtmlTemplateModule'],
+                               $modules['aliasFooFromBar'],
                                array(
-                                       'foo.html' => "<strong>hello</strong>\n",
-                                       'bar.html' => "<div>goodbye</div>\n",
+                                       'mediawiki.template',
+                                       'mediawiki.template.foo',
                                ),
                        ),
                );
        }
 
-       public static function providerGetModifiedTime() {
-               $modules = self::getModules();
-
-               return array(
-                       // Check the default value when no templates present in module is 1
-                       array( $modules['noTemplateModule'], 1 ),
-               );
+       /**
+        * @dataProvider providerTemplateDependencies
+        * @covers ResourceLoaderFileModule::__construct
+        * @covers ResourceLoaderFileModule::getDependencies
+        */
+       public function testTemplateDependencies( $module, $expected ) {
+               $rl = new ResourceLoaderFileModule( $module );
+               $this->assertEquals( $rl->getDependencies(), $expected );
        }
 
        /**
+        * @covers ResourceLoaderFileModule::getAllStyleFiles
         * @covers ResourceLoaderFileModule::getAllSkinStyleFiles
+        * @covers ResourceLoaderFileModule::getSkinStyleFiles
         */
        public function testGetAllSkinStyleFiles() {
                $baseParams = array(
@@ -132,6 +141,81 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
                );
        }
 
+       /**
+        * Strip @noflip annotations from CSS code.
+        * @param string $css
+        * @return string
+        */
+       private static function stripNoflip( $css ) {
+               return str_replace( '/*@noflip*/ ', '', $css );
+       }
+
+       /**
+        * What happens when you mix @embed and @noflip?
+        * This really is an integration test, but oh well.
+        *
+        * @covers ResourceLoaderFileModule::getStyles
+        * @covers ResourceLoaderFileModule::getStyleFiles
+        */
+       public function testMixedCssAnnotations(  ) {
+               $basePath = __DIR__ . '/../../data/css';
+               $testModule = new ResourceLoaderFileModule( array(
+                       'localBasePath' => $basePath,
+                       'styles' => array( 'test.css' ),
+               ) );
+               $expectedModule = new ResourceLoaderFileModule( array(
+                       'localBasePath' => $basePath,
+                       'styles' => array( 'expected.css' ),
+               ) );
+
+               $contextLtr = $this->getResourceLoaderContext( 'en', 'ltr' );
+               $contextRtl = $this->getResourceLoaderContext( 'he', 'rtl' );
+
+               // Since we want to compare the effect of @noflip+@embed against the effect of just @embed, and
+               // the @noflip annotations are always preserved, we need to strip them first.
+               $this->assertEquals(
+                       $expectedModule->getStyles( $contextLtr ),
+                       self::stripNoflip( $testModule->getStyles( $contextLtr ) ),
+                       "/*@noflip*/ with /*@embed*/ gives correct results in LTR mode"
+               );
+               $this->assertEquals(
+                       $expectedModule->getStyles( $contextLtr ),
+                       self::stripNoflip( $testModule->getStyles( $contextRtl ) ),
+                       "/*@noflip*/ with /*@embed*/ gives correct results in RTL mode"
+               );
+       }
+
+       public static function providerGetTemplates() {
+               $modules = self::getModules();
+
+               return array(
+                       array(
+                               $modules['noTemplateModule'],
+                               array(),
+                       ),
+                       array(
+                               $modules['templateModuleHandlebars'],
+                               array(
+                                       'templates/template_awesome.handlebars' => "wow\n",
+                               ),
+                       ),
+                       array(
+                               $modules['htmlTemplateModule'],
+                               array(
+                                       'templates/template.html' => "<strong>hello</strong>\n",
+                                       'templates/template2.html' => "<div>goodbye</div>\n",
+                               ),
+                       ),
+                       array(
+                               $modules['aliasedHtmlTemplateModule'],
+                               array(
+                                       'foo.html' => "<strong>hello</strong>\n",
+                                       'bar.html' => "<div>goodbye</div>\n",
+                               ),
+                       ),
+               );
+       }
+
        /**
         * @dataProvider providerGetTemplates
         * @covers ResourceLoaderFileModule::getTemplates
@@ -142,6 +226,15 @@ class ResourceLoaderFileModuleTest extends ResourceLoaderTestCase {
                $this->assertEquals( $rl->getTemplates(), $expected );
        }
 
+       public static function providerGetModifiedTime() {
+               $modules = self::getModules();
+
+               return array(
+                       // Check the default value when no templates present in module is 1
+                       array( $modules['noTemplateModule'], 1 ),
+               );
+       }
+
        /**
         * @dataProvider providerGetModifiedTime
         * @covers ResourceLoaderFileModule::getModifiedTime
index 4fc7378..e43db78 100644 (file)
@@ -5,8 +5,6 @@ class ResourceLoaderTest extends ResourceLoaderTestCase {
        protected function setUp() {
                parent::setUp();
 
-               // $wgResourceLoaderLESSFunctions, $wgResourceLoaderLESSImportPaths; $wgResourceLoaderLESSVars;
-
                $this->setMwGlobals( array(
                        'wgResourceLoaderLESSFunctions' => array(
                                'test-sum' => function ( $frame, $less ) {
@@ -28,15 +26,12 @@ class ResourceLoaderTest extends ResourceLoaderTestCase {
                ) );
        }
 
-       /* Provider Methods */
        public static function provideValidModules() {
                return array(
                        array( 'TEST.validModule1', new ResourceLoaderTestModule() ),
                );
        }
 
-       /* Test Methods */
-
        /**
         * Ensures that the ResourceLoaderRegisterModules hook is called when a new
         * ResourceLoader object is constructed.
@@ -85,6 +80,7 @@ class ResourceLoaderTest extends ResourceLoaderTestCase {
                        'localBasePath' => $basePath,
                        'styles' => array( 'styles.less' ),
                ) );
+               $module->setName( 'test.less' );
                $styles = $module->getStyles( $context );
                $this->assertStringEqualsFile( $basePath . '/styles.css', $styles['all'] );
        }
@@ -94,42 +90,10 @@ class ResourceLoaderTest extends ResourceLoaderTestCase {
         * @param string $css
         * @return string
         */
-       private function stripNoflip( $css ) {
+       private static function stripNoflip( $css ) {
                return str_replace( '/*@noflip*/ ', '', $css );
        }
 
-       /**
-        * What happens when you mix @embed and @noflip?
-        * This really is an integration test, but oh well.
-        */
-       public function testMixedCssAnnotations(  ) {
-               $basePath = __DIR__ . '/../../data/css';
-               $testModule = new ResourceLoaderFileModule( array(
-                       'localBasePath' => $basePath,
-                       'styles' => array( 'test.css' ),
-               ) );
-               $expectedModule = new ResourceLoaderFileModule( array(
-                       'localBasePath' => $basePath,
-                       'styles' => array( 'expected.css' ),
-               ) );
-
-               $contextLtr = $this->getResourceLoaderContext( 'en', 'ltr' );
-               $contextRtl = $this->getResourceLoaderContext( 'he', 'rtl' );
-
-               // Since we want to compare the effect of @noflip+@embed against the effect of just @embed, and
-               // the @noflip annotations are always preserved, we need to strip them first.
-               $this->assertEquals(
-                       $expectedModule->getStyles( $contextLtr ),
-                       $this->stripNoflip( $testModule->getStyles( $contextLtr ) ),
-                       "/*@noflip*/ with /*@embed*/ gives correct results in LTR mode"
-               );
-               $this->assertEquals(
-                       $expectedModule->getStyles( $contextLtr ),
-                       $this->stripNoflip( $testModule->getStyles( $contextRtl ) ),
-                       "/*@noflip*/ with /*@embed*/ gives correct results in RTL mode"
-               );
-       }
-
        /**
         * @dataProvider providePackedModules
         * @covers ResourceLoader::makePackedModulesString
@@ -191,6 +155,7 @@ class ResourceLoaderTest extends ResourceLoaderTestCase {
        /**
         * @dataProvider provideAddSource
         * @covers ResourceLoader::addSource
+        * @covers ResourceLoader::getSources
         */
        public function testAddSource( $name, $info, $expected ) {
                $rl = new ResourceLoader;
@@ -240,4 +205,14 @@ class ResourceLoaderTest extends ResourceLoaderTestCase {
                        $this->assertTrue( true );
                }
        }
+
+       /**
+        * @covers ResourceLoader::isModuleRegistered
+        */
+       public function testIsModuleRegistered() {
+               $rl = new ResourceLoader();
+               $rl->register( 'test.module', new ResourceLoaderTestModule() );
+               $this->assertTrue( $rl->isModuleRegistered( 'test.module' ) );
+               $this->assertFalse( $rl->isModuleRegistered( 'test.modulenotregistered' ) );
+       }
 }
index 9dc1805..93a3ebb 100644 (file)
@@ -2,12 +2,94 @@
 
 class ResourceLoaderWikiModuleTest extends ResourceLoaderTestCase {
 
+       /**
+        * @covers ResourceLoaderWikiModule::__construct
+        * @dataProvider provideConstructor
+        */
+       public function testConstructor( $params ) {
+               $module = new ResourceLoaderWikiModule( $params );
+               $this->assertInstanceOf( 'ResourceLoaderWikiModule', $module );
+       }
+
+       public static function provideConstructor() {
+               return array(
+                       // Nothing
+                       array( null ),
+                       array( array() ),
+                       // Unrecognized settings
+                       array( array( 'foo' => 'baz' ) ),
+                       // Real settings
+                       array( array( 'scripts' => array( 'MediaWiki:Common.js' ) ) ),
+               );
+       }
+
+       /**
+        * @dataProvider provideGetPages
+        * @covers ResourceLoaderWikiModule::getPages
+        */
+       public function testGetPages( $params, Config $config, $expected ) {
+               $module = new ResourceLoaderWikiModule( $params );
+               $module->setConfig( $config );
+
+               // Use getDefinitionSummary because getPages is protected
+               $summary = $module->getDefinitionSummary( ResourceLoaderContext::newDummyContext() );
+               $this->assertEquals(
+                       $expected,
+                       $summary['pages']
+               );
+       }
+
+       public static function provideGetPages() {
+               $settings = array(
+                       'UseSiteJs' => true,
+                       'UseSiteCss' => true,
+               );
+
+               $params = array(
+                       'styles' => array( 'MediaWiki:Common.css' ),
+                       'scripts' => array( 'MediaWiki:Common.js' ),
+               );
+
+               return array(
+                       array( array(), new HashConfig( $settings ), array() ),
+                       array( $params, new HashConfig( $settings ), array(
+                               'MediaWiki:Common.js' => array( 'type' => 'script' ),
+                               'MediaWiki:Common.css' => array( 'type' => 'style' )
+                       ) ),
+                       array( $params, new HashConfig( array( 'UseSiteCss' => false ) + $settings ), array(
+                               'MediaWiki:Common.js' => array( 'type' => 'script' ),
+                       ) ),
+                       array( $params, new HashConfig( array( 'UseSiteJs' => false ) + $settings ), array(
+                               'MediaWiki:Common.css' => array( 'type' => 'style' ),
+                       ) ),
+                       array( $params, new HashConfig( array( 'UseSiteJs' => false, 'UseSiteCss' => false ) ), array() ),
+               );
+       }
+
+       /**
+        * @covers ResourceLoaderWikiModule::getGroup
+        * @dataProvider provideGetGroup
+        */
+       public function testGetGroup( $params, $expected ) {
+               $module = new ResourceLoaderWikiModule( $params );
+               $this->assertEquals( $expected, $module->getGroup() );
+       }
+
+       public static function provideGetGroup() {
+               return array(
+                       // No group specified
+                       array( array(), null ),
+                       // A random group
+                       array( array( 'group' => 'foobar' ), 'foobar' ),
+               );
+       }
+
        /**
         * @covers ResourceLoaderWikiModule::isKnownEmpty
         * @dataProvider provideIsKnownEmpty
         */
        public function testIsKnownEmpty( $titleInfo, $group, $expected ) {
-               $module = $this->getMockBuilder( 'ResourceLoaderWikiModuleTestModule' )
+               $module = $this->getMockBuilder( 'ResourceLoaderWikiModule' )
                        ->setMethods( array( 'getTitleInfo', 'getGroup' ) )
                        ->getMock();
                $module->expects( $this->any() )
diff --git a/tests/phpunit/includes/site/CachingSiteStoreTest.php b/tests/phpunit/includes/site/CachingSiteStoreTest.php
new file mode 100644 (file)
index 0000000..8159b28
--- /dev/null
@@ -0,0 +1,162 @@
+<?php
+
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @since 1.25
+ *
+ * @ingroup Site
+ * @ingroup Test
+ *
+ * @group Site
+ * @group Database
+ *
+ * @licence GNU GPL v2+
+ * @author Jeroen De Dauw < jeroendedauw@gmail.com >
+ */
+class CachingSiteStoreTest extends MediaWikiTestCase {
+
+       /**
+        * @covers CachingSiteStore::getSites
+        */
+       public function testGetSites() {
+               $testSites = TestSites::getSites();
+
+               $store = new CachingSiteStore(
+                       $this->getHashSiteStore( $testSites ),
+                       wfGetMainCache()
+               );
+
+               $sites = $store->getSites();
+
+               $this->assertInstanceOf( 'SiteList', $sites );
+
+               /**
+                * @var Site $site
+                */
+               foreach ( $sites as $site ) {
+                       $this->assertInstanceOf( 'Site', $site );
+               }
+
+               foreach ( $testSites as $site ) {
+                       if ( $site->getGlobalId() !== null ) {
+                               $this->assertTrue( $sites->hasSite( $site->getGlobalId() ) );
+                       }
+               }
+       }
+
+       /**
+        * @covers CachingSiteStore::saveSites
+        */
+       public function testSaveSites() {
+               $store = new CachingSiteStore( new HashSiteStore(), wfGetMainCache() );
+
+               $sites = array();
+
+               $site = new Site();
+               $site->setGlobalId( 'ertrywuutr' );
+               $site->setLanguageCode( 'en' );
+               $sites[] = $site;
+
+               $site = new MediaWikiSite();
+               $site->setGlobalId( 'sdfhxujgkfpth' );
+               $site->setLanguageCode( 'nl' );
+               $sites[] = $site;
+
+               $this->assertTrue( $store->saveSites( $sites ) );
+
+               $site = $store->getSite( 'ertrywuutr' );
+               $this->assertInstanceOf( 'Site', $site );
+               $this->assertEquals( 'en', $site->getLanguageCode() );
+
+               $site = $store->getSite( 'sdfhxujgkfpth' );
+               $this->assertInstanceOf( 'Site', $site );
+               $this->assertEquals( 'nl', $site->getLanguageCode() );
+       }
+
+       /**
+        * @covers CachingSiteStore::reset
+        */
+       public function testReset() {
+               $dbSiteStore = $this->getMockBuilder( 'SiteStore' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+
+               // php 5.3 compatibility!
+               $self = $this;
+
+               $dbSiteStore->expects( $this->any() )
+                       ->method( 'getSite' )
+                       ->will( $this->returnValue( $self->getTestSite() ) );
+
+               $dbSiteStore->expects( $this->any() )
+                       ->method( 'getSites' )
+                       ->will( $this->returnCallback( function() use( $self ) {
+                               $siteList = new SiteList();
+                               $siteList->setSite( $self->getTestSite() );
+
+                               return $siteList;
+                       } ) );
+
+               $store = new CachingSiteStore( $dbSiteStore, wfGetMainCache() );
+
+               // initialize internal cache
+               $this->assertGreaterThan( 0, $store->getSites()->count(), 'count sites' );
+
+               $store->getSite( 'enwiki' )->setLanguageCode( 'en-ca' );
+
+               // sanity check: $store should have the new language code for 'enwiki'
+               $this->assertEquals( 'en-ca', $store->getSite( 'enwiki' )->getLanguageCode(), 'sanity check' );
+
+               // purge cache
+               $store->reset();
+
+               // the internal cache of $store should be updated, and now pulling
+               // the site from the 'fallback' DBSiteStore with the original language code.
+               $this->assertEquals( 'en', $store->getSite( 'enwiki' )->getLanguageCode(), 'reset' );
+       }
+
+       public function getTestSite() {
+               $enwiki = new MediaWikiSite();
+               $enwiki->setGlobalId( 'enwiki' );
+               $enwiki->setLanguageCode( 'en' );
+
+               return $enwiki;
+       }
+
+       /**
+        * @covers CachingSiteStore::clear
+        */
+       public function testClear() {
+               $store = new CachingSiteStore( new HashSiteStore(), wfGetMainCache() );
+               $this->assertTrue( $store->clear() );
+
+               $site = $store->getSite( 'enwiki' );
+               $this->assertNull( $site );
+
+               $sites = $store->getSites();
+               $this->assertEquals( 0, $sites->count() );
+       }
+
+       private function getHashSiteStore( array $sites ) {
+               $siteStore = new HashSiteStore();
+               $siteStore->saveSites( $sites );
+
+               return $siteStore;
+       }
+
+}
diff --git a/tests/phpunit/includes/site/DBSiteStoreTest.php b/tests/phpunit/includes/site/DBSiteStoreTest.php
new file mode 100644 (file)
index 0000000..09ee899
--- /dev/null
@@ -0,0 +1,134 @@
+<?php
+
+/**
+ * Tests for the DBSiteStore class.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @since 1.21
+ *
+ * @ingroup Site
+ * @ingroup Test
+ *
+ * @group Site
+ * @group Database
+ *
+ * @licence GNU GPL v2+
+ * @author Jeroen De Dauw < jeroendedauw@gmail.com >
+ */
+class DBSiteStoreTest extends MediaWikiTestCase {
+
+       /**
+        * @covers DBSiteStore::getSites
+        */
+       public function testGetSites() {
+               $expectedSites = TestSites::getSites();
+               TestSites::insertIntoDb();
+
+               $store = new DBSiteStore();
+
+               $sites = $store->getSites();
+
+               $this->assertInstanceOf( 'SiteList', $sites );
+
+               /**
+                * @var Site $site
+                */
+               foreach ( $sites as $site ) {
+                       $this->assertInstanceOf( 'Site', $site );
+               }
+
+               foreach ( $expectedSites as $site ) {
+                       if ( $site->getGlobalId() !== null ) {
+                               $this->assertTrue( $sites->hasSite( $site->getGlobalId() ) );
+                       }
+               }
+       }
+
+       /**
+        * @covers DBSiteStore::saveSites
+        */
+       public function testSaveSites() {
+               $store = new DBSiteStore();
+
+               $sites = array();
+
+               $site = new Site();
+               $site->setGlobalId( 'ertrywuutr' );
+               $site->setLanguageCode( 'en' );
+               $sites[] = $site;
+
+               $site = new MediaWikiSite();
+               $site->setGlobalId( 'sdfhxujgkfpth' );
+               $site->setLanguageCode( 'nl' );
+               $sites[] = $site;
+
+               $this->assertTrue( $store->saveSites( $sites ) );
+
+               $site = $store->getSite( 'ertrywuutr' );
+               $this->assertInstanceOf( 'Site', $site );
+               $this->assertEquals( 'en', $site->getLanguageCode() );
+               $this->assertTrue( is_integer( $site->getInternalId() ) );
+               $this->assertTrue( $site->getInternalId() >= 0 );
+
+               $site = $store->getSite( 'sdfhxujgkfpth' );
+               $this->assertInstanceOf( 'Site', $site );
+               $this->assertEquals( 'nl', $site->getLanguageCode() );
+               $this->assertTrue( is_integer( $site->getInternalId() ) );
+               $this->assertTrue( $site->getInternalId() >= 0 );
+       }
+
+       /**
+        * @covers DBSiteStore::reset
+        */
+       public function testReset() {
+               $store1 = new DBSiteStore();
+               $store2 = new DBSiteStore();
+
+               // initialize internal cache
+               $this->assertGreaterThan( 0, $store1->getSites()->count() );
+               $this->assertGreaterThan( 0, $store2->getSites()->count() );
+
+               // Clear actual data. Will purge the external cache and reset the internal
+               // cache in $store1, but not the internal cache in store2.
+               $this->assertTrue( $store1->clear() );
+
+               // sanity check: $store2 should have a stale cache now
+               $this->assertNotNull( $store2->getSite( 'enwiki' ) );
+
+               // purge cache
+               $store2->reset();
+
+               // ...now the internal cache of $store2 should be updated and thus empty.
+               $site = $store2->getSite( 'enwiki' );
+               $this->assertNull( $site );
+       }
+
+       /**
+        * @covers DBSiteStore::clear
+        */
+       public function testClear() {
+               $store = new DBSiteStore();
+               $this->assertTrue( $store->clear() );
+
+               $site = $store->getSite( 'enwiki' );
+               $this->assertNull( $site );
+
+               $sites = $store->getSites();
+               $this->assertEquals( 0, $sites->count() );
+       }
+}
diff --git a/tests/phpunit/includes/site/FileBasedSiteLookupTest.php b/tests/phpunit/includes/site/FileBasedSiteLookupTest.php
new file mode 100644 (file)
index 0000000..8103f61
--- /dev/null
@@ -0,0 +1,102 @@
+<?php
+
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @since 1.25
+ *
+ * @ingroup Site
+ * @ingroup Test
+ *
+ * @covers FileBasedSiteLookup
+ * @group Site
+ *
+ * @licence GNU GPL v2+
+ * @author Katie Filbert < aude.wiki@gmail.com >
+ */
+class FileBasedSiteLookupTest extends PHPUnit_Framework_TestCase {
+
+       protected function setUp() {
+               $this->cacheFile = $this->getCacheFile();
+       }
+
+       protected function tearDown() {
+               unlink( $this->cacheFile );
+       }
+
+       public function testGetSites() {
+               $sites = $this->getSites();
+               $cacheBuilder = $this->newSitesCacheFileBuilder( $sites );
+               $cacheBuilder->build();
+
+               $cache = new FileBasedSiteLookup( $this->cacheFile );
+               $this->assertEquals( $sites, $cache->getSites() );
+       }
+
+       public function testGetSite() {
+               $sites = $this->getSites();
+               $cacheBuilder = $this->newSitesCacheFileBuilder( $sites );
+               $cacheBuilder->build();
+
+               $cache = new FileBasedSiteLookup( $this->cacheFile );
+
+               $this->assertEquals( $sites->getSite( 'enwiktionary' ), $cache->getSite( 'enwiktionary' ) );
+       }
+
+       private function newSitesCacheFileBuilder( SiteList $sites ) {
+               return new SitesCacheFileBuilder(
+                       $this->getSiteLookup( $sites ),
+                       $this->cacheFile
+               );
+       }
+
+       private function getSiteLookup( SiteList $sites ) {
+               $siteLookup = $this->getMockBuilder( 'SiteLookup' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+
+               $siteLookup->expects( $this->any() )
+                       ->method( 'getSites' )
+                       ->will( $this->returnValue( $sites ) );
+
+               return $siteLookup;
+       }
+
+       private function getSites() {
+               $sites = array();
+
+               $site = new Site();
+               $site->setGlobalId( 'foobar' );
+               $sites[] = $site;
+
+               $site = new MediaWikiSite();
+               $site->setGlobalId( 'enwiktionary' );
+               $site->setGroup( 'wiktionary' );
+               $site->setLanguageCode( 'en' );
+               $site->addNavigationId( 'enwiktionary' );
+               $site->setPath( MediaWikiSite::PATH_PAGE, "https://en.wiktionary.org/wiki/$1" );
+               $site->setPath( MediaWikiSite::PATH_FILE, "https://en.wiktionary.org/w/$1" );
+               $sites[] = $site;
+
+               return new SiteList( $sites );
+       }
+
+       private function getCacheFile() {
+               return tempnam( sys_get_temp_dir(), 'mw-test-sitelist' );
+       }
+
+}
diff --git a/tests/phpunit/includes/site/HashSiteStoreTest.php b/tests/phpunit/includes/site/HashSiteStoreTest.php
new file mode 100644 (file)
index 0000000..caa33fb
--- /dev/null
@@ -0,0 +1,106 @@
+<?php
+
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @since 1.25
+ *
+ * @ingroup Site
+ * @group Site
+ *
+ * @licence GNU GPL v2+
+ * @author Katie Filbert < aude.wiki@gmail.com >
+ */
+class HashSiteStoreTest extends MediaWikiTestCase {
+
+       /**
+        * @covers HashSiteStore::getSites
+        */
+       public function testGetSites() {
+               $expectedSites = array();
+
+               foreach( TestSites::getSites() as $testSite ) {
+                       $siteId = $testSite->getGlobalId();
+                       $expectedSites[$siteId] = $testSite;
+               }
+
+               $siteStore = new HashSiteStore( $expectedSites );
+
+               $this->assertEquals( new SiteList( $expectedSites ), $siteStore->getSites() );
+       }
+
+       /**
+        * @covers HashSiteStore::saveSite
+        * @covers HashSiteStore::getSite
+        */
+       public function testSaveSite() {
+               $store = new HashSiteStore();
+
+               $site = new Site();
+               $site->setGlobalId( 'dewiki' );
+
+               $this->assertCount( 0, $store->getSites(), '0 sites in store' );
+
+               $store->saveSite( $site );
+
+               $this->assertCount( 1, $store->getSites(), 'Store has 1 sites' );
+               $this->assertEquals( $site, $store->getSite( 'dewiki' ), 'Store has dewiki' );
+       }
+
+       /**
+        * @covers HashSiteStore::saveSites
+        */
+       public function testSaveSites() {
+               $store = new HashSiteStore();
+
+               $sites = array();
+
+               $site = new Site();
+               $site->setGlobalId( 'enwiki' );
+               $site->setLanguageCode( 'en' );
+               $sites[] = $site;
+
+               $site = new MediaWikiSite();
+               $site->setGlobalId( 'eswiki' );
+               $site->setLanguageCode( 'es' );
+               $sites[] = $site;
+
+               $this->assertCount( 0, $store->getSites(), '0 sites in store' );
+
+               $store->saveSites( $sites );
+
+               $this->assertCount( 2, $store->getSites(), 'Store has 2 sites' );
+               $this->assertTrue( $store->getSites()->hasSite( 'enwiki' ), 'Store has enwiki' );
+               $this->assertTrue( $store->getSites()->hasSite( 'eswiki' ), 'Store has eswiki' );
+       }
+
+       /**
+        * @covers HashSiteStore::clear
+        */
+       public function testClear() {
+               $store = new HashSiteStore();
+
+               $site = new Site();
+               $site->setGlobalId( 'arwiki' );
+               $store->saveSite( $site );
+
+               $this->assertCount( 1, $store->getSites(), '1 site in store' );
+
+               $store->clear();
+               $this->assertCount( 0, $store->getSites(), '0 sites in store' );
+       }
+}
diff --git a/tests/phpunit/includes/site/SiteListFileCacheBuilderTest.php b/tests/phpunit/includes/site/SiteListFileCacheBuilderTest.php
deleted file mode 100644 (file)
index bbe8cc7..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @since 1.25
- *
- * @ingroup Site
- * @ingroup Test
- *
- * @covers SiteListFileCacheBuilder
- * @group Site
- *
- * @licence GNU GPL v2+
- * @author Katie Filbert < aude.wiki@gmail.com >
- */
-class SiteListFileCacheBuilderTest extends PHPUnit_Framework_TestCase {
-
-       protected function setUp() {
-               $this->cacheFile = $this->getCacheFile();
-       }
-
-       protected function tearDown() {
-               unlink( $this->cacheFile );
-       }
-
-       public function testBuild() {
-               $cacheBuilder = $this->newSiteListFileCacheBuilder( $this->getSites() );
-               $cacheBuilder->build();
-
-               $contents = file_get_contents( $this->cacheFile );
-               $this->assertEquals( json_encode( $this->getExpectedData() ), $contents );
-       }
-
-       private function getExpectedData() {
-               return array(
-                       'sites' => array(
-                               'foobar' => array(
-                                       'globalid' => 'foobar',
-                                       'type' => 'unknown',
-                                       'group' => 'none',
-                                       'source' => 'local',
-                                       'language' => null,
-                                       'localids' => array(),
-                                       'config' => array(),
-                                       'data' => array(),
-                                       'forward' => false,
-                                       'internalid' => null,
-                                       'identifiers' => array()
-                               ),
-                               'enwiktionary' => array(
-                                       'globalid' => 'enwiktionary',
-                                       'type' => 'mediawiki',
-                                       'group' => 'wiktionary',
-                                       'source' => 'local',
-                                       'language' => 'en',
-                                       'localids' => array(
-                                               'equivalent' => array( 'enwiktionary' )
-                                       ),
-                                       'config' => array(),
-                                       'data' => array(
-                                               'paths' => array(
-                                                       'page_path' => 'https://en.wiktionary.org/wiki/$1',
-                                                       'file_path' => 'https://en.wiktionary.org/w/$1'
-                                               )
-                                       ),
-                                       'forward' => false,
-                                       'internalid' => null,
-                                       'identifiers' => array(
-                                               array(
-                                                       'type' => 'equivalent',
-                                                       'key' => 'enwiktionary'
-                                               )
-                                       )
-                               )
-                       )
-               );
-       }
-
-       private function newSiteListFileCacheBuilder( SiteList $sites ) {
-               return new SiteListFileCacheBuilder(
-                       $this->getSiteSQLStore( $sites ),
-                       $this->cacheFile
-               );
-       }
-
-       private function getSiteSQLStore( SiteList $sites ) {
-               $siteSQLStore = $this->getMockBuilder( 'SiteSQLStore' )
-                       ->disableOriginalConstructor()
-                       ->getMock();
-
-               $siteSQLStore->expects( $this->any() )
-                       ->method( 'getSites' )
-                       ->will( $this->returnValue( $sites ) );
-
-               return $siteSQLStore;
-       }
-
-       private function getSites() {
-               $sites = array();
-
-               $site = new Site();
-               $site->setGlobalId( 'foobar' );
-               $sites[] = $site;
-
-               $site = new MediaWikiSite();
-               $site->setGlobalId( 'enwiktionary' );
-               $site->setGroup( 'wiktionary' );
-               $site->setLanguageCode( 'en' );
-               $site->addNavigationId( 'enwiktionary' );
-               $site->setPath( MediaWikiSite::PATH_PAGE, "https://en.wiktionary.org/wiki/$1" );
-               $site->setPath( MediaWikiSite::PATH_FILE, "https://en.wiktionary.org/w/$1" );
-               $sites[] = $site;
-
-               return new SiteList( $sites );
-       }
-
-       private function getCacheFile() {
-               return tempnam( sys_get_temp_dir(), 'mw-test-sitelist' );
-       }
-
-}
diff --git a/tests/phpunit/includes/site/SiteListFileCacheTest.php b/tests/phpunit/includes/site/SiteListFileCacheTest.php
deleted file mode 100644 (file)
index 05dcd8a..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @since 1.25
- *
- * @ingroup Site
- * @ingroup Test
- *
- * @covers SiteListFileCache
- * @group Site
- *
- * @licence GNU GPL v2+
- * @author Katie Filbert < aude.wiki@gmail.com >
- */
-class SiteListFileCacheTest extends PHPUnit_Framework_TestCase {
-
-       protected function setUp() {
-               $this->cacheFile = $this->getCacheFile();
-       }
-
-       protected function tearDown() {
-               unlink( $this->cacheFile );
-       }
-
-       public function testGetSites() {
-               $sites = $this->getSites();
-               $cacheBuilder = $this->newSiteListFileCacheBuilder( $sites );
-               $cacheBuilder->build();
-
-               $cache = new SiteListFileCache( $this->cacheFile );
-               $this->assertEquals( $sites, $cache->getSites() );
-       }
-
-       public function testGetSite() {
-               $sites = $this->getSites();
-               $cacheBuilder = $this->newSiteListFileCacheBuilder( $sites );
-               $cacheBuilder->build();
-
-               $cache = new SiteListFileCache( $this->cacheFile );
-
-               $this->assertEquals( $sites->getSite( 'enwiktionary' ), $cache->getSite( 'enwiktionary' ) );
-       }
-
-       private function newSiteListFileCacheBuilder( SiteList $sites ) {
-               return new SiteListFileCacheBuilder(
-                       $this->getSiteSQLStore( $sites ),
-                       $this->cacheFile
-               );
-       }
-
-       private function getSiteSQLStore( SiteList $sites ) {
-               $siteSQLStore = $this->getMockBuilder( 'SiteSQLStore' )
-                       ->disableOriginalConstructor()
-                       ->getMock();
-
-               $siteSQLStore->expects( $this->any() )
-                       ->method( 'getSites' )
-                       ->will( $this->returnValue( $sites ) );
-
-               return $siteSQLStore;
-       }
-
-       private function getSites() {
-               $sites = array();
-
-               $site = new Site();
-               $site->setGlobalId( 'foobar' );
-               $sites[] = $site;
-
-               $site = new MediaWikiSite();
-               $site->setGlobalId( 'enwiktionary' );
-               $site->setGroup( 'wiktionary' );
-               $site->setLanguageCode( 'en' );
-               $site->addNavigationId( 'enwiktionary' );
-               $site->setPath( MediaWikiSite::PATH_PAGE, "https://en.wiktionary.org/wiki/$1" );
-               $site->setPath( MediaWikiSite::PATH_FILE, "https://en.wiktionary.org/w/$1" );
-               $sites[] = $site;
-
-               return new SiteList( $sites );
-       }
-
-       private function getCacheFile() {
-               return tempnam( sys_get_temp_dir(), 'mw-test-sitelist' );
-       }
-
-}
index 6002c1a..f466e10 100644 (file)
@@ -1,8 +1,6 @@
 <?php
 
 /**
- * Tests for the SiteSQLStore class.
- *
  * 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
@@ -19,7 +17,7 @@
  * http://www.gnu.org/copyleft/gpl.html
  *
  * @file
- * @since 1.21
+ * @since 1.25
  *
  * @ingroup Site
  * @ingroup Test
  * @group Database
  *
  * @licence GNU GPL v2+
- * @author Jeroen De Dauw < jeroendedauw@gmail.com >
+ * @author Katie Filbert < aude.wiki@gmail.com >
  */
 class SiteSQLStoreTest extends MediaWikiTestCase {
 
        /**
-        * @covers SiteSQLStore::getSites
-        */
-       public function testGetSites() {
-               $expectedSites = TestSites::getSites();
-               TestSites::insertIntoDb();
-
-               $store = SiteSQLStore::newInstance();
-
-               $sites = $store->getSites();
-
-               $this->assertInstanceOf( 'SiteList', $sites );
-
-               /**
-                * @var Site $site
-                */
-               foreach ( $sites as $site ) {
-                       $this->assertInstanceOf( 'Site', $site );
-               }
-
-               foreach ( $expectedSites as $site ) {
-                       if ( $site->getGlobalId() !== null ) {
-                               $this->assertTrue( $sites->hasSite( $site->getGlobalId() ) );
-                       }
-               }
-       }
-
-       /**
-        * @covers SiteSQLStore::saveSites
-        */
-       public function testSaveSites() {
-               $store = SiteSQLStore::newInstance();
-
-               $sites = array();
-
-               $site = new Site();
-               $site->setGlobalId( 'ertrywuutr' );
-               $site->setLanguageCode( 'en' );
-               $sites[] = $site;
-
-               $site = new MediaWikiSite();
-               $site->setGlobalId( 'sdfhxujgkfpth' );
-               $site->setLanguageCode( 'nl' );
-               $sites[] = $site;
-
-               $this->assertTrue( $store->saveSites( $sites ) );
-
-               $site = $store->getSite( 'ertrywuutr' );
-               $this->assertInstanceOf( 'Site', $site );
-               $this->assertEquals( 'en', $site->getLanguageCode() );
-               $this->assertTrue( is_integer( $site->getInternalId() ) );
-               $this->assertTrue( $site->getInternalId() >= 0 );
-
-               $site = $store->getSite( 'sdfhxujgkfpth' );
-               $this->assertInstanceOf( 'Site', $site );
-               $this->assertEquals( 'nl', $site->getLanguageCode() );
-               $this->assertTrue( is_integer( $site->getInternalId() ) );
-               $this->assertTrue( $site->getInternalId() >= 0 );
-       }
-
-       /**
-        * @covers SiteSQLStore::reset
+        * @covers SiteSQLStore::newInstance
         */
-       public function testReset() {
-               $store1 = SiteSQLStore::newInstance();
-               $store2 = SiteSQLStore::newInstance();
-
-               // initialize internal cache
-               $this->assertGreaterThan( 0, $store1->getSites()->count() );
-               $this->assertGreaterThan( 0, $store2->getSites()->count() );
-
-               // Clear actual data. Will purge the external cache and reset the internal
-               // cache in $store1, but not the internal cache in store2.
-               $this->assertTrue( $store1->clear() );
-
-               // sanity check: $store2 should have a stale cache now
-               $this->assertNotNull( $store2->getSite( 'enwiki' ) );
-
-               // purge cache
-               $store2->reset();
-
-               // ...now the internal cache of $store2 should be updated and thus empty.
-               $site = $store2->getSite( 'enwiki' );
-               $this->assertNull( $site );
+       public function testNewInstance() {
+               $siteStore = SiteSQLStore::newInstance();
+               $this->assertInstanceOf( 'SiteSQLStore', $siteStore );
        }
 
-       /**
-        * @covers SiteSQLStore::clear
-        */
-       public function testClear() {
-               $store = SiteSQLStore::newInstance();
-               $this->assertTrue( $store->clear() );
-
-               $site = $store->getSite( 'enwiki' );
-               $this->assertNull( $site );
-
-               $sites = $store->getSites();
-               $this->assertEquals( 0, $sites->count() );
-       }
 }
diff --git a/tests/phpunit/includes/site/SitesCacheFileBuilderTest.php b/tests/phpunit/includes/site/SitesCacheFileBuilderTest.php
new file mode 100644 (file)
index 0000000..8299423
--- /dev/null
@@ -0,0 +1,136 @@
+<?php
+
+/**
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @since 1.25
+ *
+ * @ingroup Site
+ * @ingroup Test
+ *
+ * @covers SitesCacheFileBuilder
+ * @group Site
+ *
+ * @licence GNU GPL v2+
+ * @author Katie Filbert < aude.wiki@gmail.com >
+ */
+class SitesCacheFileBuilderTest extends PHPUnit_Framework_TestCase {
+
+       protected function setUp() {
+               $this->cacheFile = $this->getCacheFile();
+       }
+
+       protected function tearDown() {
+               unlink( $this->cacheFile );
+       }
+
+       public function testBuild() {
+               $cacheBuilder = $this->newSitesCacheFileBuilder( $this->getSites() );
+               $cacheBuilder->build();
+
+               $contents = file_get_contents( $this->cacheFile );
+               $this->assertEquals( json_encode( $this->getExpectedData() ), $contents );
+       }
+
+       private function getExpectedData() {
+               return array(
+                       'sites' => array(
+                               'foobar' => array(
+                                       'globalid' => 'foobar',
+                                       'type' => 'unknown',
+                                       'group' => 'none',
+                                       'source' => 'local',
+                                       'language' => null,
+                                       'localids' => array(),
+                                       'config' => array(),
+                                       'data' => array(),
+                                       'forward' => false,
+                                       'internalid' => null,
+                                       'identifiers' => array()
+                               ),
+                               'enwiktionary' => array(
+                                       'globalid' => 'enwiktionary',
+                                       'type' => 'mediawiki',
+                                       'group' => 'wiktionary',
+                                       'source' => 'local',
+                                       'language' => 'en',
+                                       'localids' => array(
+                                               'equivalent' => array( 'enwiktionary' )
+                                       ),
+                                       'config' => array(),
+                                       'data' => array(
+                                               'paths' => array(
+                                                       'page_path' => 'https://en.wiktionary.org/wiki/$1',
+                                                       'file_path' => 'https://en.wiktionary.org/w/$1'
+                                               )
+                                       ),
+                                       'forward' => false,
+                                       'internalid' => null,
+                                       'identifiers' => array(
+                                               array(
+                                                       'type' => 'equivalent',
+                                                       'key' => 'enwiktionary'
+                                               )
+                                       )
+                               )
+                       )
+               );
+       }
+
+       private function newSitesCacheFileBuilder( SiteList $sites ) {
+               return new SitesCacheFileBuilder(
+                       $this->getSiteLookup( $sites ),
+                       $this->cacheFile
+               );
+       }
+
+       private function getSiteLookup( SiteList $sites ) {
+               $siteLookup = $this->getMockBuilder( 'SiteLookup' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+
+               $siteLookup->expects( $this->any() )
+                       ->method( 'getSites' )
+                       ->will( $this->returnValue( $sites ) );
+
+               return $siteLookup;
+       }
+
+       private function getSites() {
+               $sites = array();
+
+               $site = new Site();
+               $site->setGlobalId( 'foobar' );
+               $sites[] = $site;
+
+               $site = new MediaWikiSite();
+               $site->setGlobalId( 'enwiktionary' );
+               $site->setGroup( 'wiktionary' );
+               $site->setLanguageCode( 'en' );
+               $site->addNavigationId( 'enwiktionary' );
+               $site->setPath( MediaWikiSite::PATH_PAGE, "https://en.wiktionary.org/wiki/$1" );
+               $site->setPath( MediaWikiSite::PATH_FILE, "https://en.wiktionary.org/w/$1" );
+               $sites[] = $site;
+
+               return new SiteList( $sites );
+       }
+
+       private function getCacheFile() {
+               return tempnam( sys_get_temp_dir(), 'mw-test-sitelist' );
+       }
+
+}
index af314ba..b3ff701 100644 (file)
@@ -108,7 +108,7 @@ class TestSites {
         * @since 0.1
         */
        public static function insertIntoDb() {
-               $sitesTable = SiteSQLStore::newInstance();
+               $sitesTable = new DBSiteStore();
                $sitesTable->clear();
                $sitesTable->saveSites( TestSites::getSites() );
        }
index f1146a7..860fec4 100644 (file)
@@ -370,13 +370,6 @@ class MediaWikiTitleCodecTest extends MediaWikiTestCase {
 
        /**
         * @dataProvider provideGetNamespaceName
-        *
-        * @param int $namespace
-        * @param string $text
-        * @param string $lang
-        * @param string $expected
-        *
-        * @internal param \TitleValue $title
         */
        public function testGetNamespaceName( $namespace, $text, $lang, $expected ) {
                $codec = $this->makeCodec( $lang );
index 0a977dc..a5ef762 100644 (file)
@@ -3,13 +3,13 @@
 require_once __DIR__ . "/../../../maintenance/backupTextPass.inc";
 
 /**
- * Tests for page dumps of BackupDumper
+ * Tests for TextPassDumper that rely on the database
  *
  * @group Database
  * @group Dump
  * @covers TextPassDumper
  */
-class TextPassDumperTest extends DumpTestCase {
+class TextPassDumperDatabaseTest extends DumpTestCase {
 
        // We'll add several pages, revision and texts. The following variables hold the
        // corresponding ids.
@@ -244,7 +244,9 @@ class TextPassDumperTest extends DumpTestCase {
                        $this->fail( "Could not open stream for stderr" );
                }
 
-               $iterations = 32; // We'll start with that many iterations of revisions in stub
+               $iterations = 32; // We'll start with that many iterations of revisions
+               // in stub. Make sure that the generated volume is above the buffer size
+               // set below. Otherwise, the checkpointing does not trigger.
                $lastDuration = 0;
                $minDuration = 2; // We want the dump to take at least this many seconds
                $checkpointAfter = 0.5; // Generate checkpoint after this many seconds
@@ -262,6 +264,7 @@ class TextPassDumperTest extends DumpTestCase {
                        $dumper = new TextPassDumper( array( "--stub=file:" . $nameStub,
                                "--output=" . $checkpointFormat . ":" . $nameOutputDir . "/full",
                                "--maxtime=1" /*This is in minutes. Fixup is below*/,
+                               "--buffersize=32768", // The default of 32 iterations fill up 32KB about twice
                                "--checkpointfile=checkpoint-%s-%s.xml.gz" ) );
                        $dumper->setDb( $this->db );
                        $dumper->maxTimeAllowed = $checkpointAfter; // Patching maxTime from 1 minute
@@ -415,10 +418,7 @@ class TextPassDumperTest extends DumpTestCase {
        }
 
        /**
-        * Broken per T70653.
-        *
         * @group large
-        * @group Broken
         */
        function testCheckpointPlain() {
                $this->checkpointHelper();
@@ -434,10 +434,7 @@ class TextPassDumperTest extends DumpTestCase {
         * PHP extensions, we go for gzip instead, which triggers the same relevant code
         * paths while still being testable on more systems.
         *
-        * Broken per T70653.
-        *
         * @group large
-        * @group Broken
         */
        function testCheckpointGzip() {
                $this->checkHasGzip();
@@ -615,3 +612,61 @@ class BackupTextPassTestModelHandler extends TextContentHandler {
        }
 
 }
+
+/**
+ * Tests for TextPassDumper that do not rely on the database
+ *
+ * (As the Database group is only detected at class level (not method level), we
+ * cannot bring this test case's tests into the above main test case.)
+ *
+ * @group Dump
+ * @covers TextPassDumper
+ */
+class TextPassDumperDatabaselessTest extends MediaWikiLangTestCase {
+       /**
+        * Ensures that setting the buffer size is effective.
+        *
+        * @dataProvider bufferSizeProvider
+        */
+       function testBufferSizeSetting( $expected, $size, $msg ) {
+               $dumper = new TextPassDumperAccessor( array( "--buffersize=" . $size ) );
+               $this->assertEquals( $expected, $dumper->getBufferSize(), $msg);
+       }
+
+       /**
+        * Ensures that setting the buffer size is effective.
+        *
+        * @dataProvider bufferSizeProvider
+        */
+       function bufferSizeProvider() {
+               // expected, bufferSize to initialize with, message
+               return array(
+                       array( 512 * 1024, 512 * 1024, "Setting 512KB is not effective" ),
+                       array( 8192, 8192, "Setting 8KB is not effective" ),
+                       array( 4096, 2048, "Could set buffer size below lower bound" )
+               );
+       }
+}
+
+/**
+ * Accessor for internal state of TextPassDumper
+ *
+ * Do not warrentless add getters here.
+ */
+class TextPassDumperAccessor extends TextPassDumper {
+       /**
+        * Gets the bufferSize.
+        *
+        * If bufferSize setting does not work correctly, testCheckpoint... tests
+        * fail and point in the wrong direction. To aid in troubleshooting when
+        * testCheckpoint... tests break at some point in the future, we test the
+        * bufferSize setting, hence need this accessor.
+        *
+        * (Yes, bufferSize is internal state of the TextPassDumper, but aiding
+        * debugging of testCheckpoint... in the future seems to be worth testing
+        * against it nonetheless.)
+        */
+       public function getBufferSize() {
+               return $this->bufferSize;
+       }
+}
index 681b2d2..cde6547 100644 (file)
@@ -130,10 +130,14 @@ class AutoLoaderTest extends MediaWikiTestCase {
        }
 
        function testWrongCaseClass() {
+               $this->setMwGlobals( 'wgAutoloadAttemptLowercase', true );
+
                $this->assertTrue( class_exists( 'testautoLoadedcamlCLASS' ) );
        }
 
        function testWrongCaseSerializedClass() {
+               $this->setMwGlobals( 'wgAutoloadAttemptLowercase', true );
+
                $dummyCereal = 'O:29:"testautoloadedserializedclass":0:{}';
                $uncerealized = unserialize( $dummyCereal );
                $this->assertFalse( $uncerealized instanceof __PHP_Incomplete_Class,
diff --git a/tests/phpunit/structure/AvailableRightsTest.php b/tests/phpunit/structure/AvailableRightsTest.php
new file mode 100644 (file)
index 0000000..51d31aa
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * Try to make sure that extensions register all rights in $wgAvailableRights
+ * or via the 'UserGetAllRights' hook.
+ *
+ * @author Marius Hoch < hoo@online.de >
+ */
+class AvailableRightsTest extends PHPUnit_Framework_TestCase {
+
+       /**
+        * Returns all rights that should be in $wgAvailableRights + all rights
+        * registered via the 'UserGetAllRights' hook + all "core" rights.
+        *
+        * @return string[]
+        */
+       private function getAllVisibleRights() {
+               global $wgGroupPermissions, $wgRevokePermissions;
+
+               $rights = User::getAllRights();
+
+               foreach( $wgGroupPermissions as $permissions ) {
+                       $rights = array_merge( $rights, array_keys( $permissions ) );
+               }
+
+               foreach( $wgRevokePermissions as $permissions ) {
+                       $rights = array_merge( $rights, array_keys( $permissions ) );
+               }
+
+               $rights = array_unique( $rights );
+               sort( $rights );
+
+               return $rights;
+       }
+
+       public function testAvailableRights() {
+               $missingRights = array_diff(
+                       $this->getAllVisibleRights(),
+                       User::getAllRights()
+               );
+
+               $this->assertEquals(
+                       array(),
+                       // Re-index to produce nicer output, keys are meaningless.
+                       array_values( $missingRights ),
+                       'Additional user rights need to be added to $wgAvailableRights or ' .
+                       'via the "UserGetAllRights" hook. See the instructions at: ' .
+                       'https://www.mediawiki.org/wiki/Manual:User_rights#Adding_new_rights'
+               );
+       }
+}
index 4bcd814..d73f679 100644 (file)
@@ -48,7 +48,6 @@ return array(
                        'tests/qunit/suites/resources/jquery/jquery.autoEllipsis.test.js',
                        'tests/qunit/suites/resources/jquery/jquery.byteLength.test.js',
                        'tests/qunit/suites/resources/jquery/jquery.byteLimit.test.js',
-                       'tests/qunit/suites/resources/jquery/jquery.client.test.js',
                        'tests/qunit/suites/resources/jquery/jquery.color.test.js',
                        'tests/qunit/suites/resources/jquery/jquery.colorUtil.test.js',
                        'tests/qunit/suites/resources/jquery/jquery.getAttrs.test.js',
@@ -63,6 +62,7 @@ return array(
                        'tests/qunit/suites/resources/jquery/jquery.tablesorter.parsers.test.js',
                        'tests/qunit/suites/resources/jquery/jquery.textSelection.test.js',
                        'tests/qunit/data/mediawiki.jqueryMsg.data.js',
+                       'tests/qunit/suites/resources/mediawiki/mediawiki.errorLogger.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.jscompat.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.test.js',
@@ -74,6 +74,7 @@ return array(
                        'tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js',
                        'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js',
                        'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.category.test.js',
+                       'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.options.test.js',
                        'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.parse.test.js',
                        'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.watch.test.js',
                        'tests/qunit/suites/resources/mediawiki.special/mediawiki.special.recentchanges.test.js',
@@ -86,7 +87,6 @@ return array(
                        'jquery.autoEllipsis',
                        'jquery.byteLength',
                        'jquery.byteLimit',
-                       'jquery.client',
                        'jquery.color',
                        'jquery.colorUtil',
                        'jquery.getAttrs',
@@ -101,6 +101,7 @@ return array(
                        'jquery.textSelection',
                        'mediawiki.api',
                        'mediawiki.api.category',
+                       'mediawiki.api.options',
                        'mediawiki.api.parse',
                        'mediawiki.api.watch',
                        'mediawiki.jqueryMsg',
index 22d2af1..0cb9cc8 100644 (file)
@@ -60,7 +60,7 @@
                                );
 
                                QUnit.start();
-                       }, 10 );
+                       } );
                } );
        }
 
diff --git a/tests/qunit/suites/resources/jquery/jquery.client.test.js b/tests/qunit/suites/resources/jquery/jquery.client.test.js
deleted file mode 100644 (file)
index ee0f060..0000000
+++ /dev/null
@@ -1,656 +0,0 @@
-( function ( $ ) {
-
-       QUnit.module( 'jquery.client', QUnit.newMwEnvironment() );
-
-       var uacount = 0,
-               // Object keyed by userAgent. Value is an array (human-readable name, client-profile object, navigator.platform value)
-               uas = {
-                       // Internet Explorer 6
-                       // Internet Explorer 7
-                       'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)': {
-                               title: 'Internet Explorer 7',
-                               platform: 'Win32',
-                               profile: {
-                                       name: 'msie',
-                                       layout: 'trident',
-                                       layoutVersion: 'unknown',
-                                       platform: 'win',
-                                       version: '7.0',
-                                       versionBase: '7',
-                                       versionNumber: 7
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: false
-                               }
-                       },
-                       // Internet Explorer 8
-                       // Internet Explorer 9
-                       // Internet Explorer 10
-                       'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)': {
-                               title: 'Internet Explorer 10',
-                               platform: 'Win32',
-                               profile: {
-                                       name: 'msie',
-                                       layout: 'trident',
-                                       layoutVersion: 6,
-                                       platform: 'win',
-                                       version: '10.0',
-                                       versionBase: '10',
-                                       versionNumber: 10
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Internet Explorer 11
-                       'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv 11.0) like Gecko': {
-                               title: 'Internet Explorer 11',
-                               platform: 'Win32',
-                               profile: {
-                                       name: 'msie',
-                                       layout: 'trident',
-                                       layoutVersion: 7,
-                                       platform: 'win',
-                                       version: '11.0',
-                                       versionBase: '11',
-                                       versionNumber: 11
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Internet Explorer 11 - Windows 8.1 x64 Modern UI
-                       'Mozilla/5.0 (Windows NT 6.3; Win64; x64; Trident/7.0; rv:11.0) like Gecko': {
-                               title: 'Internet Explorer 11',
-                               platform: 'Win64',
-                               profile: {
-                                       name: 'msie',
-                                       layout: 'trident',
-                                       layoutVersion: 7,
-                                       platform: 'win',
-                                       version: '11.0',
-                                       versionBase: '11',
-                                       versionNumber: 11
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Internet Explorer 11 - Windows 8.1 x64 desktop UI
-                       'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko': {
-                               title: 'Internet Explorer 11',
-                               platform: 'WOW64',
-                               profile: {
-                                       name: 'msie',
-                                       layout: 'trident',
-                                       layoutVersion: 7,
-                                       platform: 'win',
-                                       version: '11.0',
-                                       versionBase: '11',
-                                       versionNumber: 11
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Internet Explorer 12
-                       'Mozilla/5.0 (Windows NT 6.4; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36 Edge/12.0': {
-                               title: 'Internet Explorer 12',
-                               platform: 'WOW64',
-                               profile: {
-                                       name: 'msie',
-                                       layout: 'edge',
-                                       layoutVersion: 12,
-                                       platform: 'win',
-                                       version: '12.0',
-                                       versionBase: '12',
-                                       versionNumber: 12
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Firefox 2
-                       // Firefox 3.5
-                       'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.19) Gecko/20110420 Firefox/3.5.19': {
-                               title: 'Firefox 3.5',
-                               platform: 'MacIntel',
-                               profile: {
-                                       name: 'firefox',
-                                       layout: 'gecko',
-                                       layoutVersion: 20110420,
-                                       platform: 'mac',
-                                       version: '3.5.19',
-                                       versionBase: '3',
-                                       versionNumber: 3.5
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Firefox 3.6
-                       'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110422 Ubuntu/10.10 (maverick) Firefox/3.6.17': {
-                               title: 'Firefox 3.6',
-                               platform: 'Linux i686',
-                               profile: {
-                                       name: 'firefox',
-                                       layout: 'gecko',
-                                       layoutVersion: 20110422,
-                                       platform: 'linux',
-                                       version: '3.6.17',
-                                       versionBase: '3',
-                                       versionNumber: 3.6
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Firefox 4
-                       'Mozilla/5.0 (Windows NT 6.0; rv:2.0.1) Gecko/20100101 Firefox/4.0.1': {
-                               title: 'Firefox 4',
-                               platform: 'Win32',
-                               profile: {
-                                       name: 'firefox',
-                                       layout: 'gecko',
-                                       layoutVersion: 20100101,
-                                       platform: 'win',
-                                       version: '4.0.1',
-                                       versionBase: '4',
-                                       versionNumber: 4
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Firefox 10 nightly build
-                       'Mozilla/5.0 (X11; Linux x86_64; rv:10.0a1) Gecko/20111103 Firefox/10.0a1': {
-                               title: 'Firefox 10 nightly',
-                               platform: 'Linux',
-                               profile: {
-                                       name: 'firefox',
-                                       layout: 'gecko',
-                                       layoutVersion: 20111103,
-                                       platform: 'linux',
-                                       version: '10.0a1',
-                                       versionBase: '10',
-                                       versionNumber: 10
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Iceweasel 10.0.6
-                       'Mozilla/5.0 (X11; Linux i686; rv:10.0.6) Gecko/20100101 Iceweasel/10.0.6': {
-                               title: 'Iceweasel 10.0.6',
-                               platform: 'Linux',
-                               profile: {
-                                       name: 'iceweasel',
-                                       layout: 'gecko',
-                                       layoutVersion: 20100101,
-                                       platform: 'linux',
-                                       version: '10.0.6',
-                                       versionBase: '10',
-                                       versionNumber: 10
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Iceweasel 15.0.1
-                       'Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1 Iceweasel/15.0.1': {
-                               title: 'Iceweasel 15.0.1',
-                               platform: 'Linux',
-                               profile: {
-                                       name: 'iceweasel',
-                                       layout: 'gecko',
-                                       layoutVersion: 20100101,
-                                       platform: 'linux',
-                                       version: '15.0.1',
-                                       versionBase: '15',
-                                       versionNumber: 15
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Firefox 5
-                       // Safari 3
-                       // Safari 4
-                       'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; nl-nl) AppleWebKit/531.22.7 (KHTML, like Gecko) Version/4.0.5 Safari/531.22.7': {
-                               title: 'Safari 4',
-                               platform: 'MacIntel',
-                               profile: {
-                                       name: 'safari',
-                                       layout: 'webkit',
-                                       layoutVersion: 531,
-                                       platform: 'mac',
-                                       version: '4.0.5',
-                                       versionBase: '4',
-                                       versionNumber: 4
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       'Mozilla/5.0 (Windows; U; Windows NT 6.0; cs-CZ) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/4.0.5 Safari/531.22.7': {
-                               title: 'Safari 4',
-                               platform: 'Win32',
-                               profile: {
-                                       name: 'safari',
-                                       layout: 'webkit',
-                                       layoutVersion: 533,
-                                       platform: 'win',
-                                       version: '4.0.5',
-                                       versionBase: '4',
-                                       versionNumber: 4
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Safari 5
-                       // Safari 6
-                       'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.29.13 (KHTML, like Gecko) Version/6.0.4 Safari/536.29.13': {
-                               title: 'Safari 6',
-                               platform: 'MacIntel',
-                               profile: {
-                                       name: 'safari',
-                                       layout: 'webkit',
-                                       layoutVersion: 536,
-                                       platform: 'mac',
-                                       version: '6.0.4',
-                                       versionBase: '6',
-                                       versionNumber: 6
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Safari 6.0.5+ (doesn't have the comma in "KHTML, like Gecko")
-                       'Mozilla/5.0 (Macintosh; Intel Mac OS X 1084) AppleWebKit/536.30.1 (KHTML like Gecko) Version/6.0.5 Safari/536.30.1': {
-                               title: 'Safari 6',
-                               platform: 'MacIntel',
-                               profile: {
-                                       name: 'safari',
-                                       layout: 'webkit',
-                                       layoutVersion: 536,
-                                       platform: 'mac',
-                                       version: '6.0.5',
-                                       versionBase: '6',
-                                       versionNumber: 6
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Opera 10+
-                       'Opera/9.80 (Windows NT 5.1)': {
-                               title: 'Opera 10+ (exact version unspecified)',
-                               platform: 'Win32',
-                               profile: {
-                                       name: 'opera',
-                                       layout: 'presto',
-                                       layoutVersion: 'unknown',
-                                       platform: 'win',
-                                       version: '10',
-                                       versionBase: '10',
-                                       versionNumber: 10
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Opera 12
-                       'Opera/9.80 (Windows NT 5.1) Presto/2.12.388 Version/12.11': {
-                               title: 'Opera 12',
-                               platform: 'Win32',
-                               profile: {
-                                       name: 'opera',
-                                       layout: 'presto',
-                                       layoutVersion: 'unknown',
-                                       platform: 'win',
-                                       version: '12.11',
-                                       versionBase: '12',
-                                       versionNumber: 12.11
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Opera 15 (WebKit-based)
-                       'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36 OPR/15.0.1147.130': {
-                               title: 'Opera 15',
-                               platform: 'Win32',
-                               profile: {
-                                       name: 'opera',
-                                       layout: 'webkit',
-                                       layoutVersion: 537,
-                                       platform: 'win',
-                                       version: '15.0.1147.130',
-                                       versionBase: '15',
-                                       versionNumber: 15
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Chrome 5
-                       // Chrome 6
-                       // Chrome 7
-                       // Chrome 8
-                       // Chrome 9
-                       // Chrome 10
-                       // Chrome 11
-                       // Chrome 12
-                       'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30': {
-                               title: 'Chrome 12',
-                               platform: 'MacIntel',
-                               profile: {
-                                       name: 'chrome',
-                                       layout: 'webkit',
-                                       layoutVersion: 534,
-                                       platform: 'mac',
-                                       version: '12.0.742.112',
-                                       versionBase: '12',
-                                       versionNumber: 12
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       'Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.68 Safari/534.30': {
-                               title: 'Chrome 12',
-                               platform: 'Linux i686',
-                               profile: {
-                                       name: 'chrome',
-                                       layout: 'webkit',
-                                       layoutVersion: 534,
-                                       platform: 'linux',
-                                       version: '12.0.742.68',
-                                       versionBase: '12',
-                                       versionNumber: 12
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Android WebKit Browser 2.3
-                       'Mozilla/5.0 (Linux; U; Android 2.3.5; en-us; HTC Vision Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1': {
-                               title: 'Android WebKit Browser 2.3',
-                               platform: 'Linux armv7l',
-                               profile: {
-                                       name: 'android',
-                                       layout: 'webkit',
-                                       layoutVersion: 533,
-                                       platform: 'linux',
-                                       version: '2.3.5',
-                                       versionBase: '2',
-                                       versionNumber: 2.3
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Rekonq (bug 34924)
-                       'Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.34 (KHTML, like Gecko) rekonq Safari/534.34': {
-                               title: 'Rekonq',
-                               platform: 'Linux i686',
-                               profile: {
-                                       name: 'rekonq',
-                                       layout: 'webkit',
-                                       layoutVersion: 534,
-                                       platform: 'linux',
-                                       version: '534.34',
-                                       versionBase: '534',
-                                       versionNumber: 534.34
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Konqueror
-                       'Mozilla/5.0 (X11; Linux i686) KHTML/4.9.1 (like Gecko) Konqueror/4.9': {
-                               title: 'Konqueror',
-                               platform: 'Linux i686',
-                               profile: {
-                                       name: 'konqueror',
-                                       layout: 'khtml',
-                                       layoutVersion: 'unknown',
-                                       platform: 'linux',
-                                       version: '4.9.1',
-                                       versionBase: '4',
-                                       versionNumber: 4.9
-                               },
-                               wikiEditor: {
-                                       // '4.9' is less than '4.11'.
-                                       ltr: false,
-                                       rtl: false
-                               },
-                               wikiEditorLegacy: {
-                                       // The check is missing in legacyTestMap
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       // Amazon Silk
-                       'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.0.13.81_10003810) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=true': {
-                               title: 'Silk',
-                               platform: 'Desktop',
-                               profile: {
-                                       name: 'silk',
-                                       layout: 'webkit',
-                                       layoutVersion: 533,
-                                       platform: 'unknown',
-                                       version: '1.0.13.81_10003810',
-                                       versionBase: '1',
-                                       versionNumber: 1
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       },
-                       'Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; KFTT Build/IML74K) AppleWebKit/535.19 (KHTML, like Gecko) Silk/2.1 Mobile Safari/535.19 Silk-Accelerated=true': {
-                               title: 'Silk',
-                               platform: 'Mobile',
-                               profile: {
-                                       name: 'silk',
-                                       layout: 'webkit',
-                                       layoutVersion: 535,
-                                       platform: 'unknown',
-                                       version: '2.1',
-                                       versionBase: '2',
-                                       versionNumber: 2.1
-                               },
-                               wikiEditor: {
-                                       ltr: true,
-                                       rtl: true
-                               }
-                       }
-               },
-               testMap = {
-                       // Example from WikiEditor, modified to provide version identifiers as strings and with
-                       // Konqueror 4.11 check added.
-                       'ltr': {
-                               'msie': [['>=', '7.0']],
-                               'firefox': [['>=', '2']],
-                               'opera': [['>=', '9.6']],
-                               'safari': [['>=', '3']],
-                               'chrome': [['>=', '3']],
-                               'netscape': [['>=', '9']],
-                               'konqueror': [['>=', '4.11']],
-                               'blackberry': false,
-                               'ipod': false,
-                               'iphone': false
-                       },
-                       'rtl': {
-                               'msie': [['>=', '8']],
-                               'firefox': [['>=', '2']],
-                               'opera': [['>=', '9.6']],
-                               'safari': [['>=', '3']],
-                               'chrome': [['>=', '3']],
-                               'netscape': [['>=', '9']],
-                               'konqueror': [['>=', '4.11']],
-                               'blackberry': false,
-                               'ipod': false,
-                               'iphone': false
-                       }
-               },
-               legacyTestMap = {
-                       // Original example from WikiEditor.
-                       // This is using the old, but still supported way of providing version identifiers as numbers
-                       // instead of strings; with this method, 4.9 would be considered larger than 4.11.
-                       'ltr': {
-                               'msie': [['>=', 7.0]],
-                               'firefox': [['>=', 2]],
-                               'opera': [['>=', 9.6]],
-                               'safari': [['>=', 3]],
-                               'chrome': [['>=', 3]],
-                               'netscape': [['>=', 9]],
-                               'blackberry': false,
-                               'ipod': false,
-                               'iphone': false
-                       },
-                       'rtl': {
-                               'msie': [['>=', 8]],
-                               'firefox': [['>=', 2]],
-                               'opera': [['>=', 9.6]],
-                               'safari': [['>=', 3]],
-                               'chrome': [['>=', 3]],
-                               'netscape': [['>=', 9]],
-                               'blackberry': false,
-                               'ipod': false,
-                               'iphone': false
-                       }
-               }
-       ;
-
-       // Count test cases
-       $.each( uas, function () {
-               uacount++;
-       } );
-
-       QUnit.test( 'profile( navObject )', 7, function ( assert ) {
-               var p = $.client.profile();
-
-               function unknownOrType( val, type, summary ) {
-                       assert.ok( typeof val === type || val === 'unknown', summary );
-               }
-
-               assert.equal( typeof p, 'object', 'profile returns an object' );
-               unknownOrType( p.layout, 'string', 'p.layout is a string (or "unknown")' );
-               unknownOrType( p.layoutVersion, 'number', 'p.layoutVersion is a number (or "unknown")' );
-               unknownOrType( p.platform, 'string', 'p.platform is a string (or "unknown")' );
-               unknownOrType( p.version, 'string', 'p.version is a string (or "unknown")' );
-               unknownOrType( p.versionBase, 'string', 'p.versionBase is a string (or "unknown")' );
-               assert.equal( typeof p.versionNumber, 'number', 'p.versionNumber is a number' );
-       } );
-
-       QUnit.test( 'profile( navObject ) - samples', uacount, function ( assert ) {
-               // Loop through and run tests
-               $.each( uas, function ( rawUserAgent, data ) {
-                       // Generate a client profile object and compare recursively
-                       var ret = $.client.profile( {
-                               userAgent: rawUserAgent,
-                               platform: data.platform
-                       } );
-                       assert.deepEqual( ret, data.profile, 'Client profile support check for ' + data.title + ' (' + data.platform + '): ' + rawUserAgent );
-               } );
-       } );
-
-       QUnit.test( 'test( testMap )', 4, function ( assert ) {
-               // .test() uses eval, make sure no exceptions are thrown
-               // then do a basic return value type check
-               var testMatch = $.client.test( testMap ),
-                       ie7Profile = $.client.profile( {
-                               'userAgent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
-                               'platform': ''
-                       } );
-
-               assert.equal( typeof testMatch, 'boolean', 'map with ltr/rtl split returns a boolean value' );
-
-               testMatch = $.client.test( testMap.ltr );
-
-               assert.equal( typeof testMatch, 'boolean', 'simple map (without ltr/rtl split) returns a boolean value' );
-
-               assert.equal( $.client.test( {
-                       'msie': null
-               }, ie7Profile ), true, 'returns true if any version of a browser are allowed (null)' );
-
-               assert.equal( $.client.test( {
-                       'msie': false
-               }, ie7Profile ), false, 'returns false if all versions of a browser are not allowed (false)' );
-       } );
-
-       QUnit.test( 'test( testMap, exactMatchOnly )', 2, function ( assert ) {
-               var ie7Profile = $.client.profile( {
-                       'userAgent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)',
-                       'platform': ''
-               } );
-
-               assert.equal( $.client.test( {
-                       'firefox': [['>=', 2]]
-               }, ie7Profile, false ), true, 'returns true if browser not found and exactMatchOnly not set' );
-
-               assert.equal( $.client.test( {
-                       'firefox': [['>=', 2]]
-               }, ie7Profile, true ), false, 'returns false if browser not found and exactMatchOnly is set' );
-       } );
-
-       QUnit.test( 'test( testMap ), test( legacyTestMap ) - WikiEditor sample', uacount * 2 * 2, function ( assert ) {
-               var $body = $( 'body' ),
-                       bodyClasses = $body.attr( 'class' );
-
-               // Loop through and run tests
-               $.each( uas, function ( agent, data ) {
-                       $.each( ['ltr', 'rtl'], function ( i, dir ) {
-                               var profile, testMatch, legacyTestMatch;
-                               $body.removeClass( 'ltr rtl' ).addClass( dir );
-                               profile = $.client.profile( {
-                                       userAgent: agent,
-                                       platform: data.platform
-                               } );
-                               testMatch = $.client.test( testMap, profile );
-                               legacyTestMatch = $.client.test( legacyTestMap, profile );
-                               $body.removeClass( dir );
-
-                               assert.equal(
-                                       testMatch,
-                                       data.wikiEditor[dir],
-                                       'testing comparison based on ' + dir + ', ' + agent
-                               );
-                               assert.equal(
-                                       legacyTestMatch,
-                                       data.wikiEditorLegacy ? data.wikiEditorLegacy[dir] : data.wikiEditor[dir],
-                                       'testing comparison based on ' + dir + ', ' + agent + ' (legacyTestMap)'
-                               );
-                       } );
-               } );
-
-               // Restore body classes
-               $body.attr( 'class', bodyClasses );
-       } );
-}( jQuery ) );
diff --git a/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.options.test.js b/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.options.test.js
new file mode 100644 (file)
index 0000000..c0a6585
--- /dev/null
@@ -0,0 +1,78 @@
+( function ( mw ) {
+       QUnit.module( 'mediawiki.api.options', QUnit.newMwEnvironment( {
+               setup: function () {
+                       this.server = this.sandbox.useFakeServer();
+               }
+       } ) );
+
+       QUnit.test( 'saveOption', function ( assert ) {
+               QUnit.expect( 2 );
+
+               var
+                       api = new mw.Api(),
+                       stub = this.sandbox.stub( mw.Api.prototype, 'saveOptions' );
+
+               api.saveOption( 'foo', 'bar' );
+
+               assert.ok( stub.calledOnce, '#saveOptions called once' );
+               assert.deepEqual( stub.getCall( 0 ).args, [ { foo: 'bar' } ], '#saveOptions called correctly' );
+       } );
+
+       QUnit.test( 'saveOptions', function ( assert ) {
+               QUnit.expect( 13 );
+
+               var api = new mw.Api();
+
+               // We need to respond to the request for token first, otherwise the other requests won't be sent
+               // until after the server.respond call, which confuses sinon terribly. This sucks a lot.
+               api.getToken( 'options' );
+               this.server.respond(
+                       /action=tokens.*&type=options/,
+                       [ 200, { 'Content-Type': 'application/json' },
+                               '{ "tokens": { "optionstoken": "+\\\\" } }' ]
+               );
+
+               api.saveOptions( {} ).done( function () {
+                       assert.ok( true, 'Request completed: empty case' );
+               } );
+               api.saveOptions( { foo: 'bar' } ).done( function () {
+                       assert.ok( true, 'Request completed: simple' );
+               } );
+               api.saveOptions( { foo: 'bar', baz: 'quux' } ).done( function () {
+                       assert.ok( true, 'Request completed: two options' );
+               } );
+               api.saveOptions( { foo: 'bar|quux', bar: 'a|b|c', baz: 'quux' } ).done( function () {
+                       assert.ok( true, 'Request completed: not bundleable' );
+               } );
+               api.saveOptions( { foo: null } ).done( function () {
+                       assert.ok( true, 'Request completed: reset an option' );
+               } );
+               api.saveOptions( { 'foo|bar=quux': null } ).done( function () {
+                       assert.ok( true, 'Request completed: reset an option, not bundleable' );
+               } );
+
+               // Requests are POST, match requestBody instead of url
+               this.server.respond( function ( request ) {
+                       switch ( request.requestBody ) {
+                               // simple
+                               case 'action=options&format=json&change=foo%3Dbar&token=%2B%5C':
+                               // two options
+                               case 'action=options&format=json&change=foo%3Dbar%7Cbaz%3Dquux&token=%2B%5C':
+                               // not bundleable
+                               case 'action=options&format=json&optionname=foo&optionvalue=bar%7Cquux&token=%2B%5C':
+                               case 'action=options&format=json&optionname=bar&optionvalue=a%7Cb%7Cc&token=%2B%5C':
+                               case 'action=options&format=json&change=baz%3Dquux&token=%2B%5C':
+                               // reset an option
+                               case 'action=options&format=json&change=foo&token=%2B%5C':
+                               // reset an option, not bundleable
+                               case 'action=options&format=json&optionname=foo%7Cbar%3Dquux&token=%2B%5C':
+                                       assert.ok( true, 'Repond to ' + request.requestBody );
+                                       request.respond( 200, { 'Content-Type': 'application/json' },
+                                               '{ "options": "success" }' );
+                                       break;
+                               default:
+                                       assert.ok( false, 'Unexpected request:' + request.requestBody );
+                       }
+               } );
+       } );
+}( mediaWiki ) );
diff --git a/tests/qunit/suites/resources/mediawiki/mediawiki.errorLogger.test.js b/tests/qunit/suites/resources/mediawiki/mediawiki.errorLogger.test.js
new file mode 100644 (file)
index 0000000..7c3f1ec
--- /dev/null
@@ -0,0 +1,42 @@
+( function ( $, mw ) {
+       QUnit.module( 'mediawiki.errorLogger', QUnit.newMwEnvironment() );
+
+       QUnit.test( 'installGlobalHandler', 7, function ( assert ) {
+               var w = {},
+                       errorMessage = 'Foo',
+                       errorUrl = 'http://example.com',
+                       errorLine = '123',
+                       errorColumn = '45',
+                       errorObject = new Error( 'Foo'),
+                       oldHandler = this.sandbox.stub();
+
+               this.sandbox.stub( mw, 'track' );
+
+               mw.errorLogger.installGlobalHandler( w );
+
+               assert.ok( w.onerror, 'Global handler has been installed' );
+               assert.strictEqual( w.onerror( errorMessage, errorUrl, errorLine ), false,
+                       'Global handler returns false when there is no previous handler' );
+               sinon.assert.calledWithExactly( mw.track, 'global.error',
+                       sinon.match( { errorMessage: errorMessage, url: errorUrl, lineNumber: errorLine } ) );
+
+               mw.track.reset();
+               w.onerror( errorMessage, errorUrl, errorLine, errorColumn, errorObject );
+               sinon.assert.calledWithExactly( mw.track, 'global.error',
+                       sinon.match( { errorMessage: errorMessage, url: errorUrl, lineNumber: errorLine,
+                       columnNumber: errorColumn, errorObject: errorObject } ) );
+
+               w = { onerror: oldHandler };
+
+               mw.errorLogger.installGlobalHandler( w );
+               w.onerror( errorMessage, errorUrl, errorLine );
+               sinon.assert.calledWithExactly( oldHandler, errorMessage, errorUrl, errorLine );
+
+               oldHandler.returns( false );
+               assert.strictEqual( w.onerror( errorMessage, errorUrl, errorLine ), false,
+                       'Global handler preserves false return from previous handler' );
+               oldHandler.returns( true );
+               assert.strictEqual( w.onerror( errorMessage, errorUrl, errorLine ), true,
+                       'Global handler preserves true return from previous handler' );
+       } );
+}( jQuery, mediaWiki ) );
index 38a9b51..7e23e2f 100644 (file)
                        lang: 'en',
                        number: 987654321.654321,
                        result: '987,654,321.654',
-                       description: 'formatnum test for English, decimal seperator'
+                       description: 'formatnum test for English, decimal separator'
                },
                {
                        lang: 'ar',
                        number: 987654321.654321,
                        result: '٩٨٧٬٦٥٤٬٣٢١٫٦٥٤',
-                       description: 'formatnum test for Arabic, with decimal seperator'
+                       description: 'formatnum test for Arabic, with decimal separator'
                },
                {
                        lang: 'ar',
                        number: '٩٨٧٦٥٤٣٢١٫٦٥٤٣٢١',
                        result: 987654321,
                        integer: true,
-                       description: 'formatnum test for Arabic, with decimal seperator, reverse'
+                       description: 'formatnum test for Arabic, with decimal separator, reverse'
                },
                {
                        lang: 'ar',
                        lang: 'nl',
                        number: 987654321.654321,
                        result: '987.654.321,654',
-                       description: 'formatnum test for Nederlands, decimal seperator'
+                       description: 'formatnum test for Nederlands, decimal separator'
                },
                {
                        lang: 'nl',
index a068846..d9df650 100644 (file)
@@ -22,7 +22,7 @@
        QUnit.test( 'mw.language.commafy test', 9, function ( assert ) {
                // Number grouping patterns are as per http://cldr.unicode.org/translation/number-patterns
                assert.equal( mw.language.commafy( 1234.567, '###0.#####' ), '1234.567', 'Pattern with no digit grouping separator defined' );
-               assert.equal( mw.language.commafy( 123456789.567, '###0.#####' ), '123456789.567', 'Pattern with no digit grouping seperator defined, bigger decimal part' );
+               assert.equal( mw.language.commafy( 123456789.567, '###0.#####' ), '123456789.567', 'Pattern with no digit grouping separator defined, bigger decimal part' );
                assert.equal( mw.language.commafy( 0.567, '###0.#####' ), '0.567', 'Decimal part 0' );
                assert.equal( mw.language.commafy( '.567', '###0.#####' ), '0.567', 'Decimal part missing. replace with zero' );
                assert.equal( mw.language.commafy( 1234, '##,#0.#####' ), '12,34', 'Pattern with no fractional part' );
index 8a7470c..18db7f1 100644 (file)
                                return;
                        }
                        // Otherwise, keep polling
-                       setTimeout( styleTestLoop, 150 );
+                       setTimeout( styleTestLoop );
                }
 
                // Start the loop
                } );
        } );
 
-       QUnit.test( 'mw.loader erroneous indirect dependency', 3, function ( assert ) {
+       QUnit.test( 'mw.loader erroneous indirect dependency', 5, function ( assert ) {
+               // Keep "Error: expected" out of build log
+               var log = this.sandbox.stub( window.console || {}, 'log' ),
+                       error = this.sandbox.stub( window.console || {}, 'error' );
+
                mw.loader.register( [
                        ['test.module1', '0'],
                        ['test.module2', '0', ['test.module1']],
                assert.strictEqual( mw.loader.getState( 'test.module1' ), 'error', 'Expected "error" state for test.module1' );
                assert.strictEqual( mw.loader.getState( 'test.module2' ), 'error', 'Expected "error" state for test.module2' );
                assert.strictEqual( mw.loader.getState( 'test.module3' ), 'error', 'Expected "error" state for test.module3' );
+
+               assert.strictEqual( log.callCount, 1 );
+               assert.strictEqual( error.callCount, 1 );
        } );
 
        QUnit.test( 'mw.loader out-of-order implementation', 9, function ( assert ) {
index 3f19a64..0b42af4 100644 (file)
@@ -1,4 +1,79 @@
 ( function ( mw, $ ) {
+       var
+               // Based on IPTest.php > testisIPv4
+               IPV4_CASES = [
+                       [false, false, 'Boolean false is not an IP'],
+                       [false, true, 'Boolean true is not an IP'],
+                       [false, '', 'Empty string is not an IP'],
+                       [false, 'abc', '"abc" is not an IP'],
+                       [false, ':', 'Colon is not an IP'],
+                       [false, '124.24.52', 'IPv4 not enough quads'],
+                       [false, '24.324.52.13', 'IPv4 out of range'],
+                       [false, '.24.52.13', 'IPv4 starts with period'],
+
+                       [true, '124.24.52.13', '124.24.52.134 is a valid IP'],
+                       [true, '1.24.52.13', '1.24.52.13 is a valid IP'],
+                       [false, '74.24.52.13/20', 'IPv4 ranges are not recognized as valid IPs']
+               ],
+
+               // Based on IPTest.php > testisIPv6
+               IPV6_CASES = [
+                       [false, ':fc:100::', 'IPv6 starting with lone ":"'],
+                       [false, 'fc:100:::', 'IPv6 ending with a ":::"'],
+                       [false, 'fc:300', 'IPv6 with only 2 words'],
+                       [false, 'fc:100:300', 'IPv6 with only 3 words'],
+
+                       [false, 'fc:100:a:d:1:e:ac:0::', 'IPv6 with 8 words ending with "::"'],
+                       [false, 'fc:100:a:d:1:e:ac:0:1::', 'IPv6 with 9 words ending with "::"'],
+
+                       [false, ':::'],
+                       [false, '::0:', 'IPv6 ending in a lone ":"'],
+
+                       [true,  '::', 'IPv6 zero address'],
+
+                       [false, '::fc:100:a:d:1:e:ac:0', 'IPv6 with "::" and 8 words'],
+                       [false, '::fc:100:a:d:1:e:ac:0:1', 'IPv6 with 9 words'],
+
+                       [false, ':fc::100', 'IPv6 starting with lone ":"'],
+                       [false, 'fc::100:', 'IPv6 ending with lone ":"'],
+                       [false, 'fc:::100', 'IPv6 with ":::" in the middle'],
+
+                       [true,  'fc::100', 'IPv6 with "::" and 2 words'],
+                       [true,  'fc::100:a', 'IPv6 with "::" and 3 words'],
+                       [true,  'fc::100:a:d', 'IPv6 with "::" and 4 words'],
+                       [true,  'fc::100:a:d:1', 'IPv6 with "::" and 5 words'],
+                       [true,  'fc::100:a:d:1:e', 'IPv6 with "::" and 6 words'],
+                       [true,  'fc::100:a:d:1:e:ac', 'IPv6 with "::" and 7 words'],
+                       [true,  '2001::df', 'IPv6 with "::" and 2 words'],
+                       [true,  '2001:5c0:1400:a::df', 'IPv6 with "::" and 5 words'],
+                       [true,  '2001:5c0:1400:a::df:2', 'IPv6 with "::" and 6 words'],
+
+                       [false, 'fc::100:a:d:1:e:ac:0', 'IPv6 with "::" and 8 words'],
+                       [false, 'fc::100:a:d:1:e:ac:0:1', 'IPv6 with 9 words']
+               ];
+
+       Array.prototype.push.apply( IPV6_CASES,
+               $.map( [
+                       'fc:100::',
+                       'fc:100:a::',
+                       'fc:100:a:d::',
+                       'fc:100:a:d:1::',
+                       'fc:100:a:d:1:e::',
+                       'fc:100:a:d:1:e:ac::',
+                       '::0',
+                       '::fc',
+                       '::fc:100',
+                       '::fc:100:a',
+                       '::fc:100:a:d',
+                       '::fc:100:a:d:1',
+                       '::fc:100:a:d:1:e',
+                       '::fc:100:a:d:1:e:ac',
+                       'fc:100:a:d:1:e:ac:0'
+               ], function ( el ) {
+                       return [[ true, el, el + ' is a valid IP' ]];
+               } )
+       );
+
        QUnit.module( 'mediawiki.util', QUnit.newMwEnvironment( {
                setup: function () {
                        $.fn.updateTooltipAccessKeys.setTestMode( true );
        } );
 
        QUnit.test( 'isIPv6Address', 40, function ( assert ) {
-               // Shortcuts
-               function assertFalseIPv6( addy, summary ) {
-                       return assert.strictEqual( mw.util.isIPv6Address( addy ), false, summary );
-               }
-
-               function assertTrueIPv6( addy, summary ) {
-                       return assert.strictEqual( mw.util.isIPv6Address( addy ), true, summary );
-               }
-
-               // Based on IPTest.php > testisIPv6
-               assertFalseIPv6( ':fc:100::', 'IPv6 starting with lone ":"' );
-               assertFalseIPv6( 'fc:100:::', 'IPv6 ending with a ":::"' );
-               assertFalseIPv6( 'fc:300', 'IPv6 with only 2 words' );
-               assertFalseIPv6( 'fc:100:300', 'IPv6 with only 3 words' );
-
-               $.each(
-                       ['fc:100::',
-                               'fc:100:a::',
-                               'fc:100:a:d::',
-                               'fc:100:a:d:1::',
-                               'fc:100:a:d:1:e::',
-                               'fc:100:a:d:1:e:ac::'], function ( i, addy ) {
-                               assertTrueIPv6( addy, addy + ' is a valid IP' );
-                       } );
-
-               assertFalseIPv6( 'fc:100:a:d:1:e:ac:0::', 'IPv6 with 8 words ending with "::"' );
-               assertFalseIPv6( 'fc:100:a:d:1:e:ac:0:1::', 'IPv6 with 9 words ending with "::"' );
-
-               assertFalseIPv6( ':::' );
-               assertFalseIPv6( '::0:', 'IPv6 ending in a lone ":"' );
-
-               assertTrueIPv6( '::', 'IPv6 zero address' );
-               $.each(
-                       ['::0',
-                               '::fc',
-                               '::fc:100',
-                               '::fc:100:a',
-                               '::fc:100:a:d',
-                               '::fc:100:a:d:1',
-                               '::fc:100:a:d:1:e',
-                               '::fc:100:a:d:1:e:ac',
-
-                               'fc:100:a:d:1:e:ac:0'], function ( i, addy ) {
-                               assertTrueIPv6( addy, addy + ' is a valid IP' );
-                       } );
-
-               assertFalseIPv6( '::fc:100:a:d:1:e:ac:0', 'IPv6 with "::" and 8 words' );
-               assertFalseIPv6( '::fc:100:a:d:1:e:ac:0:1', 'IPv6 with 9 words' );
-
-               assertFalseIPv6( ':fc::100', 'IPv6 starting with lone ":"' );
-               assertFalseIPv6( 'fc::100:', 'IPv6 ending with lone ":"' );
-               assertFalseIPv6( 'fc:::100', 'IPv6 with ":::" in the middle' );
-
-               assertTrueIPv6( 'fc::100', 'IPv6 with "::" and 2 words' );
-               assertTrueIPv6( 'fc::100:a', 'IPv6 with "::" and 3 words' );
-               assertTrueIPv6( 'fc::100:a:d', 'IPv6 with "::" and 4 words' );
-               assertTrueIPv6( 'fc::100:a:d:1', 'IPv6 with "::" and 5 words' );
-               assertTrueIPv6( 'fc::100:a:d:1:e', 'IPv6 with "::" and 6 words' );
-               assertTrueIPv6( 'fc::100:a:d:1:e:ac', 'IPv6 with "::" and 7 words' );
-               assertTrueIPv6( '2001::df', 'IPv6 with "::" and 2 words' );
-               assertTrueIPv6( '2001:5c0:1400:a::df', 'IPv6 with "::" and 5 words' );
-               assertTrueIPv6( '2001:5c0:1400:a::df:2', 'IPv6 with "::" and 6 words' );
-
-               assertFalseIPv6( 'fc::100:a:d:1:e:ac:0', 'IPv6 with "::" and 8 words' );
-               assertFalseIPv6( 'fc::100:a:d:1:e:ac:0:1', 'IPv6 with 9 words' );
+               $.each( IPV6_CASES, function ( i, ipCase ) {
+                       assert.strictEqual( mw.util.isIPv6Address( ipCase[1] ), ipCase[0], ipCase[2] );
+               } );
        } );
 
        QUnit.test( 'isIPv4Address', 11, function ( assert ) {
-               // Shortcuts
-               function assertFalseIPv4( addy, summary ) {
-                       assert.strictEqual( mw.util.isIPv4Address( addy ), false, summary );
-               }
+               $.each( IPV4_CASES, function ( i, ipCase ) {
+                       assert.strictEqual( mw.util.isIPv4Address( ipCase[1] ), ipCase[0], ipCase[2] );
+               } );
+       } );
 
-               function assertTrueIPv4( addy, summary ) {
-                       assert.strictEqual( mw.util.isIPv4Address( addy ), true, summary );
-               }
+       QUnit.test( 'isIPAddress', 51, function ( assert ) {
+               $.each( IPV4_CASES, function ( i, ipCase ) {
+                       assert.strictEqual( mw.util.isIPv4Address( ipCase[1] ), ipCase[0], ipCase[2] );
+               } );
 
-               // Based on IPTest.php > testisIPv4
-               assertFalseIPv4( false, 'Boolean false is not an IP' );
-               assertFalseIPv4( true, 'Boolean true is not an IP' );
-               assertFalseIPv4( '', 'Empty string is not an IP' );
-               assertFalseIPv4( 'abc', '"abc" is not an IP' );
-               assertFalseIPv4( ':', 'Colon is not an IP' );
-               assertFalseIPv4( '124.24.52', 'IPv4 not enough quads' );
-               assertFalseIPv4( '24.324.52.13', 'IPv4 out of range' );
-               assertFalseIPv4( '.24.52.13', 'IPv4 starts with period' );
-
-               assertTrueIPv4( '124.24.52.13', '124.24.52.134 is a valid IP' );
-               assertTrueIPv4( '1.24.52.13', '1.24.52.13 is a valid IP' );
-               assertFalseIPv4( '74.24.52.13/20', 'IPv4 ranges are not recogzized as valid IPs' );
+               $.each( IPV6_CASES, function ( i, ipCase ) {
+                       assert.strictEqual( mw.util.isIPv6Address( ipCase[1] ), ipCase[0], ipCase[2] );
+               } );
        } );
 }( mediaWiki, jQuery ) );
index 70cd1e6..2ea3f07 100644 (file)
--- a/thumb.php
+++ b/thumb.php
@@ -305,7 +305,10 @@ function wfStreamThumb( array $params ) {
        // Stream the file if it exists already...
        $thumbPath = $img->getThumbPath( $thumbName );
        if ( $img->getRepo()->fileExists( $thumbPath ) ) {
-               $img->getRepo()->streamFile( $thumbPath, $headers );
+               $success = $img->getRepo()->streamFile( $thumbPath, $headers );
+               if ( !$success ) {
+                       wfThumbError( 500, 'Could not stream the file' );
+               }
                return;
        }
 
@@ -320,6 +323,7 @@ function wfStreamThumb( array $params ) {
 
        // Actually generate a new thumbnail
        list( $thumb, $errorMsg ) = wfGenerateThumbnail( $img, $params, $thumbName, $thumbPath );
+       /** @var MediaTransformOutput|bool $thumb */
 
        // Check for thumbnail generation errors...
        $msg = wfMessage( 'thumbnail_error' );
@@ -340,7 +344,10 @@ function wfStreamThumb( array $params ) {
                wfThumbError( $errorCode, $errorMsg );
        } else {
                // Stream the file if there were no errors
-               $thumb->streamFile( $headers );
+               $success = $thumb->streamFile( $headers );
+               if ( !$success ) {
+                       wfThumbError( 500, 'Could not stream the file' );
+               }
        }
 }